@mortiseai/stem 0.0.7 → 0.0.8
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.mjs +237 -237
- package/dist/daemon.mjs +2 -2
- package/dist/mcp.mjs +1 -1
- package/package.json +1 -1
package/dist/daemon.mjs
CHANGED
|
@@ -1442,9 +1442,9 @@ ${$}`}]},X=await Promise.race([A$(Y),new Promise((f,J)=>setTimeout(()=>J(Error(`
|
|
|
1442
1442
|
`)}async function cf0($){if(!jS0())return{ok:!1,is_error:!0,output:WS0};let Z=$??{};if(typeof Z.query!=="string"||Z.query.trim().length===0)return{ok:!1,is_error:!0,output:"`query` must be a non-empty string"};let O=Z.query.trim(),Y=typeof Z.max_results==="number"&&Z.max_results>=1?Math.min(Math.floor(Z.max_results),BS0):VS0,X=mf0();if("error"in X)return{ok:!1,is_error:!0,output:X.error};let f=Date.now(),J=[],G=null,V=!1,B=[];for(let W of X.providers)try{let b=await W.search(O,{maxResults:Y,signal:u2(AbortSignal.timeout(zS0))});if(b.length>0){J=b,G=W.name;break}V=!0}catch(b){B.push(`${W.name}: ${b.message}`)}if(G===null&&!V)return{ok:!1,is_error:!0,output:`web_search failed on all providers — ${B.join(" · ")}`};let j=[`Query: ${O}`,`Provider: ${G??X.providers.map((W)=>W.name).join("→")}`,`Results: ${J.length}`,`Duration: ${Date.now()-f}ms`,""];if(J.length===0)return{ok:!0,output:[...j,"No results found. Try a broader or differently-worded query."].join(`
|
|
1443
1443
|
`)};return{ok:!0,output:[...j,US0(J)].join(`
|
|
1444
1444
|
`)}}class MH extends N{onAttach(){super.onAttach()}onInstall(){super.onInstall()}onDetach(){super.onDetach()}handleStateEvent($){switch($.getMessage()){case qQ.TOOL_WEB_SEARCH_INVOKE:this.handleInvoke($.getModel(),$.getSender());break;default:super.handleStateEvent($);break}}async handleInvoke($,Z){let O=$?.payload??$??{},Y=await P0("MaiCliServerToolWebSearchLogic",{receiver:Z,input:O},()=>cf0(O)),X=new ku;q0(X,Y),this.sendActionEvent(PQ.TOOL_WEB_SEARCH_RESULT,X,Z)}}MH=Q([_(!0,PQ),T(!0,qQ),y()],MH);class KQ extends q{}KQ.TOOL_WORKFLOW_RESULT="tool_workflow_result",Q([I(!0,"tool_workflow_result","MaiCliServerToolWorkflowLogicActionModel"),z("design:type",Object)],KQ,"TOOL_WORKFLOW_RESULT",void 0),KQ=Q([P()],KQ);class uu extends K{ok;data;error}class TQ extends A{}TQ.TOOL_WORKFLOW_INVOKE="tool_workflow_invoke",Q([D(!0,!0,"tool_workflow_invoke"),z("design:type",Object)],TQ,"TOOL_WORKFLOW_INVOKE",void 0),TQ=Q([R()],TQ);class vH extends N{onAttach(){super.onAttach()}onInstall(){super.onInstall()}onDetach(){super.onDetach()}handleStateEvent($){switch($.getMessage()){case TQ.TOOL_WORKFLOW_INVOKE:this.handleInvoke($.getModel(),$.getSender());break;default:super.handleStateEvent($);break}}async handleInvoke($,Z){let O=$?.payload??$??{},Y=await P0("MaiCliServerToolWorkflowLogic",{receiver:Z,input:O},()=>_4(O)),X=new uu;q0(X,Y),this.sendActionEvent(KQ.TOOL_WORKFLOW_RESULT,X,Z)}}vH=Q([_(!0,KQ),T(!0,TQ),y()],vH);var lf0={MaiCliServerToolAdvisorLogic:Wb,MaiCliServerToolAgentLogic:bb,MaiCliServerToolAskUserQuestionLogic:Hb,MaiCliServerToolAskUserTextLogic:Eb,MaiCliServerToolBashLogic:wb,MaiCliServerToolBriefLogic:Fb,MaiCliServerToolConfigLogic:Db,MaiCliServerToolCtxInspectLogic:Nb,MaiCliServerToolDiscoverSkillsLogic:Ib,MaiCliServerToolEnterPlanModeLogic:yb,MaiCliServerToolEnterWorktreeLogic:_b,MaiCliServerToolExitPlanModeLogic:Pb,MaiCliServerToolExitWorktreeLogic:Kb,MaiCliServerToolFileEditLogic:Tb,MaiCliServerToolFileReadLogic:Rb,MaiCliServerToolFileWriteLogic:Ab,MaiCliServerToolGlobLogic:kb,MaiCliServerToolGrepLogic:xb,MaiCliServerToolListMcpResourcesLogic:Lb,MaiCliServerToolListPeersLogic:ub,MaiCliServerToolLoopCancelLogic:hb,MaiCliServerToolLspLogic:Cb,MaiCliServerToolMcpAuthLogic:Sb,MaiCliServerToolMcpLogic:Mb,MaiCliServerToolMonitorLogic:vb,MaiCliServerToolNotebookEditLogic:pb,MaiCliServerToolOverflowTestLogic:gb,MaiCliServerToolPowerShellLogic:mb,MaiCliServerToolPushNotificationLogic:cb,MaiCliServerToolReadMcpResourceLogic:lb,MaiCliServerToolRemoteTriggerLogic:db,MaiCliServerToolReplLogic:nb,MaiCliServerToolReviewArtifactLogic:rb,MaiCliServerToolScheduleCronLogic:ib,MaiCliServerToolSendMessageLogic:ob,MaiCliServerToolSendUserFileLogic:sb,MaiCliServerToolSkillLogic:ab,MaiCliServerToolSleepLogic:tb,MaiCliServerToolSnipLogic:eb,MaiCliServerToolSubscribePrLogic:$H,MaiCliServerToolSuggestBackgroundPrLogic:ZH,MaiCliServerToolSyntheticOutputLogic:OH,MaiCliServerToolTaskCreateLogic:YH,MaiCliServerToolTaskGetLogic:XH,MaiCliServerToolTaskListLogic:fH,MaiCliServerToolTaskOutputLogic:JH,MaiCliServerToolTaskStopLogic:QH,MaiCliServerToolTaskUpdateLogic:GH,MaiCliServerToolTeamCreateLogic:VH,MaiCliServerToolTeamDeleteLogic:BH,MaiCliServerToolTerminalCaptureLogic:zH,MaiCliServerToolTodoWriteLogic:jH,MaiCliServerToolToolSearchLogic:WH,MaiCliServerToolTungstenLogic:UH,MaiCliServerToolVerifyPlanExecutionLogic:bH,MaiCliServerToolWebBrowserLogic:HH,MaiCliServerToolWebFetchLogic:SH,MaiCliServerToolWebSearchLogic:MH,MaiCliServerToolWorkflowLogic:vH},df0={MaiCliServerToolAdvisorLogicActionKeys:Hf,MaiCliServerToolAgentLogicActionKeys:wf,MaiCliServerToolAskUserQuestionLogicActionKeys:Df,MaiCliServerToolAskUserTextLogicActionKeys:If,MaiCliServerToolBashLogicActionKeys:yf,MaiCliServerToolBriefLogicActionKeys:Pf,MaiCliServerToolConfigLogicActionKeys:Kf,MaiCliServerToolCtxInspectLogicActionKeys:Rf,MaiCliServerToolDiscoverSkillsLogicActionKeys:kf,MaiCliServerToolEnterPlanModeLogicActionKeys:Lf,MaiCliServerToolEnterWorktreeLogicActionKeys:hf,MaiCliServerToolExitPlanModeLogicActionKeys:Sf,MaiCliServerToolExitWorktreeLogicActionKeys:vf,MaiCliServerToolFileEditLogicActionKeys:gf,MaiCliServerToolFileReadLogicActionKeys:cf,MaiCliServerToolFileWriteLogicActionKeys:df,MaiCliServerToolGlobLogicActionKeys:rf,MaiCliServerToolGrepLogicActionKeys:sf,MaiCliServerToolListMcpResourcesLogicActionKeys:tf,MaiCliServerToolListPeersLogicActionKeys:$J,MaiCliServerToolLoopCancelLogicActionKeys:OJ,MaiCliServerToolLspLogicActionKeys:XJ,MaiCliServerToolMcpAuthLogicActionKeys:JJ,MaiCliServerToolMcpLogicActionKeys:GJ,MaiCliServerToolMonitorLogicActionKeys:BJ,MaiCliServerToolNotebookEditLogicActionKeys:jJ,MaiCliServerToolOverflowTestLogicActionKeys:UJ,MaiCliServerToolPowerShellLogicActionKeys:HJ,MaiCliServerToolPushNotificationLogicActionKeys:wJ,MaiCliServerToolReadMcpResourceLogicActionKeys:DJ,MaiCliServerToolRemoteTriggerLogicActionKeys:IJ,MaiCliServerToolReplLogicActionKeys:_J,MaiCliServerToolReviewArtifactLogicActionKeys:qJ,MaiCliServerToolScheduleCronLogicActionKeys:TJ,MaiCliServerToolSendMessageLogicActionKeys:AJ,MaiCliServerToolSendUserFileLogicActionKeys:xJ,MaiCliServerToolSkillLogicActionKeys:uJ,MaiCliServerToolSleepLogicActionKeys:CJ,MaiCliServerToolSnipLogicActionKeys:MJ,MaiCliServerToolSubscribePrLogicActionKeys:pJ,MaiCliServerToolSuggestBackgroundPrLogicActionKeys:mJ,MaiCliServerToolSyntheticOutputLogicActionKeys:lJ,MaiCliServerToolTaskCreateLogicActionKeys:nJ,MaiCliServerToolTaskGetLogicActionKeys:iJ,MaiCliServerToolTaskListLogicActionKeys:sJ,MaiCliServerToolTaskOutputLogicActionKeys:tJ,MaiCliServerToolTaskStopLogicActionKeys:$Q,MaiCliServerToolTaskUpdateLogicActionKeys:OQ,MaiCliServerToolTeamCreateLogicActionKeys:XQ,MaiCliServerToolTeamDeleteLogicActionKeys:JQ,MaiCliServerToolTerminalCaptureLogicActionKeys:GQ,MaiCliServerToolTodoWriteLogicActionKeys:BQ,MaiCliServerToolToolSearchLogicActionKeys:jQ,MaiCliServerToolTungstenLogicActionKeys:UQ,MaiCliServerToolVerifyPlanExecutionLogicActionKeys:HQ,MaiCliServerToolWebBrowserLogicActionKeys:wQ,MaiCliServerToolWebFetchLogicActionKeys:DQ,MaiCliServerToolWebSearchLogicActionKeys:PQ,MaiCliServerToolWorkflowLogicActionKeys:KQ},nf0={MaiCliServerToolAdvisorLogicStateKeys:Ef,MaiCliServerToolAgentLogicStateKeys:Ff,MaiCliServerToolAskUserQuestionLogicStateKeys:Nf,MaiCliServerToolBashLogicStateKeys:_f,MaiCliServerToolBriefLogicStateKeys:qf,MaiCliServerToolConfigLogicStateKeys:Tf,MaiCliServerToolCtxInspectLogicStateKeys:Af,MaiCliServerToolDiscoverSkillsLogicStateKeys:xf,MaiCliServerToolEnterPlanModeLogicStateKeys:uf,MaiCliServerToolEnterWorktreeLogicStateKeys:Cf,MaiCliServerToolExitPlanModeLogicStateKeys:Mf,MaiCliServerToolExitWorktreeLogicStateKeys:pf,MaiCliServerToolFileEditLogicStateKeys:mf,MaiCliServerToolFileReadLogicStateKeys:lf,MaiCliServerToolFileWriteLogicStateKeys:nf,MaiCliServerToolGlobLogicStateKeys:of,MaiCliServerToolGrepLogicStateKeys:af,MaiCliServerToolListMcpResourcesLogicStateKeys:ef,MaiCliServerToolListPeersLogicStateKeys:ZJ,MaiCliServerToolLoopCancelLogicStateKeys:YJ,MaiCliServerToolLspLogicStateKeys:fJ,MaiCliServerToolMcpAuthLogicStateKeys:QJ,MaiCliServerToolMcpLogicStateKeys:VJ,MaiCliServerToolMonitorLogicStateKeys:zJ,MaiCliServerToolNotebookEditLogicStateKeys:WJ,MaiCliServerToolOverflowTestLogicStateKeys:bJ,MaiCliServerToolPowerShellLogicStateKeys:EJ,MaiCliServerToolPushNotificationLogicStateKeys:FJ,MaiCliServerToolReadMcpResourceLogicStateKeys:NJ,MaiCliServerToolRemoteTriggerLogicStateKeys:yJ,MaiCliServerToolReplLogicStateKeys:PJ,MaiCliServerToolReviewArtifactLogicStateKeys:KJ,MaiCliServerToolScheduleCronLogicStateKeys:RJ,MaiCliServerToolSendMessageLogicStateKeys:kJ,MaiCliServerToolSendUserFileLogicStateKeys:LJ,MaiCliServerToolSkillLogicStateKeys:hJ,MaiCliServerToolSleepLogicStateKeys:SJ,MaiCliServerToolSnipLogicStateKeys:vJ,MaiCliServerToolSubscribePrLogicStateKeys:gJ,MaiCliServerToolSuggestBackgroundPrLogicStateKeys:cJ,MaiCliServerToolSyntheticOutputLogicStateKeys:dJ,MaiCliServerToolTaskCreateLogicStateKeys:rJ,MaiCliServerToolTaskGetLogicStateKeys:oJ,MaiCliServerToolTaskListLogicStateKeys:aJ,MaiCliServerToolTaskOutputLogicStateKeys:eJ,MaiCliServerToolTaskStopLogicStateKeys:ZQ,MaiCliServerToolTaskUpdateLogicStateKeys:YQ,MaiCliServerToolTeamCreateLogicStateKeys:fQ,MaiCliServerToolTeamDeleteLogicStateKeys:QQ,MaiCliServerToolTerminalCaptureLogicStateKeys:VQ,MaiCliServerToolTodoWriteLogicStateKeys:zQ,MaiCliServerToolToolSearchLogicStateKeys:WQ,MaiCliServerToolTungstenLogicStateKeys:bQ,MaiCliServerToolVerifyPlanExecutionLogicStateKeys:EQ,MaiCliServerToolWebBrowserLogicStateKeys:FQ,MaiCliServerToolWebFetchLogicStateKeys:NQ,MaiCliServerToolWebSearchLogicStateKeys:qQ,MaiCliServerToolWorkflowLogicStateKeys:TQ};class RQ extends q{}RQ.SHELL_DOCTOR_SCREEN_RESULT="shell_doctor_screen_result",Q([I(!0,"shell_doctor_screen_result","MscCliShellDoctorScreenLogicActionModel"),z("design:type",Object)],RQ,"SHELL_DOCTOR_SCREEN_RESULT",void 0),RQ=Q([P()],RQ);class hu extends K{ok;data;error}class AQ extends A{}AQ.SHELL_DOCTOR_SCREEN_INVOKE="shell_doctor_screen_invoke",Q([D(!0,!0,"shell_doctor_screen_invoke"),z("design:type",Object)],AQ,"SHELL_DOCTOR_SCREEN_INVOKE",void 0),AQ=Q([R()],AQ);class pH extends N{onAttach(){super.onAttach()}onInstall(){super.onInstall()}onDetach(){super.onDetach()}handleStateEvent($){switch($.getMessage()){case AQ.SHELL_DOCTOR_SCREEN_INVOKE:this.handleInvoke($.getModel(),$.getSender());break;default:super.handleStateEvent($);break}}handleInvoke($,Z){let O=new hu;O.ok=!0,this.sendActionEvent(RQ.SHELL_DOCTOR_SCREEN_RESULT,O,Z)}}pH=Q([_(!0,RQ),T(!0,AQ),y()],pH);class kQ extends q{}kQ.SHELL_RESUME_SCREEN_RESULT="shell_resume_screen_result",Q([I(!0,"shell_resume_screen_result","MscCliShellResumeScreenLogicActionModel"),z("design:type",Object)],kQ,"SHELL_RESUME_SCREEN_RESULT",void 0),kQ=Q([P()],kQ);class Cu extends K{ok;data;error}class xQ extends A{}xQ.SHELL_RESUME_SCREEN_INVOKE="shell_resume_screen_invoke",Q([D(!0,!0,"shell_resume_screen_invoke"),z("design:type",Object)],xQ,"SHELL_RESUME_SCREEN_INVOKE",void 0),xQ=Q([R()],xQ);class gH extends N{onAttach(){super.onAttach()}onInstall(){super.onInstall()}onDetach(){super.onDetach()}handleStateEvent($){switch($.getMessage()){case xQ.SHELL_RESUME_SCREEN_INVOKE:this.handleInvoke($.getModel(),$.getSender());break;default:super.handleStateEvent($);break}}handleInvoke($,Z){let O=new Cu;O.ok=!0,this.sendActionEvent(kQ.SHELL_RESUME_SCREEN_RESULT,O,Z)}}gH=Q([_(!0,kQ),T(!0,xQ),y()],gH);class Su extends w${handleActionEvent($){super.handleActionEvent($)}}class Mu extends w${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class vu extends w${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class pu extends w${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class gu extends w${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class mu extends w${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class cu extends w${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class lu extends w${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class du extends w${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class nu extends w${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class ru{_dsl={mai_cli_server_dsl:nS,cli_doctor_screen_dsl:rS,cli_resume_screen_dsl:iS};_view={};_logic={...n70,...p60,...lf0,...G70,...e60,...t70,...d60,...Q90,...N60,MscCliShellDoctorScreenLogic:pH,MscCliShellResumeScreenLogic:gH};_workflow={MaiCliServerRouterWorkflow:Su,MaiCliServerCoreWorkflow:Mu,MaiCliServerToolWorkflow:vu,MaiCliServerServiceWorkflow:pu,MaiCliServerCommandWorkflow:gu,MaiCliServerRemoteWorkflow:mu,MaiCliServerSwarmWorkflow:cu,MaiCliServerExtensionWorkflow:lu,CliDoctorScreenWorkflow:du,CliResumeScreenWorkflow:nu};_actionKeys={...r70,...g60,...df0,...V70,...$70,...e70,...n60,...G90,...I60,MscCliShellDoctorScreenLogicActionKeys:RQ,MscCliShellResumeScreenLogicActionKeys:kQ};_stateKeys={...i70,...m60,...nf0,...B70,...Z70,...$90,...r60,...V90,...y60,MscCliShellDoctorScreenLogicStateKeys:AQ,MscCliShellResumeScreenLogicStateKeys:xQ};_sidecar={};appId(){return"stem"}view($){return this._view[$]}logic($){return this._logic[$]}workflow($){return this._workflow[$]}dsl($){return this._dsl[$]}actionKeys($){return this._actionKeys[$]}stateKeys($){return this._stateKeys[$]}sidecar($){return this._sidecar[$]}}var iu=process.env.NEXT_PUBLIC_MSC_LOG_OPEN==="true";function bS0($){if($===null||$===void 0)return null;if(typeof $==="string")return $;try{return JSON.stringify($)}catch{return null}}function ou($){if($==="???")console.warn("[MscLog] tag is missing, caller stack:",Error().stack)}function su($,Z,O){let Y=bS0(O);if(Y!==null)return`${$} ${Z}
|
|
1445
|
-
${Y}`;return`${$} ${Z}`}function HS0($,Z,O="???"){if(iu)ou(O),console.log(su(`[MscInfo | ${O}]`,$,Z))}function ES0($,Z,O="???"){if(iu)ou(O),console.warn(su(`[MscWarn | ${O}]`,$,Z))}function wS0($,Z,O="???"){if(iu)ou(O),console.error(su(`[MscError | ${O}]`,$,Z))}var oD={infoLog:HS0,warnLog:ES0,errorLog:wS0};function FS0($,Z,O){oD.infoLog(Z,O,$)}function DS0($,Z,O){oD.warnLog(Z,O,$)}function NS0($,Z,O){oD.errorLog(Z,O,$)}var c4={trackInfo:FS0,trackWarn:DS0,trackError:NS0};class au{dsl;debug;mscInstance;requestCount=0;constructor($,Z){if(this.debug=Z,!p1.isRegistryMscEnv())p1.registryMscEnv(new ru);this.handleContainerDsl($)}handleContainerDsl($){let Z=p1.MscEnv().dsl($);if(Z)Z(),this.dsl=$}handlerCreateContainer($){if(!this.mscInstance&&this.dsl)this.mscInstance=new wS(this.debug).dls(this.dsl).observer({handleActionEvent(Z){$.onActionEvent(Z)},handleStateEvent(Z){$.onStateEvent(Z)},handleLifecycleEvent(Z){$.onLifecycleEvent(Z)},handleErrorEvent(Z){$.onErrorEvent(Z)}}).build(),this.mscInstance.install()}handleDestroyContainer(){try{if(this.mscInstance)this.mscInstance.uninstall(),this.mscInstance=null}catch($){c4.trackError("MscCliContainer",`handleDestroyContainer error: ${$}`)}}handleContainerStateEvent($){if(this.requestCount++,this.requestCount%1000===0){let Z=process.memoryUsage();c4.trackInfo("MscCliContainer",`[MemProbe] dsl=${this.dsl} req#${this.requestCount} heapUsed=${(Z.heapUsed/1024/1024).toFixed(1)}MB heapTotal=${(Z.heapTotal/1024/1024).toFixed(1)}MB external=${(Z.external/1024/1024).toFixed(1)}MB`)}if(this.mscInstance)this.mscInstance.sendState($)}}class tu{listeners=new Set;addListener($){this.listeners.add($)}removeListener($){this.listeners.delete($)}onActionEvent($){this.listeners.forEach((Z)=>Z.onActionEvent($))}onStateEvent($){this.listeners.forEach((Z)=>Z.onStateEvent($))}onLifecycleEvent($){this.listeners.forEach((Z)=>Z.onLifecycleEvent($))}onErrorEvent($){this.listeners.forEach((Z)=>Z.onErrorEvent($))}}var IS0=600000;class T7{static _instanceKey=Symbol.for("MscCliManager");static getInstance(){let $=globalThis;if(!$[T7._instanceKey])$[T7._instanceKey]=new T7;return $[T7._instanceKey]}constructor(){}entries=new Map;reuseCount=new Map;getServerContainer($){let Z=this.entries.get($);if(Z){let O=(this.reuseCount.get($)??0)+1;if(this.reuseCount.set($,O),O%1000===0)c4.trackInfo("MscCliManager",`MscCliContainer Reuse #${O} for dsl: ${$}, tag: ${Z.tag}`)}else{let O=Date.now().toString();c4.trackInfo("MscCliManager",`MscCliContainer Create for dsl: ${$}, tag: ${O}`);let Y=new au($),X=new tu,f=new Map,J={onActionEvent(G){let V=f.get(G.getReceiver());if(V){V.timing.t3=Date.now(),clearTimeout(V.timer),f.delete(G.getReceiver());let B=G.getModel();V.resolve({receiver:G.getReceiver(),model:B,tag:O,timing:V.timing})}},onErrorEvent(G){let V=f.get(G.getReceiver());if(V)V.timing.t3=Date.now(),clearTimeout(V.timer),f.delete(G.getReceiver()),V.reject({receiver:G.getReceiver(),error:G.getMessage(),tag:O,timing:V.timing})},onLifecycleEvent(G){},onStateEvent(G){}};X.addListener(J),Y.handlerCreateContainer(X),Z={container:Y,listener:X,pendingRequests:f,tag:O},this.entries.set($,Z)}return Z}warmupContainer($){this.getServerContainer($)}handleContainerEvent($,Z,O=IS0){let Y=Date.now(),{container:X,pendingRequests:f}=this.getServerContainer($),J=Date.now();if(f.has(Z.sender))return Promise.reject({error:`request ${Z.sender} is already in progress`});return new Promise((G,V)=>{let B=setTimeout(()=>{f.delete(Z.sender),V({error:`request ${Z.sender} timed out after ${O}ms`})},O),j={t0:Y,t1:J,t2:0,t3:0},W=Date.now();j.t2=W,f.set(Z.sender,{resolve:G,reject:V,timer:B,timing:j}),X.handleContainerStateEvent(Z)})}bumpRequestTimer($,Z,O){let Y=this.entries.get($);if(!Y)return!1;let X=Y.pendingRequests.get(Z);if(!X)return!1;return clearTimeout(X.timer),X.timer=setTimeout(()=>{Y.pendingRequests.delete(Z),X.reject({error:`request ${Z} idle for ${O}ms`})},O),!0}handleContainerDestroy($){let Z=this.entries.get($);if(Z){for(let[,O]of Z.pendingRequests)clearTimeout(O.timer),O.reject({error:`container destroyed for dsl: ${$}`});Z.pendingRequests.clear(),Z.container.handleDestroyContainer(),this.entries.delete($)}}}X$();X$();import{mkdirSync as yS0}from"node:fs";import{join as rf0}from"node:path";function if0($=process.env.CALLER_DIR||process.cwd()){if(!fE())return;let Z=[e1($),rf0(F1(),"projects"),hQ(rf0($,"logs")),...Object.keys(vI).map((O)=>gI(O,$))];for(let O of Z)try{yS0(O,{recursive:!0})}catch{}}var sD="mai_cli_server_dsl";function _S0(){process.stdout.write(JSON.stringify({ok:!0,app:"stem",mode:"daemon",dsl:sD,version:{VERSION:"0.0.
|
|
1445
|
+
${Y}`;return`${$} ${Z}`}function HS0($,Z,O="???"){if(iu)ou(O),console.log(su(`[MscInfo | ${O}]`,$,Z))}function ES0($,Z,O="???"){if(iu)ou(O),console.warn(su(`[MscWarn | ${O}]`,$,Z))}function wS0($,Z,O="???"){if(iu)ou(O),console.error(su(`[MscError | ${O}]`,$,Z))}var oD={infoLog:HS0,warnLog:ES0,errorLog:wS0};function FS0($,Z,O){oD.infoLog(Z,O,$)}function DS0($,Z,O){oD.warnLog(Z,O,$)}function NS0($,Z,O){oD.errorLog(Z,O,$)}var c4={trackInfo:FS0,trackWarn:DS0,trackError:NS0};class au{dsl;debug;mscInstance;requestCount=0;constructor($,Z){if(this.debug=Z,!p1.isRegistryMscEnv())p1.registryMscEnv(new ru);this.handleContainerDsl($)}handleContainerDsl($){let Z=p1.MscEnv().dsl($);if(Z)Z(),this.dsl=$}handlerCreateContainer($){if(!this.mscInstance&&this.dsl)this.mscInstance=new wS(this.debug).dls(this.dsl).observer({handleActionEvent(Z){$.onActionEvent(Z)},handleStateEvent(Z){$.onStateEvent(Z)},handleLifecycleEvent(Z){$.onLifecycleEvent(Z)},handleErrorEvent(Z){$.onErrorEvent(Z)}}).build(),this.mscInstance.install()}handleDestroyContainer(){try{if(this.mscInstance)this.mscInstance.uninstall(),this.mscInstance=null}catch($){c4.trackError("MscCliContainer",`handleDestroyContainer error: ${$}`)}}handleContainerStateEvent($){if(this.requestCount++,this.requestCount%1000===0){let Z=process.memoryUsage();c4.trackInfo("MscCliContainer",`[MemProbe] dsl=${this.dsl} req#${this.requestCount} heapUsed=${(Z.heapUsed/1024/1024).toFixed(1)}MB heapTotal=${(Z.heapTotal/1024/1024).toFixed(1)}MB external=${(Z.external/1024/1024).toFixed(1)}MB`)}if(this.mscInstance)this.mscInstance.sendState($)}}class tu{listeners=new Set;addListener($){this.listeners.add($)}removeListener($){this.listeners.delete($)}onActionEvent($){this.listeners.forEach((Z)=>Z.onActionEvent($))}onStateEvent($){this.listeners.forEach((Z)=>Z.onStateEvent($))}onLifecycleEvent($){this.listeners.forEach((Z)=>Z.onLifecycleEvent($))}onErrorEvent($){this.listeners.forEach((Z)=>Z.onErrorEvent($))}}var IS0=600000;class T7{static _instanceKey=Symbol.for("MscCliManager");static getInstance(){let $=globalThis;if(!$[T7._instanceKey])$[T7._instanceKey]=new T7;return $[T7._instanceKey]}constructor(){}entries=new Map;reuseCount=new Map;getServerContainer($){let Z=this.entries.get($);if(Z){let O=(this.reuseCount.get($)??0)+1;if(this.reuseCount.set($,O),O%1000===0)c4.trackInfo("MscCliManager",`MscCliContainer Reuse #${O} for dsl: ${$}, tag: ${Z.tag}`)}else{let O=Date.now().toString();c4.trackInfo("MscCliManager",`MscCliContainer Create for dsl: ${$}, tag: ${O}`);let Y=new au($),X=new tu,f=new Map,J={onActionEvent(G){let V=f.get(G.getReceiver());if(V){V.timing.t3=Date.now(),clearTimeout(V.timer),f.delete(G.getReceiver());let B=G.getModel();V.resolve({receiver:G.getReceiver(),model:B,tag:O,timing:V.timing})}},onErrorEvent(G){let V=f.get(G.getReceiver());if(V)V.timing.t3=Date.now(),clearTimeout(V.timer),f.delete(G.getReceiver()),V.reject({receiver:G.getReceiver(),error:G.getMessage(),tag:O,timing:V.timing})},onLifecycleEvent(G){},onStateEvent(G){}};X.addListener(J),Y.handlerCreateContainer(X),Z={container:Y,listener:X,pendingRequests:f,tag:O},this.entries.set($,Z)}return Z}warmupContainer($){this.getServerContainer($)}handleContainerEvent($,Z,O=IS0){let Y=Date.now(),{container:X,pendingRequests:f}=this.getServerContainer($),J=Date.now();if(f.has(Z.sender))return Promise.reject({error:`request ${Z.sender} is already in progress`});return new Promise((G,V)=>{let B=setTimeout(()=>{f.delete(Z.sender),V({error:`request ${Z.sender} timed out after ${O}ms`})},O),j={t0:Y,t1:J,t2:0,t3:0},W=Date.now();j.t2=W,f.set(Z.sender,{resolve:G,reject:V,timer:B,timing:j}),X.handleContainerStateEvent(Z)})}bumpRequestTimer($,Z,O){let Y=this.entries.get($);if(!Y)return!1;let X=Y.pendingRequests.get(Z);if(!X)return!1;return clearTimeout(X.timer),X.timer=setTimeout(()=>{Y.pendingRequests.delete(Z),X.reject({error:`request ${Z} idle for ${O}ms`})},O),!0}handleContainerDestroy($){let Z=this.entries.get($);if(Z){for(let[,O]of Z.pendingRequests)clearTimeout(O.timer),O.reject({error:`container destroyed for dsl: ${$}`});Z.pendingRequests.clear(),Z.container.handleDestroyContainer(),this.entries.delete($)}}}X$();X$();import{mkdirSync as yS0}from"node:fs";import{join as rf0}from"node:path";function if0($=process.env.CALLER_DIR||process.cwd()){if(!fE())return;let Z=[e1($),rf0(F1(),"projects"),hQ(rf0($,"logs")),...Object.keys(vI).map((O)=>gI(O,$))];for(let O of Z)try{yS0(O,{recursive:!0})}catch{}}var sD="mai_cli_server_dsl";function _S0(){process.stdout.write(JSON.stringify({ok:!0,app:"stem",mode:"daemon",dsl:sD,version:{VERSION:"0.0.8",PACKAGE_URL:"@mortiseai/stem",NATIVE_PACKAGE_URL:"@mortiseai/stem",BUILD_TIME:"2026-07-31T10:26:03.696Z",FEEDBACK_CHANNEL:"npm",MSC_ENGINE_VERSION:"0.0.3"}.VERSION},null,2)+`
|
|
1446
1446
|
`)}function PS0(){let $=(Z)=>{try{T7.getInstance().handleContainerDestroy(sD)}finally{process.stderr.write(w("daemon.stopped",{signal:Z})+`
|
|
1447
1447
|
`),process.exit(Z==="SIGTERM"?143:130)}};process.on("SIGTERM",()=>$("SIGTERM")),process.on("SIGINT",()=>$("SIGINT"))}function qS0($=process.argv.slice(2)){let{locale:Z,cleanedArgv:O}=EI($);OM(Z);let{cleanedArgv:Y}=XE(O);if(process.env.STEM_TENANT_INVALID!==void 0)process.stderr.write((process.env.STEM_TENANT_INVALID_NPM?w("errors.invalidTenantNpmForm"):w("errors.invalidTenant",{code:process.env.STEM_TENANT_INVALID,rule:String(zN)}))+`
|
|
1448
1448
|
`),process.exit(1);$=Y;let X=$[0]??"run";if(X==="status"){_S0();return}if(X!=="run")process.stderr.write(w("daemon.unknownCommand",{command:X})+`
|
|
1449
|
-
`),process.exit(1);if0(),T7.getInstance().warmupContainer(sD),PS0(),process.stderr.write(w("daemon.running",{dsl:sD,version:{VERSION:"0.0.
|
|
1449
|
+
`),process.exit(1);if0(),T7.getInstance().warmupContainer(sD),PS0(),process.stderr.write(w("daemon.running",{dsl:sD,version:{VERSION:"0.0.8",PACKAGE_URL:"@mortiseai/stem",NATIVE_PACKAGE_URL:"@mortiseai/stem",BUILD_TIME:"2026-07-31T10:26:03.696Z",FEEDBACK_CHANNEL:"npm",MSC_ENGINE_VERSION:"0.0.3"}.VERSION})+`
|
|
1450
1450
|
`),setInterval(()=>{},1073741824)}qS0();export{qS0 as startDaemon};
|
package/dist/mcp.mjs
CHANGED
|
@@ -1443,4 +1443,4 @@ ${$}`}]},X=await Promise.race([k$(Y),new Promise((f,J)=>setTimeout(()=>J(Error(`
|
|
|
1443
1443
|
`)};return{ok:!0,output:[...j,FS0(J)].join(`
|
|
1444
1444
|
`)}}class iH extends N{onAttach(){super.onAttach()}onInstall(){super.onInstall()}onDetach(){super.onDetach()}handleStateEvent($){switch($.getMessage()){case PQ.TOOL_WEB_SEARCH_INVOKE:this.handleInvoke($.getModel(),$.getSender());break;default:super.handleStateEvent($);break}}async handleInvoke($,Z){let O=$?.payload??$??{},Y=await P0("MaiCliServerToolWebSearchLogic",{receiver:Z,input:O},()=>tf0(O)),X=new dh;q0(X,Y),this.sendActionEvent(_Q.TOOL_WEB_SEARCH_RESULT,X,Z)}}iH=Q([_(!0,_Q),T(!0,PQ),y()],iH);class qQ extends q{}qQ.TOOL_WORKFLOW_RESULT="tool_workflow_result",Q([I(!0,"tool_workflow_result","MaiCliServerToolWorkflowLogicActionModel"),z("design:type",Object)],qQ,"TOOL_WORKFLOW_RESULT",void 0),qQ=Q([P()],qQ);class ih extends K{ok;data;error}class KQ extends A{}KQ.TOOL_WORKFLOW_INVOKE="tool_workflow_invoke",Q([D(!0,!0,"tool_workflow_invoke"),z("design:type",Object)],KQ,"TOOL_WORKFLOW_INVOKE",void 0),KQ=Q([R()],KQ);class oH extends N{onAttach(){super.onAttach()}onInstall(){super.onInstall()}onDetach(){super.onDetach()}handleStateEvent($){switch($.getMessage()){case KQ.TOOL_WORKFLOW_INVOKE:this.handleInvoke($.getModel(),$.getSender());break;default:super.handleStateEvent($);break}}async handleInvoke($,Z){let O=$?.payload??$??{},Y=await P0("MaiCliServerToolWorkflowLogic",{receiver:Z,input:O},()=>K4(O)),X=new ih;q0(X,Y),this.sendActionEvent(qQ.TOOL_WORKFLOW_RESULT,X,Z)}}oH=Q([_(!0,qQ),T(!0,KQ),y()],oH);var ef0={MaiCliServerToolAdvisorLogic:yb,MaiCliServerToolAgentLogic:Pb,MaiCliServerToolAskUserQuestionLogic:qb,MaiCliServerToolAskUserTextLogic:Kb,MaiCliServerToolBashLogic:Tb,MaiCliServerToolBriefLogic:Rb,MaiCliServerToolConfigLogic:Ab,MaiCliServerToolCtxInspectLogic:kb,MaiCliServerToolDiscoverSkillsLogic:xb,MaiCliServerToolEnterPlanModeLogic:Lb,MaiCliServerToolEnterWorktreeLogic:hb,MaiCliServerToolExitPlanModeLogic:ub,MaiCliServerToolExitWorktreeLogic:Sb,MaiCliServerToolFileEditLogic:Mb,MaiCliServerToolFileReadLogic:vb,MaiCliServerToolFileWriteLogic:gb,MaiCliServerToolGlobLogic:pb,MaiCliServerToolGrepLogic:mb,MaiCliServerToolListMcpResourcesLogic:cb,MaiCliServerToolListPeersLogic:lb,MaiCliServerToolLoopCancelLogic:db,MaiCliServerToolLspLogic:nb,MaiCliServerToolMcpAuthLogic:rb,MaiCliServerToolMcpLogic:ib,MaiCliServerToolMonitorLogic:ob,MaiCliServerToolNotebookEditLogic:sb,MaiCliServerToolOverflowTestLogic:ab,MaiCliServerToolPowerShellLogic:tb,MaiCliServerToolPushNotificationLogic:eb,MaiCliServerToolReadMcpResourceLogic:$H,MaiCliServerToolRemoteTriggerLogic:ZH,MaiCliServerToolReplLogic:OH,MaiCliServerToolReviewArtifactLogic:YH,MaiCliServerToolScheduleCronLogic:XH,MaiCliServerToolSendMessageLogic:fH,MaiCliServerToolSendUserFileLogic:JH,MaiCliServerToolSkillLogic:QH,MaiCliServerToolSleepLogic:GH,MaiCliServerToolSnipLogic:VH,MaiCliServerToolSubscribePrLogic:BH,MaiCliServerToolSuggestBackgroundPrLogic:zH,MaiCliServerToolSyntheticOutputLogic:jH,MaiCliServerToolTaskCreateLogic:WH,MaiCliServerToolTaskGetLogic:UH,MaiCliServerToolTaskListLogic:bH,MaiCliServerToolTaskOutputLogic:HH,MaiCliServerToolTaskStopLogic:EH,MaiCliServerToolTaskUpdateLogic:wH,MaiCliServerToolTeamCreateLogic:FH,MaiCliServerToolTeamDeleteLogic:DH,MaiCliServerToolTerminalCaptureLogic:NH,MaiCliServerToolTodoWriteLogic:IH,MaiCliServerToolToolSearchLogic:yH,MaiCliServerToolTungstenLogic:_H,MaiCliServerToolVerifyPlanExecutionLogic:PH,MaiCliServerToolWebBrowserLogic:qH,MaiCliServerToolWebFetchLogic:rH,MaiCliServerToolWebSearchLogic:iH,MaiCliServerToolWorkflowLogic:oH},$J0={MaiCliServerToolAdvisorLogicActionKeys:bf,MaiCliServerToolAgentLogicActionKeys:Ef,MaiCliServerToolAskUserQuestionLogicActionKeys:Ff,MaiCliServerToolAskUserTextLogicActionKeys:Nf,MaiCliServerToolBashLogicActionKeys:If,MaiCliServerToolBriefLogicActionKeys:_f,MaiCliServerToolConfigLogicActionKeys:qf,MaiCliServerToolCtxInspectLogicActionKeys:Tf,MaiCliServerToolDiscoverSkillsLogicActionKeys:Af,MaiCliServerToolEnterPlanModeLogicActionKeys:xf,MaiCliServerToolEnterWorktreeLogicActionKeys:hf,MaiCliServerToolExitPlanModeLogicActionKeys:Cf,MaiCliServerToolExitWorktreeLogicActionKeys:Mf,MaiCliServerToolFileEditLogicActionKeys:gf,MaiCliServerToolFileReadLogicActionKeys:mf,MaiCliServerToolFileWriteLogicActionKeys:lf,MaiCliServerToolGlobLogicActionKeys:nf,MaiCliServerToolGrepLogicActionKeys:of,MaiCliServerToolListMcpResourcesLogicActionKeys:af,MaiCliServerToolListPeersLogicActionKeys:ef,MaiCliServerToolLoopCancelLogicActionKeys:ZJ,MaiCliServerToolLspLogicActionKeys:YJ,MaiCliServerToolMcpAuthLogicActionKeys:fJ,MaiCliServerToolMcpLogicActionKeys:QJ,MaiCliServerToolMonitorLogicActionKeys:VJ,MaiCliServerToolNotebookEditLogicActionKeys:zJ,MaiCliServerToolOverflowTestLogicActionKeys:WJ,MaiCliServerToolPowerShellLogicActionKeys:bJ,MaiCliServerToolPushNotificationLogicActionKeys:EJ,MaiCliServerToolReadMcpResourceLogicActionKeys:FJ,MaiCliServerToolRemoteTriggerLogicActionKeys:NJ,MaiCliServerToolReplLogicActionKeys:yJ,MaiCliServerToolReviewArtifactLogicActionKeys:PJ,MaiCliServerToolScheduleCronLogicActionKeys:KJ,MaiCliServerToolSendMessageLogicActionKeys:RJ,MaiCliServerToolSendUserFileLogicActionKeys:kJ,MaiCliServerToolSkillLogicActionKeys:LJ,MaiCliServerToolSleepLogicActionKeys:uJ,MaiCliServerToolSnipLogicActionKeys:SJ,MaiCliServerToolSubscribePrLogicActionKeys:vJ,MaiCliServerToolSuggestBackgroundPrLogicActionKeys:pJ,MaiCliServerToolSyntheticOutputLogicActionKeys:cJ,MaiCliServerToolTaskCreateLogicActionKeys:dJ,MaiCliServerToolTaskGetLogicActionKeys:rJ,MaiCliServerToolTaskListLogicActionKeys:oJ,MaiCliServerToolTaskOutputLogicActionKeys:aJ,MaiCliServerToolTaskStopLogicActionKeys:eJ,MaiCliServerToolTaskUpdateLogicActionKeys:ZQ,MaiCliServerToolTeamCreateLogicActionKeys:YQ,MaiCliServerToolTeamDeleteLogicActionKeys:fQ,MaiCliServerToolTerminalCaptureLogicActionKeys:QQ,MaiCliServerToolTodoWriteLogicActionKeys:VQ,MaiCliServerToolToolSearchLogicActionKeys:zQ,MaiCliServerToolTungstenLogicActionKeys:WQ,MaiCliServerToolVerifyPlanExecutionLogicActionKeys:bQ,MaiCliServerToolWebBrowserLogicActionKeys:EQ,MaiCliServerToolWebFetchLogicActionKeys:FQ,MaiCliServerToolWebSearchLogicActionKeys:_Q,MaiCliServerToolWorkflowLogicActionKeys:qQ},ZJ0={MaiCliServerToolAdvisorLogicStateKeys:Hf,MaiCliServerToolAgentLogicStateKeys:wf,MaiCliServerToolAskUserQuestionLogicStateKeys:Df,MaiCliServerToolBashLogicStateKeys:yf,MaiCliServerToolBriefLogicStateKeys:Pf,MaiCliServerToolConfigLogicStateKeys:Kf,MaiCliServerToolCtxInspectLogicStateKeys:Rf,MaiCliServerToolDiscoverSkillsLogicStateKeys:kf,MaiCliServerToolEnterPlanModeLogicStateKeys:Lf,MaiCliServerToolEnterWorktreeLogicStateKeys:uf,MaiCliServerToolExitPlanModeLogicStateKeys:Sf,MaiCliServerToolExitWorktreeLogicStateKeys:vf,MaiCliServerToolFileEditLogicStateKeys:pf,MaiCliServerToolFileReadLogicStateKeys:cf,MaiCliServerToolFileWriteLogicStateKeys:df,MaiCliServerToolGlobLogicStateKeys:rf,MaiCliServerToolGrepLogicStateKeys:sf,MaiCliServerToolListMcpResourcesLogicStateKeys:tf,MaiCliServerToolListPeersLogicStateKeys:$J,MaiCliServerToolLoopCancelLogicStateKeys:OJ,MaiCliServerToolLspLogicStateKeys:XJ,MaiCliServerToolMcpAuthLogicStateKeys:JJ,MaiCliServerToolMcpLogicStateKeys:GJ,MaiCliServerToolMonitorLogicStateKeys:BJ,MaiCliServerToolNotebookEditLogicStateKeys:jJ,MaiCliServerToolOverflowTestLogicStateKeys:UJ,MaiCliServerToolPowerShellLogicStateKeys:HJ,MaiCliServerToolPushNotificationLogicStateKeys:wJ,MaiCliServerToolReadMcpResourceLogicStateKeys:DJ,MaiCliServerToolRemoteTriggerLogicStateKeys:IJ,MaiCliServerToolReplLogicStateKeys:_J,MaiCliServerToolReviewArtifactLogicStateKeys:qJ,MaiCliServerToolScheduleCronLogicStateKeys:TJ,MaiCliServerToolSendMessageLogicStateKeys:AJ,MaiCliServerToolSendUserFileLogicStateKeys:xJ,MaiCliServerToolSkillLogicStateKeys:hJ,MaiCliServerToolSleepLogicStateKeys:CJ,MaiCliServerToolSnipLogicStateKeys:MJ,MaiCliServerToolSubscribePrLogicStateKeys:gJ,MaiCliServerToolSuggestBackgroundPrLogicStateKeys:mJ,MaiCliServerToolSyntheticOutputLogicStateKeys:lJ,MaiCliServerToolTaskCreateLogicStateKeys:nJ,MaiCliServerToolTaskGetLogicStateKeys:iJ,MaiCliServerToolTaskListLogicStateKeys:sJ,MaiCliServerToolTaskOutputLogicStateKeys:tJ,MaiCliServerToolTaskStopLogicStateKeys:$Q,MaiCliServerToolTaskUpdateLogicStateKeys:OQ,MaiCliServerToolTeamCreateLogicStateKeys:XQ,MaiCliServerToolTeamDeleteLogicStateKeys:JQ,MaiCliServerToolTerminalCaptureLogicStateKeys:GQ,MaiCliServerToolTodoWriteLogicStateKeys:BQ,MaiCliServerToolToolSearchLogicStateKeys:jQ,MaiCliServerToolTungstenLogicStateKeys:UQ,MaiCliServerToolVerifyPlanExecutionLogicStateKeys:HQ,MaiCliServerToolWebBrowserLogicStateKeys:wQ,MaiCliServerToolWebFetchLogicStateKeys:DQ,MaiCliServerToolWebSearchLogicStateKeys:PQ,MaiCliServerToolWorkflowLogicStateKeys:KQ};class TQ extends q{}TQ.SHELL_DOCTOR_SCREEN_RESULT="shell_doctor_screen_result",Q([I(!0,"shell_doctor_screen_result","MscCliShellDoctorScreenLogicActionModel"),z("design:type",Object)],TQ,"SHELL_DOCTOR_SCREEN_RESULT",void 0),TQ=Q([P()],TQ);class oh extends K{ok;data;error}class RQ extends A{}RQ.SHELL_DOCTOR_SCREEN_INVOKE="shell_doctor_screen_invoke",Q([D(!0,!0,"shell_doctor_screen_invoke"),z("design:type",Object)],RQ,"SHELL_DOCTOR_SCREEN_INVOKE",void 0),RQ=Q([R()],RQ);class sH extends N{onAttach(){super.onAttach()}onInstall(){super.onInstall()}onDetach(){super.onDetach()}handleStateEvent($){switch($.getMessage()){case RQ.SHELL_DOCTOR_SCREEN_INVOKE:this.handleInvoke($.getModel(),$.getSender());break;default:super.handleStateEvent($);break}}handleInvoke($,Z){let O=new oh;O.ok=!0,this.sendActionEvent(TQ.SHELL_DOCTOR_SCREEN_RESULT,O,Z)}}sH=Q([_(!0,TQ),T(!0,RQ),y()],sH);class AQ extends q{}AQ.SHELL_RESUME_SCREEN_RESULT="shell_resume_screen_result",Q([I(!0,"shell_resume_screen_result","MscCliShellResumeScreenLogicActionModel"),z("design:type",Object)],AQ,"SHELL_RESUME_SCREEN_RESULT",void 0),AQ=Q([P()],AQ);class sh extends K{ok;data;error}class kQ extends A{}kQ.SHELL_RESUME_SCREEN_INVOKE="shell_resume_screen_invoke",Q([D(!0,!0,"shell_resume_screen_invoke"),z("design:type",Object)],kQ,"SHELL_RESUME_SCREEN_INVOKE",void 0),kQ=Q([R()],kQ);class aH extends N{onAttach(){super.onAttach()}onInstall(){super.onInstall()}onDetach(){super.onDetach()}handleStateEvent($){switch($.getMessage()){case kQ.SHELL_RESUME_SCREEN_INVOKE:this.handleInvoke($.getModel(),$.getSender());break;default:super.handleStateEvent($);break}}handleInvoke($,Z){let O=new sh;O.ok=!0,this.sendActionEvent(AQ.SHELL_RESUME_SCREEN_RESULT,O,Z)}}aH=Q([_(!0,AQ),T(!0,kQ),y()],aH);class ah extends F${handleActionEvent($){super.handleActionEvent($)}}class th extends F${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class eh extends F${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class $u extends F${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class Zu extends F${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class Ou extends F${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class Yu extends F${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class Xu extends F${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class fu extends F${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class Ju extends F${handleActionEvent($){switch($.getSender()){default:super.handleActionEvent($);break}}}class Qu{_dsl={mai_cli_server_dsl:Xc,cli_doctor_screen_dsl:fc,cli_resume_screen_dsl:Jc};_view={};_logic={...Z90,...o60,...ef0,...E70,...G70,...Q90,...$70,...H90,...A60,MscCliShellDoctorScreenLogic:sH,MscCliShellResumeScreenLogic:aH};_workflow={MaiCliServerRouterWorkflow:ah,MaiCliServerCoreWorkflow:th,MaiCliServerToolWorkflow:eh,MaiCliServerServiceWorkflow:$u,MaiCliServerCommandWorkflow:Zu,MaiCliServerRemoteWorkflow:Ou,MaiCliServerSwarmWorkflow:Yu,MaiCliServerExtensionWorkflow:Xu,CliDoctorScreenWorkflow:fu,CliResumeScreenWorkflow:Ju};_actionKeys={...O90,...s60,...$J0,...w70,...V70,...G90,...Z70,...E90,...k60,MscCliShellDoctorScreenLogicActionKeys:TQ,MscCliShellResumeScreenLogicActionKeys:AQ};_stateKeys={...Y90,...a60,...ZJ0,...F70,...B70,...V90,...O70,...w90,...x60,MscCliShellDoctorScreenLogicStateKeys:RQ,MscCliShellResumeScreenLogicStateKeys:kQ};_sidecar={};appId(){return"stem"}view($){return this._view[$]}logic($){return this._logic[$]}workflow($){return this._workflow[$]}dsl($){return this._dsl[$]}actionKeys($){return this._actionKeys[$]}stateKeys($){return this._stateKeys[$]}sidecar($){return this._sidecar[$]}}var Gu=process.env.NEXT_PUBLIC_MSC_LOG_OPEN==="true";function DS0($){if($===null||$===void 0)return null;if(typeof $==="string")return $;try{return JSON.stringify($)}catch{return null}}function Vu($){if($==="???")console.warn("[MscLog] tag is missing, caller stack:",Error().stack)}function Bu($,Z,O){let Y=DS0(O);if(Y!==null)return`${$} ${Z}
|
|
1445
1445
|
${Y}`;return`${$} ${Z}`}function NS0($,Z,O="???"){if(Gu)Vu(O),console.log(Bu(`[MscInfo | ${O}]`,$,Z))}function IS0($,Z,O="???"){if(Gu)Vu(O),console.warn(Bu(`[MscWarn | ${O}]`,$,Z))}function yS0($,Z,O="???"){if(Gu)Vu(O),console.error(Bu(`[MscError | ${O}]`,$,Z))}var VN={infoLog:NS0,warnLog:IS0,errorLog:yS0};function _S0($,Z,O){VN.infoLog(Z,O,$)}function PS0($,Z,O){VN.warnLog(Z,O,$)}function qS0($,Z,O){VN.errorLog(Z,O,$)}var n4={trackInfo:_S0,trackWarn:PS0,trackError:qS0};class zu{dsl;debug;mscInstance;requestCount=0;constructor($,Z){if(this.debug=Z,!p1.isRegistryMscEnv())p1.registryMscEnv(new Qu);this.handleContainerDsl($)}handleContainerDsl($){let Z=p1.MscEnv().dsl($);if(Z)Z(),this.dsl=$}handlerCreateContainer($){if(!this.mscInstance&&this.dsl)this.mscInstance=new km(this.debug).dls(this.dsl).observer({handleActionEvent(Z){$.onActionEvent(Z)},handleStateEvent(Z){$.onStateEvent(Z)},handleLifecycleEvent(Z){$.onLifecycleEvent(Z)},handleErrorEvent(Z){$.onErrorEvent(Z)}}).build(),this.mscInstance.install()}handleDestroyContainer(){try{if(this.mscInstance)this.mscInstance.uninstall(),this.mscInstance=null}catch($){n4.trackError("MscCliContainer",`handleDestroyContainer error: ${$}`)}}handleContainerStateEvent($){if(this.requestCount++,this.requestCount%1000===0){let Z=process.memoryUsage();n4.trackInfo("MscCliContainer",`[MemProbe] dsl=${this.dsl} req#${this.requestCount} heapUsed=${(Z.heapUsed/1024/1024).toFixed(1)}MB heapTotal=${(Z.heapTotal/1024/1024).toFixed(1)}MB external=${(Z.external/1024/1024).toFixed(1)}MB`)}if(this.mscInstance)this.mscInstance.sendState($)}}class ju{listeners=new Set;addListener($){this.listeners.add($)}removeListener($){this.listeners.delete($)}onActionEvent($){this.listeners.forEach((Z)=>Z.onActionEvent($))}onStateEvent($){this.listeners.forEach((Z)=>Z.onStateEvent($))}onLifecycleEvent($){this.listeners.forEach((Z)=>Z.onLifecycleEvent($))}onErrorEvent($){this.listeners.forEach((Z)=>Z.onErrorEvent($))}}var KS0=600000;class V5{static _instanceKey=Symbol.for("MscCliManager");static getInstance(){let $=globalThis;if(!$[V5._instanceKey])$[V5._instanceKey]=new V5;return $[V5._instanceKey]}constructor(){}entries=new Map;reuseCount=new Map;getServerContainer($){let Z=this.entries.get($);if(Z){let O=(this.reuseCount.get($)??0)+1;if(this.reuseCount.set($,O),O%1000===0)n4.trackInfo("MscCliManager",`MscCliContainer Reuse #${O} for dsl: ${$}, tag: ${Z.tag}`)}else{let O=Date.now().toString();n4.trackInfo("MscCliManager",`MscCliContainer Create for dsl: ${$}, tag: ${O}`);let Y=new zu($),X=new ju,f=new Map,J={onActionEvent(G){let V=f.get(G.getReceiver());if(V){V.timing.t3=Date.now(),clearTimeout(V.timer),f.delete(G.getReceiver());let B=G.getModel();V.resolve({receiver:G.getReceiver(),model:B,tag:O,timing:V.timing})}},onErrorEvent(G){let V=f.get(G.getReceiver());if(V)V.timing.t3=Date.now(),clearTimeout(V.timer),f.delete(G.getReceiver()),V.reject({receiver:G.getReceiver(),error:G.getMessage(),tag:O,timing:V.timing})},onLifecycleEvent(G){},onStateEvent(G){}};X.addListener(J),Y.handlerCreateContainer(X),Z={container:Y,listener:X,pendingRequests:f,tag:O},this.entries.set($,Z)}return Z}warmupContainer($){this.getServerContainer($)}handleContainerEvent($,Z,O=KS0){let Y=Date.now(),{container:X,pendingRequests:f}=this.getServerContainer($),J=Date.now();if(f.has(Z.sender))return Promise.reject({error:`request ${Z.sender} is already in progress`});return new Promise((G,V)=>{let B=setTimeout(()=>{f.delete(Z.sender),V({error:`request ${Z.sender} timed out after ${O}ms`})},O),j={t0:Y,t1:J,t2:0,t3:0},W=Date.now();j.t2=W,f.set(Z.sender,{resolve:G,reject:V,timer:B,timing:j}),X.handleContainerStateEvent(Z)})}bumpRequestTimer($,Z,O){let Y=this.entries.get($);if(!Y)return!1;let X=Y.pendingRequests.get(Z);if(!X)return!1;return clearTimeout(X.timer),X.timer=setTimeout(()=>{Y.pendingRequests.delete(Z),X.reject({error:`request ${Z} idle for ${O}ms`})},O),!0}handleContainerDestroy($){let Z=this.entries.get($);if(Z){for(let[,O]of Z.pendingRequests)clearTimeout(O.timer),O.reject({error:`container destroyed for dsl: ${$}`});Z.pendingRequests.clear(),Z.container.handleDestroyContainer(),this.entries.delete($)}}}X$();X$();import{mkdirSync as TS0}from"node:fs";import{join as OJ0}from"node:path";function YJ0($=process.env.CALLER_DIR||process.cwd()){if(!UE())return;let Z=[e1($),OJ0(F1(),"projects"),hQ(OJ0($,"logs")),...Object.keys(L_).map((O)=>u_(O,$))];for(let O of Z)try{TS0(O,{recursive:!0})}catch{}}var XJ0="mai_cli_server_dsl";function AS0(){let $=new Map;for(let Z of sw()){let O=Z.name.replace(/^MaiCliServerTool/,"").replace(/Logic$/,"").replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase(),Y=`tool_${O}`,X={logicName:Z.name,stateKey:`${Y}_invoke`,toolName:Y};$.set(Y,X),$.set(O,X)}return $}function kS0($){return{name:$.toolName,description:w("mcp.toolDescription",{logicName:$.logicName}),inputSchema:{type:"object",additionalProperties:!0}}}function fJ0($){if(typeof $==="string")return $;return JSON.stringify($??null,null,2)}async function xS0(){let{locale:$}=z_(process.argv.slice(2));if(Uc($),process.env.STEM_TENANT_INVALID!==void 0)process.stderr.write((process.env.STEM_TENANT_INVALID_NPM?w("errors.invalidTenantNpmForm"):w("errors.invalidTenant",{code:process.env.STEM_TENANT_INVALID,rule:String(_N)}))+`
|
|
1446
|
-
`),process.exit(1);YJ0();let Z=AS0(),O=V5.getInstance();O.warmupContainer(XJ0);let Y=new Qy({name:"stem/msc",version:{VERSION:"0.0.
|
|
1446
|
+
`),process.exit(1);YJ0();let Z=AS0(),O=V5.getInstance();O.warmupContainer(XJ0);let Y=new Qy({name:"stem/msc",version:{VERSION:"0.0.8",PACKAGE_URL:"@mortiseai/stem",NATIVE_PACKAGE_URL:"@mortiseai/stem",BUILD_TIME:"2026-07-31T10:26:03.696Z",FEEDBACK_CHANNEL:"npm",MSC_ENGINE_VERSION:"0.0.3"}.VERSION},{capabilities:{tools:{}}});Y.setRequestHandler(iN,async()=>({tools:[...new Map([...Z.values()].map((X)=>[X.toolName,X])).values()].map(kS0)})),Y.setRequestHandler(JB,async({params:X})=>{let f=Z.get(X.name);if(!f)return{isError:!0,content:[{type:"text",text:w("mcp.unknownTool",{name:X.name})}]};try{let J=await O.handleContainerEvent(XJ0,{sender:RS0(),receiver:f.logicName,message:f.stateKey,model:{payload:X.arguments??{}}});return{content:[{type:"text",text:fJ0(J.model)}]}}catch(J){return{isError:!0,content:[{type:"text",text:J instanceof Error?J.message:fJ0(J)}]}}}),await Y.connect(new Gy)}await xS0();export{xS0 as startMcpServer};
|