@xpert-ai/plugin-sdk 3.14.0 → 3.15.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @xpert-ai/plugin-sdk
2
2
 
3
+ ## 3.15.0
4
+
5
+ ### Minor Changes
6
+
7
+ - c1e4da2: managed queue
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [c1e4da2]
12
+ - @xpert-ai/contracts@3.15.1
13
+
3
14
  ## 3.14.0
4
15
 
5
16
  ### Minor Changes
package/index.cjs.js CHANGED
@@ -4115,6 +4115,46 @@ function resolveSandboxTerminalAdapter(sandbox) {
4115
4115
  const MANAGED_CONNECTION_REGISTRY_TOKEN = 'XPERT_MANAGED_CONNECTION_REGISTRY';
4116
4116
  const CONNECTION_COMMAND_ROUTER_TOKEN = 'XPERT_CONNECTION_COMMAND_ROUTER';
4117
4117
 
4118
+ const MANAGED_QUEUE_SERVICE_TOKEN = 'XPERT_MANAGED_QUEUE_SERVICE';
4119
+ const MANAGED_QUEUE_HANDLER_REGISTRY_TOKEN = 'XPERT_MANAGED_QUEUE_HANDLER_REGISTRY';
4120
+ const PLUGIN_JOB_PROCESSOR_METADATA = 'XPERT_PLUGIN_JOB_PROCESSOR_METADATA';
4121
+ function PluginJobProcessor(options) {
4122
+ return (target)=>{
4123
+ const metadata = normalizePluginJobProcessorMetadata(options);
4124
+ var _Reflect_getMetadata;
4125
+ const existing = (_Reflect_getMetadata = Reflect.getMetadata(PLUGIN_JOB_PROCESSOR_METADATA, target)) != null ? _Reflect_getMetadata : [];
4126
+ Reflect.defineMetadata(PLUGIN_JOB_PROCESSOR_METADATA, [
4127
+ metadata,
4128
+ ...existing
4129
+ ], target);
4130
+ };
4131
+ }
4132
+ function normalizePluginJobProcessorMetadata(options) {
4133
+ const pluginName = requireManagedQueueDecoratorValue(options.pluginName, 'pluginName');
4134
+ var _options_queueName;
4135
+ const queueName = requireManagedQueueDecoratorValue((_options_queueName = options.queueName) != null ? _options_queueName : options.queue, 'queueName');
4136
+ var _options_jobName;
4137
+ const jobName = requireManagedQueueDecoratorValue((_options_jobName = options.jobName) != null ? _options_jobName : options.jobType, 'jobName');
4138
+ const concurrency = options.concurrency;
4139
+ if (concurrency !== undefined && (!Number.isFinite(concurrency) || concurrency <= 0)) {
4140
+ throw new Error('PluginJobProcessor concurrency must be a positive number');
4141
+ }
4142
+ return _extends({
4143
+ pluginName,
4144
+ queueName,
4145
+ jobName
4146
+ }, concurrency === undefined ? {} : {
4147
+ concurrency: Math.trunc(concurrency)
4148
+ });
4149
+ }
4150
+ function requireManagedQueueDecoratorValue(value, field) {
4151
+ const normalized = `${value != null ? value : ''}`.trim();
4152
+ if (!normalized) {
4153
+ throw new Error(`PluginJobProcessor ${field} is required`);
4154
+ }
4155
+ return normalized;
4156
+ }
4157
+
4118
4158
  const VIEW_EXTENSION_PROVIDER = 'VIEW_EXTENSION_PROVIDER';
4119
4159
  const ViewExtensionProvider = (providerKey)=>common.applyDecorators(common.SetMetadata(VIEW_EXTENSION_PROVIDER, providerKey), common.SetMetadata(STRATEGY_META_KEY, VIEW_EXTENSION_PROVIDER));
4120
4160
 
@@ -4644,10 +4684,13 @@ exports.KnowledgebaseRuntimeCapability = KnowledgebaseRuntimeCapability;
4644
4684
  exports.LLMUsage = LLMUsage;
4645
4685
  exports.LargeLanguageModel = LargeLanguageModel;
4646
4686
  exports.MANAGED_CONNECTION_REGISTRY_TOKEN = MANAGED_CONNECTION_REGISTRY_TOKEN;
4687
+ exports.MANAGED_QUEUE_HANDLER_REGISTRY_TOKEN = MANAGED_QUEUE_HANDLER_REGISTRY_TOKEN;
4688
+ exports.MANAGED_QUEUE_SERVICE_TOKEN = MANAGED_QUEUE_SERVICE_TOKEN;
4647
4689
  exports.ORGANIZATION_METADATA_KEY = ORGANIZATION_METADATA_KEY;
4648
4690
  exports.OpenAICompatibleReranker = OpenAICompatibleReranker;
4649
4691
  exports.PERMISSION_OPERATION_METADATA_KEY = PERMISSION_OPERATION_METADATA_KEY;
4650
4692
  exports.PLUGIN_CONFIG_RESOLVER_TOKEN = PLUGIN_CONFIG_RESOLVER_TOKEN;
4693
+ exports.PLUGIN_JOB_PROCESSOR_METADATA = PLUGIN_JOB_PROCESSOR_METADATA;
4651
4694
  exports.PLUGIN_METADATA = PLUGIN_METADATA;
4652
4695
  exports.PLUGIN_METADATA_KEY = PLUGIN_METADATA_KEY;
4653
4696
  exports.PLUGIN_WEBHOOK_AUTH_METADATA_KEY = PLUGIN_WEBHOOK_AUTH_METADATA_KEY;
@@ -4658,6 +4701,7 @@ exports.PROVIDE_AI_MODEL_RERANK = PROVIDE_AI_MODEL_RERANK;
4658
4701
  exports.PROVIDE_AI_MODEL_SPEECH2TEXT = PROVIDE_AI_MODEL_SPEECH2TEXT;
4659
4702
  exports.PROVIDE_AI_MODEL_TEXT_EMBEDDING = PROVIDE_AI_MODEL_TEXT_EMBEDDING;
4660
4703
  exports.PROVIDE_AI_MODEL_TTS = PROVIDE_AI_MODEL_TTS;
4704
+ exports.PluginJobProcessor = PluginJobProcessor;
4661
4705
  exports.PluginWebhookAuth = PluginWebhookAuth;
4662
4706
  exports.RETRIEVER_STRATEGY = RETRIEVER_STRATEGY;
4663
4707
  exports.RequestContext = RequestContext;
package/index.esm.js CHANGED
@@ -4095,6 +4095,46 @@ function resolveSandboxTerminalAdapter(sandbox) {
4095
4095
  const MANAGED_CONNECTION_REGISTRY_TOKEN = 'XPERT_MANAGED_CONNECTION_REGISTRY';
4096
4096
  const CONNECTION_COMMAND_ROUTER_TOKEN = 'XPERT_CONNECTION_COMMAND_ROUTER';
4097
4097
 
4098
+ const MANAGED_QUEUE_SERVICE_TOKEN = 'XPERT_MANAGED_QUEUE_SERVICE';
4099
+ const MANAGED_QUEUE_HANDLER_REGISTRY_TOKEN = 'XPERT_MANAGED_QUEUE_HANDLER_REGISTRY';
4100
+ const PLUGIN_JOB_PROCESSOR_METADATA = 'XPERT_PLUGIN_JOB_PROCESSOR_METADATA';
4101
+ function PluginJobProcessor(options) {
4102
+ return (target)=>{
4103
+ const metadata = normalizePluginJobProcessorMetadata(options);
4104
+ var _Reflect_getMetadata;
4105
+ const existing = (_Reflect_getMetadata = Reflect.getMetadata(PLUGIN_JOB_PROCESSOR_METADATA, target)) != null ? _Reflect_getMetadata : [];
4106
+ Reflect.defineMetadata(PLUGIN_JOB_PROCESSOR_METADATA, [
4107
+ metadata,
4108
+ ...existing
4109
+ ], target);
4110
+ };
4111
+ }
4112
+ function normalizePluginJobProcessorMetadata(options) {
4113
+ const pluginName = requireManagedQueueDecoratorValue(options.pluginName, 'pluginName');
4114
+ var _options_queueName;
4115
+ const queueName = requireManagedQueueDecoratorValue((_options_queueName = options.queueName) != null ? _options_queueName : options.queue, 'queueName');
4116
+ var _options_jobName;
4117
+ const jobName = requireManagedQueueDecoratorValue((_options_jobName = options.jobName) != null ? _options_jobName : options.jobType, 'jobName');
4118
+ const concurrency = options.concurrency;
4119
+ if (concurrency !== undefined && (!Number.isFinite(concurrency) || concurrency <= 0)) {
4120
+ throw new Error('PluginJobProcessor concurrency must be a positive number');
4121
+ }
4122
+ return _extends({
4123
+ pluginName,
4124
+ queueName,
4125
+ jobName
4126
+ }, concurrency === undefined ? {} : {
4127
+ concurrency: Math.trunc(concurrency)
4128
+ });
4129
+ }
4130
+ function requireManagedQueueDecoratorValue(value, field) {
4131
+ const normalized = `${value != null ? value : ''}`.trim();
4132
+ if (!normalized) {
4133
+ throw new Error(`PluginJobProcessor ${field} is required`);
4134
+ }
4135
+ return normalized;
4136
+ }
4137
+
4098
4138
  const VIEW_EXTENSION_PROVIDER = 'VIEW_EXTENSION_PROVIDER';
4099
4139
  const ViewExtensionProvider = (providerKey)=>applyDecorators(SetMetadata(VIEW_EXTENSION_PROVIDER, providerKey), SetMetadata(STRATEGY_META_KEY, VIEW_EXTENSION_PROVIDER));
4100
4140
 
@@ -4543,4 +4583,4 @@ function escapeHtmlAttribute(value) {
4543
4583
 
4544
4584
  const VIEW_EXTENSION_CACHE_SERVICE_TOKEN = 'XPERT_PLUGIN_VIEW_EXTENSION_CACHE_SERVICE';
4545
4585
 
4546
- export { ACCOUNT_BINDING_PERMISSION_SERVICE_TOKEN, AGENT_CHAT_DISPATCH_MESSAGE_TYPE, AGENT_MIDDLEWARE_STRATEGY, AIModelProviderNotFoundException, AIModelProviderRegistry, AIModelProviderStrategy, AI_MODEL_PROVIDER, ANALYTICS_PERMISSION_SERVICE_TOKEN, AdapterDataSourceStrategy, AgentMiddlewareRegistry, AgentMiddlewareStrategy, AiModelNotFoundException, AssistantTaskRuntimeCapability, BOUND_IDENTITY_LOGIN_PERMISSION_SERVICE_TOKEN, BUILTIN_GLOBAL_SCOPE, BaseHTTPQueryRunner, BaseQueryRunner, BaseSQLQueryRunner, BaseSandbox, BaseStrategyRegistry, BaseTool, BaseToolset, BuiltinToolset, CHAT_CHANNEL, CHAT_CHANNEL_TEXT_LIMITS, CONNECTION_COMMAND_ROUTER_TOKEN, CancelConversationCommand, ChatChannel, ChatChannelRegistry, ChatOAICompatReasoningModel, CommonParameterRules, CreateModelClientCommand, CredentialsValidateFailedError, DATASOURCE_STRATEGY, DBCreateTableMode, DBProtocolEnum, DBSyntaxEnum, DBTableAction, DBTableDataAction, DEFAULT_EXECUTION_CONFIG, DEFAULT_SANDBOX_EXECUTION_MAX_OUTPUT_BYTES, DEFAULT_SANDBOX_FILE_OPERATION_EXECUTION_OPTIONS, DEFAULT_SANDBOX_FILE_OPERATION_TIMEOUT_MS, DEFAULT_SANDBOX_FILE_OPERATION_TIMEOUT_SEC, DEFAULT_SANDBOX_FILE_SEARCH_EXECUTION_OPTIONS, DEFAULT_SANDBOX_FILE_SEARCH_TIMEOUT_MS, DEFAULT_SANDBOX_FILE_SEARCH_TIMEOUT_SEC, DEFAULT_SANDBOX_SHELL_EXECUTION_OPTIONS, DEFAULT_SANDBOX_SHELL_TIMEOUT_MS, DEFAULT_SANDBOX_SHELL_TIMEOUT_SEC, DOCUMENT_SOURCE_STRATEGY, DOCUMENT_TRANSFORMER_STRATEGY, DataSourceStrategy, DataSourceStrategyRegistry, DefaultRuntimeCapabilityRegistry as DefaultAgentMiddlewareRuntimeCapabilityRegistry, DefaultRuntimeCapabilityRegistry, DocumentSourceRegistry, DocumentSourceStrategy, DocumentTransformerRegistry, DocumentTransformerStrategy, FILE_STORAGE_PROVIDER, FILE_UPLOAD_TARGET_STRATEGY, FileRuntimeCapability, FileStorageProvider, FileStorageProviderRegistry, FileUploadTargetRegistry, FileUploadTargetStrategy, GLOBAL_ORGANIZATION_SCOPE, HANDOFF_PERMISSION_SERVICE_TOKEN, HANDOFF_PROCESSOR_STRATEGY, HANDOFF_QUEUE_SERVICE_TOKEN, HandoffProcessorRegistry, HandoffProcessorStrategy, IMAGE_UNDERSTANDING_STRATEGY, INTEGRATION_PERMISSION_SERVICE_TOKEN, INTEGRATION_STRATEGY, ImageUnderstandingRegistry, ImageUnderstandingStrategy, IntegrationStrategyKey, IntegrationStrategyRegistry, JUMP_TO_TARGETS, JsonSchemaValidator, KNOWLEDGE_STRATEGY, KnowledgeStrategyKey, KnowledgeStrategyRegistry, KnowledgebaseDocumentsRuntimeCapability, KnowledgebaseRuntimeCapability, LLMUsage, LargeLanguageModel, MANAGED_CONNECTION_REGISTRY_TOKEN, ModelProvider, ORGANIZATION_METADATA_KEY, OpenAICompatibleReranker, PERMISSION_OPERATION_METADATA_KEY, PLUGIN_CONFIG_RESOLVER_TOKEN, PLUGIN_METADATA, PLUGIN_METADATA_KEY, PLUGIN_WEBHOOK_AUTH_METADATA_KEY, PLUGIN_WEBHOOK_AUTH_SERVICE_TOKEN, PROVIDE_AI_MODEL_LLM, PROVIDE_AI_MODEL_MODERATION, PROVIDE_AI_MODEL_RERANK, PROVIDE_AI_MODEL_SPEECH2TEXT, PROVIDE_AI_MODEL_TEXT_EMBEDDING, PROVIDE_AI_MODEL_TTS, PluginWebhookAuth, PluginWebhookAuthGuard, RETRIEVER_STRATEGY, RequestContext, RequestContextMiddleware, RequirePermissionOperation, RerankModel, RetrieverRegistry, RetrieverStrategy, SANDBOX_PROVIDER, SANDBOX_SHELL_TIMEOUT_LIMITS_SEC, SKILL_SOURCE_PROVIDER, SPEECH_TO_TEXT_PERMISSION_SERVICE_TOKEN, SPEECH_TO_TEXT_SERVICE_TOKEN, SSOProviderRegistry, SSOProviderStrategyKey, SSO_BINDING_PERMISSION_SERVICE_TOKEN, SSO_PROVIDER, STRATEGY_META_KEY, SandboxProviderRegistry, SandboxProviderStrategy, SkillSourceProviderRegistry, SkillSourceProviderStrategy, Speech2TextChatModel, SpeechToTextModel, StrategyBus, TENANT_GLOBAL_SCOPE_PREFIX, TENANT_GLOBAL_SCOPE_SUFFIX, TEXT_SPLITTER_STRATEGY, TOOLSET_STRATEGY, TextEmbeddingModelManager, TextSplitterRegistry, TextSplitterStrategy, TextToSpeechModel, ToolsetRegistry, ToolsetStrategy, USER_PERMISSION_SERVICE_TOKEN, VECTOR_STORE_STRATEGY, VIEW_EXTENSION_CACHE_SERVICE_TOKEN, VIEW_EXTENSION_PROVIDER, VectorStoreRegistry, VectorStoreStrategy, ViewExtensionProvider, ViewExtensionProviderRegistry, WORKFLOW_NODE_STRATEGY, WORKFLOW_TRIGGER_STRATEGY, WorkflowNodeRegistry, WorkflowNodeStrategy, WorkflowTriggerRegistry, WorkflowTriggerStrategy, WorkspaceFilesRuntimeCapability, WrapWorkflowNodeExecutionCommand, XPERT_RUNTIME_CAPABILITIES_TOKEN, XpFileSystem, XpertServerPlugin, als, appendSandboxMessage, buildSandboxTimeoutMessage, calcTokenUsage, chunkText, countTokensSafe, createI18nInstance, createPluginLogger, createRuntimeCapability, defineAgentMessageType, defineChannelMessageType, downloadRemoteFile, formatSandboxTimeout, getDefaultTenantId, getErrorMessage, getModelContextSize, getPermissionOperationMetadata, getPositionList, getPositionMap, getRequestContext, getRequiredPermissionOperation, getTenantGlobalScopeKey, isRemoteFile, isSandboxBackend, isSandboxManagedServiceAdapter, isSandboxServiceProxyAdapter, isSandboxTerminalAdapter, isStructuredMessageType, isTenantGlobalScopeKey, loadYamlFile, mergeCredentials, mergeParentChildChunks, normalizeContextSize, renderRemoteReactIframeHtml, resolveSandboxBackend, resolveSandboxExecutionOptions, resolveSandboxManagedServiceAdapter, resolveSandboxServiceProxyAdapter, resolveSandboxTerminalAdapter, resolveTenantGlobalScopeKey, runWithRequestContext, secondsToMilliseconds, setDefaultTenantId, sumTokenUsage };
4586
+ export { ACCOUNT_BINDING_PERMISSION_SERVICE_TOKEN, AGENT_CHAT_DISPATCH_MESSAGE_TYPE, AGENT_MIDDLEWARE_STRATEGY, AIModelProviderNotFoundException, AIModelProviderRegistry, AIModelProviderStrategy, AI_MODEL_PROVIDER, ANALYTICS_PERMISSION_SERVICE_TOKEN, AdapterDataSourceStrategy, AgentMiddlewareRegistry, AgentMiddlewareStrategy, AiModelNotFoundException, AssistantTaskRuntimeCapability, BOUND_IDENTITY_LOGIN_PERMISSION_SERVICE_TOKEN, BUILTIN_GLOBAL_SCOPE, BaseHTTPQueryRunner, BaseQueryRunner, BaseSQLQueryRunner, BaseSandbox, BaseStrategyRegistry, BaseTool, BaseToolset, BuiltinToolset, CHAT_CHANNEL, CHAT_CHANNEL_TEXT_LIMITS, CONNECTION_COMMAND_ROUTER_TOKEN, CancelConversationCommand, ChatChannel, ChatChannelRegistry, ChatOAICompatReasoningModel, CommonParameterRules, CreateModelClientCommand, CredentialsValidateFailedError, DATASOURCE_STRATEGY, DBCreateTableMode, DBProtocolEnum, DBSyntaxEnum, DBTableAction, DBTableDataAction, DEFAULT_EXECUTION_CONFIG, DEFAULT_SANDBOX_EXECUTION_MAX_OUTPUT_BYTES, DEFAULT_SANDBOX_FILE_OPERATION_EXECUTION_OPTIONS, DEFAULT_SANDBOX_FILE_OPERATION_TIMEOUT_MS, DEFAULT_SANDBOX_FILE_OPERATION_TIMEOUT_SEC, DEFAULT_SANDBOX_FILE_SEARCH_EXECUTION_OPTIONS, DEFAULT_SANDBOX_FILE_SEARCH_TIMEOUT_MS, DEFAULT_SANDBOX_FILE_SEARCH_TIMEOUT_SEC, DEFAULT_SANDBOX_SHELL_EXECUTION_OPTIONS, DEFAULT_SANDBOX_SHELL_TIMEOUT_MS, DEFAULT_SANDBOX_SHELL_TIMEOUT_SEC, DOCUMENT_SOURCE_STRATEGY, DOCUMENT_TRANSFORMER_STRATEGY, DataSourceStrategy, DataSourceStrategyRegistry, DefaultRuntimeCapabilityRegistry as DefaultAgentMiddlewareRuntimeCapabilityRegistry, DefaultRuntimeCapabilityRegistry, DocumentSourceRegistry, DocumentSourceStrategy, DocumentTransformerRegistry, DocumentTransformerStrategy, FILE_STORAGE_PROVIDER, FILE_UPLOAD_TARGET_STRATEGY, FileRuntimeCapability, FileStorageProvider, FileStorageProviderRegistry, FileUploadTargetRegistry, FileUploadTargetStrategy, GLOBAL_ORGANIZATION_SCOPE, HANDOFF_PERMISSION_SERVICE_TOKEN, HANDOFF_PROCESSOR_STRATEGY, HANDOFF_QUEUE_SERVICE_TOKEN, HandoffProcessorRegistry, HandoffProcessorStrategy, IMAGE_UNDERSTANDING_STRATEGY, INTEGRATION_PERMISSION_SERVICE_TOKEN, INTEGRATION_STRATEGY, ImageUnderstandingRegistry, ImageUnderstandingStrategy, IntegrationStrategyKey, IntegrationStrategyRegistry, JUMP_TO_TARGETS, JsonSchemaValidator, KNOWLEDGE_STRATEGY, KnowledgeStrategyKey, KnowledgeStrategyRegistry, KnowledgebaseDocumentsRuntimeCapability, KnowledgebaseRuntimeCapability, LLMUsage, LargeLanguageModel, MANAGED_CONNECTION_REGISTRY_TOKEN, MANAGED_QUEUE_HANDLER_REGISTRY_TOKEN, MANAGED_QUEUE_SERVICE_TOKEN, ModelProvider, ORGANIZATION_METADATA_KEY, OpenAICompatibleReranker, PERMISSION_OPERATION_METADATA_KEY, PLUGIN_CONFIG_RESOLVER_TOKEN, PLUGIN_JOB_PROCESSOR_METADATA, PLUGIN_METADATA, PLUGIN_METADATA_KEY, PLUGIN_WEBHOOK_AUTH_METADATA_KEY, PLUGIN_WEBHOOK_AUTH_SERVICE_TOKEN, PROVIDE_AI_MODEL_LLM, PROVIDE_AI_MODEL_MODERATION, PROVIDE_AI_MODEL_RERANK, PROVIDE_AI_MODEL_SPEECH2TEXT, PROVIDE_AI_MODEL_TEXT_EMBEDDING, PROVIDE_AI_MODEL_TTS, PluginJobProcessor, PluginWebhookAuth, PluginWebhookAuthGuard, RETRIEVER_STRATEGY, RequestContext, RequestContextMiddleware, RequirePermissionOperation, RerankModel, RetrieverRegistry, RetrieverStrategy, SANDBOX_PROVIDER, SANDBOX_SHELL_TIMEOUT_LIMITS_SEC, SKILL_SOURCE_PROVIDER, SPEECH_TO_TEXT_PERMISSION_SERVICE_TOKEN, SPEECH_TO_TEXT_SERVICE_TOKEN, SSOProviderRegistry, SSOProviderStrategyKey, SSO_BINDING_PERMISSION_SERVICE_TOKEN, SSO_PROVIDER, STRATEGY_META_KEY, SandboxProviderRegistry, SandboxProviderStrategy, SkillSourceProviderRegistry, SkillSourceProviderStrategy, Speech2TextChatModel, SpeechToTextModel, StrategyBus, TENANT_GLOBAL_SCOPE_PREFIX, TENANT_GLOBAL_SCOPE_SUFFIX, TEXT_SPLITTER_STRATEGY, TOOLSET_STRATEGY, TextEmbeddingModelManager, TextSplitterRegistry, TextSplitterStrategy, TextToSpeechModel, ToolsetRegistry, ToolsetStrategy, USER_PERMISSION_SERVICE_TOKEN, VECTOR_STORE_STRATEGY, VIEW_EXTENSION_CACHE_SERVICE_TOKEN, VIEW_EXTENSION_PROVIDER, VectorStoreRegistry, VectorStoreStrategy, ViewExtensionProvider, ViewExtensionProviderRegistry, WORKFLOW_NODE_STRATEGY, WORKFLOW_TRIGGER_STRATEGY, WorkflowNodeRegistry, WorkflowNodeStrategy, WorkflowTriggerRegistry, WorkflowTriggerStrategy, WorkspaceFilesRuntimeCapability, WrapWorkflowNodeExecutionCommand, XPERT_RUNTIME_CAPABILITIES_TOKEN, XpFileSystem, XpertServerPlugin, als, appendSandboxMessage, buildSandboxTimeoutMessage, calcTokenUsage, chunkText, countTokensSafe, createI18nInstance, createPluginLogger, createRuntimeCapability, defineAgentMessageType, defineChannelMessageType, downloadRemoteFile, formatSandboxTimeout, getDefaultTenantId, getErrorMessage, getModelContextSize, getPermissionOperationMetadata, getPositionList, getPositionMap, getRequestContext, getRequiredPermissionOperation, getTenantGlobalScopeKey, isRemoteFile, isSandboxBackend, isSandboxManagedServiceAdapter, isSandboxServiceProxyAdapter, isSandboxTerminalAdapter, isStructuredMessageType, isTenantGlobalScopeKey, loadYamlFile, mergeCredentials, mergeParentChildChunks, normalizeContextSize, renderRemoteReactIframeHtml, resolveSandboxBackend, resolveSandboxExecutionOptions, resolveSandboxManagedServiceAdapter, resolveSandboxServiceProxyAdapter, resolveSandboxTerminalAdapter, resolveTenantGlobalScopeKey, runWithRequestContext, secondsToMilliseconds, setDefaultTenantId, sumTokenUsage };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xpert-ai/plugin-sdk",
3
- "version": "3.14.0",
3
+ "version": "3.15.0",
4
4
  "license": "AGPL-3.0",
5
5
  "repository": {
6
6
  "type": "git",
package/src/index.d.ts CHANGED
@@ -19,4 +19,5 @@ export * from './lib/strategy';
19
19
  export * from './lib/sso/index';
20
20
  export * from './lib/sandbox/index';
21
21
  export * from './lib/managed-connection/index';
22
+ export * from './lib/managed-queue/index';
22
23
  export * from './lib/view-extension/index';
@@ -0,0 +1,106 @@
1
+ export declare const MANAGED_QUEUE_SERVICE_TOKEN = "XPERT_MANAGED_QUEUE_SERVICE";
2
+ export declare const MANAGED_QUEUE_HANDLER_REGISTRY_TOKEN = "XPERT_MANAGED_QUEUE_HANDLER_REGISTRY";
3
+ export declare const PLUGIN_JOB_PROCESSOR_METADATA = "XPERT_PLUGIN_JOB_PROCESSOR_METADATA";
4
+ export type PluginJobProcessorOptions = {
5
+ pluginName: string;
6
+ queueName?: string;
7
+ queue?: string;
8
+ jobName?: string;
9
+ jobType?: string;
10
+ concurrency?: number;
11
+ };
12
+ export type PluginJobProcessorMetadata = {
13
+ pluginName: string;
14
+ queueName: string;
15
+ jobName: string;
16
+ concurrency?: number;
17
+ };
18
+ export type ManagedQueueRemoveOption = boolean | number | {
19
+ age?: number;
20
+ count?: number;
21
+ };
22
+ export type ManagedQueueBackoffInput = number | {
23
+ type?: 'fixed' | 'exponential';
24
+ delay: number;
25
+ };
26
+ export type ManagedQueueRedis = {
27
+ get(key: string): Promise<string | null>;
28
+ set(key: string, value: string, mode?: string, ttlMode?: string | number, ttlOrMode?: number | string): Promise<string | null>;
29
+ del(...keys: string[]): Promise<number>;
30
+ incr(key: string): Promise<number>;
31
+ expire(key: string, seconds: number): Promise<number>;
32
+ ttl(key: string): Promise<number>;
33
+ eval(script: string, numKeys: number, ...args: Array<string | number>): Promise<unknown>;
34
+ };
35
+ export type ManagedQueueEnqueueInput<TPayload = unknown> = {
36
+ pluginName: string;
37
+ queueName: string;
38
+ jobName: string;
39
+ payload: TPayload;
40
+ tenantId?: string | null;
41
+ organizationId?: string | null;
42
+ scopeKey?: string | null;
43
+ userId?: string | null;
44
+ jobId?: string;
45
+ delayMs?: number;
46
+ attempts?: number;
47
+ backoffMs?: ManagedQueueBackoffInput;
48
+ removeOnComplete?: ManagedQueueRemoveOption;
49
+ removeOnFail?: ManagedQueueRemoveOption;
50
+ };
51
+ export type ManagedQueueEnqueueResult = {
52
+ jobId: string;
53
+ };
54
+ export type ManagedQueueCancelInput = {
55
+ jobId: string;
56
+ };
57
+ export type ManagedQueueCancelResult = {
58
+ success: boolean;
59
+ jobId: string;
60
+ state?: string;
61
+ reason?: 'not_found' | 'active' | 'completed' | 'failed' | 'locked' | 'not_removable';
62
+ error?: string;
63
+ };
64
+ export type ManagedQueueJob<TPayload = unknown> = {
65
+ id?: string;
66
+ name: string;
67
+ data: TPayload;
68
+ attemptsMade: number;
69
+ opts?: Record<string, unknown>;
70
+ };
71
+ export type ManagedQueueJobContext = {
72
+ pluginName: string;
73
+ queueName: string;
74
+ jobName: string;
75
+ scopeKey?: string | null;
76
+ };
77
+ export type ManagedQueueJobSnapshot<TPayload = unknown> = ManagedQueueJob<TPayload> & {
78
+ state?: string;
79
+ timestamp?: number;
80
+ processedOn?: number;
81
+ finishedOn?: number;
82
+ };
83
+ export type ManagedQueueJobHandler<TPayload = unknown> = (job: ManagedQueueJob<TPayload>) => Promise<void> | void;
84
+ export interface ManagedQueueJobProcessor<TPayload = unknown> {
85
+ handle(job: ManagedQueueJob<TPayload>, context: ManagedQueueJobContext): Promise<void> | void;
86
+ }
87
+ export type ManagedQueueHandlerRegistration<TPayload = unknown> = {
88
+ pluginName: string;
89
+ queueName: string;
90
+ jobName: string;
91
+ scopeKey?: string | null;
92
+ concurrency?: number;
93
+ handler: ManagedQueueJobHandler<TPayload>;
94
+ };
95
+ export interface ManagedQueueHandlerRegistry {
96
+ register<TPayload = unknown>(registration: ManagedQueueHandlerRegistration<TPayload>): () => void;
97
+ }
98
+ export interface ManagedQueueService {
99
+ enqueue<TPayload = unknown>(input: ManagedQueueEnqueueInput<TPayload>): Promise<ManagedQueueEnqueueResult>;
100
+ cancel(input: ManagedQueueCancelInput): Promise<ManagedQueueCancelResult>;
101
+ getJob<TPayload = unknown>(input: {
102
+ jobId: string;
103
+ }): Promise<ManagedQueueJobSnapshot<TPayload> | null>;
104
+ getRedis(): Promise<ManagedQueueRedis>;
105
+ }
106
+ export declare function PluginJobProcessor(options: PluginJobProcessorOptions): ClassDecorator;
@@ -87,6 +87,9 @@ export interface PluginContext<TConfig extends object = any> {
87
87
  app?: INestApplicationContext;
88
88
  logger: PluginLogger;
89
89
  config: TConfig;
90
+ tenantId?: string | null;
91
+ organizationId?: string | null;
92
+ scopeKey?: string | null;
90
93
  /** Helper method to access other Providers in the container */
91
94
  resolve<TInput = any, TResult = TInput>(token: any): TResult;
92
95
  }