@xpert-ai/plugin-sdk 3.15.4 → 3.15.6

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,21 @@
1
1
  # @xpert-ai/plugin-sdk
2
2
 
3
+ ## 3.15.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 3249145: plugin artifact namespace
8
+ - Updated dependencies [3249145]
9
+ - @xpert-ai/contracts@3.15.7
10
+
11
+ ## 3.15.5
12
+
13
+ ### Patch Changes
14
+
15
+ - 0473ce2: upgrade kb
16
+ - Updated dependencies [0473ce2]
17
+ - @xpert-ai/contracts@3.15.6
18
+
3
19
  ## 3.15.4
4
20
 
5
21
  ### Patch Changes
package/index.cjs.js CHANGED
@@ -88,6 +88,34 @@ var _axios__namespace = /*#__PURE__*/_interopNamespaceDefault(_axios);
88
88
  };
89
89
  }
90
90
 
91
+ const ARTIFACT_NAMESPACE_PATTERN = /^[a-z0-9_]+$/;
92
+ function normalizeArtifactSegment(value) {
93
+ return value.trim().replace(/^@[^/]+\//, '').replace(/^plugin[-_]/, '').replace(/([a-z0-9])([A-Z])/g, '$1_$2').replace(/[^A-Za-z0-9]+/g, '_').replace(/_+/g, '_').replace(/^_+|_+$/g, '').toLowerCase();
94
+ }
95
+ /**
96
+ * Derive the v1 default artifact namespace from an npm package name.
97
+ * Explicit `artifactNamespace` should stay stable after publish; this fallback is for compatibility.
98
+ */ function derivePluginArtifactNamespace(packageName) {
99
+ const namespace = normalizeArtifactSegment(packageName);
100
+ assertPluginArtifactNamePart(namespace, 'artifact namespace');
101
+ return namespace;
102
+ }
103
+ /**
104
+ * Build the physical table name for a plugin-owned database table.
105
+ * Keep table keys stable; the returned name is part of the plugin data contract.
106
+ */ function pluginArtifactTableName(namespace, tableKey) {
107
+ const normalizedNamespace = namespace.trim();
108
+ const normalizedTableKey = tableKey.trim();
109
+ assertPluginArtifactNamePart(normalizedNamespace, 'artifact namespace');
110
+ assertPluginArtifactNamePart(normalizedTableKey, 'artifact table key');
111
+ return `plugin_${normalizedNamespace}_${normalizedTableKey}`;
112
+ }
113
+ function assertPluginArtifactNamePart(value, label) {
114
+ if (!value || !ARTIFACT_NAMESPACE_PATTERN.test(value)) {
115
+ throw new Error(`${label} must contain only lowercase letters, numbers, and underscores`);
116
+ }
117
+ }
118
+
91
119
  const ORGANIZATION_METADATA_KEY = 'xpert:organizationId';
92
120
  const PLUGIN_METADATA_KEY = 'xpert:pluginName';
93
121
  const GLOBAL_ORGANIZATION_SCOPE = 'global';
@@ -4762,6 +4790,7 @@ exports.createPluginLogger = createPluginLogger;
4762
4790
  exports.createRuntimeCapability = createRuntimeCapability;
4763
4791
  exports.defineAgentMessageType = defineAgentMessageType;
4764
4792
  exports.defineChannelMessageType = defineChannelMessageType;
4793
+ exports.derivePluginArtifactNamespace = derivePluginArtifactNamespace;
4765
4794
  exports.downloadRemoteFile = downloadRemoteFile;
4766
4795
  exports.formatSandboxTimeout = formatSandboxTimeout;
4767
4796
  exports.getDefaultTenantId = getDefaultTenantId;
@@ -4784,6 +4813,7 @@ exports.loadYamlFile = loadYamlFile;
4784
4813
  exports.mergeCredentials = mergeCredentials;
4785
4814
  exports.mergeParentChildChunks = mergeParentChildChunks;
4786
4815
  exports.normalizeContextSize = normalizeContextSize;
4816
+ exports.pluginArtifactTableName = pluginArtifactTableName;
4787
4817
  exports.renderRemoteReactIframeHtml = renderRemoteReactIframeHtml;
4788
4818
  exports.resolveSandboxBackend = resolveSandboxBackend;
4789
4819
  exports.resolveSandboxExecutionOptions = resolveSandboxExecutionOptions;
package/index.esm.js CHANGED
@@ -68,6 +68,34 @@ import { getModelContextSize as getModelContextSize$1 } from '@langchain/core/la
68
68
  };
69
69
  }
70
70
 
71
+ const ARTIFACT_NAMESPACE_PATTERN = /^[a-z0-9_]+$/;
72
+ function normalizeArtifactSegment(value) {
73
+ return value.trim().replace(/^@[^/]+\//, '').replace(/^plugin[-_]/, '').replace(/([a-z0-9])([A-Z])/g, '$1_$2').replace(/[^A-Za-z0-9]+/g, '_').replace(/_+/g, '_').replace(/^_+|_+$/g, '').toLowerCase();
74
+ }
75
+ /**
76
+ * Derive the v1 default artifact namespace from an npm package name.
77
+ * Explicit `artifactNamespace` should stay stable after publish; this fallback is for compatibility.
78
+ */ function derivePluginArtifactNamespace(packageName) {
79
+ const namespace = normalizeArtifactSegment(packageName);
80
+ assertPluginArtifactNamePart(namespace, 'artifact namespace');
81
+ return namespace;
82
+ }
83
+ /**
84
+ * Build the physical table name for a plugin-owned database table.
85
+ * Keep table keys stable; the returned name is part of the plugin data contract.
86
+ */ function pluginArtifactTableName(namespace, tableKey) {
87
+ const normalizedNamespace = namespace.trim();
88
+ const normalizedTableKey = tableKey.trim();
89
+ assertPluginArtifactNamePart(normalizedNamespace, 'artifact namespace');
90
+ assertPluginArtifactNamePart(normalizedTableKey, 'artifact table key');
91
+ return `plugin_${normalizedNamespace}_${normalizedTableKey}`;
92
+ }
93
+ function assertPluginArtifactNamePart(value, label) {
94
+ if (!value || !ARTIFACT_NAMESPACE_PATTERN.test(value)) {
95
+ throw new Error(`${label} must contain only lowercase letters, numbers, and underscores`);
96
+ }
97
+ }
98
+
71
99
  const ORGANIZATION_METADATA_KEY = 'xpert:organizationId';
72
100
  const PLUGIN_METADATA_KEY = 'xpert:pluginName';
73
101
  const GLOBAL_ORGANIZATION_SCOPE = 'global';
@@ -4588,4 +4616,4 @@ function escapeHtmlAttribute(value) {
4588
4616
 
4589
4617
  const VIEW_EXTENSION_CACHE_SERVICE_TOKEN = 'XPERT_PLUGIN_VIEW_EXTENSION_CACHE_SERVICE';
4590
4618
 
4591
- 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, SYSTEM_GLOBAL_SCOPE, 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, WORKSPACE_FILES_SOURCE, 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 };
4619
+ 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, SYSTEM_GLOBAL_SCOPE, 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, WORKSPACE_FILES_SOURCE, WorkflowNodeRegistry, WorkflowNodeStrategy, WorkflowTriggerRegistry, WorkflowTriggerStrategy, WorkspaceFilesRuntimeCapability, WrapWorkflowNodeExecutionCommand, XPERT_RUNTIME_CAPABILITIES_TOKEN, XpFileSystem, XpertServerPlugin, als, appendSandboxMessage, buildSandboxTimeoutMessage, calcTokenUsage, chunkText, countTokensSafe, createI18nInstance, createPluginLogger, createRuntimeCapability, defineAgentMessageType, defineChannelMessageType, derivePluginArtifactNamespace, downloadRemoteFile, formatSandboxTimeout, getDefaultTenantId, getErrorMessage, getModelContextSize, getPermissionOperationMetadata, getPositionList, getPositionMap, getRequestContext, getRequiredPermissionOperation, getTenantGlobalScopeKey, isRemoteFile, isSandboxBackend, isSandboxManagedServiceAdapter, isSandboxServiceProxyAdapter, isSandboxTerminalAdapter, isStructuredMessageType, isTenantGlobalScopeKey, loadYamlFile, mergeCredentials, mergeParentChildChunks, normalizeContextSize, pluginArtifactTableName, 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.15.4",
3
+ "version": "3.15.6",
4
4
  "license": "AGPL-3.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,25 +17,26 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@langchain/openai": "0.6.9",
20
- "@xpert-ai/contracts": "workspace:*",
20
+ "@xpert-ai/contracts": "3.15.7",
21
+ "express": "^4.22.1",
21
22
  "js-tiktoken": "^1.0.21"
22
23
  },
23
24
  "peerDependencies": {
24
25
  "@langchain/core": "*",
25
- "@xpert-ai/ocap-core": "workspace:*",
26
26
  "@nestjs/common": "*",
27
27
  "@nestjs/core": "*",
28
28
  "@nestjs/cqrs": "*",
29
+ "@xpert-ai/ocap-core": "3.9.1",
29
30
  "ajv": "*",
30
- "lodash-es": "*",
31
- "i18next-fs-backend": "*",
32
31
  "i18next": "*",
32
+ "i18next-fs-backend": "*",
33
33
  "json-schema": "*",
34
34
  "jsonwebtoken": "*",
35
+ "lodash-es": "*",
35
36
  "passport-jwt": "*",
36
37
  "rxjs": "*",
37
38
  "yaml": "*",
38
39
  "zod": "*"
39
40
  },
40
41
  "types": "./index.d.ts"
41
- }
42
+ }
package/src/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './lib/plugin';
2
2
  export * from './lib/plugin.interface';
3
3
  export * from './lib/plugin-metadata';
4
+ export * from './lib/artifact-namespace';
4
5
  export * from './lib/types';
5
6
  export * from './lib/logger';
6
7
  export * from './lib/integration/index';
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Derive the v1 default artifact namespace from an npm package name.
3
+ * Explicit `artifactNamespace` should stay stable after publish; this fallback is for compatibility.
4
+ */
5
+ export declare function derivePluginArtifactNamespace(packageName: string): string;
6
+ /**
7
+ * Build the physical table name for a plugin-owned database table.
8
+ * Keep table keys stable; the returned name is part of the plugin data contract.
9
+ */
10
+ export declare function pluginArtifactTableName(namespace: string, tableKey: string): string;