@kb-labs/agent-entry 2.119.0 → 2.119.1-canary.b53bbee1d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/diff.js.map +1 -1
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/quality-report.js.map +1 -1
- package/dist/cli/commands/rollback.js.map +1 -1
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/trace-context.js.map +1 -1
- package/dist/cli/commands/trace-diagnose.js.map +1 -1
- package/dist/cli/commands/trace-event-normalizer.js.map +1 -1
- package/dist/cli/commands/trace-filter.js.map +1 -1
- package/dist/cli/commands/trace-iteration.js.map +1 -1
- package/dist/cli/commands/trace-stats.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest.js.map +1 -1
- package/dist/manifest.json +685 -0
- package/dist/rest/handlers/approve-handler.js.map +1 -1
- package/dist/rest/handlers/approve-session-plan-handler.js.map +1 -1
- package/dist/rest/handlers/correct-handler.js.map +1 -1
- package/dist/rest/handlers/create-session-handler.js.map +1 -1
- package/dist/rest/handlers/execute-session-plan-handler.js.map +1 -1
- package/dist/rest/handlers/generate-spec-handler.js.map +1 -1
- package/dist/rest/handlers/get-file-diff-handler.js.map +1 -1
- package/dist/rest/handlers/get-session-handler.js.map +1 -1
- package/dist/rest/handlers/get-session-plan-handler.js.map +1 -1
- package/dist/rest/handlers/get-session-turns-handler.js.map +1 -1
- package/dist/rest/handlers/get-spec-handler.js.map +1 -1
- package/dist/rest/handlers/list-file-changes-handler.js.map +1 -1
- package/dist/rest/handlers/list-sessions-handler.js.map +1 -1
- package/dist/rest/handlers/rollback-handler.js.map +1 -1
- package/dist/rest/handlers/run-handler.js.map +1 -1
- package/dist/rest/handlers/sessions-handler.js.map +1 -1
- package/dist/rest/handlers/status-handler.js.map +1 -1
- package/dist/rest/handlers/stop-handler.js.map +1 -1
- package/dist/widgets/117.js +32 -0
- package/dist/widgets/165.js +1 -0
- package/dist/widgets/326.js +1 -0
- package/dist/widgets/370.js +1 -0
- package/dist/widgets/405.js +1 -0
- package/dist/widgets/46.js +445 -0
- package/dist/widgets/50.js +1 -0
- package/dist/widgets/546.js +1 -0
- package/dist/widgets/648.js +1 -0
- package/dist/widgets/669.js +1 -0
- package/dist/widgets/707.js +1 -0
- package/dist/widgets/775.js +1 -0
- package/dist/widgets/78.js +1 -0
- package/dist/widgets/832.js +96 -0
- package/dist/widgets/875.js +25 -0
- package/dist/widgets/945.js +1 -0
- package/dist/widgets/968.js +9 -0
- package/dist/widgets/__federation_expose_AgentsPage.js +1 -0
- package/dist/widgets/mf-manifest.json +229 -0
- package/dist/widgets/mf-stats.json +256 -0
- package/dist/widgets/remoteEntry.js +7 -0
- package/dist/ws/session-stream-handler.js.map +1 -1
- package/package.json +14 -14
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
var agentPlugin;(()=>{var __webpack_modules__={820(e,t,r){"use strict";r.d(t,{get:()=>r.getContainer,init:()=>r.initContainer})},7616(e,t,r){"use strict";var o,n,a,i,s,l,c,u,f,d,p,h,m=r(7038),g=r.n(m);let y=[].filter(({plugin:e})=>e).map(({plugin:e,params:t})=>e(t)),b={},E;if((r.initializeSharingData||r.initializeExposesData)&&r.federation){let e=(e,t,r)=>{e&&e[t]&&(e[t]=r)},t=(e,t,r)=>{var o,n;let a=r();Array.isArray(a)?(null!=e[t]||(e[t]=[]),e[t].push(...a)):"object"==typeof a&&null!==a&&(null!=e[t]||(e[t]={}),Object.assign(e[t],a))},m=(e,t,r)=>{var o;null!=e[t]||(e[t]=r())},S=null!=(o=null==(l=r.remotesLoadingData)?void 0:l.chunkMapping)?o:{},_=null!=(n=null==(c=r.remotesLoadingData)?void 0:c.moduleIdToRemoteDataMapping)?n:{},R=null!=(a=null==(u=r.initializeSharingData)?void 0:u.scopeToSharingDataMapping)?a:{},I=null!=(i=null==(f=r.consumesLoadingData)?void 0:f.chunkMapping)?i:{},M=null!=(s=null==(d=r.consumesLoadingData)?void 0:d.moduleIdToConsumeDataMapping)?s:{},T={},N=[],v={},k=null==(p=r.initializeExposesData)?void 0:p.shareScope;for(let e in g())r.federation[e]=g()[e];m(r.federation,"libraryType",()=>"var"),m(r.federation,"sharedFallback",()=>E);let O=r.federation.sharedFallback;m(r.federation,"consumesLoadingModuleToHandlerMapping",()=>{let e={};for(let[o,n]of Object.entries(M)){var t;e[o]={getter:O?null==(t=r.federation.bundlerRuntime)?void 0:t.getSharedFallbackGetter({shareKey:n.shareKey,factory:n.fallback,webpackRequire:r,libraryType:r.federation.libraryType}):n.fallback,treeShakingGetter:O?n.fallback:void 0,shareInfo:{shareConfig:{fixedDependencies:!1,requiredVersion:n.requiredVersion,strictVersion:n.strictVersion,singleton:n.singleton,eager:n.eager},scope:[n.shareScope]},shareKey:n.shareKey,treeShaking:r.federation.sharedFallback?{get:n.fallback,mode:n.treeShakingMode}:void 0}}return e}),m(r.federation,"initOptions",()=>({})),m(r.federation.initOptions,"name",()=>"agentPlugin"),m(r.federation.initOptions,"shareStrategy",()=>"version-first"),m(r.federation.initOptions,"shared",()=>{let e={};for(let[t,r]of Object.entries(R))for(let o of r)if("object"==typeof o&&null!==o){let{name:r,version:n,factory:a,eager:i,singleton:s,requiredVersion:l,strictVersion:c,treeShakingMode:u}=o,f={},d=function(e){return void 0!==e};d(s)&&(f.singleton=s),d(l)&&(f.requiredVersion=l),d(i)&&(f.eager=i),d(c)&&(f.strictVersion=c);let p={version:n,scope:[t],shareConfig:f,get:a,treeShaking:u?{mode:u}:void 0};e[r]?e[r].push(p):e[r]=[p]}return e}),t(r.federation.initOptions,"remotes",()=>Object.values(b).flat().filter(e=>"script"===e.externalType)),t(r.federation.initOptions,"plugins",()=>y),m(r.federation,"bundlerRuntimeOptions",()=>({})),m(r.federation.bundlerRuntimeOptions,"remotes",()=>({})),m(r.federation.bundlerRuntimeOptions.remotes,"chunkMapping",()=>S),m(r.federation.bundlerRuntimeOptions.remotes,"remoteInfos",()=>b),m(r.federation.bundlerRuntimeOptions.remotes,"idToExternalAndNameMapping",()=>{let e={};for(let[t,r]of Object.entries(_))e[t]=[r.shareScope,r.name,r.externalModuleId,r.remoteName];return e}),m(r.federation.bundlerRuntimeOptions.remotes,"webpackRequire",()=>r),t(r.federation.bundlerRuntimeOptions.remotes,"idToRemoteMap",()=>{let e={};for(let[t,r]of Object.entries(_)){let o=b[r.remoteName];o&&(e[t]=o)}return e}),e(r,"S",r.federation.bundlerRuntime.S),r.federation.attachShareScopeMap&&r.federation.attachShareScopeMap(r),e(r.f,"remotes",(e,t)=>r.federation.bundlerRuntime.remotes({chunkId:e,promises:t,chunkMapping:S,idToExternalAndNameMapping:r.federation.bundlerRuntimeOptions.remotes.idToExternalAndNameMapping,idToRemoteMap:r.federation.bundlerRuntimeOptions.remotes.idToRemoteMap,webpackRequire:r})),e(r.f,"consumes",(e,t)=>r.federation.bundlerRuntime.consumes({chunkId:e,promises:t,chunkMapping:I,moduleToHandlerMapping:r.federation.consumesLoadingModuleToHandlerMapping,installedModules:T,webpackRequire:r})),e(r,"I",(e,t)=>r.federation.bundlerRuntime.I({shareScopeName:e,initScope:t,initPromises:N,initTokens:v,webpackRequire:r})),e(r,"initContainer",(e,t,o)=>r.federation.bundlerRuntime.initContainerEntry({shareScope:e,initScope:t,remoteEntryInitOptions:o,shareScopeKey:k,webpackRequire:r})),e(r,"getContainer",(e,t)=>{var o=r.initializeExposesData.moduleMap;return r.R=t,t=Object.prototype.hasOwnProperty.call(o,e)?o[e]():Promise.resolve().then(()=>{throw Error('Module "'+e+'" does not exist in container.')}),r.R=void 0,t}),r.federation.instance=r.federation.bundlerRuntime.init({webpackRequire:r}),(null==(h=r.consumesLoadingData)?void 0:h.initialConsumes)&&r.federation.bundlerRuntime.installInitialConsumes({webpackRequire:r,installedModules:T,initialConsumes:r.consumesLoadingData.initialConsumes,moduleToHandlerMapping:r.federation.consumesLoadingModuleToHandlerMapping})}},1310(e,t,r){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});let o=r(3253);t.logAndReport=function(e,t,r,n,a,i){return n(o.getShortErrorMsg(e,t,r,a))}},789(e,t,r){let o=r(7789),n={[o.RUNTIME_001]:"Failed to get remoteEntry exports.",[o.RUNTIME_002]:'The remote entry interface does not contain "init"',[o.RUNTIME_003]:"Failed to get manifest.",[o.RUNTIME_004]:"Failed to locate remote.",[o.RUNTIME_005]:"Invalid loadShareSync function call from bundler runtime",[o.RUNTIME_006]:"Invalid loadShareSync function call from runtime",[o.RUNTIME_007]:"Failed to get remote snapshot.",[o.RUNTIME_008]:"Failed to load script resources.",[o.RUNTIME_009]:"Please call createInstance first.",[o.RUNTIME_010]:'The name option cannot be changed after initialization. If you want to create a new instance with a different name, please use "createInstance" api.',[o.RUNTIME_011]:"The remoteEntry URL is missing from the remote snapshot.",[o.RUNTIME_012]:'The getter for the shared module is not a function. This may be caused by setting "shared.import: false" without the host providing the corresponding lib.'},a={[o.TYPE_001]:"Failed to generate type declaration. Execute the below cmd to reproduce and fix the error."},i={[o.BUILD_001]:"Failed to find expose module.",[o.BUILD_002]:"PublicPath is required in prod mode."},s={...n,...a,...i};t.buildDescMap=i,t.errorDescMap=s,t.runtimeDescMap=n,t.typeDescMap=a},7789(e,t){t.BUILD_001="BUILD-001",t.BUILD_002="BUILD-002",t.RUNTIME_001="RUNTIME-001",t.RUNTIME_002="RUNTIME-002",t.RUNTIME_003="RUNTIME-003",t.RUNTIME_004="RUNTIME-004",t.RUNTIME_005="RUNTIME-005",t.RUNTIME_006="RUNTIME-006",t.RUNTIME_007="RUNTIME-007",t.RUNTIME_008="RUNTIME-008",t.RUNTIME_009="RUNTIME-009",t.RUNTIME_010="RUNTIME-010",t.RUNTIME_011="RUNTIME-011",t.RUNTIME_012="RUNTIME-012",t.TYPE_001="TYPE-001"},3253(e,t){t.getShortErrorMsg=(e,t,r,o)=>{let n=[`${[t[e]]} #${e}`];return r&&n.push(`args: ${JSON.stringify(r)}`),n.push(`View the docs to see how to solve: https://module-federation.io/guide/troubleshooting/${e.split("-")[0].toLowerCase()}#${e.toLowerCase()}`),o&&n.push(`Original Error Message:
|
|
2
|
+
${o}`),n.join("\n")}},6062(e,t,r){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});let o=r(7789),n=r(3253),a=r(789);t.BUILD_001=o.BUILD_001,t.BUILD_002=o.BUILD_002,t.RUNTIME_001=o.RUNTIME_001,t.RUNTIME_002=o.RUNTIME_002,t.RUNTIME_003=o.RUNTIME_003,t.RUNTIME_004=o.RUNTIME_004,t.RUNTIME_005=o.RUNTIME_005,t.RUNTIME_006=o.RUNTIME_006,t.RUNTIME_007=o.RUNTIME_007,t.RUNTIME_008=o.RUNTIME_008,t.RUNTIME_009=o.RUNTIME_009,t.RUNTIME_010=o.RUNTIME_010,t.RUNTIME_011=o.RUNTIME_011,t.RUNTIME_012=o.RUNTIME_012,t.TYPE_001=o.TYPE_001,t.buildDescMap=a.buildDescMap,t.errorDescMap=a.errorDescMap,t.getShortErrorMsg=n.getShortErrorMsg,t.runtimeDescMap=a.runtimeDescMap,t.typeDescMap=a.typeDescMap},6890(e,t){var r=Object.defineProperty;t.__exportAll=(e,t)=>{let o={};for(var n in e)r(o,n,{get:e[n],enumerable:!0});return t||r(o,Symbol.toStringTag,{value:"Module"}),o}},2012(e,t){t.DEFAULT_REMOTE_TYPE="global",t.DEFAULT_SCOPE="default"},589(e,t,r){let o=r(4110),n=r(2012),a=r(1839),i=r(9915),s=r(3251),l=r(3226);r(4446);let c=r(4281),u=r(1065),f=r(7782),d=r(4319),p=r(973),h=r(5331);r(7603);let m=r(2214),g=r(220),y=r(814),b=r(2350),E=r(1475),S=r(6654),_=r(6062);t.ModuleFederation=class{constructor(e){this.hooks=new h.PluginSystem({beforeInit:new d.SyncWaterfallHook("beforeInit"),init:new u.SyncHook,beforeInitContainer:new p.AsyncWaterfallHook("beforeInitContainer"),initContainer:new p.AsyncWaterfallHook("initContainer")}),this.version="2.3.3",this.moduleCache=new Map,this.loaderHook=new h.PluginSystem({getModuleInfo:new u.SyncHook,createScript:new u.SyncHook,createLink:new u.SyncHook,fetch:new f.AsyncHook,loadEntryError:new f.AsyncHook,getModuleFactory:new f.AsyncHook}),this.bridgeHook=new h.PluginSystem({beforeBridgeRender:new u.SyncHook,afterBridgeRender:new u.SyncHook,beforeBridgeDestroy:new u.SyncHook,afterBridgeDestroy:new u.SyncHook});let t=[m.snapshotPlugin(),g.generatePreloadAssetsPlugin()],r={id:i.getBuilderId(),name:e.name,plugins:t,remotes:[],shared:{},inBrowser:S.isBrowserEnvValue};this.name=e.name,this.options=r,this.snapshotHandler=new y.SnapshotHandler(this),this.sharedHandler=new b.SharedHandler(this),this.remoteHandler=new E.RemoteHandler(this),this.shareScopeMap=this.sharedHandler.shareScopeMap,this.registerPlugins([...r.plugins,...e.plugins||[]]),this.options=this.formatOptions(r,e)}initOptions(e){e.name&&e.name!==this.options.name&&o.error((0,_.getShortErrorMsg)(_.RUNTIME_010,_.runtimeDescMap)),this.registerPlugins(e.plugins);let t=this.formatOptions(this.options,e);return this.options=t,t}async loadShare(e,t){return this.sharedHandler.loadShare(e,t)}loadShareSync(e,t){return this.sharedHandler.loadShareSync(e,t)}initializeSharing(e=n.DEFAULT_SCOPE,t){return this.sharedHandler.initializeSharing(e,t)}initRawContainer(e,t,r){let o=l.getRemoteInfo({name:e,entry:t}),n=new c.Module({host:this,remoteInfo:o});return n.remoteEntryExports=r,this.moduleCache.set(e,n),n}async loadRemote(e,t){return this.remoteHandler.loadRemote(e,t)}async preloadRemote(e){return this.remoteHandler.preloadRemote(e)}initShareScopeMap(e,t,r={}){this.sharedHandler.initShareScopeMap(e,t,r)}formatOptions(e,t){let{allShareInfos:r}=a.formatShareConfigs(e,t),{userOptions:o,options:n}=this.hooks.lifecycle.beforeInit.emit({origin:this,userOptions:t,options:e,shareInfo:r}),i=this.remoteHandler.formatAndRegisterRemote(n,o),{allShareInfos:s}=this.sharedHandler.registerShared(n,o),l=[...n.plugins];o.plugins&&o.plugins.forEach(e=>{l.includes(e)||l.push(e)});let c={...e,...t,plugins:l,remotes:i,shared:s};return this.hooks.lifecycle.init.emit({origin:this,options:c}),c}registerPlugins(e){let t=s.registerPlugins(e,this);this.options.plugins=this.options.plugins.reduce((e,t)=>(t&&e&&!e.find(e=>e.name===t.name)&&e.push(t),e),t||[])}registerRemotes(e,t){return this.remoteHandler.registerRemotes(e,t)}registerShared(e){this.sharedHandler.registerShared(this.options,{...this.options,shared:e})}}},9653(e,t,r){let o=r(4110),n=r(4328),a=r(6654),i="object"==typeof globalThis?globalThis:window,s=(()=>{try{return document.defaultView}catch{return i}})();function l(e,t,r){Object.defineProperty(e,t,{value:r,configurable:!1,writable:!0})}function c(e,t){return Object.hasOwnProperty.call(e,t)}c(i,"__GLOBAL_LOADING_REMOTE_ENTRY__")||l(i,"__GLOBAL_LOADING_REMOTE_ENTRY__",{});let u=i.__GLOBAL_LOADING_REMOTE_ENTRY__;function f(e){c(e,"__VMOK__")&&!c(e,"__FEDERATION__")&&l(e,"__FEDERATION__",e.__VMOK__),c(e,"__FEDERATION__")||(l(e,"__FEDERATION__",{__GLOBAL_PLUGIN__:[],__INSTANCES__:[],moduleInfo:{},__SHARE__:{},__MANIFEST_LOADING__:{},__PRELOADED_MAP__:new Map}),l(e,"__VMOK__",e.__FEDERATION__)),e.__FEDERATION__.__GLOBAL_PLUGIN__??=[],e.__FEDERATION__.__INSTANCES__??=[],e.__FEDERATION__.moduleInfo??={},e.__FEDERATION__.__SHARE__??={},e.__FEDERATION__.__MANIFEST_LOADING__??={},e.__FEDERATION__.__PRELOADED_MAP__??=new Map}function d(e,t){if("string"==typeof t)if(e[t])return{value:e[t],key:t};else{for(let r of Object.keys(e)){let[o,n]=r.split(":"),a=`${o}:${t}`,i=e[a];if(i)return{value:i,key:a}}return{value:void 0,key:t}}o.error(`getInfoWithoutType: "key" must be a string, got ${typeof t} (${JSON.stringify(t)}).`)}f(i),f(s);let p=(e,t)=>{let r=d(t,n.getFMId(e)).value;if(r&&!r.version&&"version"in e&&e.version&&(r.version=e.version),r)return r;if("version"in e&&e.version){let{version:t,...r}=e,o=n.getFMId(r),a=d(s.__FEDERATION__.moduleInfo,o).value;if(a?.version===t)return a}};t.CurrentGlobal=i,t.Global=s,t.addGlobalSnapshot=e=>(s.__FEDERATION__.moduleInfo={...s.__FEDERATION__.moduleInfo,...e},()=>{for(let t of Object.keys(e))delete s.__FEDERATION__.moduleInfo[t]}),t.getGlobalFederationConstructor=function(){return i.__FEDERATION__.__DEBUG_CONSTRUCTOR__},t.getGlobalHostPlugins=()=>s.__FEDERATION__.__GLOBAL_PLUGIN__,t.getGlobalSnapshot=()=>s.__FEDERATION__.moduleInfo,t.getGlobalSnapshotInfoByModuleInfo=e=>p(e,s.__FEDERATION__.moduleInfo),t.getInfoWithoutType=d,t.getPreloaded=e=>i.__FEDERATION__.__PRELOADED_MAP__.get(e),t.getRemoteEntryExports=(e,t)=>{let r=t||`__FEDERATION_${e}:custom__`;return{remoteEntryKey:r,entryExports:i[r]}},t.getTargetSnapshotInfoByModuleInfo=p,t.globalLoading=u,t.nativeGlobal=s,t.registerGlobalPlugins=e=>{let{__GLOBAL_PLUGIN__:t}=s.__FEDERATION__;e.forEach(e=>{-1===t.findIndex(t=>t.name===e.name)?t.push(e):o.warn(`The plugin ${e.name} has been registered.`)})},t.resetFederationGlobalInfo=function(){i.__FEDERATION__.__GLOBAL_PLUGIN__=[],i.__FEDERATION__.__INSTANCES__=[],i.__FEDERATION__.moduleInfo={},i.__FEDERATION__.__SHARE__={},i.__FEDERATION__.__MANIFEST_LOADING__={},Object.keys(u).forEach(e=>{delete u[e]})},t.setGlobalFederationConstructor=function(e,t=(0,a.isDebugMode)()){t&&(i.__FEDERATION__.__DEBUG_CONSTRUCTOR__=e,i.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__="2.3.3")},t.setGlobalFederationInstance=function(e){i.__FEDERATION__.__INSTANCES__.push(e)},t.setGlobalSnapshotInfoByModuleInfo=(e,t)=>{let r=n.getFMId(e);return s.__FEDERATION__.moduleInfo[r]=t,s.__FEDERATION__.moduleInfo},t.setPreloaded=e=>i.__FEDERATION__.__PRELOADED_MAP__.set(e,!0)},4747(e,t,r){let o=r(9653),n=r(1839),a=r(4653),i=r(3226);r(4446);let s=r(8725),l={getRegisteredShare:n.getRegisteredShare,getGlobalShareScope:n.getGlobalShareScope};t.default={global:{Global:o.Global,nativeGlobal:o.nativeGlobal,resetFederationGlobalInfo:o.resetFederationGlobalInfo,setGlobalFederationInstance:o.setGlobalFederationInstance,getGlobalFederationConstructor:o.getGlobalFederationConstructor,setGlobalFederationConstructor:o.setGlobalFederationConstructor,getInfoWithoutType:o.getInfoWithoutType,getGlobalSnapshot:o.getGlobalSnapshot,getTargetSnapshotInfoByModuleInfo:o.getTargetSnapshotInfoByModuleInfo,getGlobalSnapshotInfoByModuleInfo:o.getGlobalSnapshotInfoByModuleInfo,setGlobalSnapshotInfoByModuleInfo:o.setGlobalSnapshotInfoByModuleInfo,addGlobalSnapshot:o.addGlobalSnapshot,getRemoteEntryExports:o.getRemoteEntryExports,registerGlobalPlugins:o.registerGlobalPlugins,getGlobalHostPlugins:o.getGlobalHostPlugins,getPreloaded:o.getPreloaded,setPreloaded:o.setPreloaded},share:l,utils:{matchRemoteWithNameAndExpose:a.matchRemoteWithNameAndExpose,preloadAssets:s.preloadAssets,getRemoteInfo:i.getRemoteInfo}}},8340(e,t,r){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});let o=r(4110),n=r(4328),a=r(9653),i=r(3835),s=r(1839),l=r(4653),c=r(3226);r(4446);let u=r(4747),f=r(4281),d=r(589),p=r(9017),h=r(6654),m=u.default;t.CurrentGlobal=a.CurrentGlobal,t.Global=a.Global,t.Module=f.Module,t.ModuleFederation=d.ModuleFederation,t.addGlobalSnapshot=a.addGlobalSnapshot,t.assert=o.assert,t.error=o.error,t.getGlobalFederationConstructor=a.getGlobalFederationConstructor,t.getGlobalSnapshot=a.getGlobalSnapshot,t.getInfoWithoutType=a.getInfoWithoutType,t.getRegisteredShare=s.getRegisteredShare,t.getRemoteEntry=c.getRemoteEntry,t.getRemoteInfo=c.getRemoteInfo,t.helpers=m,t.isStaticResourcesEqual=n.isStaticResourcesEqual,Object.defineProperty(t,"loadScript",{enumerable:!0,get:function(){return h.loadScript}}),Object.defineProperty(t,"loadScriptNode",{enumerable:!0,get:function(){return h.loadScriptNode}}),t.matchRemoteWithNameAndExpose=l.matchRemoteWithNameAndExpose,t.registerGlobalPlugins=a.registerGlobalPlugins,t.resetFederationGlobalInfo=a.resetFederationGlobalInfo,t.safeWrapper=n.safeWrapper,t.satisfy=i.satisfy,t.setGlobalFederationConstructor=a.setGlobalFederationConstructor,t.setGlobalFederationInstance=a.setGlobalFederationInstance,Object.defineProperty(t,"types",{enumerable:!0,get:function(){return p.type_exports}})},4281(e,t,r){let o=r(4110),n=r(4328),a=r(3226),i=r(9587);r(4446);let s=r(6654),l=r(6062);t.Module=class{constructor({remoteInfo:e,host:t}){this.inited=!1,this.initing=!1,this.lib=void 0,this.remoteInfo=e,this.host=t}async getEntry(){if(this.remoteEntryExports)return this.remoteEntryExports;let e=await a.getRemoteEntry({origin:this.host,remoteInfo:this.remoteInfo,remoteEntryExports:this.remoteEntryExports});return o.assert(e,`remoteEntryExports is undefined
|
|
3
|
+
${(0,s.safeToString)(this.remoteInfo)}`),this.remoteEntryExports=e,this.remoteEntryExports}async init(e,t,r){let n=await this.getEntry();if(this.inited)return n;if(this.initPromise)return await this.initPromise,n;this.initing=!0,this.initPromise=(async()=>{var a,s;let c,u,{remoteEntryInitOptions:f,shareScope:d,initScope:p}=(a=this.remoteInfo,s=this.host.shareScopeMap,(c=Array.isArray(a.shareScope)?a.shareScope:[a.shareScope]).length||c.push("default"),c.forEach(e=>{s[e]||(s[e]={})}),Object.defineProperty(u={version:a.version||"",shareScopeKeys:Array.isArray(a.shareScope)?c:a.shareScope||"default"},"shareScopeMap",{value:s,enumerable:!1}),{remoteEntryInitOptions:u,shareScope:s[c[0]],initScope:r??[]}),h=await this.host.hooks.lifecycle.beforeInitContainer.emit({shareScope:d,remoteEntryInitOptions:f,initScope:p,remoteInfo:this.remoteInfo,origin:this.host});void 0===n?.init&&o.error(l.RUNTIME_002,l.runtimeDescMap,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName},void 0,i.optionsToMFContext(this.host.options)),await n.init(h.shareScope,h.initScope,h.remoteEntryInitOptions),await this.host.hooks.lifecycle.initContainer.emit({...h,id:e,remoteSnapshot:t,remoteEntryExports:n}),this.inited=!0})();try{await this.initPromise}finally{this.initing=!1,this.initPromise=void 0}return n}async get(e,t,r,a){let i,{loadFactory:s=!0}=r||{loadFactory:!0},l=await this.init(e,a);this.lib=l,(i=await this.host.loaderHook.lifecycle.getModuleFactory.emit({remoteEntryExports:l,expose:t,moduleInfo:this.remoteInfo}))||(i=await l.get(t)),o.assert(i,`${n.getFMId(this.remoteInfo)} remote don't export ${t}.`);let c=n.processModuleAlias(this.remoteInfo.name,t),u=this.wraperFactory(i,c);return s?await u():u}wraperFactory(e,t){function r(e,t){e&&"object"==typeof e&&Object.isExtensible(e)&&!Object.getOwnPropertyDescriptor(e,Symbol.for("mf_module_id"))&&Object.defineProperty(e,Symbol.for("mf_module_id"),{value:t,enumerable:!1})}return e instanceof Promise?async()=>{let o=await e();return r(o,t),o}:()=>{let o=e();return r(o,t),o}}}},220(e,t,r){let o=r(4328),n=r(9653),a=r(1839);r(4446);let i=r(8725),s=r(2214),l=r(6654),c=(e,t)=>document.querySelector(`${e}[${"link"===e?"href":"src"}="${t}"]`);t.generatePreloadAssetsPlugin=function(){return{name:"generate-preload-assets-plugin",async generatePreloadAssets(e){let{origin:t,preloadOptions:r,remoteInfo:u,remote:f,globalSnapshot:d,remoteSnapshot:p}=e;return l.isBrowserEnvValue?o.isRemoteInfoWithEntry(f)&&o.isPureRemoteEntry(f)?{cssAssets:[],jsAssetsWithoutEntry:[],entryAssets:[{name:f.name,url:f.entry,moduleInfo:{name:u.name,entry:f.entry,type:u.type||"global",entryGlobalName:"",shareScope:""}}]}:(s.assignRemoteInfo(u,p),function(e,t,r,s,u){let f=[],d=[],p=[],h=new Set,m=new Set,{options:g}=e,{preloadConfig:y}=t,{depsRemote:b}=y;!function e(t,r,a,i,s={},c){let{value:u}=n.getInfoWithoutType(t,o.getFMId(r)),f=c||u;if(f&&!(0,l.isManifestProvider)(f)&&(a(f,r,i),f.remotesInfo))for(let r of Object.keys(f.remotesInfo)){if(s[r])continue;s[r]=!0;let o=function(e){let t=e.split(":");return 1===t.length?{name:t[0],version:void 0}:2===t.length?{name:t[0],version:t[1]}:{name:t[1],version:t[2]}}(r),n=f.remotesInfo[r];e(t,{name:o.name,version:n.matchedVersion},a,!1,s,void 0)}}(s,r,(t,r,a)=>{let s;if(a)s=y;else if(Array.isArray(b)){let e=b.find(e=>e.nameOrAlias===r.name||e.nameOrAlias===r.alias);if(!e)return;s=i.defaultPreloadArgs(e)}else{if(!0!==b)return;s=y}let c=(0,l.getResourceUrl)(t,o.getRemoteEntryInfoFromSnapshot(t).url);c&&p.push({name:r.name,moduleInfo:{name:r.name,entry:c,type:"remoteEntryType"in t?t.remoteEntryType:"global",entryGlobalName:"globalName"in t?t.globalName:r.name,shareScope:"",version:"version"in t?t.version:void 0},url:c});let u="modules"in t?t.modules:[],h=i.normalizePreloadExposes(s.exposes);function m(e){let r=e.map(e=>(0,l.getResourceUrl)(t,e));return s.filter?r.filter(s.filter):r}if(h.length&&"modules"in t&&(u=t?.modules?.reduce((e,t)=>(h?.indexOf(t.moduleName)!==-1&&e.push(t),e),[])),u){let o=u.length;for(let a=0;a<o;a++){let o=u[a],i=`${r.name}/${o.moduleName}`;e.remoteHandler.hooks.lifecycle.handlePreloadModule.emit({id:"."===o.moduleName?r.name:i,name:r.name,remoteSnapshot:t,preloadConfig:s,remote:r,origin:e}),n.getPreloaded(i)||("all"===s.resourceCategory?(f.push(...m(o.assets.css.async)),f.push(...m(o.assets.css.sync)),d.push(...m(o.assets.js.async)),d.push(...m(o.assets.js.sync))):"sync"===s.resourceCategory&&(f.push(...m(o.assets.css.sync)),d.push(...m(o.assets.js.sync))),n.setPreloaded(i))}}},!0,{},u),u.shared&&u.shared.length>0&&u.shared.forEach(t=>{let r=g.shared?.[t.sharedName];if(!r)return;let n=t.version?r.find(e=>e.version===t.version):r;n&&o.arrayOptions(n).forEach(r=>{((t,r)=>{let{shared:o}=a.getRegisteredShare(e.shareScopeMap,r.sharedName,t,e.sharedHandler.hooks.lifecycle.resolveShare)||{};o&&"function"==typeof o.lib&&(r.assets.js.sync.forEach(e=>{h.add(e)}),r.assets.css.sync.forEach(e=>{m.add(e)}))})(r,t)})});let E=d.filter(e=>!h.has(e)&&!c("script",e));return{cssAssets:f.filter(e=>!m.has(e)&&!c("link",e)),jsAssetsWithoutEntry:E,entryAssets:p.filter(e=>!c("script",e.url))}}(t,r,u,d,p)):{cssAssets:[],jsAssetsWithoutEntry:[],entryAssets:[]}}}}},814(e,t,r){let o=r(4110),n=r(4328),a=r(9653),i=r(3226),s=r(9587);r(4446);let l=r(7782),c=r(973),u=r(5331);r(7603);let f=r(6654),d=r(6062);function p(e,t){let r=a.getGlobalSnapshotInfoByModuleInfo({name:t.name,version:t.options.version}),o=r&&"remotesInfo"in r&&r.remotesInfo&&a.getInfoWithoutType(r.remotesInfo,e.name).value;return o&&o.matchedVersion?{hostGlobalSnapshot:r,globalSnapshot:a.getGlobalSnapshot(),remoteSnapshot:a.getGlobalSnapshotInfoByModuleInfo({name:e.name,version:o.matchedVersion})}:{hostGlobalSnapshot:void 0,globalSnapshot:a.getGlobalSnapshot(),remoteSnapshot:a.getGlobalSnapshotInfoByModuleInfo({name:e.name,version:"version"in e?e.version:void 0})}}t.SnapshotHandler=class{constructor(e){this.loadingHostSnapshot=null,this.manifestCache=new Map,this.hooks=new u.PluginSystem({beforeLoadRemoteSnapshot:new l.AsyncHook("beforeLoadRemoteSnapshot"),loadSnapshot:new c.AsyncWaterfallHook("loadGlobalSnapshot"),loadRemoteSnapshot:new c.AsyncWaterfallHook("loadRemoteSnapshot"),afterLoadSnapshot:new c.AsyncWaterfallHook("afterLoadSnapshot")}),this.manifestLoading=a.Global.__FEDERATION__.__MANIFEST_LOADING__,this.HostInstance=e,this.loaderHook=e.loaderHook}async loadRemoteSnapshotInfo({moduleInfo:e,id:t,expose:r}){let i,l,{options:c}=this.HostInstance;await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({options:c,moduleInfo:e});let u=a.getGlobalSnapshotInfoByModuleInfo({name:this.HostInstance.options.name,version:this.HostInstance.options.version});u||(u={version:this.HostInstance.options.version||"",remoteEntry:"",remotesInfo:{}},a.addGlobalSnapshot({[this.HostInstance.options.name]:u})),u&&"remotesInfo"in u&&!a.getInfoWithoutType(u.remotesInfo,e.name).value&&("version"in e||"entry"in e)&&(u.remotesInfo={...u?.remotesInfo,[e.name]:{matchedVersion:"version"in e?e.version:e.entry}});let{hostGlobalSnapshot:p,remoteSnapshot:h,globalSnapshot:m}=this.getGlobalRemoteInfo(e),{remoteSnapshot:g,globalSnapshot:y}=await this.hooks.lifecycle.loadSnapshot.emit({options:c,moduleInfo:e,hostGlobalSnapshot:p,remoteSnapshot:h,globalSnapshot:m});if(g)if((0,f.isManifestProvider)(g)){let t=f.isBrowserEnvValue?g.remoteEntry:g.ssrRemoteEntry||g.remoteEntry||"",r=await this.getManifestJson(t,e,{}),o=a.setGlobalSnapshotInfoByModuleInfo({...e,entry:t},r);i=r,l=o}else{let{remoteSnapshot:t}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:e,remoteSnapshot:g,from:"global"});i=t,l=y}else if(n.isRemoteInfoWithEntry(e)){let t=await this.getManifestJson(e.entry,e,{}),r=a.setGlobalSnapshotInfoByModuleInfo(e,t),{remoteSnapshot:o}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:e,remoteSnapshot:t,from:"global"});i=o,l=r}else o.error(d.RUNTIME_007,d.runtimeDescMap,{remoteName:e.name,remoteVersion:e.version,hostName:this.HostInstance.options.name,globalSnapshot:JSON.stringify(y)},void 0,s.optionsToMFContext(this.HostInstance.options));return await this.hooks.lifecycle.afterLoadSnapshot.emit({id:t,host:this.HostInstance,options:c,moduleInfo:e,remoteSnapshot:i}),{remoteSnapshot:i,globalSnapshot:l}}getGlobalRemoteInfo(e){return p(e,this.HostInstance)}async getManifestJson(e,t,r){let n=async()=>{let r=this.manifestCache.get(e);if(r)return r;try{let o=await this.loaderHook.lifecycle.fetch.emit(e,{},i.getRemoteInfo(t));o&&o instanceof Response||(o=await fetch(e,{})),r=await o.json()}catch(n){(r=await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:n,from:"runtime",lifecycle:"afterResolve",origin:this.HostInstance}))||(delete this.manifestLoading[e],o.error(d.RUNTIME_003,d.runtimeDescMap,{manifestUrl:e,moduleName:t.name,hostName:this.HostInstance.options.name},`${n}`,s.optionsToMFContext(this.HostInstance.options)))}return o.assert(r.metaData&&r.exposes&&r.shared,`"${e}" is not a valid federation manifest for remote "${t.name}". Missing required fields: ${[!r.metaData&&"metaData",!r.exposes&&"exposes",!r.shared&&"shared"].filter(Boolean).join(", ")}.`),this.manifestCache.set(e,r),r},a=async()=>{let r=await n(),o=(0,f.generateSnapshotFromManifest)(r,{version:e}),{remoteSnapshot:a}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:t,manifestJson:r,remoteSnapshot:o,manifestUrl:e,from:"manifest"});return a};return this.manifestLoading[e]||(this.manifestLoading[e]=a().then(e=>e)),this.manifestLoading[e]}},t.getGlobalRemoteInfo=p},2214(e,t,r){let o=r(4110),n=r(4328);r(4446);let a=r(8725),i=r(6654),s=r(6062);function l(e,t){let r=n.getRemoteEntryInfoFromSnapshot(t);r.url||o.error(s.RUNTIME_011,s.runtimeDescMap,{remoteName:e.name});let a=(0,i.getResourceUrl)(t,r.url);i.isBrowserEnvValue||a.startsWith("http")||(a=`https:${a}`),e.type=r.type,e.entryGlobalName=r.globalName,e.entry=a,e.version=t.version,e.buildVersion=t.buildVersion}t.assignRemoteInfo=l,t.snapshotPlugin=function(){return{name:"snapshot-plugin",async afterResolve(e){let{remote:t,pkgNameOrAlias:r,expose:o,origin:i,remoteInfo:s,id:c}=e;if(!n.isRemoteInfoWithEntry(t)||!n.isPureRemoteEntry(t)){let{remoteSnapshot:n,globalSnapshot:u}=await i.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:t,id:c});l(s,n);let f=await i.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({origin:i,preloadOptions:{remote:t,preloadConfig:{nameOrAlias:r,exposes:[o],resourceCategory:"sync",share:!1,depsRemote:!1}},remoteInfo:s,remote:t,remoteSnapshot:n,globalSnapshot:u});return f&&a.preloadAssets(s,i,f,!1),{...e,remoteSnapshot:n}}return e}}}},1475(e,t,r){let o=r(4110),n=r(9653),a=r(2012),i=r(1839),s=r(4653),l=r(3226),c=r(9587);r(4446);let u=r(8725),f=r(4281),d=r(1065),p=r(7782),h=r(4319),m=r(973),g=r(5331);r(7603);let y=r(814),b=r(6654),E=r(6062);t.RemoteHandler=class{constructor(e){this.hooks=new g.PluginSystem({beforeRegisterRemote:new h.SyncWaterfallHook("beforeRegisterRemote"),registerRemote:new h.SyncWaterfallHook("registerRemote"),beforeRequest:new m.AsyncWaterfallHook("beforeRequest"),onLoad:new p.AsyncHook("onLoad"),handlePreloadModule:new d.SyncHook("handlePreloadModule"),errorLoadRemote:new p.AsyncHook("errorLoadRemote"),beforePreloadRemote:new p.AsyncHook("beforePreloadRemote"),generatePreloadAssets:new p.AsyncHook("generatePreloadAssets"),afterPreloadRemote:new p.AsyncHook,loadEntry:new p.AsyncHook}),this.host=e,this.idToRemoteMap={}}formatAndRegisterRemote(e,t){return(t.remotes||[]).reduce((e,t)=>(this.registerRemote(t,e,{force:!1}),e),e.remotes)}setIdToRemoteMap(e,t){let{remote:r,expose:o}=t,{name:n,alias:a}=r;if(this.idToRemoteMap[e]={name:r.name,expose:o},a&&e.startsWith(n)){let t=e.replace(n,a);this.idToRemoteMap[t]={name:r.name,expose:o};return}if(a&&e.startsWith(a)){let t=e.replace(a,n);this.idToRemoteMap[t]={name:r.name,expose:o}}}async loadRemote(e,t){let{host:r}=this;try{let{loadFactory:o=!0}=t||{loadFactory:!0},{module:n,moduleOptions:a,remoteMatchInfo:i}=await this.getRemoteModuleAndOptions({id:e}),{pkgNameOrAlias:s,remote:l,expose:c,id:u,remoteSnapshot:f}=i,d=await n.get(u,c,t,f),p=await this.hooks.lifecycle.onLoad.emit({id:u,pkgNameOrAlias:s,expose:c,exposeModule:o?d:void 0,exposeModuleFactory:o?void 0:d,remote:l,options:a,moduleInstance:n,origin:r});if(this.setIdToRemoteMap(e,i),"function"==typeof p)return p;return d}catch(a){let{from:o="runtime"}=t||{from:"runtime"},n=await this.hooks.lifecycle.errorLoadRemote.emit({id:e,error:a,from:o,lifecycle:"onLoad",origin:r});if(!n)throw a;return n}}async preloadRemote(e){let{host:t}=this;await this.hooks.lifecycle.beforePreloadRemote.emit({preloadOps:e,options:t.options,origin:t});let r=u.formatPreloadArgs(t.options.remotes,e);await Promise.all(r.map(async e=>{let{remote:r}=e,o=l.getRemoteInfo(r),{globalSnapshot:n,remoteSnapshot:a}=await t.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:r}),i=await this.hooks.lifecycle.generatePreloadAssets.emit({origin:t,preloadOptions:e,remote:r,remoteInfo:o,globalSnapshot:n,remoteSnapshot:a});i&&u.preloadAssets(o,t,i)}))}registerRemotes(e,t){let{host:r}=this;e.forEach(e=>{this.registerRemote(e,r.options.remotes,{force:t?.force})})}async getRemoteModuleAndOptions(e){let t,{host:r}=this,{id:n}=e;try{t=await this.hooks.lifecycle.beforeRequest.emit({id:n,options:r.options,origin:r})}catch(e){if(!(t=await this.hooks.lifecycle.errorLoadRemote.emit({id:n,options:r.options,origin:r,from:"runtime",error:e,lifecycle:"beforeRequest"})))throw e}let{id:a}=t,i=s.matchRemoteWithNameAndExpose(r.options.remotes,a);i||o.error(E.RUNTIME_004,E.runtimeDescMap,{hostName:r.options.name,requestId:a},void 0,c.optionsToMFContext(r.options));let{remote:u}=i,d=l.getRemoteInfo(u),p=await r.sharedHandler.hooks.lifecycle.afterResolve.emit({id:a,...i,options:r.options,origin:r,remoteInfo:d}),{remote:h,expose:m}=p;o.assert(h&&m,`The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${a}.`);let g=r.moduleCache.get(h.name),y={host:r,remoteInfo:d};return g||(g=new f.Module(y),r.moduleCache.set(h.name,g)),{module:g,moduleOptions:y,remoteMatchInfo:p}}registerRemote(e,t,r){let{host:n}=this,i=()=>{if(e.alias){let r=t.find(t=>e.alias&&(t.name.startsWith(e.alias)||t.alias?.startsWith(e.alias)));o.assert(!r,`The alias ${e.alias} of remote ${e.name} is not allowed to be the prefix of ${r&&r.name} name or alias`)}"entry"in e&&b.isBrowserEnvValue&&"u">typeof window&&!e.entry.startsWith("http")&&(e.entry=new URL(e.entry,window.location.origin).href),e.shareScope||(e.shareScope=a.DEFAULT_SCOPE),e.type||(e.type=a.DEFAULT_REMOTE_TYPE)};this.hooks.lifecycle.beforeRegisterRemote.emit({remote:e,origin:n});let s=t.find(t=>t.name===e.name);if(s){let o=[`The remote "${e.name}" is already registered.`,"Please note that overriding it may cause unexpected errors."];r?.force&&(this.removeRemote(s),i(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:n}),(0,b.warn)(o.join(" ")))}else i(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:n})}removeRemote(e){try{let{host:t}=this,{name:r}=e,o=t.options.remotes.findIndex(e=>e.name===r);-1!==o&&t.options.remotes.splice(o,1);let a=t.moduleCache.get(e.name);if(a){let r=a.remoteInfo,o=r.entryGlobalName;n.CurrentGlobal[o]&&(Object.getOwnPropertyDescriptor(n.CurrentGlobal,o)?.configurable?delete n.CurrentGlobal[o]:n.CurrentGlobal[o]=void 0);let s=l.getRemoteEntryUniqueKey(a.remoteInfo);n.globalLoading[s]&&delete n.globalLoading[s],t.snapshotHandler.manifestCache.delete(r.entry);let c=r.buildVersion?(0,b.composeKeyWithSeparator)(r.name,r.buildVersion):r.name,u=n.CurrentGlobal.__FEDERATION__.__INSTANCES__.findIndex(e=>r.buildVersion?e.options.id===c:e.name===c);if(-1!==u){let e=n.CurrentGlobal.__FEDERATION__.__INSTANCES__[u];c=e.options.id||c;let t=i.getGlobalShareScope(),o=!0,a=[];Object.keys(t).forEach(e=>{let n=t[e];n&&Object.keys(n).forEach(t=>{let i=n[t];i&&Object.keys(i).forEach(n=>{let s=i[n];s&&Object.keys(s).forEach(i=>{let l=s[i];l&&"object"==typeof l&&l.from===r.name&&(l.loaded||l.loading?(l.useIn=l.useIn.filter(e=>e!==r.name),l.useIn.length?o=!1:a.push([e,t,n,i])):a.push([e,t,n,i]))})})})}),o&&(e.shareScopeMap={},delete t[c]),a.forEach(([e,r,o,n])=>{delete t[e]?.[r]?.[o]?.[n]}),n.CurrentGlobal.__FEDERATION__.__INSTANCES__.splice(u,1)}let{hostGlobalSnapshot:f}=y.getGlobalRemoteInfo(e,t);if(f){let t=f&&"remotesInfo"in f&&f.remotesInfo&&n.getInfoWithoutType(f.remotesInfo,e.name).key;t&&(delete f.remotesInfo[t],n.Global.__FEDERATION__.__MANIFEST_LOADING__[t]&&delete n.Global.__FEDERATION__.__MANIFEST_LOADING__[t])}t.moduleCache.delete(e.name)}}catch(e){o.logger.error(`removeRemote failed: ${e instanceof Error?e.message:String(e)}`)}}}},2350(e,t,r){let o=r(4110),n=r(2012),a=r(1839),i=r(9587);r(4446);let s=r(7782),l=r(4319),c=r(973),u=r(5331);r(7603);let f=r(6062);t.SharedHandler=class{constructor(e){this.hooks=new u.PluginSystem({beforeRegisterShare:new l.SyncWaterfallHook("beforeRegisterShare"),afterResolve:new c.AsyncWaterfallHook("afterResolve"),beforeLoadShare:new c.AsyncWaterfallHook("beforeLoadShare"),loadShare:new s.AsyncHook,resolveShare:new l.SyncWaterfallHook("resolveShare"),initContainerShareScopeMap:new l.SyncWaterfallHook("initContainerShareScopeMap")}),this.host=e,this.shareScopeMap={},this.initTokens={},this._setGlobalShareScopeMap(e.options)}registerShared(e,t){let{newShareInfos:r,allShareInfos:o}=a.formatShareConfigs(e,t);return Object.keys(r).forEach(e=>{r[e].forEach(r=>{r.scope.forEach(o=>{this.hooks.lifecycle.beforeRegisterShare.emit({origin:this.host,pkgName:e,shared:r}),this.shareScopeMap[o]?.[e]||this.setShared({pkgName:e,lib:r.lib,get:r.get,loaded:r.loaded||!!r.lib,shared:r,from:t.name})})})}),{newShareInfos:r,allShareInfos:o}}async loadShare(e,t){let{host:r}=this,n=a.getTargetSharedOptions({pkgName:e,extraOptions:t,shareInfos:r.options.shared});n?.scope&&await Promise.all(n.scope.map(async e=>{await Promise.all(this.initializeSharing(e,{strategy:n.strategy}))}));let{shareInfo:i}=await this.hooks.lifecycle.beforeLoadShare.emit({pkgName:e,shareInfo:n,shared:r.options.shared,origin:r});o.assert(i,`Cannot find shared "${e}" in host "${r.options.name}". Ensure the shared config for "${e}" is declared in the federation plugin options and the host has been initialized before loading shares.`);let{shared:s,useTreesShaking:l}=a.getRegisteredShare(this.shareScopeMap,e,i,this.hooks.lifecycle.resolveShare)||{};if(s){let t=a.directShare(s,l);if(t.lib)return a.addUseIn(t,r.options.name),t.lib;if(t.loading&&!t.loaded){let e=await t.loading;return t.loaded=!0,t.lib||(t.lib=e),a.addUseIn(t,r.options.name),e}{let o=(async()=>{let e=await t.get();return a.addUseIn(t,r.options.name),t.loaded=!0,t.lib=e,e})();return this.setShared({pkgName:e,loaded:!1,shared:s,from:r.options.name,lib:null,loading:o,treeShaking:l?t:void 0}),o}}{if(t?.customShareInfo)return!1;let o=a.shouldUseTreeShaking(i.treeShaking),n=a.directShare(i,o),s=(async()=>{let t=await n.get();n.lib=t,n.loaded=!0,a.addUseIn(n,r.options.name);let{shared:o,useTreesShaking:s}=a.getRegisteredShare(this.shareScopeMap,e,i,this.hooks.lifecycle.resolveShare)||{};if(o){let e=a.directShare(o,s);e.lib=t,e.loaded=!0,o.from=i.from}return t})();return this.setShared({pkgName:e,loaded:!1,shared:i,from:r.options.name,lib:null,loading:s,treeShaking:o?n:void 0}),s}}initializeSharing(e=n.DEFAULT_SCOPE,t){let{host:r}=this,o=t?.from,i=t?.strategy,s=t?.initScope,l=[];if("build"!==o){let{initTokens:t}=this;s||(s=[]);let r=t[e];if(r||(r=t[e]={from:this.host.name}),s.indexOf(r)>=0)return l;s.push(r)}let c=this.shareScopeMap,u=r.options.name;c[e]||(c[e]={});let f=c[e],d=async e=>{let t,{module:o}=await r.remoteHandler.getRemoteModuleAndOptions({id:e});try{t=await o.getEntry()}catch(o){if(!(t=await r.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:o,from:"runtime",lifecycle:"beforeLoadShare",origin:r})))return}finally{t?.init&&!o.initing&&(o.remoteEntryExports=t,await o.init(void 0,void 0,s))}};return Object.keys(r.options.shared).forEach(t=>{r.options.shared[t].forEach(r=>{r.scope.includes(e)&&((e,t)=>{let{version:r,eager:o}=t;f[e]=f[e]||{};let n=f[e],i=n[r]&&a.directShare(n[r]),s=!!(i&&("eager"in i&&i.eager||"shareConfig"in i&&i.shareConfig?.eager));(!i||"loaded-first"!==i.strategy&&!i.loaded&&(!o!=!s?o:u>n[r].from))&&(n[r]=t)})(t,r)})}),("version-first"===r.options.shareStrategy||"version-first"===i)&&r.options.remotes.forEach(t=>{t.shareScope===e&&l.push(d(t.name))}),l}loadShareSync(e,t){let{host:r}=this,n=a.getTargetSharedOptions({pkgName:e,extraOptions:t,shareInfos:r.options.shared});n?.scope&&n.scope.forEach(e=>{this.initializeSharing(e,{strategy:n.strategy})});let{shared:s,useTreesShaking:l}=a.getRegisteredShare(this.shareScopeMap,e,n,this.hooks.lifecycle.resolveShare)||{};if(s){if("function"==typeof s.lib)return a.addUseIn(s,r.options.name),s.loaded||(s.loaded=!0,s.from===r.options.name&&(n.loaded=!0)),s.lib;if("function"==typeof s.get){let t=s.get();if(!(t instanceof Promise))return a.addUseIn(s,r.options.name),this.setShared({pkgName:e,loaded:!0,from:r.options.name,lib:t,shared:s}),t}}if(n.lib)return n.loaded||(n.loaded=!0),n.lib;if(n.get){let a=n.get();return a instanceof Promise&&o.error(t?.from==="build"?f.RUNTIME_005:f.RUNTIME_006,f.runtimeDescMap,{hostName:r.options.name,sharedPkgName:e},void 0,i.optionsToMFContext(r.options)),n.lib=a,this.setShared({pkgName:e,loaded:!0,from:r.options.name,lib:n.lib,shared:n}),n.lib}o.error(f.RUNTIME_006,f.runtimeDescMap,{hostName:r.options.name,sharedPkgName:e},void 0,i.optionsToMFContext(r.options))}initShareScopeMap(e,t,r={}){let{host:o}=this;this.shareScopeMap[e]=t,this.hooks.lifecycle.initContainerShareScopeMap.emit({shareScope:t,options:o.options,origin:o,scopeName:e,hostShareScopeMap:r.hostShareScopeMap})}setShared({pkgName:e,shared:t,from:r,lib:o,loading:n,loaded:a,get:i,treeShaking:s}){let{version:l,scope:c="default",...u}=t;(Array.isArray(c)?c:[c]).forEach(t=>{let c,f;this.shareScopeMap[t]||(this.shareScopeMap[t]={}),this.shareScopeMap[t][e]||(this.shareScopeMap[t][e]={}),this.shareScopeMap[t][e][l]||(this.shareScopeMap[t][e][l]={version:l,scope:[t],...u,lib:o});let d=this.shareScopeMap[t][e][l];(c=(e,t,r)=>{r&&!e[t]&&(e[t]=r)})(f=s?d.treeShaking:d,"loaded",a),c(f,"loading",n),c(f,"get",i),r&&d.from!==r&&(d.from=r)})}_setGlobalShareScopeMap(e){let t=a.getGlobalShareScope(),r=e.id||e.name;r&&!t[r]&&(t[r]=this.shareScopeMap)}}},9017(e,t,r){var o=r(6890).__exportAll({});Object.defineProperty(t,"type_exports",{enumerable:!0,get:function(){return o}})},9587(e,t){function r(e){return{name:e.name,alias:e.alias,entry:"entry"in e?e.entry:void 0,version:"version"in e?e.version:void 0,type:e.type,entryGlobalName:e.entryGlobalName,shareScope:e.shareScope}}t.optionsToMFContext=function(e){let t={};for(let[r,o]of Object.entries(e.shared)){let e=o[0];e&&(t[r]={version:e.version,singleton:e.shareConfig?.singleton,requiredVersion:e.shareConfig?.requiredVersion!==!1&&e.shareConfig?.requiredVersion,eager:e.eager,strictVersion:e.shareConfig?.strictVersion})}return{project:{name:e.name,mfRole:e.remotes?.length>0?"host":"unknown"},mfConfig:{name:e.name,remotes:e.remotes?.map(r)??[],shared:t}}}},9915(e,t,r){r(6654),t.getBuilderId=function(){return"agentPlugin:2.119.1-canary.b53bbee1d"}},7782(e,t,r){let o=r(1065);t.AsyncHook=class extends o.SyncHook{emit(...e){let t,r=Array.from(this.listeners);if(r.length>0){let o=0,n=t=>!1!==t&&(o<r.length?Promise.resolve(r[o++].apply(null,e)).then(n):t);t=n()}return Promise.resolve(t)}}},973(e,t,r){let o=r(4110),n=r(4328),a=r(1065),i=r(4319);t.AsyncWaterfallHook=class extends a.SyncHook{constructor(e){super(),this.onerror=o.error,this.type=e}emit(e){n.isObject(e)||o.error(`The response data for the "${this.type}" hook must be an object.`);let t=Array.from(this.listeners);if(t.length>0){let r=0,n=t=>(o.warn(t),this.onerror(t),e),a=o=>{if(i.checkReturnData(e,o)){if(e=o,r<t.length)try{return Promise.resolve(t[r++](e)).then(a,n)}catch(e){return n(e)}}else this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`);return e};return Promise.resolve(a(e))}return Promise.resolve(e)}}},7603(e,t,r){r(1065),r(7782),r(4319),r(973),r(5331)},5331(e,t,r){let o=r(4110),n=r(4328);r(4446),t.PluginSystem=class{constructor(e){this.registerPlugins={},this.lifecycle=e,this.lifecycleKeys=Object.keys(e)}applyPlugin(e,t){o.assert(n.isPlainObject(e),"Plugin configuration is invalid.");let r=e.name;o.assert(r,"A name must be provided by the plugin."),this.registerPlugins[r]||(this.registerPlugins[r]=e,e.apply?.(t),Object.keys(this.lifecycle).forEach(t=>{let r=e[t];r&&this.lifecycle[t].on(r)}))}removePlugin(e){o.assert(e,"A name is required.");let t=this.registerPlugins[e];o.assert(t,`The plugin "${e}" is not registered.`),Object.keys(t).forEach(e=>{"name"!==e&&this.lifecycle[e].remove(t[e])})}}},1065(e,t){t.SyncHook=class{constructor(e){this.type="",this.listeners=new Set,e&&(this.type=e)}on(e){"function"==typeof e&&this.listeners.add(e)}once(e){let t=this;this.on(function r(...o){return t.remove(r),e.apply(null,o)})}emit(...e){let t;return this.listeners.size>0&&this.listeners.forEach(r=>{t=r(...e)}),t}remove(e){this.listeners.delete(e)}removeAll(){this.listeners.clear()}}},4319(e,t,r){let o=r(4110),n=r(4328),a=r(1065);function i(e,t){if(!n.isObject(t))return!1;if(e!==t){for(let r in e)if(!(r in t))return!1}return!0}t.SyncWaterfallHook=class extends a.SyncHook{constructor(e){super(),this.onerror=o.error,this.type=e}emit(e){for(let t of(n.isObject(e)||o.error(`The data for the "${this.type}" hook should be an object.`),this.listeners))try{let r=t(e);if(i(e,r))e=r;else{this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);break}}catch(e){o.warn(e),this.onerror(e)}return e}},t.checkReturnData=i},4446(e,t,r){r(4110),r(4328),r(9915),r(4653),r(3251),r(3226),r(9587),r(6654)},3226(e,t,r){let o=r(4110),n=r(9653),a=r(2012),i=r(6654),s=r(6062),l=".then(callbacks[0]).catch(callbacks[1])";async function c({entry:e,remoteEntryExports:t}){return new Promise((r,n)=>{try{t?r(t):"u">typeof FEDERATION_ALLOW_NEW_FUNCTION?Function("callbacks",`import("${e}")${l}`)([r,n]):import(e).then(r).catch(n)}catch(t){o.error(`Failed to load ESM entry from "${e}". ${t instanceof Error?t.message:String(t)}`)}})}async function u({entry:e,remoteEntryExports:t}){return new Promise((r,n)=>{try{t?r(t):Function("callbacks",`System.import("${e}")${l}`)([r,n])}catch(t){o.error(`Failed to load SystemJS entry from "${e}". ${t instanceof Error?t.message:String(t)}`)}})}function f(e,t,r){let{remoteEntryKey:a,entryExports:i}=n.getRemoteEntryExports(e,t);return i||o.error(s.RUNTIME_001,s.runtimeDescMap,{remoteName:e,remoteEntryUrl:r,remoteEntryKey:a}),i}async function d({name:e,globalName:t,entry:r,remoteInfo:a,loaderHook:l,getEntryUrl:c}){let{entryExports:u}=n.getRemoteEntryExports(e,t);if(u)return u;let p=c?c(r):r;return(0,i.loadScript)(p,{attrs:{},createScriptHook:(e,t)=>{let r=l.lifecycle.createScript.emit({url:e,attrs:t,remoteInfo:a});if(r&&(r instanceof HTMLScriptElement||"script"in r||"timeout"in r))return r}}).then(()=>f(e,t,r),t=>{let r=t instanceof Error?t.message:String(t);o.error(s.RUNTIME_008,s.runtimeDescMap,{remoteName:e,resourceUrl:p},r)})}async function p({remoteInfo:e,remoteEntryExports:t,loaderHook:r,getEntryUrl:o}){let{entry:n,entryGlobalName:a,name:i,type:s}=e;switch(s){case"esm":case"module":return c({entry:n,remoteEntryExports:t});case"system":return u({entry:n,remoteEntryExports:t});default:return d({entry:n,globalName:a,name:i,remoteInfo:e,loaderHook:r,getEntryUrl:o})}}async function h({remoteInfo:e,loaderHook:t}){let{entry:r,entryGlobalName:a,name:s,type:l}=e,{entryExports:c}=n.getRemoteEntryExports(s,a);return c||(0,i.loadScriptNode)(r,{attrs:{name:s,globalName:a,type:l},loaderHook:{createScriptHook:(r,o={})=>{let n=t.lifecycle.createScript.emit({url:r,attrs:o,remoteInfo:e});if(n&&"url"in n)return n}}}).then(()=>f(s,a,r)).catch(e=>{o.error(`Failed to load Node.js entry for remote "${s}" from "${r}". ${e instanceof Error?e.message:String(e)}`)})}function m(e){let{entry:t,name:r}=e;return(0,i.composeKeyWithSeparator)(r,t)}async function g(e){let{origin:t,remoteEntryExports:r,remoteInfo:o,getEntryUrl:a,_inErrorHandling:l=!1}=e,c=m(o);if(r)return r;if(!n.globalLoading[c]){let e=t.remoteHandler.hooks.lifecycle.loadEntry,u=t.loaderHook;n.globalLoading[c]=e.emit({loaderHook:u,remoteInfo:o,remoteEntryExports:r}).then(e=>e||(("u">typeof ENV_TARGET?"web"===ENV_TARGET:i.isBrowserEnvValue)?p({remoteInfo:o,remoteEntryExports:r,loaderHook:u,getEntryUrl:a}):h({remoteInfo:o,loaderHook:u}))).catch(async e=>{let a=m(o),i=e instanceof Error&&e.message.includes("ScriptExecutionError");if(e instanceof Error&&e.message.includes(s.RUNTIME_008)&&!i&&!l){let e=await t.loaderHook.lifecycle.loadEntryError.emit({getRemoteEntry:e=>g({...e,_inErrorHandling:!0}),origin:t,remoteInfo:o,remoteEntryExports:r,globalLoading:n.globalLoading,uniqueKey:a});if(e)return e}throw e})}return n.globalLoading[c]}t.getRemoteEntry=g,t.getRemoteEntryUniqueKey=m,t.getRemoteInfo=function(e){return{...e,entry:"entry"in e?e.entry:"",type:e.type||a.DEFAULT_REMOTE_TYPE,entryGlobalName:e.entryGlobalName||e.name,shareScope:e.shareScope||a.DEFAULT_SCOPE}}},4110(e,t,r){let o=r(6654),n=r(1310),a="[ Federation Runtime ]",i=(0,o.createLogger)(a);function s(e,t,r,o,i){if(void 0!==t)return(0,n.logAndReport)(e,t,r??{},e=>{throw Error(`${a}: ${e}`)},o,i);if(e instanceof Error)throw e.message.startsWith(a)||(e.message=`${a}: ${e.message}`),e;throw Error(`${a}: ${e}`)}t.assert=function(e,t,r,o,n){e||(void 0!==r?s(t,r,o,void 0,n):s(t))},t.error=s,t.logger=i,t.warn=function(e){e instanceof Error&&(e.message.startsWith(a)||(e.message=`${a}: ${e.message}`)),i.warn(e)}},4653(e,t){t.matchRemote=function(e,t){for(let r of e)if(t===r.name||r.alias&&t===r.alias)return r},t.matchRemoteWithNameAndExpose=function(e,t){for(let r of e){let e=t.startsWith(r.name),o=t.replace(r.name,"");if(e){if(o.startsWith("/"))return{pkgNameOrAlias:r.name,expose:o=`.${o}`,remote:r};else if(""===o)return{pkgNameOrAlias:r.name,expose:".",remote:r}}let n=r.alias&&t.startsWith(r.alias),a=r.alias&&t.replace(r.alias,"");if(r.alias&&n){if(a&&a.startsWith("/"))return{pkgNameOrAlias:r.alias,expose:a=`.${a}`,remote:r};else if(""===a)return{pkgNameOrAlias:r.alias,expose:".",remote:r}}}}},3251(e,t,r){let o=r(9653);t.registerPlugins=function(e,t){let r=o.getGlobalHostPlugins(),n=[t.hooks,t.remoteHandler.hooks,t.sharedHandler.hooks,t.snapshotHandler.hooks,t.loaderHook,t.bridgeHook];return r.length>0&&r.forEach(t=>{e?.find(e=>e.name!==t.name)&&e.push(t)}),e&&e.length>0&&e.forEach(e=>{n.forEach(r=>{r.applyPlugin(e,t)})}),e}},8725(e,t,r){let o=r(4110),n=r(4653),a=r(3226),i=r(6654);function s(e){return{resourceCategory:"sync",share:!0,depsRemote:!0,prefetchInterface:!1,...e}}t.defaultPreloadArgs=s,t.formatPreloadArgs=function(e,t){return t.map(t=>{let r=n.matchRemote(e,t.nameOrAlias);return o.assert(r,`Unable to preload ${t.nameOrAlias} as it is not included in ${!r&&(0,i.safeToString)({remoteInfo:r,remotes:e})}`),{remote:r,preloadConfig:s(t)}})},t.normalizePreloadExposes=function(e){return e?e.map(e=>"."===e?e:e.startsWith("./")?e.replace("./",""):e):[]},t.preloadAssets=function(e,t,r,o=!0){let{cssAssets:n,jsAssetsWithoutEntry:s,entryAssets:l}=r;if(t.options.inBrowser){if(l.forEach(r=>{let{moduleInfo:o}=r,n=t.moduleCache.get(e.name);n?a.getRemoteEntry({origin:t,remoteInfo:o,remoteEntryExports:n.remoteEntryExports}):a.getRemoteEntry({origin:t,remoteInfo:o,remoteEntryExports:void 0})}),o){let r={rel:"preload",as:"style"};n.forEach(o=>{let{link:n,needAttach:a}=(0,i.createLink)({url:o,cb:()=>{},attrs:r,createLinkHook:(r,o)=>{let n=t.loaderHook.lifecycle.createLink.emit({url:r,attrs:o,remoteInfo:e});if(n instanceof HTMLLinkElement)return n}});a&&document.head.appendChild(n)})}else{let r={rel:"stylesheet",type:"text/css"};n.forEach(o=>{let{link:n,needAttach:a}=(0,i.createLink)({url:o,cb:()=>{},attrs:r,createLinkHook:(r,o)=>{let n=t.loaderHook.lifecycle.createLink.emit({url:r,attrs:o,remoteInfo:e});if(n instanceof HTMLLinkElement)return n},needDeleteLink:!1});a&&document.head.appendChild(n)})}if(o){let r={rel:"preload",as:"script"};s.forEach(o=>{let{link:n,needAttach:a}=(0,i.createLink)({url:o,cb:()=>{},attrs:r,createLinkHook:(r,o)=>{let n=t.loaderHook.lifecycle.createLink.emit({url:r,attrs:o,remoteInfo:e});if(n instanceof HTMLLinkElement)return n}});a&&document.head.appendChild(n)})}else{let r={fetchpriority:"high",type:e?.type==="module"?"module":"text/javascript"};s.forEach(o=>{let{script:n,needAttach:a}=(0,i.createScript)({url:o,cb:()=>{},attrs:r,createScriptHook:(r,o)=>{let n=t.loaderHook.lifecycle.createScript.emit({url:r,attrs:o,remoteInfo:e});if(n instanceof HTMLScriptElement)return n},needDeleteScript:!0});a&&document.head.appendChild(n)})}}}},2598(e,t){function r(e,t){return(e=Number(e)||e)>(t=Number(t)||t)?1:e===t?0:-1}function o(e,t){return r(e.major,t.major)||r(e.minor,t.minor)||r(e.patch,t.patch)||function(e,t){let{preRelease:o}=e,{preRelease:n}=t;if(void 0===o&&n)return 1;if(o&&void 0===n)return -1;if(void 0===o&&void 0===n)return 0;for(let e=0,t=o.length;e<=t;e++){let t=o[e],a=n[e];if(t!==a){if(void 0===t&&void 0===a)return 0;if(!t)return 1;if(!a)return -1;return r(t,a)}}return 0}(e,t)}function n(e,t){return e.version===t.version}t.compare=function(e,t){switch(e.operator){case"":case"=":return n(e,t);case">":return 0>o(e,t);case">=":return n(e,t)||0>o(e,t);case"<":return o(e,t)>0;case"<=":return n(e,t)||o(e,t)>0;case void 0:return!0;default:return!1}}},9140(e,t){let r="[0-9A-Za-z-]+",o=`(?:\\+(${r}(?:\\.${r})*))`,n="0|[1-9]\\d*",a="[0-9]+",i="\\d*[a-zA-Z-][a-zA-Z0-9-]*",s=`(?:${a}|${i})`,l=`(?:-?(${s}(?:\\.${s})*))`,c=`(?:${n}|${i})`,u=`(?:-(${c}(?:\\.${c})*))`,f=`${n}|x|X|\\*`,d=`[v=\\s]*(${f})(?:\\.(${f})(?:\\.(${f})(?:${u})?${o}?)?)?`,p=`^\\s*(${d})\\s+-\\s+(${d})\\s*$`,h=`[v=\\s]*${`(${a})\\.(${a})\\.(${a})`}${l}?${o}?`,m="((?:<|>)?=?)",g=`(\\s*)${m}\\s*(${h}|${d})`,y="(?:~>?)",b=`(\\s*)${y}\\s+`,E="(?:\\^)",S=`(\\s*)${E}\\s+`,_=`^${E}${d}$`,R=`v?${`(${n})\\.(${n})\\.(${n})`}${u}?${o}?`,I=`^${y}${d}$`,M=`^${m}\\s*${d}$`,T=`^${m}\\s*(${R})$|^$`;t.caret=_,t.caretTrim=S,t.comparator=T,t.comparatorTrim=g,t.gte0="^\\s*>=\\s*0.0.0\\s*$",t.hyphenRange=p,t.star="(<|>)?=?\\s*\\*",t.tilde=I,t.tildeTrim=b,t.xRange=M},3835(e,t,r){let o=r(2948),n=r(8708),a=r(2598);t.satisfy=function(e,t){if(!e)return!1;let r=o.extractComparator(e);if(!r)return!1;let[,i,,s,l,c,u]=r,f={operator:i,version:o.combineVersion(s,l,c,u),major:s,minor:l,patch:c,preRelease:u?.split(".")};for(let e of t.split("||")){let t=e.trim();if(!t||"*"===t||"x"===t)return!0;try{let e=o.pipe(n.parseHyphen,n.parseComparatorTrim,n.parseTildeTrim,n.parseCaretTrim)(t.trim()).split(/\s+/).join(" ");if(!e.trim())return!0;let r=e.split(" ").map(e=>o.pipe(n.parseCarets,n.parseTildes,n.parseXRanges,n.parseStar)(e)).join(" ");if(!r.trim())return!0;let i=r.split(/\s+/).map(e=>n.parseGTE0(e)).filter(Boolean);if(0===i.length)continue;let s=!0;for(let e of i){let t=o.extractComparator(e);if(!t){s=!1;break}let[,r,,n,i,l,c]=t;if(!a.compare({operator:r,version:o.combineVersion(n,i,l,c),major:n,minor:i,patch:l,preRelease:c?.split(".")},f)){s=!1;break}}if(s)return!0}catch(e){console.error(`[semver] Error processing range part "${t}":`,e);continue}}return!1}},8708(e,t,r){let o=r(9140),n=r(2948);t.parseCaretTrim=function(e){return e.replace(n.parseRegex(o.caretTrim),"$1^")},t.parseCarets=function(e){return e.trim().split(/\s+/).map(e=>e.replace(n.parseRegex(o.caret),(e,t,r,o,a)=>{if(n.isXVersion(t))return"";if(n.isXVersion(r))return`>=${t}.0.0 <${Number(t)+1}.0.0-0`;if(n.isXVersion(o))if("0"===t)return`>=${t}.${r}.0 <${t}.${Number(r)+1}.0-0`;else return`>=${t}.${r}.0 <${Number(t)+1}.0.0-0`;if(a)if("0"!==t)return`>=${t}.${r}.${o}-${a} <${Number(t)+1}.0.0-0`;else if("0"===r)return`>=${t}.${r}.${o}-${a} <${t}.${r}.${Number(o)+1}-0`;else return`>=${t}.${r}.${o}-${a} <${t}.${Number(r)+1}.0-0`;if("0"===t)if("0"===r)return`>=${t}.${r}.${o} <${t}.${r}.${Number(o)+1}-0`;else return`>=${t}.${r}.${o} <${t}.${Number(r)+1}.0-0`;return`>=${t}.${r}.${o} <${Number(t)+1}.0.0-0`})).join(" ")},t.parseComparatorTrim=function(e){return e.replace(n.parseRegex(o.comparatorTrim),"$1$2$3")},t.parseGTE0=function(e){return e.trim().replace(n.parseRegex(o.gte0),"")},t.parseHyphen=function(e){return e.replace(n.parseRegex(o.hyphenRange),(e,t,r,o,a,i,s,l,c,u,f,d)=>(t=n.isXVersion(r)?"":n.isXVersion(o)?`>=${r}.0.0`:n.isXVersion(a)?`>=${r}.${o}.0`:`>=${t}`,l=n.isXVersion(c)?"":n.isXVersion(u)?`<${Number(c)+1}.0.0-0`:n.isXVersion(f)?`<${c}.${Number(u)+1}.0-0`:d?`<=${c}.${u}.${f}-${d}`:`<=${l}`,`${t} ${l}`.trim()))},t.parseStar=function(e){return e.trim().replace(n.parseRegex(o.star),"")},t.parseTildeTrim=function(e){return e.replace(n.parseRegex(o.tildeTrim),"$1~")},t.parseTildes=function(e){return e.trim().split(/\s+/).map(e=>e.replace(n.parseRegex(o.tilde),(e,t,r,o,a)=>n.isXVersion(t)?"":n.isXVersion(r)?`>=${t}.0.0 <${Number(t)+1}.0.0-0`:n.isXVersion(o)?`>=${t}.${r}.0 <${t}.${Number(r)+1}.0-0`:a?`>=${t}.${r}.${o}-${a} <${t}.${Number(r)+1}.0-0`:`>=${t}.${r}.${o} <${t}.${Number(r)+1}.0-0`)).join(" ")},t.parseXRanges=function(e){return e.split(/\s+/).map(e=>e.trim().replace(n.parseRegex(o.xRange),(e,t,r,o,a,i)=>{let s=n.isXVersion(r),l=s||n.isXVersion(o),c=l||n.isXVersion(a);if("="===t&&c&&(t=""),i="",s)if(">"===t||"<"===t)return"<0.0.0-0";else return"*";return t&&c?(l&&(o=0),a=0,">"===t?(t=">=",l?(r=Number(r)+1,o=0):o=Number(o)+1,a=0):"<="===t&&(t="<",l?r=Number(r)+1:o=Number(o)+1),"<"===t&&(i="-0"),`${t+r}.${o}.${a}${i}`):l?`>=${r}.0.0${i} <${Number(r)+1}.0.0-0`:c?`>=${r}.${o}.0${i} <${r}.${Number(o)+1}.0-0`:e})).join(" ")}},2948(e,t,r){let o=r(9140);function n(e){return new RegExp(e)}t.combineVersion=function(e,t,r,o){let n=`${e}.${t}.${r}`;return o?`${n}-${o}`:n},t.extractComparator=function(e){return e.match(n(o.comparator))},t.isXVersion=function(e){return!e||"x"===e.toLowerCase()||"*"===e},t.parseRegex=n,t.pipe=function(...e){return t=>e.reduce((e,t)=>t(e),t)}},1839(e,t,r){let o=r(4110),n=r(4328),a=r(9653),i=r(2012),s=r(3835),l=r(6654);function c(e,t){if(!e)return!1;let{status:r,mode:o}=e;return r!==l.TreeShakingStatus.NO_USE&&(r===l.TreeShakingStatus.CALCULATED||"runtime-infer"===o&&(!t||p(e,t)))}function u(e,t){let r=e=>{if(!Number.isNaN(Number(e))){let t=e.split("."),r=e;for(let e=0;e<3-t.length;e++)r+=".0";return r}return e};return!!s.satisfy(r(e),`<=${r(t)}`)}let f=(e,t)=>{let r=t||function(e,t){return u(e,t)};return Object.keys(e).reduce((e,t)=>!e||r(e,t)||"0"===e?t:e,0)},d=e=>!!e.loaded||"function"==typeof e.lib,p=(e,t)=>{if(!e||!t)return!1;let{usedExports:r}=e;return!!r&&!!t.every(e=>r.includes(e))},h=e=>d(e)||!!e.loading;t.addUseIn=(e,t)=>{e.useIn||(e.useIn=[]),n.addUniqueItem(e.useIn,t)},t.directShare=function(e,t){return t&&e.treeShaking?e.treeShaking:e},t.formatShareConfigs=function(e,t){let r=t.shared||{},a=t.name,i=Object.keys(r).reduce((e,i)=>{let s=n.arrayOptions(r[i]);return e[i]=e[i]||[],s.forEach(r=>{var n;let s;e[i].push((n=t.shareStrategy,s="get"in r?r.get:"lib"in r?()=>Promise.resolve(r.lib):()=>Promise.resolve(()=>{o.error(`Cannot get shared "${i}" from "${a}": neither "get" nor "lib" is provided in the share config.`)}),r.shareConfig?.eager&&r.treeShaking?.mode&&o.error(`Invalid shared config for "${i}" from "${a}": cannot use both "eager: true" and "treeShaking.mode" simultaneously. Choose one strategy.`),{deps:[],useIn:[],from:a,loading:null,...r,shareConfig:{requiredVersion:`^${r.version}`,singleton:!1,eager:!1,strictVersion:!1,...r.shareConfig},get:s,loaded:!!r?.loaded||"lib"in r||void 0,version:r.version??"0",scope:Array.isArray(r.scope)?r.scope:[r.scope??"default"],strategy:(r.strategy??n)||"version-first",treeShaking:r.treeShaking?{...r.treeShaking,mode:r.treeShaking.mode??"server-calc",status:r.treeShaking.status??l.TreeShakingStatus.UNKNOWN,useIn:[]}:void 0}))}),e},{}),s={...e.shared};return Object.keys(i).forEach(e=>{s[e]?i[e].forEach(t=>{s[e].find(e=>e.version===t.version)||s[e].push(t)}):s[e]=i[e]}),{allShareInfos:s,newShareInfos:i}},t.getGlobalShareScope=function(){return a.Global.__FEDERATION__.__SHARE__},t.getRegisteredShare=function(e,t,r,n){if(!e)return;let{shareConfig:l,scope:p=i.DEFAULT_SCOPE,strategy:m,treeShaking:g}=r;for(let i of Array.isArray(p)?p:[p])if(l&&e[i]&&e[i][t]){let{requiredVersion:p}=l,{version:y,useTreesShaking:b}=("loaded-first"===m?function(e,t,r,o){let n=e[t][r],a="",i=c(o),s=function(e,t){if(i){if(!n[e].treeShaking)return!0;if(!n[t].treeShaking)return!1;if(h(n[t].treeShaking))if(h(n[e].treeShaking))return!!u(e,t);else return!0;if(h(n[e].treeShaking))return!1}if(h(n[t]))if(h(n[e]))return!!u(e,t);else return!0;return!h(n[e])&&u(e,t)};if(i){if(a=f(e[t][r],s))return{version:a,useTreesShaking:i};i=!1}return{version:f(e[t][r],s),useTreesShaking:i}}:function(e,t,r,o){let n=e[t][r],a="",i=c(o),s=function(e,t){return i?!n[e].treeShaking||!!n[t].treeShaking&&!d(n[e].treeShaking)&&u(e,t):!d(n[e])&&u(e,t)};if(i){if(a=f(e[t][r],s))return{version:a,useTreesShaking:i};i=!1}return{version:f(e[t][r],s),useTreesShaking:i}})(e,i,t,g),E=()=>{let n=e[i][t][y];if(l.singleton){if("string"==typeof p&&!s.satisfy(y,p)){let e=`Version ${y} from ${y&&n.from} of shared singleton module ${t} does not satisfy the requirement of ${r.from} which needs ${p})`;l.strictVersion?o.error(e):o.warn(e)}return{shared:n,useTreesShaking:b}}{if(!1===p||"*"===p||s.satisfy(y,p))return{shared:n,useTreesShaking:b};let r=c(g);if(r){for(let[o,n]of Object.entries(e[i][t]))if(c(n.treeShaking,g?.usedExports)&&s.satisfy(o,p))return{shared:n,useTreesShaking:r}}for(let[r,o]of Object.entries(e[i][t]))if(s.satisfy(r,p))return{shared:o,useTreesShaking:!1}}},S={shareScopeMap:e,scope:i,pkgName:t,version:y,GlobalFederation:a.Global.__FEDERATION__,shareInfo:r,resolver:E};return(n.emit(S)||S).resolver()}},t.getTargetSharedOptions=function(e){let{pkgName:t,extraOptions:r,shareInfos:o}=e,n=r?.resolver??(e=>{if(!e)return;let t={};return e.forEach(e=>{t[e.version]=e}),t[f(t,function(e,r){return!d(t[e])&&u(e,r)})]}),a=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),i=(...e)=>{let t={};for(let r of e)if(r)for(let[e,o]of Object.entries(r)){let r=t[e];a(r)&&a(o)?t[e]=i(r,o):void 0!==o&&(t[e]=o)}return t};return i(n(o[t]),r?.customShareInfo)},t.shouldUseTreeShaking=c},4328(e,t,r){let o=r(4110),n=r(6654);async function a(e,t){try{return await e()}catch(e){t||o.warn(e);return}}let i=Object.prototype.toString;t.addUniqueItem=function(e,t){return -1===e.findIndex(e=>e===t)&&e.push(t),e},t.arrayOptions=function(e){return Array.isArray(e)?e:[e]},t.getFMId=function(e){return"version"in e&&e.version?`${e.name}:${e.version}`:"entry"in e&&e.entry?`${e.name}:${e.entry}`:`${e.name}`},t.getRemoteEntryInfoFromSnapshot=function(e){let t={url:"",type:"global",globalName:""};return n.isBrowserEnvValue||(0,n.isReactNativeEnv)()||!("ssrRemoteEntry"in e)?"remoteEntry"in e?{url:e.remoteEntry,type:e.remoteEntryType,globalName:e.globalName}:t:"ssrRemoteEntry"in e?{url:e.ssrRemoteEntry||t.url,type:e.ssrRemoteEntryType||t.type,globalName:e.globalName}:t},t.isObject=function(e){return e&&"object"==typeof e},t.isPlainObject=function(e){return"[object Object]"===i.call(e)},t.isPureRemoteEntry=function(e){return!e.entry.includes(".json")},t.isRemoteInfoWithEntry=function(e){return void 0!==e.entry},t.isStaticResourcesEqual=function(e,t){let r=/^(https?:)?\/\//i;return e.replace(r,"").replace(/\/$/,"")===t.replace(r,"").replace(/\/$/,"")},t.objectToString=i,t.processModuleAlias=(e,t)=>{let r;return r=e.endsWith("/")?e.slice(0,-1):e,t.startsWith(".")&&(t=t.slice(1)),r+=t},t.safeWrapper=a},4336(e,t){var r=Object.create,o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty;t.__toESM=(e,t,l)=>(l=null!=e?r(i(e)):{},((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var i,l=a(t),c=0,u=l.length;c<u;c++)i=l[c],s.call(e,i)||void 0===i||o(e,i,{get:(e=>t[e]).bind(null,i),enumerable:!(r=n(t,i))||r.enumerable});return e})(!t&&e&&e.__esModule?l:o(l,"default",{value:e,enumerable:!0}),e))},7329(e,t,r){Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),r(4336);let o=r(1073),n=r(8340),a={...n.helpers.global,getGlobalFederationInstance:o.getGlobalFederationInstance},i=n.helpers.share,s=n.helpers.utils;t.default={global:a,share:i,utils:s},t.global=a,t.share=i,t.utils=s},5694(e,t,r){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),r(4336);let o=r(1073),n=r(8340),a=r(6062);function i(e){let t=new((0,n.getGlobalFederationConstructor)()||n.ModuleFederation)(e);return(0,n.setGlobalFederationInstance)(t),t}let s=null;(0,n.setGlobalFederationConstructor)(n.ModuleFederation),Object.defineProperty(t,"Module",{enumerable:!0,get:function(){return n.Module}}),t.ModuleFederation=n.ModuleFederation,t.createInstance=i,t.getInstance=function(){return s},Object.defineProperty(t,"getRemoteEntry",{enumerable:!0,get:function(){return n.getRemoteEntry}}),Object.defineProperty(t,"getRemoteInfo",{enumerable:!0,get:function(){return n.getRemoteInfo}}),t.init=function(e){let t=o.getGlobalFederationInstance(e.name,e.version);return t?(t.initOptions(e),s||(s=t),t):s=i(e)},t.loadRemote=function(...e){return(0,n.assert)(s,a.RUNTIME_009,a.runtimeDescMap),s.loadRemote.apply(s,e)},Object.defineProperty(t,"loadScript",{enumerable:!0,get:function(){return n.loadScript}}),Object.defineProperty(t,"loadScriptNode",{enumerable:!0,get:function(){return n.loadScriptNode}}),t.loadShare=function(...e){return(0,n.assert)(s,a.RUNTIME_009,a.runtimeDescMap),s.loadShare.apply(s,e)},t.loadShareSync=function(...e){return(0,n.assert)(s,a.RUNTIME_009,a.runtimeDescMap),s.loadShareSync.apply(s,e)},t.preloadRemote=function(...e){return(0,n.assert)(s,a.RUNTIME_009,a.runtimeDescMap),s.preloadRemote.apply(s,e)},Object.defineProperty(t,"registerGlobalPlugins",{enumerable:!0,get:function(){return n.registerGlobalPlugins}}),t.registerPlugins=function(...e){return(0,n.assert)(s,a.RUNTIME_009,a.runtimeDescMap),s.registerPlugins.apply(s,e)},t.registerRemotes=function(...e){return(0,n.assert)(s,a.RUNTIME_009,a.runtimeDescMap),s.registerRemotes.apply(s,e)},t.registerShared=function(...e){return(0,n.assert)(s,a.RUNTIME_009,a.runtimeDescMap),s.registerShared.apply(s,e)}},1073(e,t,r){r(4336);let o=r(8340);t.getGlobalFederationInstance=function(e,t){let r="agentPlugin:2.119.1-canary.b53bbee1d";return o.CurrentGlobal.__FEDERATION__.__INSTANCES__.find(o=>!!r&&o.options.id===r||o.options.name===e&&!o.options.version&&!t||o.options.name===e&&!!t&&o.options.version===t)}},576(e,t){var r=Object.defineProperty;t.__exportAll=(e,t)=>{let o={};for(var n in e)r(o,n,{get:e[n],enumerable:!0});return t||r(o,Symbol.toStringTag,{value:"Module"}),o}},5762(e,t){var r;let o={AT:"@",HYPHEN:"-",SLASH:"/"},n={[o.AT]:"scope_",[o.HYPHEN]:"_",[o.SLASH]:"__"},a={[n[o.AT]]:o.AT,[n[o.HYPHEN]]:o.HYPHEN,[n[o.SLASH]]:o.SLASH},i=((r={})[r.UNKNOWN=1]="UNKNOWN",r[r.CALCULATED=2]="CALCULATED",r[r.NO_USE=0]="NO_USE",r);t.BROWSER_LOG_KEY="FEDERATION_DEBUG",t.ENCODE_NAME_PREFIX="ENCODE_NAME_PREFIX",t.EncodedNameTransformMap=a,t.FederationModuleManifest="federation-manifest.json",t.MANIFEST_EXT=".json",t.MFModuleType={NPM:"npm",APP:"app"},t.MFPrefetchCommon={identifier:"MFDataPrefetch",globalKey:"__PREFETCH__",library:"mf-data-prefetch",exportsKey:"__PREFETCH_EXPORTS__",fileName:"bootstrap.js"},t.MODULE_DEVTOOL_IDENTIFIER="__MF_DEVTOOLS_MODULE_INFO__",t.ManifestFileName="mf-manifest.json",t.NameTransformMap=n,t.NameTransformSymbol=o,t.SEPARATOR=":",t.StatsFileName="mf-stats.json",t.TEMP_DIR=".federation",t.TreeShakingStatus=i},275(e,t){t.createModuleFederationConfig=e=>e},6(e,t,r){let o=r(6049);async function n(e,t){try{return await e()}catch(e){t||o.warn(e);return}}function a(e,t){let r=/^(https?:)?\/\//i;return e.replace(r,"").replace(/\/$/,"")===t.replace(r,"").replace(/\/$/,"")}function i(e){let t,r=null,o=!0,i=2e4,s=document.getElementsByTagName("script");for(let t=0;t<s.length;t++){let n=s[t],i=n.getAttribute("src");if(i&&a(i,e.url)){r=n,o=!1;break}}if(!r){let t,o=e.attrs;(r=document.createElement("script")).type=o?.type==="module"?"module":"text/javascript",e.createScriptHook&&((t=e.createScriptHook(e.url,e.attrs))instanceof HTMLScriptElement?r=t:"object"==typeof t&&("script"in t&&t.script&&(r=t.script),"timeout"in t&&t.timeout&&(i=t.timeout))),r.src||(r.src=e.url),o&&!t&&Object.keys(o).forEach(e=>{r&&("async"===e||"defer"===e?r[e]=o[e]:r.getAttribute(e)||r.setAttribute(e,o[e]))})}let l=null,c="u">typeof window?t=>{if(t.filename&&a(t.filename,e.url)){let r=Error(`ScriptExecutionError: Script "${e.url}" loaded but threw a runtime error during execution: ${t.message} (${t.filename}:${t.lineno}:${t.colno})`);r.name="ScriptExecutionError",l=r}}:null;c&&window.addEventListener("error",c);let u=async(o,a)=>{clearTimeout(t),c&&window.removeEventListener("error",c);let i=()=>{if(a?.type==="error"){let t=Error(a?.isTimeout?`ScriptNetworkError: Script "${e.url}" timed out.`:`ScriptNetworkError: Failed to load script "${e.url}" - the script URL is unreachable or the server returned an error (network failure, 404, CORS, etc.)`);t.name="ScriptNetworkError",e?.onErrorCallback&&e?.onErrorCallback(t)}else l?e?.onErrorCallback&&e?.onErrorCallback(l):e?.cb&&e?.cb()};if(r&&(r.onerror=null,r.onload=null,n(()=>{let{needDeleteScript:t=!0}=e;t&&r?.parentNode&&r.parentNode.removeChild(r)}),o&&"function"==typeof o)){let e=o(a);if(e instanceof Promise){let t=await e;return i(),t}return i(),e}i()};return r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),t=setTimeout(()=>{u(null,{type:"error",isTimeout:!0})},i),{script:r,needAttach:o}}t.createLink=function(e){let t=null,r=!0,o=document.getElementsByTagName("link");for(let n=0;n<o.length;n++){let i=o[n],s=i.getAttribute("href"),l=i.getAttribute("rel");if(s&&a(s,e.url)&&l===e.attrs.rel){t=i,r=!1;break}}if(!t){let r;(t=document.createElement("link")).setAttribute("href",e.url);let o=e.attrs;e.createLinkHook&&(r=e.createLinkHook(e.url,o))instanceof HTMLLinkElement&&(t=r),o&&!r&&Object.keys(o).forEach(e=>{t&&!t.getAttribute(e)&&t.setAttribute(e,o[e])})}let i=(r,o)=>{let a=()=>{o?.type==="error"?e?.onErrorCallback&&e?.onErrorCallback(o):e?.cb&&e?.cb()};if(t&&(t.onerror=null,t.onload=null,n(()=>{let{needDeleteLink:r=!0}=e;r&&t?.parentNode&&t.parentNode.removeChild(t)}),r)){let e=r(o);return a(),e}a()};return t.onerror=i.bind(null,t.onerror),t.onload=i.bind(null,t.onload),{link:t,needAttach:r}},t.createScript=i,t.isStaticResourcesEqual=a,t.loadScript=function(e,t){let{attrs:r={},createScriptHook:o}=t;return new Promise((t,n)=>{let{script:a,needAttach:s}=i({url:e,cb:t,onErrorCallback:n,attrs:{fetchpriority:"high",...r},createScriptHook:o,needDeleteScript:!0});s&&document.head.appendChild(a)})},t.safeWrapper=n},4315(e,t,r){let o=r(5762),n="u">typeof ENV_TARGET?"web"===ENV_TARGET:"u">typeof window&&void 0!==window.document;t.getProcessEnv=function(){return"u">typeof process&&process.env?process.env:{}},t.isBrowserEnv=function(){return n},t.isBrowserEnvValue=n,t.isDebugMode=function(){if("u">typeof process&&process.env&&process.env.FEDERATION_DEBUG)return!!process.env.FEDERATION_DEBUG;if("u">typeof FEDERATION_DEBUG&&FEDERATION_DEBUG)return!0;try{if(n&&window.localStorage)return!!localStorage.getItem(o.BROWSER_LOG_KEY)}catch(e){}return!1},t.isReactNativeEnv=function(){return"u">typeof navigator&&navigator?.product==="ReactNative"}},7824(e,t,r){let o=r(5762),n=(e,t)=>{if(!e)return t;let r=(e=>{if("."===e)return"";if(e.startsWith("./"))return e.replace("./","");if(e.startsWith("/")){let t=e.slice(1);return t.endsWith("/")?t.slice(0,-1):t}return e})(e);return r?r.endsWith("/")?`${r}${t}`:`${r}/${t}`:t};function a(e){return e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")}t.generateSnapshotFromManifest=function(e,t={}){let r,{remotes:o={},overrides:i={},version:s}=t,l=()=>"publicPath"in e.metaData?("auto"===e.metaData.publicPath||""===e.metaData.publicPath)&&s?a(s):e.metaData.publicPath:e.metaData.getPublicPath,c=Object.keys(i),u={};Object.keys(o).length||(u=e.remotes?.reduce((e,t)=>{let r,o=t.federationContainerName;return r=c.includes(o)?i[o]:"version"in t?t.version:t.entry,e[o]={matchedVersion:r},e},{})||{}),Object.keys(o).forEach(e=>u[e]={matchedVersion:c.includes(e)?i[e]:o[e]});let{remoteEntry:{path:f,name:d,type:p},types:h={path:"",name:"",zip:"",api:""},buildInfo:{buildVersion:m},globalName:g,ssrRemoteEntry:y}=e.metaData,{exposes:b}=e,E={version:s||"",buildVersion:m,globalName:g,remoteEntry:n(f,d),remoteEntryType:p,remoteTypes:n(h.path,h.name),remoteTypesZip:h.zip||"",remoteTypesAPI:h.api||"",remotesInfo:u,shared:e?.shared.map(e=>({assets:e.assets,sharedName:e.name,version:e.version,usedExports:e.referenceExports||[]})),modules:b?.map(e=>({moduleName:e.name,modulePath:e.path,assets:e.assets}))};if(e.metaData?.prefetchInterface){let t=e.metaData.prefetchInterface;E={...E,prefetchInterface:t}}if(e.metaData?.prefetchEntry){let{path:t,name:r,type:o}=e.metaData.prefetchEntry;E={...E,prefetchEntry:n(t,r),prefetchEntryType:o}}if("publicPath"in e.metaData?(r={...E,publicPath:l()},"string"==typeof e.metaData.ssrPublicPath&&(r.ssrPublicPath=e.metaData.ssrPublicPath)):r={...E,getPublicPath:l()},y){let e=n(y.path,y.name);r.ssrRemoteEntry=e,r.ssrRemoteEntryType=y.type||"commonjs-module"}return r},t.getManifestFileName=function(e){if(!e)return{statsFileName:o.StatsFileName,manifestFileName:o.ManifestFileName};let t="boolean"==typeof e?"":e.filePath||"",r="boolean"==typeof e?"":e.fileName||"",a=".json",i=r?r.endsWith(a)?r:`${r}${a}`:o.ManifestFileName;return{statsFileName:n(t,r?i.replace(a,`-stats${a}`):o.StatsFileName),manifestFileName:n(t,i)}},t.inferAutoPublicPath=a,t.isManifestProvider=function(e){return!!("remoteEntry"in e&&e.remoteEntry.includes(o.MANIFEST_EXT))},t.simpleJoinRemoteEntry=n},6654(e,t,r){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});let o=r(5762),n=r(9505),a=r(8278),i=r(173),s=r(8305),l=r(6217),c=r(1904),u=r(4315),f=r(6049),d=r(7824),p=r(8318),h=r(6),m=r(5446),g=r(4927),y=r(275);t.BROWSER_LOG_KEY=o.BROWSER_LOG_KEY,t.ENCODE_NAME_PREFIX=o.ENCODE_NAME_PREFIX,t.EncodedNameTransformMap=o.EncodedNameTransformMap,t.FederationModuleManifest=o.FederationModuleManifest,t.MANIFEST_EXT=o.MANIFEST_EXT,t.MFModuleType=o.MFModuleType,t.MFPrefetchCommon=o.MFPrefetchCommon,t.MODULE_DEVTOOL_IDENTIFIER=o.MODULE_DEVTOOL_IDENTIFIER,t.ManifestFileName=o.ManifestFileName,t.NameTransformMap=o.NameTransformMap,t.NameTransformSymbol=o.NameTransformSymbol,t.SEPARATOR=o.SEPARATOR,t.StatsFileName=o.StatsFileName,t.TEMP_DIR=o.TEMP_DIR,t.TreeShakingStatus=o.TreeShakingStatus,t.assert=f.assert,t.bindLoggerToCompiler=p.bindLoggerToCompiler,t.composeKeyWithSeparator=f.composeKeyWithSeparator,Object.defineProperty(t,"consumeSharedPlugin",{enumerable:!0,get:function(){return l.ConsumeSharedPlugin_exports}}),Object.defineProperty(t,"containerPlugin",{enumerable:!0,get:function(){return n.ContainerPlugin_exports}}),Object.defineProperty(t,"containerReferencePlugin",{enumerable:!0,get:function(){return a.ContainerReferencePlugin_exports}}),t.createInfrastructureLogger=p.createInfrastructureLogger,t.createLink=h.createLink,t.createLogger=p.createLogger,t.createModuleFederationConfig=y.createModuleFederationConfig,t.createScript=h.createScript,t.createScriptNode=m.createScriptNode,t.decodeName=f.decodeName,t.encodeName=f.encodeName,t.error=f.error,t.generateExposeFilename=f.generateExposeFilename,t.generateShareFilename=f.generateShareFilename,t.generateSnapshotFromManifest=d.generateSnapshotFromManifest,t.getManifestFileName=d.getManifestFileName,t.getProcessEnv=u.getProcessEnv,t.getResourceUrl=f.getResourceUrl,t.inferAutoPublicPath=d.inferAutoPublicPath,t.infrastructureLogger=p.infrastructureLogger,t.isBrowserEnv=u.isBrowserEnv,t.isBrowserEnvValue=u.isBrowserEnvValue,t.isDebugMode=u.isDebugMode,t.isManifestProvider=d.isManifestProvider,t.isReactNativeEnv=u.isReactNativeEnv,t.isRequiredVersion=f.isRequiredVersion,t.isStaticResourcesEqual=h.isStaticResourcesEqual,t.loadScript=h.loadScript,t.loadScriptNode=m.loadScriptNode,t.logger=p.logger,Object.defineProperty(t,"moduleFederationPlugin",{enumerable:!0,get:function(){return i.ModuleFederationPlugin_exports}}),t.normalizeOptions=g.normalizeOptions,t.parseEntry=f.parseEntry,Object.defineProperty(t,"provideSharedPlugin",{enumerable:!0,get:function(){return c.ProvideSharedPlugin_exports}}),t.safeToString=f.safeToString,t.safeWrapper=h.safeWrapper,Object.defineProperty(t,"sharePlugin",{enumerable:!0,get:function(){return s.SharePlugin_exports}}),t.simpleJoinRemoteEntry=d.simpleJoinRemoteEntry,t.warn=f.warn},8318(e,t,r){let o=r(4315),n="[ Module Federation ]",a=console,i=["logger.ts","logger.js","captureStackTrace","Logger.emit","Logger.log","Logger.info","Logger.warn","Logger.error","Logger.debug"];var s=class{constructor(e,t=a){this.prefix=e,this.delegate=t??a}setPrefix(e){this.prefix=e}setDelegate(e){this.delegate=e??a}emit(e,t){let r=this.delegate,n=o.isDebugMode()?function(){try{let e=(Error()).stack;if(!e)return;let[,...t]=e.split("\n"),r=t.filter(e=>!i.some(t=>e.includes(t)));if(!r.length)return;return`Stack trace:
|
|
4
|
+
${r.slice(0,5).join("\n")}`}catch{return}}():void 0,s=n?[...t,n]:t,l=(()=>{switch(e){case"log":return["log","info"];case"info":return["info","log"];case"warn":return["warn","info","log"];case"error":return["error","warn","log"];default:return["debug","log"]}})();for(let e of l){let t=r[e];if("function"==typeof t)return void t.call(r,this.prefix,...s)}for(let e of l){let t=a[e];if("function"==typeof t)return void t.call(a,this.prefix,...s)}}log(...e){this.emit("log",e)}warn(...e){this.emit("warn",e)}error(...e){this.emit("error",e)}success(...e){this.emit("info",e)}info(...e){this.emit("info",e)}ready(...e){this.emit("info",e)}debug(...e){o.isDebugMode()&&this.emit("debug",e)}};function l(e){return new s(e)}function c(e){let t=new s(e);return Object.defineProperty(t,"__mf_infrastructure_logger__",{value:!0,enumerable:!1,configurable:!1}),t}let u=l(n),f=c(n);t.bindLoggerToCompiler=function(e,t,r){if(e.__mf_infrastructure_logger__&&t?.getInfrastructureLogger)try{let o=t.getInfrastructureLogger(r);o&&"object"==typeof o&&("function"==typeof o.log||"function"==typeof o.info||"function"==typeof o.warn||"function"==typeof o.error)&&e.setDelegate(o)}catch{e.setDelegate(void 0)}},t.createInfrastructureLogger=c,t.createLogger=l,t.infrastructureLogger=f,t.logger=u},5446(__unused_rspack_module,exports){let sdkImportCache=new Map;function importNodeModule(e){if(!e)throw Error("import specifier is required");if(sdkImportCache.has(e))return sdkImportCache.get(e);let t=Function("name","return import(name)")(e).then(e=>e).catch(t=>{throw console.error(`Error importing module ${e}:`,t),sdkImportCache.delete(e),t});return sdkImportCache.set(e,t),t}let loadNodeFetch=async()=>{let e=await importNodeModule("node-fetch");return e.default||e},lazyLoaderHookFetch=async(e,t,r)=>{let o,n=await (o=t||{},r.lifecycle.fetch.emit(e,o));return n&&n instanceof Response?n:("u"<typeof fetch?await loadNodeFetch():fetch)(e,t||{})},createScriptNode="u"<typeof ENV_TARGET||"web"!==ENV_TARGET?(url,cb,attrs,loaderHook)=>{let urlObj;if(loaderHook?.createScriptHook){let hookResult=loaderHook.createScriptHook(url);hookResult&&"object"==typeof hookResult&&"url"in hookResult&&(url=hookResult.url)}try{urlObj=new URL(url)}catch(e){console.error("Error constructing URL:",e),cb(Error(`Invalid URL: ${e}`));return}let getFetch=async()=>loaderHook?.fetch?(e,t)=>lazyLoaderHookFetch(e,t,loaderHook):"u"<typeof fetch?loadNodeFetch():fetch,handleScriptFetch=async(f,urlObj)=>{try{let requireFn,res=await f(urlObj.href),data=await res.text(),[path,vm]=await Promise.all([importNodeModule("path"),importNodeModule("vm")]),scriptContext={exports:{},module:{exports:{}}},urlDirname=urlObj.pathname.split("/").slice(0,-1).join("/"),filename=path.basename(urlObj.pathname),script=new vm.Script(`(function(exports, module, require, __dirname, __filename) {${data}
|
|
5
|
+
})`,{filename,importModuleDynamically:vm.constants?.USE_MAIN_CONTEXT_DEFAULT_LOADER??importNodeModule});requireFn=eval("require"),script.runInThisContext()(scriptContext.exports,scriptContext.module,requireFn,urlDirname,filename);let exportedInterface=scriptContext.module.exports||scriptContext.exports;if(attrs&&exportedInterface&&attrs.globalName)return void cb(void 0,exportedInterface[attrs.globalName]||exportedInterface);cb(void 0,exportedInterface)}catch(e){cb(e instanceof Error?e:Error(`Script execution error: ${e}`))}};getFetch().then(async e=>{if(attrs?.type==="esm"||attrs?.type==="module")return loadModule(urlObj.href,{fetch:e,vm:await importNodeModule("vm")}).then(async e=>{await e.evaluate(),cb(void 0,e.namespace)}).catch(e=>{cb(e instanceof Error?e:Error(`Script execution error: ${e}`))});handleScriptFetch(e,urlObj)}).catch(e=>{cb(e)})}:(e,t,r,o)=>{t(Error("createScriptNode is disabled in non-Node.js environment"))},loadScriptNode="u"<typeof ENV_TARGET||"web"!==ENV_TARGET?(e,t)=>new Promise((r,o)=>{createScriptNode(e,(e,n)=>{if(e)o(e);else{let e=t?.attrs?.globalName||`__FEDERATION_${t?.attrs?.name}:custom__`;r(globalThis[e]=n)}},t.attrs,t.loaderHook)}):(e,t)=>{throw Error("loadScriptNode is disabled in non-Node.js environment")},esmModuleCache=new Map;async function loadModule(e,t){if(esmModuleCache.has(e))return esmModuleCache.get(e);let{fetch:r,vm:o}=t,n=await (await r(e)).text(),a=new o.SourceTextModule(n,{importModuleDynamically:async(r,o)=>loadModule(new URL(r,e).href,t)});return esmModuleCache.set(e,a),await a.link(async r=>{let o=new URL(r,e).href;return await loadModule(o,t)}),a}exports.createScriptNode=createScriptNode,exports.loadScriptNode=loadScriptNode},4927(e,t){t.normalizeOptions=function(e,t,r){return function(o){if(!1===o)return!1;if(void 0===o)if(e)return t;else return!1;if(!0===o)return t;if(o&&"object"==typeof o)return{...t,...o};throw Error(`Unexpected type for \`${r}\`, expect boolean/undefined/object, got: ${typeof o}`)}}},6217(e,t,r){var o=r(576).__exportAll({});Object.defineProperty(t,"ConsumeSharedPlugin_exports",{enumerable:!0,get:function(){return o}})},9505(e,t,r){var o=r(576).__exportAll({});Object.defineProperty(t,"ContainerPlugin_exports",{enumerable:!0,get:function(){return o}})},8278(e,t,r){var o=r(576).__exportAll({});Object.defineProperty(t,"ContainerReferencePlugin_exports",{enumerable:!0,get:function(){return o}})},173(e,t,r){var o=r(576).__exportAll({});Object.defineProperty(t,"ModuleFederationPlugin_exports",{enumerable:!0,get:function(){return o}})},1904(e,t,r){var o=r(576).__exportAll({});Object.defineProperty(t,"ProvideSharedPlugin_exports",{enumerable:!0,get:function(){return o}})},8305(e,t,r){var o=r(576).__exportAll({});Object.defineProperty(t,"SharePlugin_exports",{enumerable:!0,get:function(){return o}})},6049(e,t,r){let o=r(5762),n=r(4315),a="[ Federation Runtime ]",i=function(e,t="",r=!1){try{return`${t}${e.replace(RegExp(`${o.NameTransformSymbol.AT}`,"g"),o.NameTransformMap[o.NameTransformSymbol.AT]).replace(RegExp(`${o.NameTransformSymbol.HYPHEN}`,"g"),o.NameTransformMap[o.NameTransformSymbol.HYPHEN]).replace(RegExp(`${o.NameTransformSymbol.SLASH}`,"g"),o.NameTransformMap[o.NameTransformSymbol.SLASH])}${r?".js":""}`}catch(e){throw e}},s=e=>{throw Error(`${a}: ${e}`)},l=/^([\d^=v<>~]|[*xX]$)/;t.assert=(e,t)=>{e||s(t)},t.composeKeyWithSeparator=function(...e){return e.length?e.reduce((e,t)=>t?e?`${e}${o.SEPARATOR}${t}`:t:e,""):""},t.decodeName=function(e,t,r){try{let n=e;if(t){if(!n.startsWith(t))return n;n=n.replace(RegExp(t,"g"),"")}return n=n.replace(RegExp(`${o.NameTransformMap[o.NameTransformSymbol.AT]}`,"g"),o.EncodedNameTransformMap[o.NameTransformMap[o.NameTransformSymbol.AT]]).replace(RegExp(`${o.NameTransformMap[o.NameTransformSymbol.SLASH]}`,"g"),o.EncodedNameTransformMap[o.NameTransformMap[o.NameTransformSymbol.SLASH]]).replace(RegExp(`${o.NameTransformMap[o.NameTransformSymbol.HYPHEN]}`,"g"),o.EncodedNameTransformMap[o.NameTransformMap[o.NameTransformSymbol.HYPHEN]]),r&&(n=n.replace(".js","")),n}catch(e){throw e}},t.encodeName=i,t.error=s,t.generateExposeFilename=(e,t)=>{if(!e)return"";let r=e;return"."===r&&(r="default_export"),r.startsWith("./")&&(r=r.replace("./","")),i(r,"__federation_expose_",t)},t.generateShareFilename=(e,t)=>e?i(e,"__federation_shared_",t):"",t.getResourceUrl=(e,t)=>{if("getPublicPath"in e){let r;return r=e.getPublicPath.startsWith("function")?Function("return "+e.getPublicPath)()():Function(e.getPublicPath)(),`${r}${t}`}return"publicPath"in e?!n.isBrowserEnv()&&!n.isReactNativeEnv()&&"ssrPublicPath"in e&&"string"==typeof e.ssrPublicPath?`${e.ssrPublicPath}${t}`:`${e.publicPath}${t}`:(console.warn("Cannot get resource URL. If in debug mode, please ignore.",e,t),"")},t.isRequiredVersion=function(e){return l.test(e)},t.parseEntry=(e,t,r=o.SEPARATOR)=>{let a=e.split(r),i="development"===n.getProcessEnv().NODE_ENV&&t,s=e=>e.startsWith("http")||e.includes(o.MANIFEST_EXT);if(a.length>=2){let[t,...o]=a;e.startsWith(r)&&(t=a.slice(0,2).join(r),o=[i||a.slice(2).join(r)]);let n=i||o.join(r);return s(n)?{name:t,entry:n}:{name:t,version:n||"*"}}if(1===a.length){let[e]=a;return i&&s(i)?{name:e,entry:i}:{name:e,version:i||"*"}}throw`Invalid entry value: ${e}`},t.safeToString=function(e){try{return JSON.stringify(e,null,2)}catch(e){return""}},t.warn=e=>{console.warn(`${a}: ${e}`)}},3728(e,t){var r=Object.create,o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty;t.__toESM=(e,t,l)=>(l=null!=e?r(i(e)):{},((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var i,l=a(t),c=0,u=l.length;c<u;c++)i=l[c],s.call(e,i)||void 0===i||o(e,i,{get:(e=>t[e]).bind(null,i),enumerable:!(r=n(t,i))||r.enumerable});return e})(!t&&e&&e.__esModule?l:o(l,"default",{value:e,enumerable:!0}),e))},3780(e,t){t.attachShareScopeMap=function(e){e.S&&!e.federation.hasAttachShareScopeMap&&e.federation.instance&&e.federation.instance.shareScopeMap&&(e.S=e.federation.instance.shareScopeMap,e.federation.hasAttachShareScopeMap=!0)}},1938(e,t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.FEDERATION_SUPPORTED_TYPES=["script"]},1787(e,t,r){let o=r(3780),n=r(537),a=r(3634),i=r(8386),s=r(4568);t.consumes=function(e){n.updateConsumeOptions(e);let{chunkId:t,promises:r,installedModules:l,webpackRequire:c,chunkMapping:u,moduleToHandlerMapping:f}=e;o.attachShareScopeMap(c),c.o(u,t)&&u[t].forEach(e=>{if(c.o(l,e))return r.push(l[e]);let t=t=>{l[e]=0,c.m[e]=r=>{delete c.c[e];let o=t(),{shareInfo:n}=f[e];if(n?.shareConfig?.layer&&o&&"object"==typeof o)try{o.hasOwnProperty("layer")&&void 0!==o.layer||(o.layer=n.shareConfig.layer)}catch(e){}r.exports=o}},o=t=>{delete l[e],c.m[e]=r=>{throw delete c.c[e],t}};try{let n=c.federation.instance;if(!n)throw Error("Federation instance not found!");let{shareKey:u,getter:d,shareInfo:p,treeShakingGetter:h}=f[e],m=a.getUsedExports(c,u),g={...p};Array.isArray(g.scope)&&Array.isArray(g.scope[0])&&(g.scope=g.scope[0]),m&&(g.treeShaking={usedExports:m,useIn:[n.options.name]});let y=n.loadShare(u,{customShareInfo:g}).then(e=>{if(!1===e){if("function"!=typeof d)throw Error(s.getShortErrorMsg(i.RUNTIME_012,{[i.RUNTIME_012]:'The getter for the shared module is not a function. This may be caused by setting "shared.import: false" without the host providing the corresponding lib.'},{shareKey:u}));return h?.()||d()}return e});y.then?r.push(l[e]=y.then(t).catch(o)):t(y)}catch(e){o(e)}})}},8386(e,t){t.RUNTIME_012="RUNTIME-012"},4568(e,t){t.getShortErrorMsg=(e,t,r,o)=>{let n=[`${[t[e]]} #${e}`];return r&&n.push(`args: ${JSON.stringify(r)}`),n.push(`View the docs to see how to solve: https://module-federation.io/guide/troubleshooting/${e.split("-")[0].toLowerCase()}#${e.toLowerCase()}`),o&&n.push(`Original Error Message:
|
|
6
|
+
${o}`),n.join("\n")}},3126(e,t){t.getSharedFallbackGetter=({shareKey:e,factory:t,version:r,webpackRequire:o,libraryType:n="global"})=>{let{runtime:a,instance:i,bundlerRuntime:s,sharedFallback:l}=o.federation;if(!l)return t;let c=l[e];if(!c)return t;let u=r?c.find(e=>e[1]===r):c[0];if(!u)throw Error(`No fallback item found for shareKey: ${e} and version: ${r}`);return()=>a.getRemoteEntry({origin:o.federation.instance,remoteInfo:{name:u[2],entry:`${o.p}${u[0]}`,type:n,entryGlobalName:u[2],shareScope:"default"}}).then(t=>{if(!t)throw Error(`Failed to load fallback entry for shareKey: ${e} and version: ${r}`);return t.init(o.federation.instance,s).then(()=>t.get())})}},3634(e,t){t.getUsedExports=function(e,t){let r=e.federation.usedExports;if(r)return r[t]}},7038(e,t,r){Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});let o=r(3728),n=r(3780),a=r(1415),i=r(1787),s=r(1592),l=r(6992),c=r(5135),u=r(1988),f=r(3126),d=r(5694),p={runtime:d=o.__toESM(d),instance:void 0,initOptions:void 0,bundlerRuntime:{remotes:a.remotes,consumes:i.consumes,I:s.initializeSharing,S:{},installInitialConsumes:l.installInitialConsumes,initContainerEntry:c.initContainerEntry,init:u.init,getSharedFallbackGetter:f.getSharedFallbackGetter},attachShareScopeMap:n.attachShareScopeMap,bundlerRuntimeOptions:{}},h=p.instance,m=p.initOptions,g=p.bundlerRuntime,y=p.bundlerRuntimeOptions;t.attachShareScopeMap=n.attachShareScopeMap,t.bundlerRuntime=g,t.bundlerRuntimeOptions=y,t.default=p,t.initOptions=m,t.instance=h,Object.defineProperty(t,"runtime",{enumerable:!0,get:function(){return d}})},1988(e,t,r){let o=r(3728),n=r(5694),a=r(7329);a=o.__toESM(a),t.init=function({webpackRequire:e}){let{initOptions:t,runtime:o,sharedFallback:i,bundlerRuntime:s,libraryType:l}=e.federation;if(!t)throw Error("initOptions is required!");return t.plugins||=[],t.plugins.push({name:"tree-shake-plugin",beforeInit(t){let{userOptions:o,origin:c,options:u}=t,f=o.version||u.version;if(!i)return t;let d=o.shared||{},p=[];Object.keys(d).forEach(t=>{(Array.isArray(d[t])?d[t]:[d[t]]).forEach(r=>{p.push([t,r]),"get"in r&&(r.treeShaking||={},r.treeShaking.get=r.get,r.get=s.getSharedFallbackGetter({shareKey:t,factory:r.get,webpackRequire:e,libraryType:l,version:r.version}))})});let h=a.default.global.getGlobalSnapshotInfoByModuleInfo({name:c.name,version:f});return h&&"shared"in h&&(Object.keys(u.shared||{}).forEach(e=>{u.shared[e].forEach(t=>{p.push([e,t])})}),p.forEach(([e,t])=>{((e,t)=>{let o=h.shared.find(t=>t.sharedName===e);if(!o)return;let{treeShaking:a}=t;if(!a)return;let{secondarySharedTreeShakingName:i,secondarySharedTreeShakingEntry:s,treeShakingStatus:u}=o;a.status!==u&&(a.status=u,s&&l&&i&&(a.get=async()=>{let e=await (0,n.getRemoteEntry)({origin:c,remoteInfo:{name:i,entry:s,type:l,entryGlobalName:i,shareScope:"default"}});return await e.init(c,r.federation.bundlerRuntime),e.get()}))})(e,t)})),t}}),o.init(t)}},5135(e,t){t.initContainerEntry=function(e){let{webpackRequire:t,shareScope:r,initScope:o,shareScopeKey:n,remoteEntryInitOptions:a}=e;if(!t.S||!t.federation||!t.federation.instance||!t.federation.initOptions)return;let i=t.federation.instance;i.initOptions({name:t.federation.initOptions.name,remotes:[],...a});let s=a?.shareScopeKeys,l=a?.shareScopeMap;if(n&&"string"!=typeof n)n.forEach(e=>{if(!s||!l)return void i.initShareScopeMap(e,r,{hostShareScopeMap:a?.shareScopeMap||{}});l[e]||(l[e]={});let t=l[e];i.initShareScopeMap(e,t,{hostShareScopeMap:a?.shareScopeMap||{}})});else{let e=n||"default";Array.isArray(s)?s.forEach(e=>{l[e]||(l[e]={});let t=l[e];i.initShareScopeMap(e,t,{hostShareScopeMap:a?.shareScopeMap||{}})}):i.initShareScopeMap(e,r,{hostShareScopeMap:a?.shareScopeMap||{}})}return(t.federation.attachShareScopeMap&&t.federation.attachShareScopeMap(t),"function"==typeof t.federation.prefetch&&t.federation.prefetch(),Array.isArray(n))?t.federation.initOptions.shared?t.I(n,o):Promise.all(n.map(e=>t.I(e,o))).then(()=>!0):t.I(n||"default",o)}},1592(e,t,r){let o=r(3780),n=r(1938);t.initializeSharing=function({shareScopeName:e,webpackRequire:t,initPromises:r,initTokens:a,initScope:i}){let s=Array.isArray(e)?e:[e];var l=[],c=function(s){i||(i=[]);let l=t.federation.instance;var c=a[s];if(c||(c=a[s]={from:l.name}),i.indexOf(c)>=0)return;i.push(c);let u=r[s];if(u)return u;var f=r=>{var o=e=>{let t;return t="Initialization of sharing external failed: "+e,"u">typeof console&&console.warn&&console.warn(t)};try{var n=t(r);if(!n)return;var a=r=>r&&r.init&&r.init(t.S[s],i,{shareScopeMap:t.S||{},shareScopeKeys:e});if(n.then)return d.push(n.then(a,o));var l=a(n);if(l&&"boolean"!=typeof l&&l.then)return d.push(l.catch(o))}catch(e){o(e)}};let d=l.initializeSharing(s,{strategy:l.options.shareStrategy,initScope:i,from:"build"});o.attachShareScopeMap(t);let p=t.federation.bundlerRuntimeOptions.remotes;return(p&&Object.keys(p.idToRemoteMap).forEach(e=>{let t=p.idToRemoteMap[e],r=p.idToExternalAndNameMapping[e][2];if(t.length>1)f(r);else if(1===t.length){let e=t[0];n.FEDERATION_SUPPORTED_TYPES.includes(e.externalType)||f(r)}}),d.length)?r[s]=Promise.all(d).then(()=>r[s]=!0):r[s]=!0};return s.forEach(e=>{l.push(c(e))}),Promise.all(l).then(()=>!0)}},6992(e,t,r){let o=r(537),n=r(3634);t.installInitialConsumes=function(e){o.updateConsumeOptions(e);let{moduleToHandlerMapping:t,webpackRequire:r,installedModules:a,initialConsumes:i,asyncLoad:s}=e,l=[];i.forEach(e=>{l.push([e,()=>(function(e){let{moduleId:t,moduleToHandlerMapping:r,webpackRequire:o,asyncLoad:a}=e,i=o.federation.instance;if(!i)throw Error("Federation instance not found!");let{shareKey:s,shareInfo:l}=r[t];try{let e=n.getUsedExports(o,s),t={...l};if(e&&(t.treeShaking={usedExports:e,useIn:[i.options.name]}),a)return i.loadShare(s,{customShareInfo:t});return i.loadShareSync(s,{customShareInfo:t})}catch(e){throw console.error('loadShareSync failed! The function should not be called unless you set "eager:true". If you do not set it, and encounter this issue, you can check whether an async boundary is implemented.'),console.error("The original error message is as follows: "),e}})({moduleId:e,moduleToHandlerMapping:t,webpackRequire:r,asyncLoad:s})])});let c=(e,o)=>{r.m[e]=n=>{a[e]=0,delete r.c[e];let i=o();if("function"!=typeof i)throw Error(`Shared module is not available for eager consumption: ${e}`);let s=i(),{shareInfo:l}=t[e];if(l?.shareConfig?.layer&&s&&"object"==typeof s)try{s.hasOwnProperty("layer")&&void 0!==s.layer||(s.layer=l.shareConfig.layer)}catch(e){}n.exports=s}};if(s)return Promise.all(l.map(async([e,t])=>{let r=await t();c(e,()=>r)}));l.forEach(([e,t])=>{c(e,t)})}},1415(e,t,r){r(3728);let o=r(3780),n=r(1938),a=r(537),i=r(6654);t.remotes=function(e){a.updateRemoteOptions(e);let{chunkId:t,promises:r,webpackRequire:s,chunkMapping:l,idToExternalAndNameMapping:c,idToRemoteMap:u}=e;o.attachShareScopeMap(s),s.o(l,t)&&l[t].forEach(e=>{let t=s.R;t||(t=[]);let o=c[e],a=u[e]||[];if(t.indexOf(o)>=0)return;if(t.push(o),o.p)return r.push(o.p);let l=t=>{t||(t=Error("Container missing")),"string"==typeof t.message&&(t.message+=`
|
|
7
|
+
while loading "${o[1]}" from ${o[2]}`),s.m[e]=()=>{throw t},o.p=0},f=(e,t,n,a,i,s)=>{try{let c=e(t,n);if(!c||!c.then)return i(c,a,s);{let e=c.then(e=>i(e,a),l);if(!s)return e;r.push(o.p=e)}}catch(e){l(e)}};var d=(e,r,n)=>f(r.get,o[1],t,0,p,n),p=t=>{o.p=1,s.m[e]=e=>{e.exports=t()}};1===a.length&&n.FEDERATION_SUPPORTED_TYPES.includes(a[0].externalType)&&a[0].name?f(()=>{try{let e=(0,i.decodeName)(a[0].name,i.ENCODE_NAME_PREFIX)+o[1].slice(1),t=s.federation.instance,r=()=>s.federation.instance.loadRemote(e,{loadFactory:!1,from:"build"});if("version-first"===t.options.shareStrategy){let e=Array.isArray(o[0])?o[0]:[o[0]];return Promise.all(e.map(e=>t.sharedHandler.initializeSharing(e))).then(()=>r())}return r()}catch(e){l(e)}},o[2],0,0,p,1):f(s,o[2],0,0,(e,t,r)=>e?f(s.I,o[0],0,e,d,r):l(),1)})}},537(e,t){t.updateConsumeOptions=function(e){let{webpackRequire:t,moduleToHandlerMapping:r}=e,{consumesLoadingData:o,initializeSharingData:n}=t,{sharedFallback:a,bundlerRuntime:i,libraryType:s}=t.federation;if(o&&!o._updated){let{moduleIdToConsumeDataMapping:n={},initialConsumes:l=[],chunkMapping:c={}}=o;if(Object.entries(n).forEach(([e,o])=>{r[e]||(r[e]={getter:a?i?.getSharedFallbackGetter({shareKey:o.shareKey,factory:o.fallback,webpackRequire:t,libraryType:s}):o.fallback,treeShakingGetter:a?o.fallback:void 0,shareInfo:{shareConfig:{requiredVersion:o.requiredVersion,strictVersion:o.strictVersion,singleton:o.singleton,eager:o.eager,layer:o.layer},scope:Array.isArray(o.shareScope)?o.shareScope:[o.shareScope||"default"],treeShaking:a?{get:o.fallback,mode:o.treeShakingMode}:void 0},shareKey:o.shareKey})}),"initialConsumes"in e){let{initialConsumes:t=[]}=e;l.forEach(e=>{t.includes(e)||t.push(e)})}if("chunkMapping"in e){let{chunkMapping:t={}}=e;Object.entries(c).forEach(([e,r])=>{t[e]||(t[e]=[]),r.forEach(r=>{t[e].includes(r)||t[e].push(r)})})}o._updated=1}if(n&&!n._updated){let{federation:e}=t;if(!e.instance||!n.scopeToSharingDataMapping)return;let r={};for(let[e,t]of Object.entries(n.scopeToSharingDataMapping))for(let o of t)if("object"==typeof o&&null!==o){let{name:t,version:n,factory:a,eager:i,singleton:s,requiredVersion:l,strictVersion:c}=o,u={requiredVersion:`^${n}`},f=function(e){return void 0!==e};f(s)&&(u.singleton=s),f(l)&&(u.requiredVersion=l),f(i)&&(u.eager=i),f(c)&&(u.strictVersion=c);let d={version:n,scope:[e],shareConfig:u,get:a};r[t]?r[t].push(d):r[t]=[d]}e.instance.registerShared(r),n._updated=1}},t.updateRemoteOptions=function(e){let{webpackRequire:t,idToExternalAndNameMapping:r={},idToRemoteMap:o={},chunkMapping:n={}}=e,{remotesLoadingData:a}=t,i=t.federation?.bundlerRuntimeOptions?.remotes?.remoteInfos;if(!a||a._updated||!i)return;let{chunkMapping:s,moduleIdToRemoteDataMapping:l}=a;if(s&&l){for(let[e,t]of Object.entries(l))if(r[e]||(r[e]=[t.shareScope,t.name,t.externalModuleId]),!o[e]&&i[t.remoteName]){let r=i[t.remoteName];o[e]||=[],r.forEach(t=>{o[e].includes(t)||o[e].push(t)})}n&&Object.entries(s).forEach(([e,t])=>{n[e]||(n[e]=[]),t.forEach(t=>{n[e].includes(t)||n[e].push(t)})}),a._updated=1}}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(r.exports,r,r.exports,__webpack_require__),r.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.c=__webpack_module_cache__,__webpack_require__.x=()=>__webpack_require__(820),__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;__webpack_require__.t=function(r,o){if(1&o&&(r=this(r)),8&o||"object"==typeof r&&r&&(4&o&&r.__esModule||16&o&&"function"==typeof r.then))return r;var n=Object.create(null);__webpack_require__.r(n);var a={};e=e||[null,t({}),t([]),t(t)];for(var i=2&o&&r;("object"==typeof i||"function"==typeof i)&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(e=>{a[e]=()=>r[e]});return a.default=()=>r,__webpack_require__.d(n,a),n}})(),__webpack_require__.d=(e,t,r)=>{var o=(t,r)=>{for(var o in t)__webpack_require__.o(t,o)&&!__webpack_require__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,[r]:t[o]})};o(t,"get"),o(r,"value")},__webpack_require__.f={},__webpack_require__.e=e=>Promise.all(Object.keys(__webpack_require__.f).reduce((t,r)=>(__webpack_require__.f[r](e,t),t),[])),__webpack_require__.u=e=>""+(596===e?"__federation_expose_AgentsPage":e)+".js",__webpack_require__.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="@kb-labs/agent-entry:";__webpack_require__.l=function(r,o,n,a){if(e[r])return void e[r].push(o);if(void 0!==n)for(var i,s,l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var u=l[c];if(u.getAttribute("src")==r||u.getAttribute("data-rspack")==t+n){i=u;break}}i||(s=!0,(i=document.createElement("script")).timeout=120,__webpack_require__.nc&&i.setAttribute("nonce",__webpack_require__.nc),i.setAttribute("data-rspack",t+n),i.src=r),e[r]=[o];var f=function(t,o){i.onerror=i.onload=null,clearTimeout(d);var n=e[r];if(delete e[r],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach(function(e){return e(o)}),t)return t(o)},d=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),s&&document.head.appendChild(i)}})(),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.federation||(__webpack_require__.federation={chunkMatcher:function(e){return!/^(295|397|608|792)$/.test(e)},rootOutputDir:""}),__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__.S={},__webpack_require__.initializeSharingData={scopeToSharingDataMapping:{default:[{name:"@kb-labs/studio-event-bus",version:"2.119.1-canary.b53bbee1d",factory:()=>Promise.all([__webpack_require__.e(397),__webpack_require__.e(50)]).then(()=>()=>__webpack_require__(4332)),eager:0,treeShakingMode:null,singleton:1,requiredVersion:"^2.0.0"},{name:"@kb-labs/studio-hooks",version:"2.119.1-canary.b53bbee1d",factory:()=>Promise.all([__webpack_require__.e(397),__webpack_require__.e(608),__webpack_require__.e(792),__webpack_require__.e(370),__webpack_require__.e(945)]).then(()=>()=>__webpack_require__(3481)),eager:0,treeShakingMode:null,singleton:1,requiredVersion:"^2.0.0"},{name:"@kb-labs/studio-ui-core",version:"2.119.1-canary.b53bbee1d",factory:()=>__webpack_require__.e(968).then(()=>()=>__webpack_require__(3755)),eager:0,treeShakingMode:null,singleton:1,requiredVersion:"^2.0.0"},{name:"@kb-labs/studio-ui-kit",version:"2.119.1-canary.b53bbee1d",factory:()=>Promise.all([__webpack_require__.e(648),__webpack_require__.e(832),__webpack_require__.e(397),__webpack_require__.e(608),__webpack_require__.e(792),__webpack_require__.e(117),__webpack_require__.e(326)]).then(()=>()=>__webpack_require__(2924)),eager:0,treeShakingMode:null,singleton:1,requiredVersion:"^2.0.0"},{name:"@tanstack/react-query",version:"5.97.0",factory:()=>Promise.all([__webpack_require__.e(78),__webpack_require__.e(397),__webpack_require__.e(707)]).then(()=>()=>__webpack_require__(453)),eager:0,treeShakingMode:null,singleton:1,requiredVersion:"^5.0.0"},{name:"antd",version:"5.29.3",factory:()=>Promise.all([__webpack_require__.e(648),__webpack_require__.e(46),__webpack_require__.e(397),__webpack_require__.e(295)]).then(()=>()=>__webpack_require__(8229)),eager:0,treeShakingMode:null,singleton:1,requiredVersion:"^5.21.0"},{name:"react-dom",version:"19.2.5",factory:()=>Promise.all([__webpack_require__.e(397),__webpack_require__.e(546)]).then(()=>()=>__webpack_require__(1297)),eager:0,treeShakingMode:null,singleton:1,requiredVersion:"^19.0.0"},{name:"react-router-dom",version:"7.18.1",factory:()=>Promise.all([__webpack_require__.e(875),__webpack_require__.e(397),__webpack_require__.e(295)]).then(()=>()=>__webpack_require__(7174)),eager:0,treeShakingMode:null,singleton:1,requiredVersion:"^7.0.0"},{name:"react",version:"19.2.5",factory:()=>__webpack_require__.e(405).then(()=>()=>__webpack_require__(6740)),eager:0,treeShakingMode:null,singleton:1,requiredVersion:"^19.0.0"}]},uniqueName:"@kb-labs/agent-entry"},__webpack_require__.I=__webpack_require__.I||function(){throw Error("should have __webpack_require__.I")},(()=>{__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var e,t=__webpack_require__.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var o=r.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=r[o--].src}if(!e)throw Error("Automatic publicPath is not supported in this browser");__webpack_require__.p=e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")})(),__webpack_require__.consumesLoadingData={chunkMapping:{295:["4778"],370:["5699","9312"],397:["92"],596:["4519","5155"],608:["7899"],792:["9497","5963"]},moduleIdToConsumeDataMapping:{4519:{shareScope:"default",shareKey:"@kb-labs/studio-hooks",import:"@kb-labs/studio-hooks",requiredVersion:"^2.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([__webpack_require__.e(608),__webpack_require__.e(370)]).then(()=>()=>__webpack_require__(3481)),treeShakingMode:null},4778:{shareScope:"default",shareKey:"react-dom",import:"react-dom",requiredVersion:"^19.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>__webpack_require__.e(165).then(()=>()=>__webpack_require__(1297)),treeShakingMode:null},5155:{shareScope:"default",shareKey:"@kb-labs/studio-ui-kit",import:"@kb-labs/studio-ui-kit",requiredVersion:"^2.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([__webpack_require__.e(648),__webpack_require__.e(832),__webpack_require__.e(608),__webpack_require__.e(117)]).then(()=>()=>__webpack_require__(2924)),treeShakingMode:null},5699:{shareScope:"default",shareKey:"@kb-labs/studio-event-bus",import:"@kb-labs/studio-event-bus",requiredVersion:"^2.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>__webpack_require__.e(669).then(()=>()=>__webpack_require__(4332)),treeShakingMode:null},5963:{shareScope:"default",shareKey:"react-router-dom",import:"react-router-dom",requiredVersion:"^7.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([__webpack_require__.e(875),__webpack_require__.e(295)]).then(()=>()=>__webpack_require__(7174)),treeShakingMode:null},7899:{shareScope:"default",shareKey:"@kb-labs/studio-ui-core",import:"@kb-labs/studio-ui-core",requiredVersion:"^2.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>__webpack_require__.e(968).then(()=>()=>__webpack_require__(3755)),treeShakingMode:null},92:{shareScope:"default",shareKey:"react",import:"react",requiredVersion:"^19.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>__webpack_require__.e(405).then(()=>()=>__webpack_require__(6740)),treeShakingMode:null},9312:{shareScope:"default",shareKey:"@tanstack/react-query",import:"@tanstack/react-query",requiredVersion:"^5.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>__webpack_require__.e(78).then(()=>()=>__webpack_require__(453)),treeShakingMode:null},9497:{shareScope:"default",shareKey:"antd",import:"antd",requiredVersion:"^5.21.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([__webpack_require__.e(648),__webpack_require__.e(46),__webpack_require__.e(295)]).then(()=>()=>__webpack_require__(8229)),treeShakingMode:null}},initialConsumes:[]},__webpack_require__.f.consumes=__webpack_require__.f.consumes||function(){throw Error("should have __webpack_require__.f.consumes")},__webpack_require__.initializeExposesData={moduleMap:{"./AgentsPage":()=>Promise.all([__webpack_require__.e(397),__webpack_require__.e(792),__webpack_require__.e(596)]).then(()=>()=>__webpack_require__(9243))},shareScope:"default"},__webpack_require__.getContainer=__webpack_require__.getContainer||function(){throw Error("should have __webpack_require__.getContainer")},__webpack_require__.initContainer=__webpack_require__.initContainer||function(){throw Error("should have __webpack_require__.initContainer")},(()=>{var e={856:0};__webpack_require__.f.j=function(t,r){var o=__webpack_require__.o(e,t)?e[t]:void 0;if(0!==o)if(o)r.push(o[2]);else if(/^(295|397|608|792)$/.test(t))e[t]=0;else{var n=new Promise((r,n)=>o=e[t]=[r,n]);r.push(o[2]=n);var a=__webpack_require__.p+__webpack_require__.u(t),i=Error();__webpack_require__.l(a,function(r){if(__webpack_require__.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var n=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+n+": "+a+")",i.name="ChunkLoadError",i.type=n,i.request=a,o[1](i)}},"chunk-"+t,t)}};var t=(t,r)=>{var o,n,[a,i,s]=r,l=0;if(a.some(t=>0!==e[t])){for(o in i)__webpack_require__.o(i,o)&&(__webpack_require__.m[o]=i[o]);s&&s(__webpack_require__)}for(t&&t(r);l<a.length;l++)n=a[l],__webpack_require__.o(e,n)&&e[n]&&e[n][0](),e[n]=0},r=self.rspackChunk_kb_labs_agent_entry=self.rspackChunk_kb_labs_agent_entry||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{var e=__webpack_require__.x,t=!1;__webpack_require__.x=function(){if(t||(t=!0,__webpack_require__(7616)),"function"==typeof e)return e();console.warn("[MF] Invalid prevStartup")}})();var __webpack_exports__=__webpack_require__.x();agentPlugin=__webpack_exports__})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../home/runner/work/kb-labs/kb-labs/plugins/agents/entry/src/rest/run-manager.ts","../../../home/runner/work/kb-labs/kb-labs/plugins/agents/entry/src/ws/session-stream-handler.ts"],"names":[],"mappings":"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","file":"session-stream-handler.js","sourcesContent":["/**\n * Run Manager - tracks active agent runs for REST/WS API\n *\n * Uses platform cache for persistence and in-memory Map for active agents.\n * Cache stores serializable run state, Map stores live agent references.\n */\n\nimport type { IAgentRunner } from '@kb-labs/agent-sdk';\nimport type { SessionManager } from '@kb-labs/agent-core';\nimport type { Turn, TurnDelta } from '@kb-labs/agent-contracts';\nimport { useCache } from '@kb-labs/sdk';\n\nconst CACHE_PREFIX = 'agent:run:';\nconst CACHE_TTL = 3600000; // 1 hour\n\n/**\n * Run status\n */\nexport type RunStatus = 'pending' | 'running' | 'completed' | 'failed' | 'stopped';\n\n/**\n * Serializable run state (stored in cache)\n */\nexport interface RunState {\n runId: string;\n task: string;\n status: RunStatus;\n startedAt: string;\n completedAt?: string;\n durationMs?: number;\n summary?: string;\n error?: string;\n}\n\n/**\n * Active run with live agent (in-memory only)\n */\nexport interface ActiveRun extends RunState {\n agent?: IAgentRunner;\n sessionManager: SessionManager;\n}\n\n/**\n * Payload delivered to session-level listeners — the sole live-update\n * channel for a session's WS connection(s). `deltas` carries incremental\n * turn changes (see TurnDelta); `run:completed` is a terminal signal\n * carrying the finished run's outcome and, when available, the final\n * state of the assistant turn it produced.\n */\nexport type SessionBroadcastPayload =\n | { kind: 'deltas'; deltas: TurnDelta[] }\n | {\n kind: 'run:completed';\n runId: string;\n success: boolean;\n summary: string;\n durationMs: number;\n seq: number;\n turn?: Turn;\n };\n\ntype SessionListenerCallback = (payload: SessionBroadcastPayload) => void;\n\n/**\n * Run Manager implementation\n */\nclass RunManagerImpl {\n /** Live agents (not cacheable) */\n private activeRuns: Map<string, ActiveRun> = new Map();\n\n /** Session-level listeners: sessionId → Set<callback> — receive updates from ALL runs in session */\n private sessionListeners: Map<string, Set<SessionListenerCallback>> = new Map();\n\n /**\n * Generate unique run ID\n */\n generateRunId(): string {\n return `run-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`;\n }\n\n /**\n * Register a new run\n */\n async register(\n runId: string,\n task: string,\n agent: IAgentRunner | undefined,\n sessionManager: SessionManager,\n ): Promise<ActiveRun> {\n const now = new Date().toISOString();\n\n const run: ActiveRun = {\n runId,\n task,\n status: 'pending',\n agent,\n sessionManager,\n startedAt: now,\n };\n\n // Store in memory (for live agent)\n this.activeRuns.set(runId, run);\n\n // Store serializable state in cache\n await this.saveToCache(run);\n\n return run;\n }\n\n /**\n * Get run by ID (from memory first, then cache for state)\n */\n get(runId: string): ActiveRun | undefined {\n return this.activeRuns.get(runId);\n }\n\n /**\n * Check if run exists (in memory or cache)\n */\n async exists(runId: string): Promise<boolean> {\n // Check memory first\n if (this.activeRuns.has(runId)) {\n return true;\n }\n // Fallback to cache\n const state = await this.getState(runId);\n return state !== null;\n }\n\n /**\n * Get run state from cache (for completed runs or cross-process access)\n */\n async getState(runId: string): Promise<RunState | null> {\n const cache = useCache();\n if (!cache) {return null;}\n\n return cache.get<RunState>(`${CACHE_PREFIX}${runId}`);\n }\n\n /**\n * Update run status\n */\n async updateStatus(runId: string, status: RunStatus, extra?: Partial<RunState>): Promise<void> {\n const run = this.activeRuns.get(runId);\n if (run) {\n run.status = status;\n if (extra) {\n Object.assign(run, extra);\n }\n await this.saveToCache(run);\n }\n }\n\n /**\n * Save run state to cache\n */\n private async saveToCache(run: ActiveRun): Promise<void> {\n const cache = useCache();\n if (!cache) {return;}\n\n const state: RunState = {\n runId: run.runId,\n task: run.task,\n status: run.status,\n startedAt: run.startedAt,\n completedAt: run.completedAt,\n durationMs: run.durationMs,\n summary: run.summary,\n error: run.error,\n };\n\n await cache.set(`${CACHE_PREFIX}${run.runId}`, state, CACHE_TTL);\n }\n\n /**\n * Broadcast turn deltas to all session-level listeners. Callers MUST await\n * persistence (sessionManager.addEvent) before calling this, so listeners\n * never observe a delta whose underlying turn state isn't on disk yet —\n * that ordering is what makes gap-recovery / reconnect resume correct.\n */\n broadcastSessionDeltas(sessionId: string, deltas: TurnDelta[]): void {\n if (deltas.length === 0) { return; }\n this.notifySessionListeners(sessionId, { kind: 'deltas', deltas });\n }\n\n /**\n * Broadcast a run's terminal outcome to session-level listeners. Called\n * directly from the run's own completion handler (after `agent.execute()`\n * resolves) rather than derived reactively from an `agent:end` event —\n * the completion handler already has definitive success/summary/duration,\n * and this guarantees the message fires exactly once, deterministically.\n */\n broadcastRunCompleted(sessionId: string, payload: Omit<Extract<SessionBroadcastPayload, { kind: 'run:completed' }>, 'kind'>): void {\n this.notifySessionListeners(sessionId, { kind: 'run:completed', ...payload });\n }\n\n private notifySessionListeners(sessionId: string, payload: SessionBroadcastPayload): void {\n const listeners = this.sessionListeners.get(sessionId);\n if (!listeners) { return; }\n for (const listener of listeners) {\n try {\n listener(payload);\n } catch {\n // Ignore listener errors — one bad WS connection shouldn't affect others\n }\n }\n }\n\n /**\n * Add a session-level listener — receives updates from ALL runs in this session.\n */\n addSessionListener(sessionId: string, callback: SessionListenerCallback): void {\n if (!this.sessionListeners.has(sessionId)) {\n this.sessionListeners.set(sessionId, new Set());\n }\n this.sessionListeners.get(sessionId)!.add(callback);\n }\n\n /**\n * Remove a session-level listener.\n */\n removeSessionListener(sessionId: string, callback: SessionListenerCallback): void {\n const listeners = this.sessionListeners.get(sessionId);\n if (listeners) {\n listeners.delete(callback);\n if (listeners.size === 0) {\n this.sessionListeners.delete(sessionId);\n }\n }\n }\n\n /**\n * List all active runs\n */\n listActive(): Array<{ runId: string; task: string; status: RunStatus; startedAt: string }> {\n return Array.from(this.activeRuns.values()).map(r => ({\n runId: r.runId,\n task: r.task,\n status: r.status,\n startedAt: r.startedAt,\n }));\n }\n\n /**\n * Request graceful stop of a running agent (and its child agents via propagated AbortSignal).\n * Agent finishes its current tool call then exits at the next iteration boundary.\n */\n requestStop(runId: string): boolean {\n const run = this.activeRuns.get(runId);\n if (!run || run.status !== 'running' || !run.agent) {\n return false;\n }\n run.agent.requestStop();\n return true;\n }\n\n /**\n * Clean up completed runs from memory (cache handles its own TTL)\n */\n cleanup(): void {\n for (const [runId, run] of this.activeRuns) {\n if (run.status === 'completed' || run.status === 'failed' || run.status === 'stopped') {\n // Remove from memory but keep in cache\n this.activeRuns.delete(runId);\n }\n }\n }\n}\n\n/**\n * Singleton instance — stored on globalThis so all bundled modules share one instance.\n * When tsup compiles multiple entry points, each gets its own module scope,\n * so a plain `export const RunManager = new RunManagerImpl()` creates separate instances.\n * Using globalThis ensures run-handler.js and session-stream-handler.js share one RunManager.\n */\nconst GLOBAL_KEY = '__kb_agent_run_manager__';\nif (!(globalThis as Record<string, unknown>)[GLOBAL_KEY]) {\n (globalThis as Record<string, unknown>)[GLOBAL_KEY] = new RunManagerImpl();\n}\nexport const RunManager = (globalThis as Record<string, unknown>)[GLOBAL_KEY] as RunManagerImpl;\n","/**\n * WebSocket handler for session-level event streaming\n *\n * Path: /session/:sessionId\n * Single persistent connection per session — streams turn deltas for ALL runs in the session.\n * Unlike /events/:runId which closes when a run ends, this stays open for the entire session.\n *\n * Delta-based, not read-derived: the session listener registered here receives\n * the exact TurnDelta[] that SessionManager.processEventAndUpdateTurn computed\n * at persist time (via RunManager.broadcastSessionDeltas), not re-derived by\n * re-reading turns.json off disk on every event. That re-read (the previous\n * resolveTurnForEvent) was the actual root cause of the WS stream lagging one\n * event behind persisted state — see run-handler.ts's onEvent for the other\n * half of that fix (persist now happens before broadcast, not after).\n */\n\nimport {\n defineWebSocket,\n type PluginContextV3,\n type TypedSender,\n} from '@kb-labs/sdk';\nimport type {\n ServerMessage,\n ClientMessage,\n ConnectionReadyMessage,\n RunCompletedMessage,\n ErrorMessage,\n TurnDeltaMessage,\n ConversationSnapshotMessage,\n} from '@kb-labs/agent-contracts';\nimport { RunManager, type SessionBroadcastPayload } from '../rest/run-manager.js';\nimport { SessionManager } from '@kb-labs/agent-core';\n\ninterface SessionConnectionState {\n sessionId: string;\n callback: (payload: SessionBroadcastPayload) => void;\n}\n\n/** Per-connection state keyed by the opaque ctx object — avoids mutating ctx */\nconst connectionState = new WeakMap<object, SessionConnectionState>();\n\nexport default defineWebSocket<unknown, ClientMessage, ServerMessage>({\n path: '/session/:sessionId',\n description: 'Persistent session event stream (all runs)',\n\n handler: {\n async onConnect(ctx: PluginContextV3, sender: TypedSender<ServerMessage>) {\n const hostContext = ctx.hostContext as { params?: { sessionId?: string }; query?: Record<string, string> };\n const sessionId = hostContext.params?.sessionId;\n // Present on resume/gap-recovery reconnects (see AgentsPage.tsx's turn-reducer\n // 'gap' handling). Not used to filter the response — see getProjection's doc\n // comment for why resume always re-sends the full projection rather than a\n // replayed delta range — but accepted and logged so a resume is distinguishable\n // from a cold connect in server logs.\n const afterSeq = hostContext.query?.afterSeq ? Number(hostContext.query.afterSeq) : undefined;\n\n if (!sessionId) {\n await sender.send({\n type: 'error',\n payload: { code: 'MISSING_SESSION_ID', message: 'Session ID is required' },\n timestamp: Date.now(),\n } satisfies ErrorMessage);\n sender.close(4000, 'Missing session ID');\n return;\n }\n\n ctx.platform.logger.info(\n afterSeq != null\n ? `[session-ws] Client connected to session ${sessionId} (resume after seq ${afterSeq})`\n : `[session-ws] Client connected to session ${sessionId}`\n );\n\n const sessionManager = new SessionManager(ctx.cwd);\n\n // Send connection:ready immediately\n try {\n await sender.send({\n type: 'connection:ready',\n payload: { runId: sessionId, connectedAt: new Date().toISOString() },\n timestamp: Date.now(),\n } satisfies ConnectionReadyMessage);\n } catch (err) {\n ctx.platform.logger.error(`[session-ws] Failed to send connection:ready: ${String(err)}`);\n throw err;\n }\n\n // Send conversation:snapshot (full current projection) as the baseline —\n // both for a cold connect AND a resume/gap-recovery reconnect alike.\n try {\n const { turns, seq } = await sessionManager.getProjection(sessionId);\n const completedTurns = turns.filter((t) => t.status !== 'streaming');\n const activeTurns = turns.filter((t) => t.status === 'streaming');\n await sender.send({\n type: 'conversation:snapshot',\n payload: {\n sessionId,\n completedTurns,\n activeTurns,\n totalTurns: turns.length,\n seq,\n timestamp: new Date().toISOString(),\n },\n timestamp: Date.now(),\n } satisfies ConversationSnapshotMessage);\n ctx.platform.logger.info(\n `[session-ws] Sent snapshot: ${completedTurns.length} completed + ${activeTurns.length} active turns at seq ${seq}`\n );\n } catch (err) {\n ctx.platform.logger.error(`[session-ws] Failed to send snapshot: ${err}`);\n }\n\n // Session-level listener — receives turn deltas and run:completed\n // notifications from ALL runs in this session, already computed at\n // persist time (see module doc comment above).\n const callback = (payload: SessionBroadcastPayload) => {\n if (payload.kind === 'deltas') {\n for (const delta of payload.deltas) {\n void sender.send({\n type: 'turn:delta',\n payload: { sessionId, delta },\n timestamp: Date.now(),\n } satisfies TurnDeltaMessage).catch((err) => {\n ctx.platform.logger.error(`[session-ws] Failed to send turn:delta: ${err}`);\n });\n }\n return;\n }\n\n void sender.send({\n type: 'run:completed',\n payload: {\n runId: payload.runId,\n success: payload.success,\n summary: payload.summary,\n durationMs: payload.durationMs,\n seq: payload.seq,\n turn: payload.turn,\n },\n timestamp: Date.now(),\n } satisfies RunCompletedMessage).catch((err) => {\n ctx.platform.logger.error(`[session-ws] Failed to send run:completed: ${err}`);\n });\n };\n\n // Store callback for cleanup in a WeakMap keyed by ctx — no ctx mutation\n connectionState.set(ctx as object, { sessionId, callback });\n\n try {\n RunManager.addSessionListener(sessionId, callback);\n } catch (err) {\n ctx.platform.logger.error(`[session-ws] Failed to register session listener: ${String(err)}`);\n throw err;\n }\n ctx.platform.logger.info(`[session-ws] Session listener registered for session ${sessionId}`);\n },\n\n async onMessage(ctx: PluginContextV3, message: ClientMessage, sender: TypedSender<ServerMessage>) {\n // Handle ping or corrections here if needed\n if (message.type === 'ping') {\n const sessionId = connectionState.get(ctx as object)?.sessionId ?? '';\n await sender.send({\n type: 'connection:ready',\n payload: { runId: sessionId ?? '', connectedAt: new Date().toISOString() },\n timestamp: Date.now(),\n });\n }\n },\n\n async onDisconnect(ctx: PluginContextV3) {\n const state = connectionState.get(ctx as object);\n if (state) {\n RunManager.removeSessionListener(state.sessionId, state.callback);\n connectionState.delete(ctx as object);\n }\n\n ctx.platform.logger.info(`[session-ws] Client disconnected from session ${state?.sessionId}`);\n },\n\n async onError(ctx: PluginContextV3, error: Error, sender: TypedSender<ServerMessage>) {\n ctx.platform.logger.error(`[session-ws] WebSocket error: ${error.message}`);\n await sender.send({\n type: 'error',\n payload: { code: 'INTERNAL_ERROR', message: error.message },\n timestamp: Date.now(),\n } satisfies ErrorMessage);\n },\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/rest/run-manager.ts","../../src/ws/session-stream-handler.ts"],"names":[],"mappings":"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","file":"session-stream-handler.js","sourcesContent":["/**\n * Run Manager - tracks active agent runs for REST/WS API\n *\n * Uses platform cache for persistence and in-memory Map for active agents.\n * Cache stores serializable run state, Map stores live agent references.\n */\n\nimport type { IAgentRunner } from '@kb-labs/agent-sdk';\nimport type { SessionManager } from '@kb-labs/agent-core';\nimport type { Turn, TurnDelta } from '@kb-labs/agent-contracts';\nimport { useCache } from '@kb-labs/sdk';\n\nconst CACHE_PREFIX = 'agent:run:';\nconst CACHE_TTL = 3600000; // 1 hour\n\n/**\n * Run status\n */\nexport type RunStatus = 'pending' | 'running' | 'completed' | 'failed' | 'stopped';\n\n/**\n * Serializable run state (stored in cache)\n */\nexport interface RunState {\n runId: string;\n task: string;\n status: RunStatus;\n startedAt: string;\n completedAt?: string;\n durationMs?: number;\n summary?: string;\n error?: string;\n}\n\n/**\n * Active run with live agent (in-memory only)\n */\nexport interface ActiveRun extends RunState {\n agent?: IAgentRunner;\n sessionManager: SessionManager;\n}\n\n/**\n * Payload delivered to session-level listeners — the sole live-update\n * channel for a session's WS connection(s). `deltas` carries incremental\n * turn changes (see TurnDelta); `run:completed` is a terminal signal\n * carrying the finished run's outcome and, when available, the final\n * state of the assistant turn it produced.\n */\nexport type SessionBroadcastPayload =\n | { kind: 'deltas'; deltas: TurnDelta[] }\n | {\n kind: 'run:completed';\n runId: string;\n success: boolean;\n summary: string;\n durationMs: number;\n seq: number;\n turn?: Turn;\n };\n\ntype SessionListenerCallback = (payload: SessionBroadcastPayload) => void;\n\n/**\n * Run Manager implementation\n */\nclass RunManagerImpl {\n /** Live agents (not cacheable) */\n private activeRuns: Map<string, ActiveRun> = new Map();\n\n /** Session-level listeners: sessionId → Set<callback> — receive updates from ALL runs in session */\n private sessionListeners: Map<string, Set<SessionListenerCallback>> = new Map();\n\n /**\n * Generate unique run ID\n */\n generateRunId(): string {\n return `run-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`;\n }\n\n /**\n * Register a new run\n */\n async register(\n runId: string,\n task: string,\n agent: IAgentRunner | undefined,\n sessionManager: SessionManager,\n ): Promise<ActiveRun> {\n const now = new Date().toISOString();\n\n const run: ActiveRun = {\n runId,\n task,\n status: 'pending',\n agent,\n sessionManager,\n startedAt: now,\n };\n\n // Store in memory (for live agent)\n this.activeRuns.set(runId, run);\n\n // Store serializable state in cache\n await this.saveToCache(run);\n\n return run;\n }\n\n /**\n * Get run by ID (from memory first, then cache for state)\n */\n get(runId: string): ActiveRun | undefined {\n return this.activeRuns.get(runId);\n }\n\n /**\n * Check if run exists (in memory or cache)\n */\n async exists(runId: string): Promise<boolean> {\n // Check memory first\n if (this.activeRuns.has(runId)) {\n return true;\n }\n // Fallback to cache\n const state = await this.getState(runId);\n return state !== null;\n }\n\n /**\n * Get run state from cache (for completed runs or cross-process access)\n */\n async getState(runId: string): Promise<RunState | null> {\n const cache = useCache();\n if (!cache) {return null;}\n\n return cache.get<RunState>(`${CACHE_PREFIX}${runId}`);\n }\n\n /**\n * Update run status\n */\n async updateStatus(runId: string, status: RunStatus, extra?: Partial<RunState>): Promise<void> {\n const run = this.activeRuns.get(runId);\n if (run) {\n run.status = status;\n if (extra) {\n Object.assign(run, extra);\n }\n await this.saveToCache(run);\n }\n }\n\n /**\n * Save run state to cache\n */\n private async saveToCache(run: ActiveRun): Promise<void> {\n const cache = useCache();\n if (!cache) {return;}\n\n const state: RunState = {\n runId: run.runId,\n task: run.task,\n status: run.status,\n startedAt: run.startedAt,\n completedAt: run.completedAt,\n durationMs: run.durationMs,\n summary: run.summary,\n error: run.error,\n };\n\n await cache.set(`${CACHE_PREFIX}${run.runId}`, state, CACHE_TTL);\n }\n\n /**\n * Broadcast turn deltas to all session-level listeners. Callers MUST await\n * persistence (sessionManager.addEvent) before calling this, so listeners\n * never observe a delta whose underlying turn state isn't on disk yet —\n * that ordering is what makes gap-recovery / reconnect resume correct.\n */\n broadcastSessionDeltas(sessionId: string, deltas: TurnDelta[]): void {\n if (deltas.length === 0) { return; }\n this.notifySessionListeners(sessionId, { kind: 'deltas', deltas });\n }\n\n /**\n * Broadcast a run's terminal outcome to session-level listeners. Called\n * directly from the run's own completion handler (after `agent.execute()`\n * resolves) rather than derived reactively from an `agent:end` event —\n * the completion handler already has definitive success/summary/duration,\n * and this guarantees the message fires exactly once, deterministically.\n */\n broadcastRunCompleted(sessionId: string, payload: Omit<Extract<SessionBroadcastPayload, { kind: 'run:completed' }>, 'kind'>): void {\n this.notifySessionListeners(sessionId, { kind: 'run:completed', ...payload });\n }\n\n private notifySessionListeners(sessionId: string, payload: SessionBroadcastPayload): void {\n const listeners = this.sessionListeners.get(sessionId);\n if (!listeners) { return; }\n for (const listener of listeners) {\n try {\n listener(payload);\n } catch {\n // Ignore listener errors — one bad WS connection shouldn't affect others\n }\n }\n }\n\n /**\n * Add a session-level listener — receives updates from ALL runs in this session.\n */\n addSessionListener(sessionId: string, callback: SessionListenerCallback): void {\n if (!this.sessionListeners.has(sessionId)) {\n this.sessionListeners.set(sessionId, new Set());\n }\n this.sessionListeners.get(sessionId)!.add(callback);\n }\n\n /**\n * Remove a session-level listener.\n */\n removeSessionListener(sessionId: string, callback: SessionListenerCallback): void {\n const listeners = this.sessionListeners.get(sessionId);\n if (listeners) {\n listeners.delete(callback);\n if (listeners.size === 0) {\n this.sessionListeners.delete(sessionId);\n }\n }\n }\n\n /**\n * List all active runs\n */\n listActive(): Array<{ runId: string; task: string; status: RunStatus; startedAt: string }> {\n return Array.from(this.activeRuns.values()).map(r => ({\n runId: r.runId,\n task: r.task,\n status: r.status,\n startedAt: r.startedAt,\n }));\n }\n\n /**\n * Request graceful stop of a running agent (and its child agents via propagated AbortSignal).\n * Agent finishes its current tool call then exits at the next iteration boundary.\n */\n requestStop(runId: string): boolean {\n const run = this.activeRuns.get(runId);\n if (!run || run.status !== 'running' || !run.agent) {\n return false;\n }\n run.agent.requestStop();\n return true;\n }\n\n /**\n * Clean up completed runs from memory (cache handles its own TTL)\n */\n cleanup(): void {\n for (const [runId, run] of this.activeRuns) {\n if (run.status === 'completed' || run.status === 'failed' || run.status === 'stopped') {\n // Remove from memory but keep in cache\n this.activeRuns.delete(runId);\n }\n }\n }\n}\n\n/**\n * Singleton instance — stored on globalThis so all bundled modules share one instance.\n * When tsup compiles multiple entry points, each gets its own module scope,\n * so a plain `export const RunManager = new RunManagerImpl()` creates separate instances.\n * Using globalThis ensures run-handler.js and session-stream-handler.js share one RunManager.\n */\nconst GLOBAL_KEY = '__kb_agent_run_manager__';\nif (!(globalThis as Record<string, unknown>)[GLOBAL_KEY]) {\n (globalThis as Record<string, unknown>)[GLOBAL_KEY] = new RunManagerImpl();\n}\nexport const RunManager = (globalThis as Record<string, unknown>)[GLOBAL_KEY] as RunManagerImpl;\n","/**\n * WebSocket handler for session-level event streaming\n *\n * Path: /session/:sessionId\n * Single persistent connection per session — streams turn deltas for ALL runs in the session.\n * Unlike /events/:runId which closes when a run ends, this stays open for the entire session.\n *\n * Delta-based, not read-derived: the session listener registered here receives\n * the exact TurnDelta[] that SessionManager.processEventAndUpdateTurn computed\n * at persist time (via RunManager.broadcastSessionDeltas), not re-derived by\n * re-reading turns.json off disk on every event. That re-read (the previous\n * resolveTurnForEvent) was the actual root cause of the WS stream lagging one\n * event behind persisted state — see run-handler.ts's onEvent for the other\n * half of that fix (persist now happens before broadcast, not after).\n */\n\nimport {\n defineWebSocket,\n type PluginContextV3,\n type TypedSender,\n} from '@kb-labs/sdk';\nimport type {\n ServerMessage,\n ClientMessage,\n ConnectionReadyMessage,\n RunCompletedMessage,\n ErrorMessage,\n TurnDeltaMessage,\n ConversationSnapshotMessage,\n} from '@kb-labs/agent-contracts';\nimport { RunManager, type SessionBroadcastPayload } from '../rest/run-manager.js';\nimport { SessionManager } from '@kb-labs/agent-core';\n\ninterface SessionConnectionState {\n sessionId: string;\n callback: (payload: SessionBroadcastPayload) => void;\n}\n\n/** Per-connection state keyed by the opaque ctx object — avoids mutating ctx */\nconst connectionState = new WeakMap<object, SessionConnectionState>();\n\nexport default defineWebSocket<unknown, ClientMessage, ServerMessage>({\n path: '/session/:sessionId',\n description: 'Persistent session event stream (all runs)',\n\n handler: {\n async onConnect(ctx: PluginContextV3, sender: TypedSender<ServerMessage>) {\n const hostContext = ctx.hostContext as { params?: { sessionId?: string }; query?: Record<string, string> };\n const sessionId = hostContext.params?.sessionId;\n // Present on resume/gap-recovery reconnects (see AgentsPage.tsx's turn-reducer\n // 'gap' handling). Not used to filter the response — see getProjection's doc\n // comment for why resume always re-sends the full projection rather than a\n // replayed delta range — but accepted and logged so a resume is distinguishable\n // from a cold connect in server logs.\n const afterSeq = hostContext.query?.afterSeq ? Number(hostContext.query.afterSeq) : undefined;\n\n if (!sessionId) {\n await sender.send({\n type: 'error',\n payload: { code: 'MISSING_SESSION_ID', message: 'Session ID is required' },\n timestamp: Date.now(),\n } satisfies ErrorMessage);\n sender.close(4000, 'Missing session ID');\n return;\n }\n\n ctx.platform.logger.info(\n afterSeq != null\n ? `[session-ws] Client connected to session ${sessionId} (resume after seq ${afterSeq})`\n : `[session-ws] Client connected to session ${sessionId}`\n );\n\n const sessionManager = new SessionManager(ctx.cwd);\n\n // Send connection:ready immediately\n try {\n await sender.send({\n type: 'connection:ready',\n payload: { runId: sessionId, connectedAt: new Date().toISOString() },\n timestamp: Date.now(),\n } satisfies ConnectionReadyMessage);\n } catch (err) {\n ctx.platform.logger.error(`[session-ws] Failed to send connection:ready: ${String(err)}`);\n throw err;\n }\n\n // Send conversation:snapshot (full current projection) as the baseline —\n // both for a cold connect AND a resume/gap-recovery reconnect alike.\n try {\n const { turns, seq } = await sessionManager.getProjection(sessionId);\n const completedTurns = turns.filter((t) => t.status !== 'streaming');\n const activeTurns = turns.filter((t) => t.status === 'streaming');\n await sender.send({\n type: 'conversation:snapshot',\n payload: {\n sessionId,\n completedTurns,\n activeTurns,\n totalTurns: turns.length,\n seq,\n timestamp: new Date().toISOString(),\n },\n timestamp: Date.now(),\n } satisfies ConversationSnapshotMessage);\n ctx.platform.logger.info(\n `[session-ws] Sent snapshot: ${completedTurns.length} completed + ${activeTurns.length} active turns at seq ${seq}`\n );\n } catch (err) {\n ctx.platform.logger.error(`[session-ws] Failed to send snapshot: ${err}`);\n }\n\n // Session-level listener — receives turn deltas and run:completed\n // notifications from ALL runs in this session, already computed at\n // persist time (see module doc comment above).\n const callback = (payload: SessionBroadcastPayload) => {\n if (payload.kind === 'deltas') {\n for (const delta of payload.deltas) {\n void sender.send({\n type: 'turn:delta',\n payload: { sessionId, delta },\n timestamp: Date.now(),\n } satisfies TurnDeltaMessage).catch((err) => {\n ctx.platform.logger.error(`[session-ws] Failed to send turn:delta: ${err}`);\n });\n }\n return;\n }\n\n void sender.send({\n type: 'run:completed',\n payload: {\n runId: payload.runId,\n success: payload.success,\n summary: payload.summary,\n durationMs: payload.durationMs,\n seq: payload.seq,\n turn: payload.turn,\n },\n timestamp: Date.now(),\n } satisfies RunCompletedMessage).catch((err) => {\n ctx.platform.logger.error(`[session-ws] Failed to send run:completed: ${err}`);\n });\n };\n\n // Store callback for cleanup in a WeakMap keyed by ctx — no ctx mutation\n connectionState.set(ctx as object, { sessionId, callback });\n\n try {\n RunManager.addSessionListener(sessionId, callback);\n } catch (err) {\n ctx.platform.logger.error(`[session-ws] Failed to register session listener: ${String(err)}`);\n throw err;\n }\n ctx.platform.logger.info(`[session-ws] Session listener registered for session ${sessionId}`);\n },\n\n async onMessage(ctx: PluginContextV3, message: ClientMessage, sender: TypedSender<ServerMessage>) {\n // Handle ping or corrections here if needed\n if (message.type === 'ping') {\n const sessionId = connectionState.get(ctx as object)?.sessionId ?? '';\n await sender.send({\n type: 'connection:ready',\n payload: { runId: sessionId ?? '', connectedAt: new Date().toISOString() },\n timestamp: Date.now(),\n });\n }\n },\n\n async onDisconnect(ctx: PluginContextV3) {\n const state = connectionState.get(ctx as object);\n if (state) {\n RunManager.removeSessionListener(state.sessionId, state.callback);\n connectionState.delete(ctx as object);\n }\n\n ctx.platform.logger.info(`[session-ws] Client disconnected from session ${state?.sessionId}`);\n },\n\n async onError(ctx: PluginContextV3, error: Error, sender: TypedSender<ServerMessage>) {\n ctx.platform.logger.error(`[session-ws] WebSocket error: ${error.message}`);\n await sender.send({\n type: 'error',\n payload: { code: 'INTERNAL_ERROR', message: error.message },\n timestamp: Date.now(),\n } satisfies ErrorMessage);\n },\n },\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kb-labs/agent-entry",
|
|
3
3
|
"description": "CLI commands for KB Labs Agents V2. Provides agent:run-v2 command.",
|
|
4
|
-
"version": "2.119.
|
|
4
|
+
"version": "2.119.1-canary.b53bbee1d",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"zod": "^3.25.76",
|
|
26
|
-
"@kb-labs/agent-
|
|
27
|
-
"@kb-labs/agent-
|
|
28
|
-
"@kb-labs/agent-
|
|
29
|
-
"@kb-labs/agent-
|
|
30
|
-
"@kb-labs/agent-runtime": "2.119.
|
|
31
|
-
"@kb-labs/agent-sdk": "2.119.
|
|
32
|
-
"@kb-labs/agent-store": "2.119.
|
|
33
|
-
"@kb-labs/agent-
|
|
34
|
-
"@kb-labs/
|
|
35
|
-
"@kb-labs/
|
|
26
|
+
"@kb-labs/agent-core": "2.119.1-canary.b53bbee1d",
|
|
27
|
+
"@kb-labs/agent-contracts": "2.119.1-canary.b53bbee1d",
|
|
28
|
+
"@kb-labs/agent-history": "2.119.1-canary.b53bbee1d",
|
|
29
|
+
"@kb-labs/agent-kernel": "2.119.1-canary.b53bbee1d",
|
|
30
|
+
"@kb-labs/agent-runtime": "2.119.1-canary.b53bbee1d",
|
|
31
|
+
"@kb-labs/agent-sdk": "2.119.1-canary.b53bbee1d",
|
|
32
|
+
"@kb-labs/agent-store": "2.119.1-canary.b53bbee1d",
|
|
33
|
+
"@kb-labs/agent-tracing": "2.119.1-canary.b53bbee1d",
|
|
34
|
+
"@kb-labs/sdk": "2.115.4",
|
|
35
|
+
"@kb-labs/agent-tools": "2.119.1-canary.b53bbee1d"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@rspack/cli": "latest",
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
"tsup": "^8.5.0",
|
|
47
47
|
"typescript": "^5.6.3",
|
|
48
48
|
"vitest": "^3.2.6",
|
|
49
|
-
"@kb-labs/
|
|
50
|
-
"@kb-labs/
|
|
51
|
-
"@kb-labs/studio-plugin-tools": "2.119.
|
|
49
|
+
"@kb-labs/devkit": "2.119.1-canary.b53bbee1d",
|
|
50
|
+
"@kb-labs/plugin-runtime": "2.119.1-canary.b53bbee1d",
|
|
51
|
+
"@kb-labs/studio-plugin-tools": "2.119.1-canary.b53bbee1d"
|
|
52
52
|
},
|
|
53
53
|
"engines": {
|
|
54
54
|
"node": ">=24.0.0",
|