@xpert-ai/plugin-sdk 3.15.18 → 3.16.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.16.0
4
+
5
+ ### Minor Changes
6
+
7
+ - b800da5: v3.16
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [b800da5]
12
+ - @xpert-ai/contracts@3.16.0
13
+
3
14
  ## 3.15.18
4
15
 
5
16
  ### Patch Changes
package/index.cjs.js CHANGED
@@ -1203,10 +1203,6 @@ const PLUGIN_CONFIG_RESOLVER_TOKEN = 'XPERT_PLUGIN_CONFIG_RESOLVER';
1203
1203
  * System token for resolving integration read service from plugin context.
1204
1204
  */ const INTEGRATION_PERMISSION_SERVICE_TOKEN = 'XPERT_PLUGIN_INTEGRATION_PERMISSION_SERVICE';
1205
1205
 
1206
- /**
1207
- * System token for resolving analytics permission service from plugin context.
1208
- */ const ANALYTICS_PERMISSION_SERVICE_TOKEN = 'XPERT_PLUGIN_ANALYTICS_PERMISSION_SERVICE';
1209
-
1210
1206
  const PERMISSION_OPERATION_METADATA_KEY = 'XPERT_PLUGIN_PERMISSION_OPERATION';
1211
1207
  function RequirePermissionOperation(permissionType, operation) {
1212
1208
  return (_target, _propertyKey, descriptor)=>{
@@ -1264,6 +1260,14 @@ function getRequiredPermissionOperation(method, permissionType) {
1264
1260
  * Internal system token used by core to expose the speech-to-text bridge.
1265
1261
  */ const SPEECH_TO_TEXT_SERVICE_TOKEN = 'XPERT_SPEECH_TO_TEXT_SERVICE';
1266
1262
 
1263
+ const VIDEO_GENERATOR_FAMILIES = [
1264
+ 'seedance',
1265
+ 'veo',
1266
+ 'kling'
1267
+ ];
1268
+ const VIDEO_GENERATION_PERMISSION_SERVICE_TOKEN = 'XPERT_PLUGIN_VIDEO_GENERATION_PERMISSION_SERVICE';
1269
+ const VIDEO_GENERATION_SERVICE_TOKEN = 'XPERT_VIDEO_GENERATION_SERVICE';
1270
+
1267
1271
  async function createI18nInstance(pluginDir, language) {
1268
1272
  const instance = i18next.createInstance();
1269
1273
  const i18nDir = path.join(pluginDir, 'i18n');
@@ -2441,17 +2445,15 @@ class LargeLanguageModel extends AIModel {
2441
2445
  this.startedAt = performance.now();
2442
2446
  },
2443
2447
  handleLLMEnd: (output)=>{
2444
- var _output_llmOutput, _output_llmOutput1;
2445
- var _output_llmOutput_tokenUsage, _ref;
2446
- const tokenUsage = (_ref = (_output_llmOutput_tokenUsage = (_output_llmOutput = output.llmOutput) == null ? void 0 : _output_llmOutput.tokenUsage) != null ? _output_llmOutput_tokenUsage : (_output_llmOutput1 = output.llmOutput) == null ? void 0 : _output_llmOutput1.estimatedTokenUsage) != null ? _ref : calcTokenUsage(output);
2448
+ const tokenUsage = resolveTokenUsage(output);
2447
2449
  if (handleLLMTokens) {
2448
- var _output_llmOutput2;
2449
- var _output_llmOutput_totalTokens;
2450
+ const usage = this.calcResponseUsage(model, credentials, tokenUsage.promptTokens, tokenUsage.completionTokens);
2451
+ usage.totalTokens = tokenUsage.totalTokens;
2450
2452
  handleLLMTokens({
2451
2453
  copilot,
2452
2454
  model,
2453
- usage: this.calcResponseUsage(model, credentials, tokenUsage.promptTokens, tokenUsage.completionTokens),
2454
- tokenUsed: (_output_llmOutput_totalTokens = (_output_llmOutput2 = output.llmOutput) == null ? void 0 : _output_llmOutput2.totalTokens) != null ? _output_llmOutput_totalTokens : sumTokenUsage(output)
2455
+ usage,
2456
+ tokenUsed: tokenUsage.totalTokens
2455
2457
  });
2456
2458
  }
2457
2459
  }
@@ -2611,6 +2613,41 @@ function calcTokenUsage(output) {
2611
2613
  });
2612
2614
  return tokenUsage;
2613
2615
  }
2616
+ function resolveTokenUsage(output) {
2617
+ var _output_llmOutput, _output_llmOutput1, _output_llmOutput2;
2618
+ var _normalizeTokenUsage, _ref, _ref1, _ref2;
2619
+ return (_ref2 = (_ref1 = (_ref = (_normalizeTokenUsage = normalizeTokenUsage(calcTokenUsage(output))) != null ? _normalizeTokenUsage : normalizeTokenUsage((_output_llmOutput = output.llmOutput) == null ? void 0 : _output_llmOutput['tokenUsage'])) != null ? _ref : normalizeTokenUsage((_output_llmOutput1 = output.llmOutput) == null ? void 0 : _output_llmOutput1['estimatedTokenUsage'])) != null ? _ref1 : normalizeTokenUsage({
2620
+ totalTokens: (_output_llmOutput2 = output.llmOutput) == null ? void 0 : _output_llmOutput2['totalTokens']
2621
+ })) != null ? _ref2 : {
2622
+ promptTokens: 0,
2623
+ completionTokens: 0,
2624
+ totalTokens: 0
2625
+ };
2626
+ }
2627
+ function normalizeTokenUsage(candidate) {
2628
+ if (!candidate) {
2629
+ return null;
2630
+ }
2631
+ if (!isValidTokenCount(candidate.promptTokens) || !isValidTokenCount(candidate.completionTokens) || !isValidTokenCount(candidate.totalTokens)) {
2632
+ return null;
2633
+ }
2634
+ var _candidate_promptTokens;
2635
+ const promptTokens = (_candidate_promptTokens = candidate.promptTokens) != null ? _candidate_promptTokens : 0;
2636
+ var _candidate_completionTokens;
2637
+ const completionTokens = (_candidate_completionTokens = candidate.completionTokens) != null ? _candidate_completionTokens : 0;
2638
+ const totalTokens = candidate.totalTokens || promptTokens + completionTokens;
2639
+ if (promptTokens === 0 && completionTokens === 0 && totalTokens === 0) {
2640
+ return null;
2641
+ }
2642
+ return {
2643
+ promptTokens,
2644
+ completionTokens,
2645
+ totalTokens
2646
+ };
2647
+ }
2648
+ function isValidTokenCount(value) {
2649
+ return value === undefined || Number.isFinite(value) && value >= 0;
2650
+ }
2614
2651
  /**
2615
2652
  * @deprecated use calcTokenUsage
2616
2653
  */ function sumTokenUsage(output) {
@@ -2851,6 +2888,10 @@ const KnowledgebaseDocumentsRuntimeCapability = createRuntimeCapability('platfor
2851
2888
  description: 'Upload, import, create, process, inspect, and delete persistent knowledgebase documents.'
2852
2889
  });
2853
2890
 
2891
+ const ActorTokenRuntimeCapability = createRuntimeCapability('platform.actor-token', {
2892
+ description: 'Mint a short-lived host-issued actor bearer token for outbound API calls.'
2893
+ });
2894
+
2854
2895
  const ArtifactsRuntimeCapability = createRuntimeCapability('platform.artifacts', {
2855
2896
  description: 'Create, version, preview, download, share, archive, and delete platform-managed plugin and Agent artifacts.'
2856
2897
  });
@@ -4475,16 +4516,31 @@ const XPERT_REMOTE_UI_CSS = `
4475
4516
  --xui-color-foreground: #18181b;
4476
4517
  --xui-color-card: #fff;
4477
4518
  --xui-color-card-foreground: #18181b;
4519
+ --xui-color-popover: var(--xui-color-card);
4520
+ --xui-color-popover-foreground: var(--xui-color-card-foreground);
4521
+ --xui-color-secondary: #f4f4f5;
4522
+ --xui-color-secondary-foreground: #18181b;
4478
4523
  --xui-color-muted: #f4f4f5;
4479
4524
  --xui-color-muted-foreground: #71717a;
4525
+ --xui-color-accent: #f4f4f5;
4526
+ --xui-color-accent-foreground: #18181b;
4480
4527
  --xui-color-border: #e4e4e7;
4481
4528
  --xui-color-input: #d4d4d8;
4482
4529
  --xui-color-primary: #18181b;
4483
4530
  --xui-color-primary-foreground: #fff;
4531
+ --xui-color-ring: var(--xui-color-primary);
4484
4532
  --xui-color-destructive: #dc2626;
4533
+ --xui-color-destructive-foreground: #fff;
4485
4534
  --xui-color-destructive-background: #fef2f2;
4486
4535
  --xui-color-success: #047857;
4487
4536
  --xui-color-success-background: #ecfdf5;
4537
+ --xui-color-warning: #b45309;
4538
+ --xui-color-info: #2563eb;
4539
+ --xui-color-chart-1: var(--xui-color-primary);
4540
+ --xui-color-chart-2: var(--xui-color-success);
4541
+ --xui-color-chart-3: var(--xui-color-warning);
4542
+ --xui-color-chart-4: var(--xui-color-destructive);
4543
+ --xui-color-chart-5: #7c3aed;
4488
4544
  --xui-radius-sm: 6px;
4489
4545
  --xui-radius-md: 8px;
4490
4546
  --xui-radius-lg: 10px;
@@ -4779,16 +4835,31 @@ const XPERT_REMOTE_UI_BOOTSTRAP = `
4779
4835
  colorForeground: '--xui-color-foreground',
4780
4836
  colorCard: '--xui-color-card',
4781
4837
  colorCardForeground: '--xui-color-card-foreground',
4838
+ colorPopover: '--xui-color-popover',
4839
+ colorPopoverForeground: '--xui-color-popover-foreground',
4840
+ colorSecondary: '--xui-color-secondary',
4841
+ colorSecondaryForeground: '--xui-color-secondary-foreground',
4782
4842
  colorMuted: '--xui-color-muted',
4783
4843
  colorMutedForeground: '--xui-color-muted-foreground',
4844
+ colorAccent: '--xui-color-accent',
4845
+ colorAccentForeground: '--xui-color-accent-foreground',
4784
4846
  colorBorder: '--xui-color-border',
4785
4847
  colorInput: '--xui-color-input',
4786
4848
  colorPrimary: '--xui-color-primary',
4787
4849
  colorPrimaryForeground: '--xui-color-primary-foreground',
4850
+ colorRing: '--xui-color-ring',
4788
4851
  colorDestructive: '--xui-color-destructive',
4852
+ colorDestructiveForeground: '--xui-color-destructive-foreground',
4789
4853
  colorDestructiveBackground: '--xui-color-destructive-background',
4790
4854
  colorSuccess: '--xui-color-success',
4791
4855
  colorSuccessBackground: '--xui-color-success-background',
4856
+ colorWarning: '--xui-color-warning',
4857
+ colorInfo: '--xui-color-info',
4858
+ colorChart1: '--xui-color-chart-1',
4859
+ colorChart2: '--xui-color-chart-2',
4860
+ colorChart3: '--xui-color-chart-3',
4861
+ colorChart4: '--xui-color-chart-4',
4862
+ colorChart5: '--xui-color-chart-5',
4792
4863
  radiusSm: '--xui-radius-sm',
4793
4864
  radiusMd: '--xui-radius-md',
4794
4865
  radiusLg: '--xui-radius-lg',
@@ -4956,7 +5027,7 @@ exports.AGENT_MIDDLEWARE_STRATEGY = AGENT_MIDDLEWARE_STRATEGY;
4956
5027
  exports.AIModelProviderNotFoundException = AIModelProviderNotFoundException;
4957
5028
  exports.AIModelProviderStrategy = AIModelProviderStrategy;
4958
5029
  exports.AI_MODEL_PROVIDER = AI_MODEL_PROVIDER;
4959
- exports.ANALYTICS_PERMISSION_SERVICE_TOKEN = ANALYTICS_PERMISSION_SERVICE_TOKEN;
5030
+ exports.ActorTokenRuntimeCapability = ActorTokenRuntimeCapability;
4960
5031
  exports.AdapterDataSourceStrategy = AdapterDataSourceStrategy;
4961
5032
  exports.AgentMiddlewareStrategy = AgentMiddlewareStrategy;
4962
5033
  exports.AiModelNotFoundException = AiModelNotFoundException;
@@ -5086,6 +5157,9 @@ exports.TextToSpeechModel = TextToSpeechModel;
5086
5157
  exports.ToolsetStrategy = ToolsetStrategy;
5087
5158
  exports.USER_PERMISSION_SERVICE_TOKEN = USER_PERMISSION_SERVICE_TOKEN;
5088
5159
  exports.VECTOR_STORE_STRATEGY = VECTOR_STORE_STRATEGY;
5160
+ exports.VIDEO_GENERATION_PERMISSION_SERVICE_TOKEN = VIDEO_GENERATION_PERMISSION_SERVICE_TOKEN;
5161
+ exports.VIDEO_GENERATION_SERVICE_TOKEN = VIDEO_GENERATION_SERVICE_TOKEN;
5162
+ exports.VIDEO_GENERATOR_FAMILIES = VIDEO_GENERATOR_FAMILIES;
5089
5163
  exports.VIEW_EXTENSION_CACHE_SERVICE_TOKEN = VIEW_EXTENSION_CACHE_SERVICE_TOKEN;
5090
5164
  exports.VIEW_EXTENSION_PROVIDER = VIEW_EXTENSION_PROVIDER;
5091
5165
  exports.VectorStoreStrategy = VectorStoreStrategy;
@@ -5149,6 +5223,7 @@ exports.resolveSandboxServiceProxyAdapter = resolveSandboxServiceProxyAdapter;
5149
5223
  exports.resolveSandboxTerminalAdapter = resolveSandboxTerminalAdapter;
5150
5224
  exports.resolveStrategyMetadataTarget = resolveStrategyMetadataTarget;
5151
5225
  exports.resolveTenantGlobalScopeKey = resolveTenantGlobalScopeKey;
5226
+ exports.resolveTokenUsage = resolveTokenUsage;
5152
5227
  exports.runWithRequestContext = runWithRequestContext;
5153
5228
  exports.secondsToMilliseconds = secondsToMilliseconds;
5154
5229
  exports.setDefaultTenantId = setDefaultTenantId;
package/index.esm.js CHANGED
@@ -1185,10 +1185,6 @@ const PLUGIN_CONFIG_RESOLVER_TOKEN = 'XPERT_PLUGIN_CONFIG_RESOLVER';
1185
1185
  * System token for resolving integration read service from plugin context.
1186
1186
  */ const INTEGRATION_PERMISSION_SERVICE_TOKEN = 'XPERT_PLUGIN_INTEGRATION_PERMISSION_SERVICE';
1187
1187
 
1188
- /**
1189
- * System token for resolving analytics permission service from plugin context.
1190
- */ const ANALYTICS_PERMISSION_SERVICE_TOKEN = 'XPERT_PLUGIN_ANALYTICS_PERMISSION_SERVICE';
1191
-
1192
1188
  const PERMISSION_OPERATION_METADATA_KEY = 'XPERT_PLUGIN_PERMISSION_OPERATION';
1193
1189
  function RequirePermissionOperation(permissionType, operation) {
1194
1190
  return (_target, _propertyKey, descriptor)=>{
@@ -1246,6 +1242,14 @@ function getRequiredPermissionOperation(method, permissionType) {
1246
1242
  * Internal system token used by core to expose the speech-to-text bridge.
1247
1243
  */ const SPEECH_TO_TEXT_SERVICE_TOKEN = 'XPERT_SPEECH_TO_TEXT_SERVICE';
1248
1244
 
1245
+ const VIDEO_GENERATOR_FAMILIES = [
1246
+ 'seedance',
1247
+ 'veo',
1248
+ 'kling'
1249
+ ];
1250
+ const VIDEO_GENERATION_PERMISSION_SERVICE_TOKEN = 'XPERT_PLUGIN_VIDEO_GENERATION_PERMISSION_SERVICE';
1251
+ const VIDEO_GENERATION_SERVICE_TOKEN = 'XPERT_VIDEO_GENERATION_SERVICE';
1252
+
1249
1253
  async function createI18nInstance(pluginDir, language) {
1250
1254
  const instance = createInstance();
1251
1255
  const i18nDir = path__default.join(pluginDir, 'i18n');
@@ -2423,17 +2427,15 @@ class LargeLanguageModel extends AIModel {
2423
2427
  this.startedAt = performance.now();
2424
2428
  },
2425
2429
  handleLLMEnd: (output)=>{
2426
- var _output_llmOutput, _output_llmOutput1;
2427
- var _output_llmOutput_tokenUsage, _ref;
2428
- const tokenUsage = (_ref = (_output_llmOutput_tokenUsage = (_output_llmOutput = output.llmOutput) == null ? void 0 : _output_llmOutput.tokenUsage) != null ? _output_llmOutput_tokenUsage : (_output_llmOutput1 = output.llmOutput) == null ? void 0 : _output_llmOutput1.estimatedTokenUsage) != null ? _ref : calcTokenUsage(output);
2430
+ const tokenUsage = resolveTokenUsage(output);
2429
2431
  if (handleLLMTokens) {
2430
- var _output_llmOutput2;
2431
- var _output_llmOutput_totalTokens;
2432
+ const usage = this.calcResponseUsage(model, credentials, tokenUsage.promptTokens, tokenUsage.completionTokens);
2433
+ usage.totalTokens = tokenUsage.totalTokens;
2432
2434
  handleLLMTokens({
2433
2435
  copilot,
2434
2436
  model,
2435
- usage: this.calcResponseUsage(model, credentials, tokenUsage.promptTokens, tokenUsage.completionTokens),
2436
- tokenUsed: (_output_llmOutput_totalTokens = (_output_llmOutput2 = output.llmOutput) == null ? void 0 : _output_llmOutput2.totalTokens) != null ? _output_llmOutput_totalTokens : sumTokenUsage(output)
2437
+ usage,
2438
+ tokenUsed: tokenUsage.totalTokens
2437
2439
  });
2438
2440
  }
2439
2441
  }
@@ -2593,6 +2595,41 @@ function calcTokenUsage(output) {
2593
2595
  });
2594
2596
  return tokenUsage;
2595
2597
  }
2598
+ function resolveTokenUsage(output) {
2599
+ var _output_llmOutput, _output_llmOutput1, _output_llmOutput2;
2600
+ var _normalizeTokenUsage, _ref, _ref1, _ref2;
2601
+ return (_ref2 = (_ref1 = (_ref = (_normalizeTokenUsage = normalizeTokenUsage(calcTokenUsage(output))) != null ? _normalizeTokenUsage : normalizeTokenUsage((_output_llmOutput = output.llmOutput) == null ? void 0 : _output_llmOutput['tokenUsage'])) != null ? _ref : normalizeTokenUsage((_output_llmOutput1 = output.llmOutput) == null ? void 0 : _output_llmOutput1['estimatedTokenUsage'])) != null ? _ref1 : normalizeTokenUsage({
2602
+ totalTokens: (_output_llmOutput2 = output.llmOutput) == null ? void 0 : _output_llmOutput2['totalTokens']
2603
+ })) != null ? _ref2 : {
2604
+ promptTokens: 0,
2605
+ completionTokens: 0,
2606
+ totalTokens: 0
2607
+ };
2608
+ }
2609
+ function normalizeTokenUsage(candidate) {
2610
+ if (!candidate) {
2611
+ return null;
2612
+ }
2613
+ if (!isValidTokenCount(candidate.promptTokens) || !isValidTokenCount(candidate.completionTokens) || !isValidTokenCount(candidate.totalTokens)) {
2614
+ return null;
2615
+ }
2616
+ var _candidate_promptTokens;
2617
+ const promptTokens = (_candidate_promptTokens = candidate.promptTokens) != null ? _candidate_promptTokens : 0;
2618
+ var _candidate_completionTokens;
2619
+ const completionTokens = (_candidate_completionTokens = candidate.completionTokens) != null ? _candidate_completionTokens : 0;
2620
+ const totalTokens = candidate.totalTokens || promptTokens + completionTokens;
2621
+ if (promptTokens === 0 && completionTokens === 0 && totalTokens === 0) {
2622
+ return null;
2623
+ }
2624
+ return {
2625
+ promptTokens,
2626
+ completionTokens,
2627
+ totalTokens
2628
+ };
2629
+ }
2630
+ function isValidTokenCount(value) {
2631
+ return value === undefined || Number.isFinite(value) && value >= 0;
2632
+ }
2596
2633
  /**
2597
2634
  * @deprecated use calcTokenUsage
2598
2635
  */ function sumTokenUsage(output) {
@@ -2833,6 +2870,10 @@ const KnowledgebaseDocumentsRuntimeCapability = createRuntimeCapability('platfor
2833
2870
  description: 'Upload, import, create, process, inspect, and delete persistent knowledgebase documents.'
2834
2871
  });
2835
2872
 
2873
+ const ActorTokenRuntimeCapability = createRuntimeCapability('platform.actor-token', {
2874
+ description: 'Mint a short-lived host-issued actor bearer token for outbound API calls.'
2875
+ });
2876
+
2836
2877
  const ArtifactsRuntimeCapability = createRuntimeCapability('platform.artifacts', {
2837
2878
  description: 'Create, version, preview, download, share, archive, and delete platform-managed plugin and Agent artifacts.'
2838
2879
  });
@@ -4457,16 +4498,31 @@ const XPERT_REMOTE_UI_CSS = `
4457
4498
  --xui-color-foreground: #18181b;
4458
4499
  --xui-color-card: #fff;
4459
4500
  --xui-color-card-foreground: #18181b;
4501
+ --xui-color-popover: var(--xui-color-card);
4502
+ --xui-color-popover-foreground: var(--xui-color-card-foreground);
4503
+ --xui-color-secondary: #f4f4f5;
4504
+ --xui-color-secondary-foreground: #18181b;
4460
4505
  --xui-color-muted: #f4f4f5;
4461
4506
  --xui-color-muted-foreground: #71717a;
4507
+ --xui-color-accent: #f4f4f5;
4508
+ --xui-color-accent-foreground: #18181b;
4462
4509
  --xui-color-border: #e4e4e7;
4463
4510
  --xui-color-input: #d4d4d8;
4464
4511
  --xui-color-primary: #18181b;
4465
4512
  --xui-color-primary-foreground: #fff;
4513
+ --xui-color-ring: var(--xui-color-primary);
4466
4514
  --xui-color-destructive: #dc2626;
4515
+ --xui-color-destructive-foreground: #fff;
4467
4516
  --xui-color-destructive-background: #fef2f2;
4468
4517
  --xui-color-success: #047857;
4469
4518
  --xui-color-success-background: #ecfdf5;
4519
+ --xui-color-warning: #b45309;
4520
+ --xui-color-info: #2563eb;
4521
+ --xui-color-chart-1: var(--xui-color-primary);
4522
+ --xui-color-chart-2: var(--xui-color-success);
4523
+ --xui-color-chart-3: var(--xui-color-warning);
4524
+ --xui-color-chart-4: var(--xui-color-destructive);
4525
+ --xui-color-chart-5: #7c3aed;
4470
4526
  --xui-radius-sm: 6px;
4471
4527
  --xui-radius-md: 8px;
4472
4528
  --xui-radius-lg: 10px;
@@ -4761,16 +4817,31 @@ const XPERT_REMOTE_UI_BOOTSTRAP = `
4761
4817
  colorForeground: '--xui-color-foreground',
4762
4818
  colorCard: '--xui-color-card',
4763
4819
  colorCardForeground: '--xui-color-card-foreground',
4820
+ colorPopover: '--xui-color-popover',
4821
+ colorPopoverForeground: '--xui-color-popover-foreground',
4822
+ colorSecondary: '--xui-color-secondary',
4823
+ colorSecondaryForeground: '--xui-color-secondary-foreground',
4764
4824
  colorMuted: '--xui-color-muted',
4765
4825
  colorMutedForeground: '--xui-color-muted-foreground',
4826
+ colorAccent: '--xui-color-accent',
4827
+ colorAccentForeground: '--xui-color-accent-foreground',
4766
4828
  colorBorder: '--xui-color-border',
4767
4829
  colorInput: '--xui-color-input',
4768
4830
  colorPrimary: '--xui-color-primary',
4769
4831
  colorPrimaryForeground: '--xui-color-primary-foreground',
4832
+ colorRing: '--xui-color-ring',
4770
4833
  colorDestructive: '--xui-color-destructive',
4834
+ colorDestructiveForeground: '--xui-color-destructive-foreground',
4771
4835
  colorDestructiveBackground: '--xui-color-destructive-background',
4772
4836
  colorSuccess: '--xui-color-success',
4773
4837
  colorSuccessBackground: '--xui-color-success-background',
4838
+ colorWarning: '--xui-color-warning',
4839
+ colorInfo: '--xui-color-info',
4840
+ colorChart1: '--xui-color-chart-1',
4841
+ colorChart2: '--xui-color-chart-2',
4842
+ colorChart3: '--xui-color-chart-3',
4843
+ colorChart4: '--xui-color-chart-4',
4844
+ colorChart5: '--xui-color-chart-5',
4774
4845
  radiusSm: '--xui-radius-sm',
4775
4846
  radiusMd: '--xui-radius-md',
4776
4847
  radiusLg: '--xui-radius-lg',
@@ -4915,4 +4986,4 @@ CollaborationDocumentProviderRegistry = __decorate([
4915
4986
  ])
4916
4987
  ], CollaborationDocumentProviderRegistry);
4917
4988
 
4918
- export { ACCOUNT_BINDING_PERMISSION_SERVICE_TOKEN, AGENT_CHAT_DISPATCH_ERROR_STEER_TARGET_NOT_RUNNING, AGENT_CHAT_DISPATCH_MESSAGE_TYPE, AGENT_MIDDLEWARE_STRATEGY, AIModelProviderNotFoundException, AIModelProviderRegistry, AIModelProviderStrategy, AI_MODEL_PROVIDER, ANALYTICS_PERMISSION_SERVICE_TOKEN, AdapterDataSourceStrategy, AgentMiddlewareRegistry, AgentMiddlewareStrategy, AiModelNotFoundException, ArtifactsRuntimeCapability, AssistantTaskRuntimeCapability, BOUND_IDENTITY_LOGIN_PERMISSION_SERVICE_TOKEN, BUILTIN_GLOBAL_SCOPE, BaseHTTPQueryRunner, BaseQueryRunner, BaseSQLQueryRunner, BaseSandbox, BaseStrategyRegistry, BaseTool, BaseToolset, BuiltinToolset, CHAT_CHANNEL, CHAT_CHANNEL_TEXT_LIMITS, COLLABORATION_DOCUMENT_PROVIDER, CONNECTION_COMMAND_ROUTER_TOKEN, CONNECTOR_STRATEGY, CancelConversationCommand, ChatChannel, ChatChannelRegistry, ChatOAICompatReasoningModel, CollaborationDocumentProvider, CollaborationDocumentProviderRegistry, CollaborationRuntimeCapability, CommonParameterRules, ConnectorRuntimeCapability, ConnectorStrategyKey, ConnectorStrategyRegistry, 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_JOB_ERROR_CODES, SANDBOX_JOB_PROGRESS_PREFIX, SANDBOX_PROVIDER, SANDBOX_RUNTIME_PROVIDER, SANDBOX_SHELL_TIMEOUT_LIMITS_SEC, SANDBOX_WORKSPACE_MAPPER, 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, SYSTEM_GLOBAL_SCOPE, SandboxJobRuntimeError, SandboxJobsRuntimeCapability, SandboxProviderRegistry, SandboxProviderStrategy, SandboxRuntimeProviderRegistry, SandboxRuntimeProviderStrategy, SandboxWorkspaceMapperRegistry, SandboxWorkspaceMapperStrategy, 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, WORKSPACE_FILES_SOURCE, WorkflowNodeRegistry, WorkflowNodeStrategy, WorkflowTriggerRegistry, WorkflowTriggerStrategy, WorkspaceFilesRuntimeCapability, WrapWorkflowNodeExecutionCommand, XPERT_RUNTIME_CAPABILITIES_TOKEN, XpFileSystem, XpertServerPlugin, als, appendSandboxMessage, assertConnectorDefinition, buildSandboxTimeoutMessage, calcTokenUsage, calculateModelPrice, chunkText, countTokensSafe, createI18nInstance, createPluginLogger, createRuntimeCapability, defineAgentMessageType, defineChannelMessageType, derivePluginArtifactNamespace, downloadRemoteFile, formatSandboxTimeout, getDefaultTenantId, getErrorMessage, getModelContextSize, getPermissionOperationMetadata, getPositionList, getPositionMap, getRequestContext, getRequiredPermissionOperation, getTenantGlobalScopeKey, isDevelopmentSandboxRuntimeEnvironment, isRemoteFile, isSandboxBackend, isSandboxJobRuntimeError, isSandboxManagedServiceAdapter, isSandboxServiceProxyAdapter, isSandboxTerminalAdapter, isStrategyInstance, isStructuredMessageType, isTenantGlobalScopeKey, loadYamlFile, mergeCredentials, mergeParentChildChunks, normalizeContextSize, pluginArtifactTableName, renderRemoteModuleIframeHtml, renderRemoteReactIframeHtml, renderRemoteVueIframeHtml, resolveSandboxBackend, resolveSandboxExecutionOptions, resolveSandboxManagedServiceAdapter, resolveSandboxServiceProxyAdapter, resolveSandboxTerminalAdapter, resolveStrategyMetadataTarget, resolveTenantGlobalScopeKey, runWithRequestContext, secondsToMilliseconds, setDefaultTenantId, sumTokenUsage };
4989
+ export { ACCOUNT_BINDING_PERMISSION_SERVICE_TOKEN, AGENT_CHAT_DISPATCH_ERROR_STEER_TARGET_NOT_RUNNING, AGENT_CHAT_DISPATCH_MESSAGE_TYPE, AGENT_MIDDLEWARE_STRATEGY, AIModelProviderNotFoundException, AIModelProviderRegistry, AIModelProviderStrategy, AI_MODEL_PROVIDER, ActorTokenRuntimeCapability, AdapterDataSourceStrategy, AgentMiddlewareRegistry, AgentMiddlewareStrategy, AiModelNotFoundException, ArtifactsRuntimeCapability, AssistantTaskRuntimeCapability, BOUND_IDENTITY_LOGIN_PERMISSION_SERVICE_TOKEN, BUILTIN_GLOBAL_SCOPE, BaseHTTPQueryRunner, BaseQueryRunner, BaseSQLQueryRunner, BaseSandbox, BaseStrategyRegistry, BaseTool, BaseToolset, BuiltinToolset, CHAT_CHANNEL, CHAT_CHANNEL_TEXT_LIMITS, COLLABORATION_DOCUMENT_PROVIDER, CONNECTION_COMMAND_ROUTER_TOKEN, CONNECTOR_STRATEGY, CancelConversationCommand, ChatChannel, ChatChannelRegistry, ChatOAICompatReasoningModel, CollaborationDocumentProvider, CollaborationDocumentProviderRegistry, CollaborationRuntimeCapability, CommonParameterRules, ConnectorRuntimeCapability, ConnectorStrategyKey, ConnectorStrategyRegistry, 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_JOB_ERROR_CODES, SANDBOX_JOB_PROGRESS_PREFIX, SANDBOX_PROVIDER, SANDBOX_RUNTIME_PROVIDER, SANDBOX_SHELL_TIMEOUT_LIMITS_SEC, SANDBOX_WORKSPACE_MAPPER, 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, SYSTEM_GLOBAL_SCOPE, SandboxJobRuntimeError, SandboxJobsRuntimeCapability, SandboxProviderRegistry, SandboxProviderStrategy, SandboxRuntimeProviderRegistry, SandboxRuntimeProviderStrategy, SandboxWorkspaceMapperRegistry, SandboxWorkspaceMapperStrategy, 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, VIDEO_GENERATION_PERMISSION_SERVICE_TOKEN, VIDEO_GENERATION_SERVICE_TOKEN, VIDEO_GENERATOR_FAMILIES, VIEW_EXTENSION_CACHE_SERVICE_TOKEN, VIEW_EXTENSION_PROVIDER, VectorStoreRegistry, VectorStoreStrategy, ViewExtensionProvider, ViewExtensionProviderRegistry, WORKFLOW_NODE_STRATEGY, WORKFLOW_TRIGGER_STRATEGY, WORKSPACE_FILES_SOURCE, WorkflowNodeRegistry, WorkflowNodeStrategy, WorkflowTriggerRegistry, WorkflowTriggerStrategy, WorkspaceFilesRuntimeCapability, WrapWorkflowNodeExecutionCommand, XPERT_RUNTIME_CAPABILITIES_TOKEN, XpFileSystem, XpertServerPlugin, als, appendSandboxMessage, assertConnectorDefinition, buildSandboxTimeoutMessage, calcTokenUsage, calculateModelPrice, chunkText, countTokensSafe, createI18nInstance, createPluginLogger, createRuntimeCapability, defineAgentMessageType, defineChannelMessageType, derivePluginArtifactNamespace, downloadRemoteFile, formatSandboxTimeout, getDefaultTenantId, getErrorMessage, getModelContextSize, getPermissionOperationMetadata, getPositionList, getPositionMap, getRequestContext, getRequiredPermissionOperation, getTenantGlobalScopeKey, isDevelopmentSandboxRuntimeEnvironment, isRemoteFile, isSandboxBackend, isSandboxJobRuntimeError, isSandboxManagedServiceAdapter, isSandboxServiceProxyAdapter, isSandboxTerminalAdapter, isStrategyInstance, isStructuredMessageType, isTenantGlobalScopeKey, loadYamlFile, mergeCredentials, mergeParentChildChunks, normalizeContextSize, pluginArtifactTableName, renderRemoteModuleIframeHtml, renderRemoteReactIframeHtml, renderRemoteVueIframeHtml, resolveSandboxBackend, resolveSandboxExecutionOptions, resolveSandboxManagedServiceAdapter, resolveSandboxServiceProxyAdapter, resolveSandboxTerminalAdapter, resolveStrategyMetadataTarget, resolveTenantGlobalScopeKey, resolveTokenUsage, runWithRequestContext, secondsToMilliseconds, setDefaultTenantId, sumTokenUsage };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xpert-ai/plugin-sdk",
3
- "version": "3.15.18",
3
+ "version": "3.16.0",
4
4
  "license": "AGPL-3.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@langchain/openai": "0.6.9",
20
- "@xpert-ai/contracts": "3.15.18",
20
+ "@xpert-ai/contracts": "3.16.0",
21
21
  "express": "^4.22.1",
22
22
  "js-tiktoken": "^1.0.21"
23
23
  },
@@ -26,7 +26,6 @@
26
26
  "@nestjs/common": "*",
27
27
  "@nestjs/core": "*",
28
28
  "@nestjs/cqrs": "*",
29
- "@xpert-ai/ocap-core": "3.9.1",
30
29
  "ajv": "*",
31
30
  "i18next": "*",
32
31
  "i18next-fs-backend": "*",
@@ -52,6 +52,7 @@ export declare abstract class LargeLanguageModel extends AIModel {
52
52
  private formatError;
53
53
  }
54
54
  export declare function calcTokenUsage(output: LLMResult): TTokenUsage;
55
+ export declare function resolveTokenUsage(output: LLMResult): TTokenUsage;
55
56
  /**
56
57
  * @deprecated use calcTokenUsage
57
58
  */
@@ -1,6 +1,6 @@
1
1
  import type { IssuedAuthTokens } from './auth-login';
2
2
  import type { BasePermission } from './general';
3
- export type BoundIdentityLoginPermissionOperation = 'create';
3
+ export type BoundIdentityLoginPermissionOperation = 'create' | 'provision';
4
4
  /**
5
5
  * Bound identity login permission
6
6
  * Example: { type: 'bound_identity_login', operations: ['create'], providers: ['lark'] }
@@ -20,6 +20,24 @@ export interface BoundIdentityLoginInput {
20
20
  tenantId: string;
21
21
  organizationId?: string | null;
22
22
  }
23
+ export interface VerifiedEmailLoginInput {
24
+ provider: string;
25
+ subjectId: string;
26
+ tenantId: string;
27
+ verifiedEmail: string;
28
+ displayName?: string;
29
+ avatarUrl?: string;
30
+ profile?: Record<string, unknown>;
31
+ returnTo?: string;
32
+ }
33
+ export type VerifiedEmailLoginResult = {
34
+ status: 'authenticated';
35
+ tokens: IssuedAuthTokens;
36
+ } | {
37
+ status: 'registration_required';
38
+ ticket: string;
39
+ };
23
40
  export interface BoundIdentityLoginPermissionService {
24
41
  loginWithBoundIdentity(input: BoundIdentityLoginInput): Promise<IssuedAuthTokens | null>;
42
+ loginOrPrepareVerifiedEmail(input: VerifiedEmailLoginInput): Promise<VerifiedEmailLoginResult>;
25
43
  }
@@ -6,7 +6,6 @@
6
6
  * Core system will check and inject allowed resources accordingly.
7
7
  */
8
8
  export * from './general';
9
- export * from './analytics';
10
9
  export * from './operation';
11
10
  export * from './handoff';
12
11
  export * from './account-binding';
@@ -15,18 +14,19 @@ export * from './bound-identity-login';
15
14
  export * from './sso-binding';
16
15
  export * from './user';
17
16
  export * from './speech-to-text';
17
+ export * from './video-generation';
18
18
  import type { FileSystemPermission, IntegrationPermission, KnowledgePermission, LLMPermission, VectorStorePermission } from './general';
19
- import type { AnalyticsPermission } from './analytics';
20
19
  import type { AccountBindingPermission } from './account-binding';
21
20
  import type { BoundIdentityLoginPermission } from './bound-identity-login';
22
21
  import type { HandoffPermission } from './handoff';
23
22
  import type { SpeechToTextPermission } from './speech-to-text';
24
23
  import type { SsoBindingPermission } from './sso-binding';
25
24
  import type { UserPermission } from './user';
25
+ import type { VideoGenerationPermission } from './video-generation';
26
26
  /**
27
27
  * Union type for all permissions
28
28
  */
29
- export type Permission = LLMPermission | VectorStorePermission | KnowledgePermission | FileSystemPermission | IntegrationPermission | AnalyticsPermission | AccountBindingPermission | BoundIdentityLoginPermission | SsoBindingPermission | UserPermission | HandoffPermission | SpeechToTextPermission;
29
+ export type Permission = LLMPermission | VectorStorePermission | KnowledgePermission | FileSystemPermission | IntegrationPermission | AccountBindingPermission | BoundIdentityLoginPermission | SsoBindingPermission | UserPermission | HandoffPermission | SpeechToTextPermission | VideoGenerationPermission;
30
30
  /**
31
31
  * Permissions array type
32
32
  */
@@ -0,0 +1,159 @@
1
+ import type { WorkspacePortableFileReference } from '../../runtime/capabilities/workspace-files';
2
+ export declare const VIDEO_GENERATOR_FAMILIES: readonly ["seedance", "veo", "kling"];
3
+ export type VideoGeneratorFamily = (typeof VIDEO_GENERATOR_FAMILIES)[number];
4
+ export type VideoGenerationPermissionOperation = 'list' | 'submit' | 'query' | 'cancel';
5
+ export type VideoGenerationMode = 'text_to_video' | 'image_to_video' | 'first_last_frame_to_video' | 'reference_to_video';
6
+ export type VideoGenerationReferenceKind = 'image' | 'video' | 'audio';
7
+ export type VideoGenerationReferencePurpose = 'reference' | 'first_frame' | 'last_frame';
8
+ export interface VideoGenerationPermission {
9
+ type: 'video_generation';
10
+ operations?: VideoGenerationPermissionOperation[];
11
+ scope?: string[];
12
+ description?: string;
13
+ }
14
+ export declare const VIDEO_GENERATION_PERMISSION_SERVICE_TOKEN = "XPERT_PLUGIN_VIDEO_GENERATION_PERMISSION_SERVICE";
15
+ export declare const VIDEO_GENERATION_SERVICE_TOKEN = "XPERT_VIDEO_GENERATION_SERVICE";
16
+ export interface VideoGenerationReferenceLimit {
17
+ maxItems: number;
18
+ }
19
+ export interface VideoGenerationModelInputCapabilities {
20
+ referenceImages?: VideoGenerationReferenceLimit;
21
+ referenceVideos?: VideoGenerationReferenceLimit;
22
+ referenceAudios?: VideoGenerationReferenceLimit;
23
+ initialFrame?: boolean;
24
+ lastFrame?: boolean;
25
+ }
26
+ export interface VideoGenerationModelOption {
27
+ id: string;
28
+ label: string;
29
+ /** Optional per-model restriction. Defaults to the generator-level modes. */
30
+ modes?: readonly VideoGenerationMode[];
31
+ inputs?: VideoGenerationModelInputCapabilities;
32
+ }
33
+ interface VideoGenerationToolsetCapabilityBase {
34
+ family: VideoGeneratorFamily;
35
+ displayName: string;
36
+ modes: readonly VideoGenerationMode[];
37
+ models: readonly VideoGenerationModelOption[];
38
+ defaultModel: string;
39
+ resolutions: readonly string[];
40
+ aspectRatios: readonly string[];
41
+ durationSeconds: {
42
+ min: number;
43
+ max: number;
44
+ default: number;
45
+ };
46
+ supportsAudio: boolean;
47
+ }
48
+ /** Legacy single-image protocol. Kept so already installed provider plugins remain usable. */
49
+ export interface VideoGenerationToolsetCapabilityV1 extends VideoGenerationToolsetCapabilityBase {
50
+ protocolVersion: 1;
51
+ tools: {
52
+ textToVideo?: string;
53
+ imageToVideo?: string;
54
+ query: string;
55
+ cancel?: string;
56
+ };
57
+ }
58
+ /**
59
+ * Capability-driven protocol. Submit tools consume normalized argument names:
60
+ * `input_image_file`, `first_frame_file`, `last_frame_file`, and
61
+ * `reference_{image,video,audio}_files`.
62
+ */
63
+ export interface VideoGenerationToolsetCapabilityV2 extends VideoGenerationToolsetCapabilityBase {
64
+ protocolVersion: 2;
65
+ tools: {
66
+ textToVideo?: string;
67
+ imageToVideo?: string;
68
+ firstLastFrameToVideo?: string;
69
+ referenceToVideo?: string;
70
+ query: string;
71
+ cancel?: string;
72
+ };
73
+ }
74
+ export type VideoGenerationToolsetCapability = VideoGenerationToolsetCapabilityV1 | VideoGenerationToolsetCapabilityV2;
75
+ export interface VideoGeneratorSummary {
76
+ id: string;
77
+ family: VideoGeneratorFamily;
78
+ name: string;
79
+ displayName: string;
80
+ linkedToXpert: boolean;
81
+ modes: VideoGenerationMode[];
82
+ models: VideoGenerationModelOption[];
83
+ defaultModel: string;
84
+ resolutions: string[];
85
+ aspectRatios: string[];
86
+ durationSeconds: {
87
+ min: number;
88
+ max: number;
89
+ default: number;
90
+ };
91
+ supportsAudio: boolean;
92
+ supportsCancel: boolean;
93
+ }
94
+ export interface ListVideoGeneratorsInput {
95
+ xpertId: string;
96
+ }
97
+ export interface ListVideoGeneratorsResult {
98
+ generators: VideoGeneratorSummary[];
99
+ }
100
+ export interface VideoGenerationReferenceInput {
101
+ kind: VideoGenerationReferenceKind;
102
+ purpose?: VideoGenerationReferencePurpose;
103
+ file: WorkspacePortableFileReference;
104
+ }
105
+ export interface SubmitVideoGenerationInput {
106
+ xpertId: string;
107
+ toolsetId: string;
108
+ projectId?: string | null;
109
+ prompt: string;
110
+ references?: readonly VideoGenerationReferenceInput[] | null;
111
+ /** @deprecated Use `references` with an image item. */
112
+ inputImage?: WorkspacePortableFileReference | null;
113
+ model?: string | null;
114
+ resolution?: string | null;
115
+ aspectRatio?: string | null;
116
+ durationSeconds?: number | null;
117
+ generateAudio?: boolean | null;
118
+ }
119
+ export interface SubmitVideoGenerationResult {
120
+ providerTaskId: string;
121
+ status: string;
122
+ model?: string;
123
+ mode?: VideoGenerationMode;
124
+ acceptedReferenceCount?: number;
125
+ }
126
+ export interface QueryVideoGenerationInput {
127
+ xpertId: string;
128
+ toolsetId: string;
129
+ projectId?: string | null;
130
+ providerTaskId: string;
131
+ }
132
+ export interface QueryVideoGenerationResult {
133
+ providerTaskId: string;
134
+ status: string;
135
+ completed: boolean;
136
+ failed: boolean;
137
+ model?: string;
138
+ errorCode?: string;
139
+ errorMessage?: string;
140
+ outputFile?: WorkspacePortableFileReference;
141
+ }
142
+ export interface CancelVideoGenerationInput {
143
+ xpertId: string;
144
+ toolsetId: string;
145
+ providerTaskId: string;
146
+ }
147
+ export interface CancelVideoGenerationResult {
148
+ providerTaskId: string;
149
+ supported: boolean;
150
+ cancelled: boolean;
151
+ status: string;
152
+ }
153
+ export interface VideoGenerationPermissionService {
154
+ listGenerators(input: ListVideoGeneratorsInput): Promise<ListVideoGeneratorsResult>;
155
+ submit(input: SubmitVideoGenerationInput): Promise<SubmitVideoGenerationResult>;
156
+ query(input: QueryVideoGenerationInput): Promise<QueryVideoGenerationResult>;
157
+ cancel(input: CancelVideoGenerationInput): Promise<CancelVideoGenerationResult>;
158
+ }
159
+ export {};
@@ -0,0 +1,15 @@
1
+ export type ActorTokenAct = Record<string, string | number | boolean | null | undefined>;
2
+ export interface ActorTokenRequest {
3
+ audience?: string | string[];
4
+ ttlSeconds?: number;
5
+ act?: ActorTokenAct;
6
+ }
7
+ export interface ActorTokenResult {
8
+ token: string;
9
+ expiresAt: string;
10
+ audience: string | string[];
11
+ }
12
+ export interface ActorTokenApi {
13
+ getToken(input?: ActorTokenRequest): Promise<ActorTokenResult>;
14
+ }
15
+ export declare const ActorTokenRuntimeCapability: import("../../core/runtime-capability").RuntimeCapabilityKey<ActorTokenApi>;
@@ -1,5 +1,6 @@
1
1
  export * from './knowledgebase';
2
2
  export * from './knowledgebase-documents';
3
+ export * from './actor-token';
3
4
  export * from './artifacts';
4
5
  export * from './workspace-files';
5
6
  export * from './sandbox-jobs';
@@ -10,6 +10,7 @@ export declare const WORKSPACE_FILES_SOURCE: "platform.workspace.files";
10
10
  */
11
11
  export type WorkspaceFileScope = {
12
12
  tenantId?: string | null;
13
+ organizationId?: string | null;
13
14
  userId?: string | null;
14
15
  catalog?: WorkspaceFileCatalog | null;
15
16
  scopeId?: string | null;
@@ -151,6 +152,38 @@ export type WorkspaceUnderstoodFile = WorkspaceFile & {
151
152
  capabilities?: string[];
152
153
  summary?: string;
153
154
  };
155
+ export type WorkspaceUnderstandingVectorStatus = 'pending' | 'ready' | 'failed' | 'unavailable';
156
+ export type WorkspaceUnderstandingStatusInput = WorkspaceFileScope & {
157
+ fileAssetId: string;
158
+ };
159
+ /** Compact readiness DTO for an understood file. It never contains parsed text. */
160
+ export type WorkspaceUnderstandingStatus = {
161
+ fileAssetId: string;
162
+ status: string;
163
+ parseMode: string;
164
+ capabilities: string[];
165
+ chunkCount: number;
166
+ indexedChunkCount: number;
167
+ vectorIndexStatus: WorkspaceUnderstandingVectorStatus;
168
+ errorCode?: string;
169
+ parsedAt?: string;
170
+ };
171
+ export type WorkspaceRetryUnderstandingInput = WorkspaceUnderstandingStatusInput;
172
+ export type WorkspaceUnderstandingReferenceInput = {
173
+ fileAssetId: string;
174
+ chunkId: string;
175
+ };
176
+ export type WorkspaceValidateUnderstandingReferencesInput = WorkspaceFileScope & {
177
+ references: WorkspaceUnderstandingReferenceInput[];
178
+ excerptLength?: number;
179
+ };
180
+ export type WorkspaceValidatedUnderstandingReference = {
181
+ fileAssetId: string;
182
+ chunkId: string;
183
+ orderNo: number;
184
+ anchor?: Record<string, unknown>;
185
+ excerpt: string;
186
+ };
154
187
  /**
155
188
  * Runtime capability contract for reading, writing, uploading, deleting, and
156
189
  * understanding files in Xpert workspace Volumes.
@@ -160,6 +193,12 @@ export interface WorkspaceFilesApi {
160
193
  uploadBuffer(input: WorkspaceUploadBufferInput): Promise<WorkspaceFile>;
161
194
  /** Register an existing workspace file with the platform understanding pipeline. */
162
195
  understandFile(input: WorkspaceUnderstandFileInput): Promise<WorkspaceUnderstoodFile>;
196
+ /** Return compact parsing and semantic-index readiness for one scoped FileAsset. */
197
+ getUnderstandingStatus(input: WorkspaceUnderstandingStatusInput): Promise<WorkspaceUnderstandingStatus>;
198
+ /** Retry parsing and semantic indexing for one failed scoped FileAsset. */
199
+ retryUnderstanding(input: WorkspaceRetryUnderstandingInput): Promise<WorkspaceUnderstandingStatus>;
200
+ /** Validate bounded FileAsset/chunk evidence without returning complete file contents. */
201
+ validateUnderstandingReferences(input: WorkspaceValidateUnderstandingReferencesInput): Promise<WorkspaceValidatedUnderstandingReference[]>;
163
202
  /**
164
203
  * Resolve metadata and an openable URL for an explicitly scoped workspace
165
204
  * file without reading its bytes into the API process.
@@ -1,5 +1,5 @@
1
1
  import { TSandboxProviderMeta, TSandboxWorkForType } from '@xpert-ai/contracts';
2
- import { SandboxBackendProtocol } from './protocol';
2
+ import { MaybePromise, SandboxBackendProtocol } from './protocol';
3
3
  export type SandboxWorkspaceBinding = {
4
4
  /**
5
5
  * Host-side bind source used by containerized sandboxes.
@@ -71,6 +71,11 @@ export type SandboxProviderCreateOptions = {
71
71
  export interface ISandboxProvider<T extends SandboxBackendProtocol = SandboxBackendProtocol> {
72
72
  type: string;
73
73
  meta: TSandboxProviderMeta;
74
+ /**
75
+ * Whether this provider is currently available in this deployment.
76
+ * Providers without an availability hook remain available for backward compatibility.
77
+ */
78
+ isAvailable?(): MaybePromise<boolean>;
74
79
  /**
75
80
  * Create a new sandbox instance
76
81
  *
@@ -7,6 +7,8 @@ export type SandboxTerminalExit = {
7
7
  export type SandboxTerminalOpenOptions = {
8
8
  cols: number;
9
9
  rows: number;
10
+ /** Reports terminal transport or provider failures separately from process exit. */
11
+ onError?: (error: Error) => void;
10
12
  onExit: (event: SandboxTerminalExit) => void;
11
13
  onOutput: (data: string) => void;
12
14
  };
@@ -2,6 +2,7 @@ import { DynamicStructuredTool } from '@langchain/core/tools';
2
2
  import { I18nObject, IconDefinition } from '@xpert-ai/contracts';
3
3
  import { ZodSchema } from 'zod';
4
4
  import { BuiltinToolset, TBuiltinToolsetParams } from './builtin';
5
+ import type { VideoGenerationToolsetCapability } from '../core/permissions/video-generation';
5
6
  export interface IToolsetStrategy<TConfig = any> {
6
7
  /**
7
8
  * Metadata about this toolset
@@ -14,6 +15,8 @@ export interface IToolsetStrategy<TConfig = any> {
14
15
  description?: I18nObject;
15
16
  configSchema: any;
16
17
  icon?: IconDefinition;
18
+ /** Optional normalized video-generation capability consumed by platform services. */
19
+ videoGeneration?: VideoGenerationToolsetCapability;
17
20
  };
18
21
  /**
19
22
  * Validate the configuration
@@ -1,4 +1,4 @@
1
- import { IconDefinition, JsonSchemaObjectType, PluginMeta, PluginTargetApp, PluginTargetAppMeta, TAvatar, type TPromptWorkflow, XpertTemplatePluginDependencies, XpertTypeEnum } from '@xpert-ai/contracts';
1
+ import { IconDefinition, I18nObject, JsonSchemaObjectType, PluginMeta, PluginTargetApp, PluginTargetAppMeta, TAvatar, type TPromptWorkflow, XpertTemplatePluginDependencies, XpertTypeEnum } from '@xpert-ai/contracts';
2
2
  import type { DynamicModule, INestApplicationContext } from '@nestjs/common';
3
3
  import { ModuleRef } from '@nestjs/core';
4
4
  import type { ZodSchema } from 'zod';
@@ -60,8 +60,8 @@ export interface XpertTemplateContribution {
60
60
  key: string;
61
61
  id?: string;
62
62
  name?: string;
63
- title?: string;
64
- description?: string;
63
+ title?: string | I18nObject;
64
+ description?: string | I18nObject;
65
65
  category?: string;
66
66
  copyright?: string | null;
67
67
  privacyPolicy?: string | null;
@@ -1,45 +0,0 @@
1
- import type { BasePermission } from './general';
2
- export type AnalyticsPermissionOperation = 'dscore' | 'query' | 'model' | 'indicator' | 'create_indicator';
3
- /**
4
- * Analytics Permission
5
- * Example: { type: 'analytics', operations: ['dscore'] }
6
- */
7
- export interface AnalyticsPermission extends BasePermission {
8
- type: 'analytics';
9
- operations?: AnalyticsPermissionOperation[];
10
- scope?: string[];
11
- }
12
- /**
13
- * System token for resolving analytics permission service from plugin context.
14
- */
15
- export declare const ANALYTICS_PERMISSION_SERVICE_TOKEN = "XPERT_PLUGIN_ANALYTICS_PERMISSION_SERVICE";
16
- export interface AnalyticsResolvedChatBIModel {
17
- chatbiModelId: string;
18
- modelId: string;
19
- modelKey?: string;
20
- cubeName: string;
21
- entityCaption?: string;
22
- entityDescription?: string;
23
- prompts?: string[];
24
- }
25
- export interface AnalyticsDSCoreInput {
26
- modelIds?: string[];
27
- indicatorDraft?: boolean;
28
- semanticModelDraft?: boolean;
29
- }
30
- export interface AnalyticsIndicatorValidationInput {
31
- modelIds?: string[];
32
- semanticModelId: string;
33
- modelKey?: string;
34
- statement: string;
35
- }
36
- /**
37
- * Analytics service exposed to plugins under permission control.
38
- */
39
- export interface AnalyticsPermissionService<TDSCoreService = unknown> {
40
- resolveChatBIModels(modelIds: string[]): Promise<AnalyticsResolvedChatBIModel[]>;
41
- getDSCoreService(input?: AnalyticsDSCoreInput): Promise<TDSCoreService>;
42
- visitChatBIModel(modelId: string, cubeName: string): Promise<void>;
43
- ensureCreateIndicatorAccess(): Promise<void>;
44
- validateIndicatorStatement(input: AnalyticsIndicatorValidationInput): Promise<void>;
45
- }