zcw-shared 2.25.0 → 2.27.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/README.md +73 -13
- package/dist/constants/agentAvatar3d.d.ts +15 -0
- package/dist/constants/agentAvatar3d.js +64 -0
- package/dist/constants/agentAvatar3d.js.map +1 -0
- package/dist/constants/agentAvatar3dModular.d.ts +34 -0
- package/dist/constants/agentAvatar3dModular.js +93 -0
- package/dist/constants/agentAvatar3dModular.js.map +1 -0
- package/dist/constants/agentPresence3dLabels.d.ts +11 -0
- package/dist/constants/agentPresence3dLabels.js +12 -0
- package/dist/constants/agentPresence3dLabels.js.map +1 -0
- package/dist/constants/aiApiRoutes.d.ts +8 -0
- package/dist/constants/aiApiRoutes.js +23 -0
- package/dist/constants/aiApiRoutes.js.map +1 -0
- package/dist/functions/ai/agentAvatar3dArkitMorph.d.ts +14 -0
- package/dist/functions/ai/agentAvatar3dArkitMorph.js +149 -0
- package/dist/functions/ai/agentAvatar3dArkitMorph.js.map +1 -0
- package/dist/functions/ai/agentAvatar3dCapabilities.d.ts +44 -0
- package/dist/functions/ai/agentAvatar3dCapabilities.js +121 -0
- package/dist/functions/ai/agentAvatar3dCapabilities.js.map +1 -0
- package/dist/functions/ai/agentAvatar3dFacePresets.d.ts +13 -0
- package/dist/functions/ai/agentAvatar3dFacePresets.js +79 -0
- package/dist/functions/ai/agentAvatar3dFacePresets.js.map +1 -0
- package/dist/functions/ai/agentAvatar3dMaterialTint.d.ts +7 -0
- package/dist/functions/ai/agentAvatar3dMaterialTint.js +45 -0
- package/dist/functions/ai/agentAvatar3dMaterialTint.js.map +1 -0
- package/dist/functions/ai/agentAvatar3dMorphCatalog.d.ts +18 -0
- package/dist/functions/ai/agentAvatar3dMorphCatalog.js +222 -0
- package/dist/functions/ai/agentAvatar3dMorphCatalog.js.map +1 -0
- package/dist/functions/ai/applyAiAgentAvatar3dFace.d.ts +23 -0
- package/dist/functions/ai/applyAiAgentAvatar3dFace.js +140 -0
- package/dist/functions/ai/applyAiAgentAvatar3dFace.js.map +1 -0
- package/dist/functions/ai/buildResolvedLlmToolsList.d.ts +0 -1
- package/dist/functions/ai/buildResolvedLlmToolsList.js +0 -1
- package/dist/functions/ai/buildResolvedLlmToolsList.js.map +1 -1
- package/dist/functions/ai/getEffectiveAvatar3dMorphWeights.d.ts +3 -0
- package/dist/functions/ai/getEffectiveAvatar3dMorphWeights.js +28 -0
- package/dist/functions/ai/getEffectiveAvatar3dMorphWeights.js.map +1 -0
- package/dist/functions/ai/normalizeAiAgentAvatar3d.d.ts +4 -0
- package/dist/functions/ai/normalizeAiAgentAvatar3d.js +57 -0
- package/dist/functions/ai/normalizeAiAgentAvatar3d.js.map +1 -0
- package/dist/functions/ai/normalizeAiAgentAvatar3dFace.d.ts +4 -0
- package/dist/functions/ai/normalizeAiAgentAvatar3dFace.js +84 -0
- package/dist/functions/ai/normalizeAiAgentAvatar3dFace.js.map +1 -0
- package/dist/functions/ai/normalizeAiAgentAvatar3dModular.d.ts +14 -0
- package/dist/functions/ai/normalizeAiAgentAvatar3dModular.js +92 -0
- package/dist/functions/ai/normalizeAiAgentAvatar3dModular.js.map +1 -0
- package/dist/functions/ai/proceduralHumanoidMorph.d.ts +5 -0
- package/dist/functions/ai/proceduralHumanoidMorph.js +9 -0
- package/dist/functions/ai/proceduralHumanoidMorph.js.map +1 -0
- package/dist/functions/ai/randomizeAgentAvatar3dAppearance.d.ts +9 -0
- package/dist/functions/ai/randomizeAgentAvatar3dAppearance.js +108 -0
- package/dist/functions/ai/randomizeAgentAvatar3dAppearance.js.map +1 -0
- package/dist/functions/ai/randomizeModularAvatar3dAppearance.d.ts +7 -0
- package/dist/functions/ai/randomizeModularAvatar3dAppearance.js +60 -0
- package/dist/functions/ai/randomizeModularAvatar3dAppearance.js.map +1 -0
- package/dist/functions/ai/resolveAvatar3dModular.d.ts +4 -0
- package/dist/functions/ai/resolveAvatar3dModular.js +22 -0
- package/dist/functions/ai/resolveAvatar3dModular.js.map +1 -0
- package/dist/functions/api/createApiClient.d.ts +1 -6
- package/dist/functions/api/createApiClient.js +1 -55
- package/dist/functions/api/createApiClient.js.map +1 -1
- package/dist/functions/api/createPublicAuthRequest.js +3 -1
- package/dist/functions/api/createPublicAuthRequest.js.map +1 -1
- package/dist/functions/array/filterListExcludingIds.d.ts +0 -1
- package/dist/functions/array/filterListExcludingIds.js +0 -1
- package/dist/functions/array/filterListExcludingIds.js.map +1 -1
- package/dist/functions/browser/readBrowserAppendToBodyDeps.d.ts +3 -0
- package/dist/functions/browser/readBrowserAppendToBodyDeps.js +8 -0
- package/dist/functions/browser/readBrowserAppendToBodyDeps.js.map +1 -0
- package/dist/functions/browser/readBrowserDetectDeps.d.ts +2 -0
- package/dist/functions/browser/readBrowserDetectDeps.js +8 -5
- package/dist/functions/browser/readBrowserDetectDeps.js.map +1 -1
- package/dist/functions/browser/readBrowserHost.d.ts +60 -0
- package/dist/functions/browser/readBrowserHost.js +98 -0
- package/dist/functions/browser/readBrowserHost.js.map +1 -0
- package/dist/functions/browser/readBrowserImageCompressDeps.d.ts +2 -0
- package/dist/functions/browser/readBrowserImageCompressDeps.js +20 -11
- package/dist/functions/browser/readBrowserImageCompressDeps.js.map +1 -1
- package/dist/functions/browser/readBrowserLassoSelectionEnvironment.d.ts +4 -0
- package/dist/functions/browser/readBrowserLassoSelectionEnvironment.js +23 -0
- package/dist/functions/browser/readBrowserLassoSelectionEnvironment.js.map +1 -0
- package/dist/functions/browser/readBrowserVueHookDeps.d.ts +14 -0
- package/dist/functions/browser/readBrowserVueHookDeps.js +103 -0
- package/dist/functions/browser/readBrowserVueHookDeps.js.map +1 -0
- package/dist/functions/browser/requireBrowserLocalStorage.d.ts +2 -1
- package/dist/functions/browser/requireBrowserLocalStorage.js +3 -6
- package/dist/functions/browser/requireBrowserLocalStorage.js.map +1 -1
- package/dist/functions/chat/chatAppearancePrefs.d.ts +6 -1
- package/dist/functions/chat/chatAppearancePrefs.js +6 -4
- package/dist/functions/chat/chatAppearancePrefs.js.map +1 -1
- package/dist/functions/chat/chatMorePageConfig.js +8 -0
- package/dist/functions/chat/chatMorePageConfig.js.map +1 -1
- package/dist/functions/chat/chatShellTabConfig.d.ts +4 -1
- package/dist/functions/chat/chatShellTabConfig.js +14 -2
- package/dist/functions/chat/chatShellTabConfig.js.map +1 -1
- package/dist/functions/chat/createBrowserChatAppearanceModeAccess.d.ts +2 -1
- package/dist/functions/chat/createBrowserChatAppearanceModeAccess.js +8 -11
- package/dist/functions/chat/createBrowserChatAppearanceModeAccess.js.map +1 -1
- package/dist/functions/chat/createBrowserChatDownloadDirectoryPrefAccess.d.ts +2 -1
- package/dist/functions/chat/createBrowserChatDownloadDirectoryPrefAccess.js +12 -12
- package/dist/functions/chat/createBrowserChatDownloadDirectoryPrefAccess.js.map +1 -1
- package/dist/functions/chat/createBrowserChatFileMessageLocalPathAccess.d.ts +2 -1
- package/dist/functions/chat/createBrowserChatFileMessageLocalPathAccess.js +7 -14
- package/dist/functions/chat/createBrowserChatFileMessageLocalPathAccess.js.map +1 -1
- package/dist/functions/chat/createBrowserChatRootFontSizeAccess.d.ts +2 -1
- package/dist/functions/chat/createBrowserChatRootFontSizeAccess.js +13 -13
- package/dist/functions/chat/createBrowserChatRootFontSizeAccess.js.map +1 -1
- package/dist/functions/cloudDisk/buildCloudDiskListTabResult.d.ts +2 -2
- package/dist/functions/cloudDisk/collectElementIdsInContentLassoBox.d.ts +1 -19
- package/dist/functions/cloudDisk/collectElementIdsInContentLassoBox.js +1 -34
- package/dist/functions/cloudDisk/collectElementIdsInContentLassoBox.js.map +1 -1
- package/dist/functions/cloudDisk/createBrowserCloudDiskPrivacyStorageAccess.d.ts +2 -1
- package/dist/functions/cloudDisk/createBrowserCloudDiskPrivacyStorageAccess.js +11 -19
- package/dist/functions/cloudDisk/createBrowserCloudDiskPrivacyStorageAccess.js.map +1 -1
- package/dist/functions/cloudDisk/createBrowserCloudDiskQuickAccessStorageAccess.d.ts +2 -1
- package/dist/functions/cloudDisk/createBrowserCloudDiskQuickAccessStorageAccess.js +7 -11
- package/dist/functions/cloudDisk/createBrowserCloudDiskQuickAccessStorageAccess.js.map +1 -1
- package/dist/functions/cloudDisk/extractCloudDiskPrivateFolderData.d.ts +3 -3
- package/dist/functions/cloudDisk/extractCloudDiskPrivateFolderData.js.map +1 -1
- package/dist/functions/cloudDisk/mapCloudDiskFileToNode.d.ts +2 -2
- package/dist/functions/cloudDisk/mapCloudDiskFileToNode.js.map +1 -1
- package/dist/functions/cloudDisk/sortCloudDiskNodes.js +4 -4
- package/dist/functions/cloudDisk/sortCloudDiskNodes.js.map +1 -1
- package/dist/functions/dom/appTheme.d.ts +10 -0
- package/dist/functions/dom/appTheme.js +11 -0
- package/dist/functions/dom/appTheme.js.map +1 -0
- package/dist/functions/dom/copyHtmlAndPlainToClipboard.d.ts +3 -1
- package/dist/functions/dom/copyHtmlAndPlainToClipboard.js +14 -10
- package/dist/functions/dom/copyHtmlAndPlainToClipboard.js.map +1 -1
- package/dist/functions/dom/copyTextToClipboard.d.ts +3 -1
- package/dist/functions/dom/copyTextToClipboard.js +5 -4
- package/dist/functions/dom/copyTextToClipboard.js.map +1 -1
- package/dist/functions/dom/createTooltipLongPressHandlers.d.ts +24 -0
- package/dist/functions/dom/createTooltipLongPressHandlers.js +84 -0
- package/dist/functions/dom/createTooltipLongPressHandlers.js.map +1 -0
- package/dist/functions/dom/domDocumentSelection.d.ts +4 -0
- package/dist/functions/dom/domDocumentSelection.js +39 -0
- package/dist/functions/dom/domDocumentSelection.js.map +1 -0
- package/dist/functions/dom/domSelectionInElement.d.ts +4 -3
- package/dist/functions/dom/domSelectionInElement.js +10 -10
- package/dist/functions/dom/domSelectionInElement.js.map +1 -1
- package/dist/functions/dom/fetchBlobFromUrl.d.ts +7 -1
- package/dist/functions/dom/fetchBlobFromUrl.js +7 -5
- package/dist/functions/dom/fetchBlobFromUrl.js.map +1 -1
- package/dist/functions/dom/fileDrag.d.ts +11 -0
- package/dist/functions/dom/fileDrag.js +14 -0
- package/dist/functions/dom/fileDrag.js.map +1 -0
- package/dist/functions/dom/imageBlobToPng.d.ts +5 -4
- package/dist/functions/dom/imageBlobToPng.js +23 -16
- package/dist/functions/dom/imageBlobToPng.js.map +1 -1
- package/dist/functions/dom/lassoSelection.d.ts +84 -0
- package/dist/functions/dom/lassoSelection.js +199 -0
- package/dist/functions/dom/lassoSelection.js.map +1 -0
- package/dist/functions/dom/readBrowserDomDeps.d.ts +41 -0
- package/dist/functions/dom/readBrowserDomDeps.js +65 -0
- package/dist/functions/dom/readBrowserDomDeps.js.map +1 -0
- package/dist/functions/dom/resolveOverlayTeleportParent.d.ts +7 -0
- package/dist/functions/dom/resolveOverlayTeleportParent.js +11 -0
- package/dist/functions/dom/resolveOverlayTeleportParent.js.map +1 -0
- package/dist/functions/dom/safeBrowserDom.d.ts +17 -0
- package/dist/functions/dom/safeBrowserDom.js +42 -0
- package/dist/functions/dom/safeBrowserDom.js.map +1 -0
- package/dist/functions/dom/writeImageBlobToClipboard.d.ts +5 -1
- package/dist/functions/dom/writeImageBlobToClipboard.js +8 -5
- package/dist/functions/dom/writeImageBlobToClipboard.js.map +1 -1
- package/dist/functions/download/createBrowserDownloadDepsFromGlobalThis.d.ts +2 -0
- package/dist/functions/download/createBrowserDownloadDepsFromGlobalThis.js +9 -10
- package/dist/functions/download/createBrowserDownloadDepsFromGlobalThis.js.map +1 -1
- package/dist/functions/file/isJpegImageFile.d.ts +0 -1
- package/dist/functions/file/isJpegImageFile.js +0 -1
- package/dist/functions/file/isJpegImageFile.js.map +1 -1
- package/dist/functions/im/assignChatConversationToWindowLocation.d.ts +5 -1
- package/dist/functions/im/assignChatConversationToWindowLocation.js +5 -4
- package/dist/functions/im/assignChatConversationToWindowLocation.js.map +1 -1
- package/dist/functions/im/copyUsingClonedRangesOrMessagePlainText.d.ts +5 -1
- package/dist/functions/im/copyUsingClonedRangesOrMessagePlainText.js +11 -8
- package/dist/functions/im/copyUsingClonedRangesOrMessagePlainText.js.map +1 -1
- package/dist/functions/im/executeCopyChatMessageContent.d.ts +4 -1
- package/dist/functions/im/executeCopyChatMessageContent.js +6 -3
- package/dist/functions/im/executeCopyChatMessageContent.js.map +1 -1
- package/dist/functions/im/forwardBundleItemToChatMessage.js +9 -7
- package/dist/functions/im/forwardBundleItemToChatMessage.js.map +1 -1
- package/dist/functions/im/imBubbleSelectionClipboard.d.ts +2 -1
- package/dist/functions/im/imBubbleSelectionClipboard.js +10 -11
- package/dist/functions/im/imBubbleSelectionClipboard.js.map +1 -1
- package/dist/functions/im/imChatMessageCopyPlain.js +2 -2
- package/dist/functions/im/imChatMessageCopyPlain.js.map +1 -1
- package/dist/functions/im/imChatMessagePagination.d.ts +0 -1
- package/dist/functions/im/imChatMessagePagination.js +0 -1
- package/dist/functions/im/imChatMessagePagination.js.map +1 -1
- package/dist/functions/im/imForwardBundleTitle.js +2 -2
- package/dist/functions/im/imForwardBundleTitle.js.map +1 -1
- package/dist/functions/im/imForwardSnapshot.js +2 -2
- package/dist/functions/im/imForwardSnapshot.js.map +1 -1
- package/dist/functions/im/imImagePixelExtra.d.ts +0 -1
- package/dist/functions/im/imImagePixelExtra.js +0 -1
- package/dist/functions/im/imImagePixelExtra.js.map +1 -1
- package/dist/functions/im/imMessageNormalize.d.ts +2 -2
- package/dist/functions/im/imOrchestrationTypes.d.ts +5 -0
- package/dist/functions/im/imOrchestrationTypes.js +2 -0
- package/dist/functions/im/imOrchestrationTypes.js.map +1 -0
- package/dist/functions/im/imOutboundMediaHelpers.d.ts +7 -1
- package/dist/functions/im/imOutboundMediaHelpers.js +15 -7
- package/dist/functions/im/imOutboundMediaHelpers.js.map +1 -1
- package/dist/functions/im/imPlaceholderSnippet.d.ts +1 -1
- package/dist/functions/im/imPlaceholderSnippet.js +1 -1
- package/dist/functions/im/imPlaceholderSnippet.js.map +1 -1
- package/dist/functions/im/index.d.ts +2 -2
- package/dist/functions/im/index.js +2 -2
- package/dist/functions/im/index.js.map +1 -1
- package/dist/functions/im/newImClientMessageIdFromBrowser.d.ts +4 -3
- package/dist/functions/im/newImClientMessageIdFromBrowser.js +7 -15
- package/dist/functions/im/newImClientMessageIdFromBrowser.js.map +1 -1
- package/dist/functions/number/clampIndex.d.ts +1 -0
- package/dist/functions/number/clampIndex.js +6 -0
- package/dist/functions/number/clampIndex.js.map +1 -0
- package/dist/functions/qiankun/bootstrapQiankunDomPatch.d.ts +1 -0
- package/dist/functions/qiankun/bootstrapQiankunDomPatch.js +165 -0
- package/dist/functions/qiankun/bootstrapQiankunDomPatch.js.map +1 -0
- package/dist/functions/qiankun/createQiankunVueApp.d.ts +2 -0
- package/dist/functions/qiankun/createQiankunVueApp.js +4 -1
- package/dist/functions/qiankun/createQiankunVueApp.js.map +1 -1
- package/dist/functions/release/capacitorOtaReleaseManifestFetch.d.ts +2 -1
- package/dist/functions/release/capacitorOtaReleaseManifestFetch.js +3 -2
- package/dist/functions/release/capacitorOtaReleaseManifestFetch.js.map +1 -1
- package/dist/functions/release/capacitorReleaseManifestFetch.d.ts +2 -1
- package/dist/functions/release/capacitorReleaseManifestFetch.js +3 -2
- package/dist/functions/release/capacitorReleaseManifestFetch.js.map +1 -1
- package/dist/functions/release/capacitorUpdateDefaults.d.ts +4 -0
- package/dist/functions/release/capacitorUpdateDefaults.js +10 -10
- package/dist/functions/release/capacitorUpdateDefaults.js.map +1 -1
- package/dist/functions/release/createCapacitorUpdateFetchDeps.js +13 -7
- package/dist/functions/release/createCapacitorUpdateFetchDeps.js.map +1 -1
- package/dist/functions/release/createReleaseManifestFetchDeps.d.ts +1 -2
- package/dist/functions/release/createReleaseManifestFetchDeps.js +5 -10
- package/dist/functions/release/createReleaseManifestFetchDeps.js.map +1 -1
- package/dist/functions/release/electronReleaseManifestFetch.d.ts +4 -1
- package/dist/functions/release/electronReleaseManifestFetch.js +12 -7
- package/dist/functions/release/electronReleaseManifestFetch.js.map +1 -1
- package/dist/functions/release/isCapacitorWebViewOnViteDevServer.js +4 -4
- package/dist/functions/release/isCapacitorWebViewOnViteDevServer.js.map +1 -1
- package/dist/functions/release/readBrowserReleaseDeps.d.ts +14 -0
- package/dist/functions/release/readBrowserReleaseDeps.js +19 -0
- package/dist/functions/release/readBrowserReleaseDeps.js.map +1 -0
- package/dist/functions/release/releaseUpdateDismissSession.d.ts +3 -2
- package/dist/functions/release/releaseUpdateDismissSession.js +10 -7
- package/dist/functions/release/releaseUpdateDismissSession.js.map +1 -1
- package/dist/functions/release/verifyHttpContentLength.d.ts +2 -0
- package/dist/functions/release/verifyHttpContentLength.js +4 -1
- package/dist/functions/release/verifyHttpContentLength.js.map +1 -1
- package/dist/functions/storage/createBrowserSessionStorageKit.d.ts +12 -0
- package/dist/functions/storage/createBrowserSessionStorageKit.js +16 -0
- package/dist/functions/storage/createBrowserSessionStorageKit.js.map +1 -0
- package/dist/functions/storage/createBrowserStringStorageKit.d.ts +12 -0
- package/dist/functions/storage/createBrowserStringStorageKit.js +14 -0
- package/dist/functions/storage/createBrowserStringStorageKit.js.map +1 -0
- package/dist/functions/vue-router/normalizeWebHistoryBase.d.ts +1 -0
- package/dist/functions/vue-router/normalizeWebHistoryBase.js +19 -0
- package/dist/functions/vue-router/normalizeWebHistoryBase.js.map +1 -0
- package/dist/functions/vue-router/pushInAppRoute.d.ts +6 -0
- package/dist/functions/vue-router/pushInAppRoute.js +13 -0
- package/dist/functions/vue-router/pushInAppRoute.js.map +1 -0
- package/dist/functions/wallet/createBrowserWalletPayPasswordSessionAccess.d.ts +2 -1
- package/dist/functions/wallet/createBrowserWalletPayPasswordSessionAccess.js +5 -9
- package/dist/functions/wallet/createBrowserWalletPayPasswordSessionAccess.js.map +1 -1
- package/dist/permissions/catalog.d.ts +6 -0
- package/dist/permissions/catalog.js +33 -0
- package/dist/permissions/catalog.js.map +1 -1
- package/dist/schemas/auth.schema.d.ts +11 -358
- package/dist/schemas/auth.schema.js +5 -35
- package/dist/schemas/auth.schema.js.map +1 -1
- package/dist/schemas/video.schema.d.ts +98 -156
- package/dist/schemas/video.schema.js +9 -13
- package/dist/schemas/video.schema.js.map +1 -1
- package/dist/vue-hooks/browser/useBrowserFileObjectUrlMap.d.ts +7 -0
- package/dist/vue-hooks/browser/useBrowserFileObjectUrlMap.js +7 -0
- package/dist/vue-hooks/browser/useBrowserFileObjectUrlMap.js.map +1 -0
- package/dist/vue-hooks/browser/useFileObjectUrlMap.d.ts +19 -0
- package/dist/vue-hooks/browser/useFileObjectUrlMap.js +46 -0
- package/dist/vue-hooks/browser/useFileObjectUrlMap.js.map +1 -0
- package/dist/vue-hooks/dom/useBrowserFocusVisible.d.ts +9 -0
- package/dist/vue-hooks/dom/useBrowserFocusVisible.js +8 -0
- package/dist/vue-hooks/dom/useBrowserFocusVisible.js.map +1 -0
- package/dist/vue-hooks/dom/useBrowserLassoSelection.d.ts +16 -0
- package/dist/vue-hooks/dom/useBrowserLassoSelection.js +7 -0
- package/dist/vue-hooks/dom/useBrowserLassoSelection.js.map +1 -0
- package/dist/vue-hooks/dom/useFocusVisible.d.ts +17 -0
- package/dist/vue-hooks/dom/useFocusVisible.js +53 -0
- package/dist/vue-hooks/dom/useFocusVisible.js.map +1 -0
- package/dist/vue-hooks/dom/useLassoSelection.d.ts +53 -0
- package/dist/vue-hooks/dom/useLassoSelection.js +245 -0
- package/dist/vue-hooks/dom/useLassoSelection.js.map +1 -0
- package/dist/vue-hooks/time/useBrowserDelayedTrue.d.ts +2 -0
- package/dist/vue-hooks/time/useBrowserDelayedTrue.js +7 -0
- package/dist/vue-hooks/time/useBrowserDelayedTrue.js.map +1 -0
- package/dist/vue-hooks/time/useDelayedTrue.d.ts +11 -0
- package/dist/vue-hooks/time/useDelayedTrue.js +29 -0
- package/dist/vue-hooks/time/useDelayedTrue.js.map +1 -0
- package/package.json +55 -2
- package/types/address.d.ts +4 -35
- package/types/ai-admin.d.ts +33 -0
- package/types/ai-agent.d.ts +43 -0
- package/types/ai-chat.d.ts +39 -23
- package/types/api-contract-helpers.d.ts +24 -0
- package/types/api-contract.d.ts +6 -0
- package/types/auth.d.ts +15 -27
- package/types/cloud-disk.d.ts +38 -50
- package/types/community.d.ts +7 -0
- package/types/component-material.d.ts +40 -0
- package/types/im-ai-agent.d.ts +1 -1
- package/types/im-api.d.ts +12 -8
- package/types/im-call.d.ts +4 -3
- package/types/lowcode.d.ts +26 -0
- package/types/music.d.ts +4 -30
- package/types/notification.d.ts +4 -34
- package/types/openapi.d.ts +25040 -0
- package/types/order.d.ts +5 -57
- package/types/org.d.ts +13 -0
- package/types/oss.d.ts +4 -23
- package/types/page-config.d.ts +14 -14
- package/types/payment.d.ts +10 -20
- package/types/performance.d.ts +4 -11
- package/types/product.d.ts +5 -37
- package/types/rbac.d.ts +10 -34
- package/types/recharge.d.ts +11 -0
- package/types/report.d.ts +7 -25
- package/types/review.d.ts +11 -13
- package/types/sticker-pack.d.ts +10 -25
- package/types/user.d.ts +11 -33
- package/types/video.d.ts +15 -66
- package/types/vue.d.ts +9 -1
- package/dist/functions/file/extractVideoCover.d.ts +0 -6
- package/dist/functions/file/extractVideoCover.js +0 -57
- package/dist/functions/file/extractVideoCover.js.map +0 -1
- package/dist/functions/im/imInlineContentTokens.d.ts +0 -49
- package/dist/functions/im/imInlineContentTokens.js +0 -185
- package/dist/functions/im/imInlineContentTokens.js.map +0 -1
- package/dist/functions/im/materializeUploadFileFromMediaBlobRecord.d.ts +0 -7
- package/dist/functions/im/materializeUploadFileFromMediaBlobRecord.js +0 -10
- package/dist/functions/im/materializeUploadFileFromMediaBlobRecord.js.map +0 -1
- package/dist/functions/im/parseImMentionSegments.d.ts +0 -19
- package/dist/functions/im/parseImMentionSegments.js +0 -92
- package/dist/functions/im/parseImMentionSegments.js.map +0 -1
- package/dist/functions/image/compressImageToWidth.d.ts +0 -12
- package/dist/functions/image/compressImageToWidth.js +0 -44
- package/dist/functions/image/compressImageToWidth.js.map +0 -1
- package/dist/functions/image/compressJpgToTargetSize.d.ts +0 -13
- package/dist/functions/image/compressJpgToTargetSize.js +0 -132
- package/dist/functions/image/compressJpgToTargetSize.js.map +0 -1
- package/dist/functions/image/compressToTargetSize.d.ts +0 -13
- package/dist/functions/image/compressToTargetSizeJpg.d.ts +0 -13
- package/dist/functions/image/compressToTargetSizeJpg.js +0 -132
- package/dist/functions/image/compressToTargetSizeJpg.js.map +0 -1
- package/dist/permissions/allPermissionCode.js.map +0 -1
- package/dist/permissions/definePermissionGroup.js.map +0 -1
- package/dist/permissions/groups.js.map +0 -1
package/README.md
CHANGED
|
@@ -167,15 +167,6 @@ export interface MyFunctionDeps {
|
|
|
167
167
|
import type { Ref } from '../../references/vue.d' // Vue 没有 references 文件
|
|
168
168
|
```
|
|
169
169
|
|
|
170
|
-
#### 规则 7:存储能力统一通过 `useStorage`
|
|
171
|
-
|
|
172
|
-
- 不允许直接依赖 `localStorage` / `sessionStorage` 等同步 API
|
|
173
|
-
- 必须组合 `useStorage` 与具体适配器(如 `useLocalStorage`、`useSessionStorage`、`useStorageWithIndexedDB`)创建 `storage` 对象
|
|
174
|
-
- Env 类型统一定义为 `ReturnType<typeof useStorage<string>>`(或自定义 value 类型)
|
|
175
|
-
- 在实现中仅使用 `storage.get/set/remove/clear` 等 Promise API,避免混用同步方法
|
|
176
|
-
- 文档站中的 VitePress 交互示例同样需要使用 `useStorage` 与适配器,确保行为与生产代码一致
|
|
177
|
-
- **多表结构化 IndexedDB**(多 object store、复合索引、`transaction`)可使用 **`useDexieShortcuts`**:将 `Dexie` 构造器与 `indexedDB` 注入 `deps`,应用侧安装 peer 依赖 **`dexie`**(版本范围见 `package.json` 的 `peerDependencies`)。详见 `docs/api/storage/useDexieShortcuts.md`。
|
|
178
|
-
|
|
179
170
|
#### 规则 5:每个函数维护自己完整的依赖,不要分散
|
|
180
171
|
|
|
181
172
|
```typescript
|
|
@@ -270,6 +261,71 @@ export interface DeployTCBDeps {
|
|
|
270
261
|
}
|
|
271
262
|
```
|
|
272
263
|
|
|
264
|
+
#### 规则 7:存储能力统一通过 `useStorage`
|
|
265
|
+
|
|
266
|
+
- 不允许直接依赖 `localStorage` / `sessionStorage` 等同步 API
|
|
267
|
+
- 必须组合 `useStorage` 与具体适配器(如 `useLocalStorage`、`useSessionStorage`、`useStorageWithIndexedDB`)创建 `storage` 对象
|
|
268
|
+
- Env 类型统一定义为 `ReturnType<typeof useStorage<string>>`(或自定义 value 类型)
|
|
269
|
+
- 在实现中仅使用 `storage.get/set/remove/clear` 等 Promise API,避免混用同步方法
|
|
270
|
+
- 文档站中的 VitePress 交互示例同样需要使用 `useStorage` 与适配器,确保行为与生产代码一致
|
|
271
|
+
- **多表结构化 IndexedDB**(多 object store、复合索引、`transaction`)可使用 **`useDexieShortcuts`**:将 `Dexie` 构造器与 `indexedDB` 注入 `deps`,应用侧安装 peer 依赖 **`dexie`**(版本范围见 `package.json` 的 `peerDependencies`)。详见 `docs/api/storage/useDexieShortcuts.md`。
|
|
272
|
+
|
|
273
|
+
#### 规则 8:浏览器宿主绑定层统一通过 `readBrowserHost`
|
|
274
|
+
|
|
275
|
+
- 库内函数**不得**直接访问 `globalThis` / `window` / `document` / `localStorage`
|
|
276
|
+
- 应用边界通过 `readBrowserHostFromGlobalThis()` 读取宿主,组装为 `ReadBrowserHostDeps` 后向下传递
|
|
277
|
+
- `readBrowser*` / `createBrowser*` / `useBrowser*` 系列是**唯一**允许在内部调用 `readBrowserHostFromGlobalThis()` 的便捷封装,供 Web 宿主直引
|
|
278
|
+
- `useBrowser*` Hook 可在绑定层直接 `import { ref, watch } from 'vue'`(与 Vue SFC 同级,属于应用边界)
|
|
279
|
+
- 浏览器存储统一经 `createBrowserStringStorageKit` / `createBrowserSessionStorageKit` 组合 `useStorage` + 适配器;写入只用 `storage.set/remove`,同步 bootstrap 读可经 `backingStorage`
|
|
280
|
+
- 新增浏览器绑定逻辑时,优先在 `src/functions/browser/readBrowserHost.ts` 扩展 `BrowserHostSnapshot`,不要在业务模块重复读取全局对象
|
|
281
|
+
|
|
282
|
+
```typescript
|
|
283
|
+
import {
|
|
284
|
+
readBrowserHostDepsFromGlobalThis,
|
|
285
|
+
requireBrowserHostLocalStorage,
|
|
286
|
+
type ReadBrowserHostDeps,
|
|
287
|
+
} from '../browser/readBrowserHost'
|
|
288
|
+
|
|
289
|
+
export function createBrowserExampleAccess(
|
|
290
|
+
hostDeps: ReadBrowserHostDeps = readBrowserHostDepsFromGlobalThis(),
|
|
291
|
+
) {
|
|
292
|
+
return {
|
|
293
|
+
read(): string {
|
|
294
|
+
return requireBrowserHostLocalStorage(hostDeps).getItem('key') ?? ''
|
|
295
|
+
},
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
#### 规则 9:编排类函数拆分 `{Name}Input` 与 `{Name}Deps`
|
|
301
|
+
|
|
302
|
+
面向业务流程的编排函数(如 IM 复制、转发、媒体出站)允许将参数拆为两层:
|
|
303
|
+
|
|
304
|
+
- **`{Name}Input`**:业务数据 + 由调用方实现的 I/O 回调(如 `copyImagePixels`)
|
|
305
|
+
- **`{Name}Deps`**:环境能力(`document`、`setTimeout`、`URL` 等),第二参数传入;Web 宿主可使用 `readBrowserHost*` 默认注入
|
|
306
|
+
|
|
307
|
+
```typescript
|
|
308
|
+
export type ExecuteExampleInput = {
|
|
309
|
+
messageId: string
|
|
310
|
+
persist: (id: string) => Promise<void>
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
export interface ExecuteExampleDeps {
|
|
314
|
+
document?: Document
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
export async function executeExample(
|
|
318
|
+
input: ExecuteExampleInput,
|
|
319
|
+
deps: ExecuteExampleDeps = {
|
|
320
|
+
document: readBrowserHostDocument(readBrowserHostDepsFromGlobalThis()),
|
|
321
|
+
},
|
|
322
|
+
) {
|
|
323
|
+
// input 承载业务数据与回调,deps 承载环境 API
|
|
324
|
+
}
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
纯数据变换函数可只使用 `{Name}Deps` 或单一 `options`;命名与约定见 `src/functions/im/imOrchestrationTypes.ts`。
|
|
328
|
+
|
|
273
329
|
#### 完整示例
|
|
274
330
|
|
|
275
331
|
```typescript
|
|
@@ -703,15 +759,15 @@ npm run publish:major # 主要版本
|
|
|
703
759
|
|
|
704
760
|
1. **不导入第三方库运行时函数**:不直接 `import { ref } from 'vue'`,而是通过 `env` 对象传入
|
|
705
761
|
2. **Vue 类型特殊规则**:Vue 类型只能使用 `import type {} from 'vue'` 导入,不能从 `references/` 导入
|
|
706
|
-
3. **不依赖全局对象**:不直接使用 `window`、`document`、`global`
|
|
707
|
-
4. **接口命名规范**:`{FunctionName}Deps
|
|
762
|
+
3. **不依赖全局对象**:不直接使用 `window`、`document`、`global`;浏览器宿主统一经 `readBrowserHost`(规则 8)
|
|
763
|
+
4. **接口命名规范**:`{FunctionName}Deps` 或编排函数的 `{FunctionName}Input` + `{FunctionName}Deps`
|
|
708
764
|
5. **使用 deps. 前缀**:所有依赖访问都使用 `deps.methodName()`,不解构
|
|
709
765
|
|
|
710
766
|
### 快速检查清单
|
|
711
767
|
|
|
712
768
|
在编写新函数或修改现有函数时,快速检查以下要点:
|
|
713
769
|
|
|
714
|
-
**✅
|
|
770
|
+
**✅ 9 大核心规则:**
|
|
715
771
|
1. ❌ 不直接导入第三方库运行时函数 → ✅ 从 `references/` 导入类型(Vue 类型除外)
|
|
716
772
|
2. ❌ Vue 类型不能从 `references/` 导入 → ✅ 只能使用 `import type {} from 'vue'`
|
|
717
773
|
3. ❌ 不传入整个模块对象 → ✅ 只传入实际使用的函数
|
|
@@ -719,10 +775,14 @@ npm run publish:major # 主要版本
|
|
|
719
775
|
5. ❌ 不重复定义类型 → ✅ 使用 `Interface['method']` 提取
|
|
720
776
|
6. ❌ 不分散依赖到多个参数 → ✅ 统一的 `Deps` 接口
|
|
721
777
|
7. ❌ 第三方 SDK 也不能整个传入 → ✅ Vue、Wx 等也要拆分
|
|
778
|
+
8. ❌ 业务代码不直接读 `globalThis` → ✅ 经 `readBrowserHost` / `readBrowser*` 绑定层注入
|
|
779
|
+
9. ❌ 编排函数混用环境与业务参数 → ✅ `{Name}Input` + `{Name}Deps` 分层(见规则 9)
|
|
722
780
|
|
|
723
781
|
**✅ 命名规范:**
|
|
724
782
|
- 函数依赖接口:`{FunctionName}Deps`
|
|
783
|
+
- 编排函数业务入参:`{FunctionName}Input`
|
|
725
784
|
- Hook 环境接口:`{HookName}Environment`
|
|
785
|
+
- 浏览器绑定便捷函数:`readBrowser*` / `createBrowser*` / `useBrowser*`
|
|
726
786
|
- Playground 组件:`{FunctionName}Playground.vue`
|
|
727
787
|
|
|
728
788
|
**✅ 文档完整性:**
|
|
@@ -1519,7 +1579,7 @@ p {
|
|
|
1519
1579
|
添加新函数后,必须确认:
|
|
1520
1580
|
|
|
1521
1581
|
- [ ] 函数文档已创建(`docs/api/category/functionName.md`)
|
|
1522
|
-
- [ ]
|
|
1582
|
+
- [ ] 文档包含所有必需部分(函数描述、函数签名、参数表、返回值、工作原理;有 deps 时含前置依赖)
|
|
1523
1583
|
- [ ] Playground 组件已创建(浏览器端函数)
|
|
1524
1584
|
- [ ] 组件正确导入实际函数(不是 mock)
|
|
1525
1585
|
- [ ] 侧边栏配置已更新
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const DEFAULT_AGENT_AVATAR_3D_MODEL_PATH = "/models/agent-avatar-full-body.glb";
|
|
2
|
+
export declare const DEFAULT_AGENT_AVATAR_3D_MODEL_URL = "/models/agent-avatar-full-body.glb";
|
|
3
|
+
export type BuiltinAgentAvatar3dCategory = 'character' | 'outfit' | 'accessory';
|
|
4
|
+
export interface BuiltinAgentAvatar3dModelMeta {
|
|
5
|
+
id: string;
|
|
6
|
+
filename: string;
|
|
7
|
+
storagePath: string;
|
|
8
|
+
label: string;
|
|
9
|
+
category: BuiltinAgentAvatar3dCategory;
|
|
10
|
+
}
|
|
11
|
+
export declare const BUILTIN_AGENT_AVATAR_3D_MODELS: BuiltinAgentAvatar3dModelMeta[];
|
|
12
|
+
export declare function hasAgentAvatar3dDefaultModel(): boolean;
|
|
13
|
+
export declare function getBuiltinAgentAvatar3dModelById(id: string): BuiltinAgentAvatar3dModelMeta | undefined;
|
|
14
|
+
export declare function resolveBuiltinAgentAvatar3dStoragePath(url: string): string | undefined;
|
|
15
|
+
export declare function isBuiltinAgentAvatar3dModelUrl(url: string): boolean;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export const DEFAULT_AGENT_AVATAR_3D_MODEL_PATH = '/models/agent-avatar-full-body.glb';
|
|
2
|
+
export const DEFAULT_AGENT_AVATAR_3D_MODEL_URL = DEFAULT_AGENT_AVATAR_3D_MODEL_PATH;
|
|
3
|
+
export const BUILTIN_AGENT_AVATAR_3D_MODELS = [
|
|
4
|
+
{
|
|
5
|
+
id: 'full_body',
|
|
6
|
+
filename: 'agent-avatar-full-body.glb',
|
|
7
|
+
storagePath: '/models/agent-avatar-full-body.glb',
|
|
8
|
+
label: '全身底模',
|
|
9
|
+
category: 'character',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
id: 'outfit_top_default',
|
|
13
|
+
filename: 'agent-avatar-outfit-top-default.glb',
|
|
14
|
+
storagePath: '/models/agent-avatar-outfit-top-default.glb',
|
|
15
|
+
label: '默认上装',
|
|
16
|
+
category: 'outfit',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: 'outfit_bottom_default',
|
|
20
|
+
filename: 'agent-avatar-outfit-bottom-default.glb',
|
|
21
|
+
storagePath: '/models/agent-avatar-outfit-bottom-default.glb',
|
|
22
|
+
label: '默认下装',
|
|
23
|
+
category: 'outfit',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'outfit_shoes_default',
|
|
27
|
+
filename: 'agent-avatar-outfit-shoes-default.glb',
|
|
28
|
+
storagePath: '/models/agent-avatar-outfit-shoes-default.glb',
|
|
29
|
+
label: '默认鞋靴',
|
|
30
|
+
category: 'outfit',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 'headwear',
|
|
34
|
+
filename: 'agent-avatar-headwear.glb',
|
|
35
|
+
storagePath: '/models/agent-avatar-headwear.glb',
|
|
36
|
+
label: '头饰',
|
|
37
|
+
category: 'accessory',
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
export function hasAgentAvatar3dDefaultModel() {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
export function getBuiltinAgentAvatar3dModelById(id) {
|
|
44
|
+
return BUILTIN_AGENT_AVATAR_3D_MODELS.find((m) => m.id === id);
|
|
45
|
+
}
|
|
46
|
+
export function resolveBuiltinAgentAvatar3dStoragePath(url) {
|
|
47
|
+
const u = url.trim().toLowerCase();
|
|
48
|
+
if (!u)
|
|
49
|
+
return undefined;
|
|
50
|
+
for (const m of BUILTIN_AGENT_AVATAR_3D_MODELS) {
|
|
51
|
+
const fn = m.filename.toLowerCase();
|
|
52
|
+
const path = m.storagePath.toLowerCase();
|
|
53
|
+
if (u.includes(fn) || u.endsWith(path) || u === path)
|
|
54
|
+
return m.storagePath;
|
|
55
|
+
}
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
export function isBuiltinAgentAvatar3dModelUrl(url) {
|
|
59
|
+
const u = url.trim();
|
|
60
|
+
if (!u)
|
|
61
|
+
return true;
|
|
62
|
+
return resolveBuiltinAgentAvatar3dStoragePath(u) !== undefined;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=agentAvatar3d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentAvatar3d.js","sourceRoot":"","sources":["../../src/constants/agentAvatar3d.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kCAAkC,GAAG,oCAAoC,CAAA;AACtF,MAAM,CAAC,MAAM,iCAAiC,GAAG,kCAAkC,CAAA;AAYnF,MAAM,CAAC,MAAM,8BAA8B,GAAoC;IAC7E;QACE,EAAE,EAAE,WAAW;QACf,QAAQ,EAAE,4BAA4B;QACtC,WAAW,EAAE,oCAAoC;QACjD,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,WAAW;KACtB;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,QAAQ,EAAE,qCAAqC;QAC/C,WAAW,EAAE,6CAA6C;QAC1D,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,EAAE,EAAE,uBAAuB;QAC3B,QAAQ,EAAE,wCAAwC;QAClD,WAAW,EAAE,gDAAgD;QAC7D,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,QAAQ,EAAE,uCAAuC;QACjD,WAAW,EAAE,+CAA+C;QAC5D,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,EAAE,EAAE,UAAU;QACd,QAAQ,EAAE,2BAA2B;QACrC,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,WAAW;KACtB;CACF,CAAA;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,EAAU;IAEV,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AAChE,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,GAAW;IAChE,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAClC,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IACxB,KAAK,MAAM,CAAC,IAAI,8BAA8B,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QACnC,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAA;QACxC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC,WAAW,CAAA;IAC5E,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAAW;IACxD,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IACpB,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,OAAO,sCAAsC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAA;AAChE,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare const AVATAR3D_MODULAR_SYSTEM_VERSION: "v1";
|
|
2
|
+
export type Avatar3dModularSystemVersion = typeof AVATAR3D_MODULAR_SYSTEM_VERSION;
|
|
3
|
+
export declare const AVATAR3D_STANDARD_SKELETON_PROFILE: "rpm_mixamo";
|
|
4
|
+
export type Avatar3dSkeletonProfile = typeof AVATAR3D_STANDARD_SKELETON_PROFILE;
|
|
5
|
+
export type Avatar3dModularSlotId = 'hair' | 'top' | 'bottom' | 'shoes' | 'gloves' | 'headwear' | 'faceAccessory';
|
|
6
|
+
export type Avatar3dModularAttachMode = 'skinned_merge' | 'head_attach' | 'root_attach';
|
|
7
|
+
export declare const AVATAR3D_MODULAR_SLOT_ORDER: Avatar3dModularSlotId[];
|
|
8
|
+
export declare const AVATAR3D_MODULAR_SLOT_LABELS: Record<Avatar3dModularSlotId, string>;
|
|
9
|
+
export interface Avatar3dModularBasePartMeta {
|
|
10
|
+
id: string;
|
|
11
|
+
filename: string;
|
|
12
|
+
storagePath: string;
|
|
13
|
+
label: string;
|
|
14
|
+
skeletonProfile: Avatar3dSkeletonProfile;
|
|
15
|
+
supportsFaceMorph: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface Avatar3dModularSlotPartMeta {
|
|
18
|
+
id: string;
|
|
19
|
+
slot: Avatar3dModularSlotId;
|
|
20
|
+
filename: string;
|
|
21
|
+
storagePath: string;
|
|
22
|
+
label: string;
|
|
23
|
+
skeletonProfile: Avatar3dSkeletonProfile;
|
|
24
|
+
attachMode: Avatar3dModularAttachMode;
|
|
25
|
+
hideBaseMeshHints?: string[];
|
|
26
|
+
}
|
|
27
|
+
export declare const DEFAULT_AVATAR3D_MODULAR_BASE_PART_ID = "base_full_body";
|
|
28
|
+
export declare const AVATAR3D_MODULAR_BASE_PARTS: Avatar3dModularBasePartMeta[];
|
|
29
|
+
export declare const AVATAR3D_MODULAR_SLOT_PARTS: Avatar3dModularSlotPartMeta[];
|
|
30
|
+
export declare function getAvatar3dModularBasePartById(id: string): Avatar3dModularBasePartMeta | undefined;
|
|
31
|
+
export declare function getAvatar3dModularSlotPartById(id: string): Avatar3dModularSlotPartMeta | undefined;
|
|
32
|
+
export declare function listAvatar3dModularSlotPartsForProfile(_profile: Avatar3dSkeletonProfile, slot?: Avatar3dModularSlotId): Avatar3dModularSlotPartMeta[];
|
|
33
|
+
export declare function listActiveModularSlotIds(): Avatar3dModularSlotId[];
|
|
34
|
+
export declare function normalizeModularBasePartId(basePartId: string): string;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export const AVATAR3D_MODULAR_SYSTEM_VERSION = 'v1';
|
|
2
|
+
export const AVATAR3D_STANDARD_SKELETON_PROFILE = 'rpm_mixamo';
|
|
3
|
+
export const AVATAR3D_MODULAR_SLOT_ORDER = [
|
|
4
|
+
'hair',
|
|
5
|
+
'top',
|
|
6
|
+
'bottom',
|
|
7
|
+
'shoes',
|
|
8
|
+
'gloves',
|
|
9
|
+
'headwear',
|
|
10
|
+
'faceAccessory',
|
|
11
|
+
];
|
|
12
|
+
export const AVATAR3D_MODULAR_SLOT_LABELS = {
|
|
13
|
+
hair: '发型',
|
|
14
|
+
top: '上装',
|
|
15
|
+
bottom: '下装',
|
|
16
|
+
shoes: '鞋靴',
|
|
17
|
+
gloves: '手套',
|
|
18
|
+
headwear: '头饰',
|
|
19
|
+
faceAccessory: '面部配饰',
|
|
20
|
+
};
|
|
21
|
+
export const DEFAULT_AVATAR3D_MODULAR_BASE_PART_ID = 'base_full_body';
|
|
22
|
+
export const AVATAR3D_MODULAR_BASE_PARTS = [
|
|
23
|
+
{
|
|
24
|
+
id: 'base_full_body',
|
|
25
|
+
filename: 'agent-avatar-full-body.glb',
|
|
26
|
+
storagePath: '/models/agent-avatar-full-body.glb',
|
|
27
|
+
label: '全身底模',
|
|
28
|
+
skeletonProfile: AVATAR3D_STANDARD_SKELETON_PROFILE,
|
|
29
|
+
supportsFaceMorph: true,
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
export const AVATAR3D_MODULAR_SLOT_PARTS = [
|
|
33
|
+
{
|
|
34
|
+
id: 'slot_top_default',
|
|
35
|
+
slot: 'top',
|
|
36
|
+
filename: 'agent-avatar-outfit-top-default.glb',
|
|
37
|
+
storagePath: '/models/agent-avatar-outfit-top-default.glb',
|
|
38
|
+
label: '默认上装',
|
|
39
|
+
skeletonProfile: AVATAR3D_STANDARD_SKELETON_PROFILE,
|
|
40
|
+
attachMode: 'skinned_merge',
|
|
41
|
+
hideBaseMeshHints: ['Outfit_Top'],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'slot_bottom_default',
|
|
45
|
+
slot: 'bottom',
|
|
46
|
+
filename: 'agent-avatar-outfit-bottom-default.glb',
|
|
47
|
+
storagePath: '/models/agent-avatar-outfit-bottom-default.glb',
|
|
48
|
+
label: '默认下装',
|
|
49
|
+
skeletonProfile: AVATAR3D_STANDARD_SKELETON_PROFILE,
|
|
50
|
+
attachMode: 'skinned_merge',
|
|
51
|
+
hideBaseMeshHints: ['Outfit_Bottom'],
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: 'slot_shoes_default',
|
|
55
|
+
slot: 'shoes',
|
|
56
|
+
filename: 'agent-avatar-outfit-shoes-default.glb',
|
|
57
|
+
storagePath: '/models/agent-avatar-outfit-shoes-default.glb',
|
|
58
|
+
label: '默认鞋靴',
|
|
59
|
+
skeletonProfile: AVATAR3D_STANDARD_SKELETON_PROFILE,
|
|
60
|
+
attachMode: 'skinned_merge',
|
|
61
|
+
hideBaseMeshHints: ['Outfit_Footwear'],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 'slot_headwear_rpm',
|
|
65
|
+
slot: 'headwear',
|
|
66
|
+
filename: 'agent-avatar-headwear.glb',
|
|
67
|
+
storagePath: '/models/agent-avatar-headwear.glb',
|
|
68
|
+
label: '头饰',
|
|
69
|
+
skeletonProfile: AVATAR3D_STANDARD_SKELETON_PROFILE,
|
|
70
|
+
attachMode: 'head_attach',
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
export function getAvatar3dModularBasePartById(id) {
|
|
74
|
+
return AVATAR3D_MODULAR_BASE_PARTS.find((p) => p.id === id);
|
|
75
|
+
}
|
|
76
|
+
export function getAvatar3dModularSlotPartById(id) {
|
|
77
|
+
return AVATAR3D_MODULAR_SLOT_PARTS.find((p) => p.id === id);
|
|
78
|
+
}
|
|
79
|
+
export function listAvatar3dModularSlotPartsForProfile(_profile, slot) {
|
|
80
|
+
return AVATAR3D_MODULAR_SLOT_PARTS.filter((p) => !slot || p.slot === slot);
|
|
81
|
+
}
|
|
82
|
+
export function listActiveModularSlotIds() {
|
|
83
|
+
return AVATAR3D_MODULAR_SLOT_ORDER.filter((slotId) => AVATAR3D_MODULAR_SLOT_PARTS.some((p) => p.slot === slotId));
|
|
84
|
+
}
|
|
85
|
+
export function normalizeModularBasePartId(basePartId) {
|
|
86
|
+
const id = basePartId.trim();
|
|
87
|
+
const meta = getAvatar3dModularBasePartById(id);
|
|
88
|
+
if (meta && meta.skeletonProfile === AVATAR3D_STANDARD_SKELETON_PROFILE) {
|
|
89
|
+
return id;
|
|
90
|
+
}
|
|
91
|
+
return DEFAULT_AVATAR3D_MODULAR_BASE_PART_ID;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=agentAvatar3dModular.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentAvatar3dModular.js","sourceRoot":"","sources":["../../src/constants/agentAvatar3dModular.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const AGENT_PRESENCE_3D_LABELS: {
|
|
2
|
+
readonly sectionTitle: "3D 形象";
|
|
3
|
+
readonly shortName: "3D 形象";
|
|
4
|
+
readonly customizeAction: "定制形象";
|
|
5
|
+
readonly customizeDialogTitle: "定制 3D 形象";
|
|
6
|
+
readonly faceTuneTitle: "捏脸微调";
|
|
7
|
+
readonly applyAction: "应用";
|
|
8
|
+
readonly notConfigured: "未配置 3D 形象";
|
|
9
|
+
readonly loadingDefault: "加载中…";
|
|
10
|
+
readonly randomFaceSummary: "随机捏脸";
|
|
11
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const AGENT_PRESENCE_3D_LABELS = {
|
|
2
|
+
sectionTitle: '3D 形象',
|
|
3
|
+
shortName: '3D 形象',
|
|
4
|
+
customizeAction: '定制形象',
|
|
5
|
+
customizeDialogTitle: '定制 3D 形象',
|
|
6
|
+
faceTuneTitle: '捏脸微调',
|
|
7
|
+
applyAction: '应用',
|
|
8
|
+
notConfigured: '未配置 3D 形象',
|
|
9
|
+
loadingDefault: '加载中…',
|
|
10
|
+
randomFaceSummary: '随机捏脸',
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=agentPresence3dLabels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentPresence3dLabels.js","sourceRoot":"","sources":["../../src/constants/agentPresence3dLabels.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,YAAY,EAAE,OAAO;IACrB,SAAS,EAAE,OAAO;IAClB,eAAe,EAAE,MAAM;IACvB,oBAAoB,EAAE,UAAU;IAChC,aAAa,EAAE,MAAM;IACrB,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,WAAW;IAC1B,cAAc,EAAE,MAAM;IACtB,iBAAiB,EAAE,MAAM;CACjB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const AI_ADMIN_API_PREFIX = "admin/ai";
|
|
2
|
+
export declare const AI_CHAT_API_PREFIX = "chat/ai";
|
|
3
|
+
export declare const LLM_GATEWAY_OPENAI_PREFIX = "v1";
|
|
4
|
+
export declare function adminAiApiPath(suffix?: string): string;
|
|
5
|
+
export declare function chatAiApiPath(suffix?: string): string;
|
|
6
|
+
export declare const CHAT_AI_SPA_PREFIX = "ai";
|
|
7
|
+
export declare function chatAiSpaPath(suffix?: string): string;
|
|
8
|
+
export declare function adminAiAgentSubResourcePathRegex(suffix: string): RegExp;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const AI_ADMIN_API_PREFIX = 'admin/ai';
|
|
2
|
+
export const AI_CHAT_API_PREFIX = 'chat/ai';
|
|
3
|
+
export const LLM_GATEWAY_OPENAI_PREFIX = 'v1';
|
|
4
|
+
export function adminAiApiPath(suffix = '') {
|
|
5
|
+
const s = String(suffix ?? '').replace(/^\//, '');
|
|
6
|
+
return s ? `/${AI_ADMIN_API_PREFIX}/${s}` : `/${AI_ADMIN_API_PREFIX}`;
|
|
7
|
+
}
|
|
8
|
+
export function chatAiApiPath(suffix = '') {
|
|
9
|
+
const s = String(suffix ?? '').replace(/^\//, '');
|
|
10
|
+
return s ? `/${AI_CHAT_API_PREFIX}/${s}` : `/${AI_CHAT_API_PREFIX}`;
|
|
11
|
+
}
|
|
12
|
+
export const CHAT_AI_SPA_PREFIX = 'ai';
|
|
13
|
+
export function chatAiSpaPath(suffix = '') {
|
|
14
|
+
const s = String(suffix ?? '').replace(/^\//, '');
|
|
15
|
+
return s ? `/${CHAT_AI_SPA_PREFIX}/${s}` : `/${CHAT_AI_SPA_PREFIX}`;
|
|
16
|
+
}
|
|
17
|
+
export function adminAiAgentSubResourcePathRegex(suffix) {
|
|
18
|
+
const seg = String(suffix ?? '')
|
|
19
|
+
.replace(/^\//, '')
|
|
20
|
+
.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
21
|
+
return new RegExp(`^/${AI_ADMIN_API_PREFIX}/agents/[^/]+/${seg}$`);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=aiApiRoutes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aiApiRoutes.js","sourceRoot":"","sources":["../../src/constants/aiApiRoutes.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAA;AAG7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAG3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAA;AAE7C,MAAM,UAAU,cAAc,CAAC,MAAM,GAAG,EAAE;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACjD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,mBAAmB,EAAE,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAM,GAAG,EAAE;IACvC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACjD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAE,CAAA;AACrE,CAAC;AAKD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAEtC,MAAM,UAAU,aAAa,CAAC,MAAM,GAAG,EAAE;IACvC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACjD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAE,CAAA;AACrE,CAAC;AAGD,MAAM,UAAU,gCAAgC,CAAC,MAAc;IAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;SAC7B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;IACzC,OAAO,IAAI,MAAM,CAAC,KAAK,mBAAmB,iBAAiB,GAAG,GAAG,CAAC,CAAA;AACpE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type ArkitMorphDirectionSpec = {
|
|
2
|
+
positive?: string[];
|
|
3
|
+
negative?: string[];
|
|
4
|
+
};
|
|
5
|
+
export declare const ARKIT_CATALOG_MORPH_SPECS: Record<string, ArkitMorphDirectionSpec>;
|
|
6
|
+
export declare function isArkitBlendshapeModel(modelMorphNames: string[]): boolean;
|
|
7
|
+
export declare function resolveMorphNamesInModel(templates: string[], modelMorphNames: string[]): string[];
|
|
8
|
+
export declare function resolveArkitCatalogMorphNames(catalogId: string, modelMorphNames: string[]): {
|
|
9
|
+
positive: string[];
|
|
10
|
+
negative: string[];
|
|
11
|
+
};
|
|
12
|
+
export declare function isArkitMorphCatalogIdBound(catalogId: string, modelMorphNames: string[]): boolean;
|
|
13
|
+
export declare function morphSliderToArkitInfluence(v: number): number;
|
|
14
|
+
export declare function morphSliderToSymmetricInfluence(v: number): number;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
export const ARKIT_CATALOG_MORPH_SPECS = {
|
|
2
|
+
face_width: {
|
|
3
|
+
positive: ['cheekPuff'],
|
|
4
|
+
negative: ['jawLeft', 'jawRight'],
|
|
5
|
+
},
|
|
6
|
+
face_round: {
|
|
7
|
+
positive: ['cheekPuff'],
|
|
8
|
+
negative: ['cheekSquintLeft', 'cheekSquintRight'],
|
|
9
|
+
},
|
|
10
|
+
jaw_width: {
|
|
11
|
+
positive: ['jawLeft', 'jawRight'],
|
|
12
|
+
negative: ['jawForward'],
|
|
13
|
+
},
|
|
14
|
+
chin_length: {
|
|
15
|
+
positive: ['jawForward'],
|
|
16
|
+
negative: ['jawOpen'],
|
|
17
|
+
},
|
|
18
|
+
cheek_height: {
|
|
19
|
+
positive: ['cheekSquintLeft', 'cheekSquintRight'],
|
|
20
|
+
negative: ['cheekPuff'],
|
|
21
|
+
},
|
|
22
|
+
face_height: {
|
|
23
|
+
positive: ['jawOpen'],
|
|
24
|
+
negative: ['jawForward'],
|
|
25
|
+
},
|
|
26
|
+
brow_thickness: {
|
|
27
|
+
positive: ['browDownLeft', 'browDownRight'],
|
|
28
|
+
negative: ['browOuterUpLeft', 'browOuterUpRight'],
|
|
29
|
+
},
|
|
30
|
+
brow_height: {
|
|
31
|
+
positive: ['browInnerUp'],
|
|
32
|
+
negative: ['browDownLeft', 'browDownRight'],
|
|
33
|
+
},
|
|
34
|
+
brow_spacing: {
|
|
35
|
+
positive: ['browOuterUpLeft', 'browOuterUpRight'],
|
|
36
|
+
negative: ['browDownLeft', 'browDownRight'],
|
|
37
|
+
},
|
|
38
|
+
eye_size: {
|
|
39
|
+
positive: ['eyeWideLeft', 'eyeWideRight'],
|
|
40
|
+
negative: ['eyeSquintLeft', 'eyeSquintRight'],
|
|
41
|
+
},
|
|
42
|
+
eye_spacing: {
|
|
43
|
+
positive: ['eyeLookOutLeft', 'eyeLookOutRight'],
|
|
44
|
+
negative: ['eyeLookInLeft', 'eyeLookInRight'],
|
|
45
|
+
},
|
|
46
|
+
eye_height: {
|
|
47
|
+
positive: ['eyeLookUpLeft', 'eyeLookUpRight'],
|
|
48
|
+
negative: ['eyeLookDownLeft', 'eyeLookDownRight'],
|
|
49
|
+
},
|
|
50
|
+
eye_corner: {
|
|
51
|
+
positive: ['eyeSquintLeft', 'eyeSquintRight'],
|
|
52
|
+
negative: ['eyeWideLeft', 'eyeWideRight'],
|
|
53
|
+
},
|
|
54
|
+
eye_depth: {
|
|
55
|
+
positive: ['eyeSquintLeft', 'eyeSquintRight'],
|
|
56
|
+
negative: ['eyeWideLeft', 'eyeWideRight'],
|
|
57
|
+
},
|
|
58
|
+
nose_size: {
|
|
59
|
+
positive: ['noseSneerLeft', 'noseSneerRight'],
|
|
60
|
+
negative: [],
|
|
61
|
+
},
|
|
62
|
+
nose_width: {
|
|
63
|
+
positive: ['mouthFunnel'],
|
|
64
|
+
negative: ['mouthPucker'],
|
|
65
|
+
},
|
|
66
|
+
nose_height: {
|
|
67
|
+
positive: ['noseSneerLeft', 'noseSneerRight'],
|
|
68
|
+
negative: [],
|
|
69
|
+
},
|
|
70
|
+
nose_bridge: {
|
|
71
|
+
positive: ['jawForward'],
|
|
72
|
+
negative: [],
|
|
73
|
+
},
|
|
74
|
+
mouth_width: {
|
|
75
|
+
positive: ['mouthStretchLeft', 'mouthStretchRight'],
|
|
76
|
+
negative: ['mouthPucker'],
|
|
77
|
+
},
|
|
78
|
+
mouth_size: {
|
|
79
|
+
positive: ['mouthFunnel', 'mouthPucker'],
|
|
80
|
+
negative: [],
|
|
81
|
+
},
|
|
82
|
+
lip_thickness: {
|
|
83
|
+
positive: ['mouthPucker'],
|
|
84
|
+
negative: ['mouthStretchLeft', 'mouthStretchRight'],
|
|
85
|
+
},
|
|
86
|
+
mouth_corner: {
|
|
87
|
+
positive: ['mouthSmileLeft', 'mouthSmileRight'],
|
|
88
|
+
negative: ['mouthFrownLeft', 'mouthFrownRight'],
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
export function isArkitBlendshapeModel(modelMorphNames) {
|
|
92
|
+
const lower = modelMorphNames.map((n) => n.toLowerCase());
|
|
93
|
+
return lower.some((n) => n.startsWith('brow') ||
|
|
94
|
+
n.startsWith('jaw') ||
|
|
95
|
+
n.startsWith('mouthsmile') ||
|
|
96
|
+
n === 'browinnerup' ||
|
|
97
|
+
n === 'jawopen');
|
|
98
|
+
}
|
|
99
|
+
function findMorphName(needle, modelMorphNames) {
|
|
100
|
+
const lowerNeedle = needle.toLowerCase();
|
|
101
|
+
const exact = modelMorphNames.find((n) => n.toLowerCase() === lowerNeedle);
|
|
102
|
+
if (exact)
|
|
103
|
+
return exact;
|
|
104
|
+
const partial = modelMorphNames.find((n) => n.toLowerCase().includes(lowerNeedle));
|
|
105
|
+
return partial ?? null;
|
|
106
|
+
}
|
|
107
|
+
export function resolveMorphNamesInModel(templates, modelMorphNames) {
|
|
108
|
+
const modelSet = new Set(modelMorphNames);
|
|
109
|
+
const out = new Set();
|
|
110
|
+
for (const template of templates) {
|
|
111
|
+
const hit = findMorphName(template, modelMorphNames);
|
|
112
|
+
if (hit)
|
|
113
|
+
out.add(hit);
|
|
114
|
+
const lower = template.toLowerCase();
|
|
115
|
+
if (lower.endsWith('left')) {
|
|
116
|
+
const rightTemplate = template.replace(/left$/i, 'Right');
|
|
117
|
+
const rightHit = findMorphName(rightTemplate, modelMorphNames);
|
|
118
|
+
if (rightHit)
|
|
119
|
+
out.add(rightHit);
|
|
120
|
+
}
|
|
121
|
+
else if (lower.endsWith('right')) {
|
|
122
|
+
const leftTemplate = template.replace(/right$/i, 'Left');
|
|
123
|
+
const leftHit = findMorphName(leftTemplate, modelMorphNames);
|
|
124
|
+
if (leftHit)
|
|
125
|
+
out.add(leftHit);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return [...out].filter((n) => modelSet.has(n));
|
|
129
|
+
}
|
|
130
|
+
export function resolveArkitCatalogMorphNames(catalogId, modelMorphNames) {
|
|
131
|
+
const spec = ARKIT_CATALOG_MORPH_SPECS[catalogId];
|
|
132
|
+
if (!spec)
|
|
133
|
+
return { positive: [], negative: [] };
|
|
134
|
+
return {
|
|
135
|
+
positive: resolveMorphNamesInModel(spec.positive ?? [], modelMorphNames),
|
|
136
|
+
negative: resolveMorphNamesInModel(spec.negative ?? [], modelMorphNames),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
export function isArkitMorphCatalogIdBound(catalogId, modelMorphNames) {
|
|
140
|
+
const { positive, negative } = resolveArkitCatalogMorphNames(catalogId, modelMorphNames);
|
|
141
|
+
return positive.length > 0 || negative.length > 0;
|
|
142
|
+
}
|
|
143
|
+
export function morphSliderToArkitInfluence(v) {
|
|
144
|
+
return Math.max(0, Math.min(1, v));
|
|
145
|
+
}
|
|
146
|
+
export function morphSliderToSymmetricInfluence(v) {
|
|
147
|
+
return (v + 1) / 2;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=agentAvatar3dArkitMorph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentAvatar3dArkitMorph.js","sourceRoot":"","sources":["../../../src/functions/ai/agentAvatar3dArkitMorph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export type Avatar3dEditorMode = 'procedural' | 'glb_custom' | 'glb_monolithic';
|
|
2
|
+
export interface Avatar3dColorCapabilities {
|
|
3
|
+
skin: boolean;
|
|
4
|
+
hair: boolean;
|
|
5
|
+
eye: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface Avatar3dMeshInventoryEntry {
|
|
8
|
+
meshName: string;
|
|
9
|
+
materialNames: string[];
|
|
10
|
+
hasTextureMap: boolean;
|
|
11
|
+
visible: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface Avatar3dCapabilities {
|
|
14
|
+
mode: Avatar3dEditorMode;
|
|
15
|
+
colors: Avatar3dColorCapabilities;
|
|
16
|
+
morphBoundCount: number;
|
|
17
|
+
morphTotal: number;
|
|
18
|
+
isArkit: boolean;
|
|
19
|
+
colorHint?: string;
|
|
20
|
+
morphHint?: string;
|
|
21
|
+
}
|
|
22
|
+
type ThreeLikeMaterial = {
|
|
23
|
+
name?: string;
|
|
24
|
+
map?: unknown;
|
|
25
|
+
};
|
|
26
|
+
type ThreeLikeMesh = {
|
|
27
|
+
isMesh?: boolean;
|
|
28
|
+
name?: string;
|
|
29
|
+
visible?: boolean;
|
|
30
|
+
material?: ThreeLikeMaterial | ThreeLikeMaterial[];
|
|
31
|
+
};
|
|
32
|
+
type ThreeLikeObject = {
|
|
33
|
+
traverse: (fn: (obj: ThreeLikeMesh) => void) => void;
|
|
34
|
+
};
|
|
35
|
+
export declare function listAvatar3dMeshInventory(root: ThreeLikeObject | null | undefined): Avatar3dMeshInventoryEntry[];
|
|
36
|
+
export declare function isMonolithicTextureAvatar(inventory: Avatar3dMeshInventoryEntry[]): boolean;
|
|
37
|
+
export declare function proceduralAvatar3dCapabilities(): Avatar3dCapabilities;
|
|
38
|
+
export declare function deriveAvatar3dCapabilities(input: {
|
|
39
|
+
useProcedural: boolean;
|
|
40
|
+
inventory: Avatar3dMeshInventoryEntry[];
|
|
41
|
+
morphNames: string[];
|
|
42
|
+
}): Avatar3dCapabilities;
|
|
43
|
+
export declare function hasAnyAvatar3dColorCapability(colors: Avatar3dColorCapabilities): boolean;
|
|
44
|
+
export {};
|