@baique/pi-web-sky 0.1.51 → 0.1.52
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +3 -3
- package/.next/build-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +1 -1
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/agent/running/route.js.nft.json +1 -1
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/api/project-trust/route.js +1 -1
- package/.next/server/app/api/project-trust/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/minimap/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/minimap/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/todos/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/todos/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/task-scheduler/status/route.js +1 -1
- package/.next/server/app/api/task-scheduler/status/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/[id]/route.js +1 -1
- package/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/page.js +7 -7
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +3 -3
- package/.next/server/chunks/402.js +5 -5
- package/.next/server/chunks/4229.js +1 -0
- package/.next/server/chunks/542.js +4 -3
- package/.next/server/chunks/6429.js +2 -1
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/7975.65ec9e5818297e19.js +1 -0
- package/.next/static/chunks/app/{layout-e7ac3c634f82ce8b.js → layout-af55652f9ad6e6b2.js} +1 -1
- package/.next/static/chunks/app/{page-c495dc18669fee1e.js → page-41f235aaff2b0dab.js} +4 -4
- package/.next/static/chunks/{webpack-b2f61dbb21ba732b.js → webpack-6a637257a0907061.js} +1 -1
- package/.next/trace +8 -8
- package/.next/trace-build +1 -1
- package/README.md +2 -2
- package/lib/i18n/messages/en.ts +0 -1
- package/lib/i18n/messages/zh-CN.ts +0 -1
- package/lib/rpc-manager.ts +4 -0
- package/lib/session-reader.ts +23 -14
- package/lib/todo-extension.test.mjs +392 -0
- package/lib/todo-extension.ts +316 -0
- package/lib/todo-store.test.mjs +135 -0
- package/lib/todo-store.ts +253 -0
- package/lib/types.ts +5 -9
- package/package.json +2 -1
- package/.next/static/chunks/7975.6e4d0b8168b67f3c.js +0 -1
- /package/.next/static/{DCCrgPUA_kJxSXmjjM7Ln → 76HS-3QabmzJcJPpSaFEJ}/_buildManifest.js +0 -0
- /package/.next/static/{DCCrgPUA_kJxSXmjjM7Ln → 76HS-3QabmzJcJPpSaFEJ}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=542,exports.ids=[542],exports.modules={12144:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>z,HG:()=>A,OF:()=>B});var e=c(75430),f=c(29862),g=c(55511),h=c(29021),i=c(33873),j=c(18437),k=c(88250),l=c(96515),m=c(81186),n=c(69453),o=c(7535),p=c(62391),q=c(65562),r=c(47128),s=c(15253),t=c(61577),u=c(57856),v=a([e,f,l,m,n,s]);[e,f,l,m,n,s]=v.then?(await v)():v;let C=new Set(["agent_end","agent_settled","auto_compaction_end","compaction_end"]),D=["read","bash","edit","write","grep","find","ls"];class E extends e.Theme{constructor(){super({thinkingXhigh:"",searchMatchText:""},{selectedBg:""},"truecolor")}fg(...[,a]){return a}bg(...[,a]){return a}bold(a){return a}italic(a){return a}underline(a){return a}inverse(a){return a}strikethrough(a){return a}getFgAnsi(){return""}getBgAnsi(){return""}getThinkingBorderColor(){return a=>a}getBashModeBorderColor(){return a=>a}}let F=new E,G=new f.KeybindingsManager(f.TUI_KEYBINDINGS);function w(a,b){if(0===b.length)return[];let c=new Set(D),d=a.getAllTools().map(a=>a.name).filter(a=>!c.has(a));return[...new Set([...b,...d])]}class H{constructor(a){this.inner=a,this.listeners=[],this.pendingUiResponses=new Map,this.pendingUiRequests=new Map,this.activeCustomUis=new Map,this.extensionStatuses=new Map,this.extensionWidgets=new Map,this.activeExtensionWidgets=new Map,this.extensionWidgetGenerations=new Map,this.extensionWidgetsResetting=!1,this.pendingPromptCount=0,this.promptAdmissionTail=Promise.resolve(),this.extensionsBound=!1,this.extensionBindingPromise=null,this.extensionBindingError=null,this.forceEmptySystemPrompt=!1,this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this.shutdownPromise=null,this._alive=!0,this.lastAgentStart=0}hasPendingUiRequest(){return this.pendingUiRequests.size>0}lastAgentStartAt(){return this.lastAgentStart}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}get cwd(){return this.inner.sessionManager.getCwd()}get streamingMessage(){return this.inner.agent.state?.streamingMessage}get isStreaming(){return this.inner.isStreaming}isAlive(){return this._alive}isRunning(){return this._alive&&(this.pendingPromptCount>0||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)}start(){this.unsubscribe=this.inner.subscribe(a=>{"agent_start"===a.type&&(this.lastAgentStart=Date.now()),"agent_end"===a.type&&(0,n.mD)(),C.has(a.type)&&this.resetIdleTimer(),this.emit(a)}),this.resetIdleTimer()}setForceEmptySystemPrompt(a){this.forceEmptySystemPrompt=a,this.applyForcedEmptySystemPrompt()}beginExtensionBinding(a={}){this.ensureExtensionsBound(a).catch(a=>{console.error("[pi-web] failed to dispatch session_start to extensions:",a instanceof Error?a.message:a)})}async waitUntilReady(){await this.waitForExtensionsBound()}ensureExtensionsBound(a={}){return(a.forceEmptySystemPrompt&&(this.forceEmptySystemPrompt=!0),this.extensionsBound)?(this.applyForcedEmptySystemPrompt(),Promise.resolve()):(this.extensionBindingPromise||(this.extensionBindingError=null,this.extensionBindingPromise=(async()=>{if(!this._alive)return;let a=this.createExtensionUiContext();if("function"==typeof this.inner.bindExtensions){let b=this.inner.bindExtensions;await b.call(this.inner,{uiContext:a,mode:"rpc",commandContextActions:this.createExtensionCommandContextActions(),shutdownHandler:()=>this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"notify",notifyType:"warning",message:"Extension requested shutdown, but shutdown is not supported in Pi Web."}),onError:a=>this.emit({type:"extension_error",extensionPath:a.extensionPath,event:a.event,error:a.error})})}else this.inner.extensionRunner.setUIContext?.(a,"rpc");this.extensionsBound=!0,this.applyForcedEmptySystemPrompt(),console.log(`[pi-web] session_start dispatched to extensions for session ${this.inner.sessionId}`)})().catch(a=>{throw this.extensionBindingError=a,a})),this.extensionBindingPromise)}async waitForExtensionsBound(){try{this.extensionBindingPromise&&await this.extensionBindingPromise}catch(a){throw a instanceof Error?a:Error(String(a))}if(this.extensionBindingError)throw this.extensionBindingError instanceof Error?this.extensionBindingError:Error(String(this.extensionBindingError))}shouldWaitForExtensions(a){return"prompt"===a||"steer"===a||"follow_up"===a||"get_commands"===a||"get_state"===a}async withFinalRunningNotification(a){try{return await a()}finally{this.resetIdleTimer()}}applyForcedEmptySystemPrompt(){this.forceEmptySystemPrompt&&this.inner.agent.state&&(this.inner.agent.state.systemPrompt="")}emit(a){for(let b of this.listeners)try{b(a)}catch(b){console.error(`[pi-web] failed to deliver ${a.type} event:`,b instanceof Error?b.message:b)}}async acquirePromptAdmission(){let a,b=this.promptAdmissionTail;return this.promptAdmissionTail=new Promise(b=>{a=b}),await b,a}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isRunning()?this.resetIdleTimer():this.shutdown().catch(a=>{console.error("[pi-web] failed to shut down idle session:",a instanceof Error?a.message:a)})},6e5)}onEvent(a){for(let b of(this.listeners.push(a),this.pendingUiRequests.values()))a(b);return()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}async send(a){this.resetIdleTimer();let b=a.type;if(this.shouldWaitForExtensions(b)&&await this.waitForExtensionsBound(),"prompt"===b||"steer"===b||"follow_up"===b){let b=(0,j.kc)(a.images);if(b)throw Error(b)}switch(b){case"prompt":{let b=await this.acquirePromptAdmission();try{let b,c,d;if(this.inner.isBashRunning)throw Error("Cannot send a prompt while a shell command is running");let e=a.images,f=a.streamingBehavior,g=!1,h=!1,i=!1,j=new Promise((a,d)=>{b=()=>{g=!0,h||(h=!0,a())},c=a=>{h||(h=!0,d(a))}}),k=()=>{i||(i=!0,this.pendingPromptCount=Math.max(0,this.pendingPromptCount-1),this.resetIdleTimer())};this.pendingPromptCount+=1;try{d=this.inner.prompt(a.message,{...e?.length?{images:e}:{},...f?{streamingBehavior:f}:{},source:"rpc",preflightResult:a=>{a&&b()}})}catch(a){throw k(),a}return d.then(()=>{b(),k(),f||this.emit({type:"prompt_done"})},a=>{c(a),k(),(0,n.mD)(),g&&(this.emit({type:"prompt_error",errorMessage:a instanceof Error?a.message:String(a)}),f||this.emit({type:"prompt_done"}))}).catch(a=>{console.error("[pi-web] prompt completion handler failed:",a instanceof Error?a.message:a)}),await j,null}finally{b()}}case"abort":return await this.withFinalRunningNotification(()=>this.inner.abort()),null;case"get_state":{let a=this.inner.model,b=this.inner.getContextUsage();return{sessionId:this.inner.sessionId,sessionFile:this.inner.sessionFile??"",isStreaming:this.inner.isStreaming,isPromptRunning:this.pendingPromptCount>0,isBashRunning:this.inner.isBashRunning,isCompacting:this.inner.isCompacting,autoCompactionEnabled:this.inner.autoCompactionEnabled,autoRetryEnabled:this.inner.autoRetryEnabled,model:a?{id:a.id,provider:a.provider}:void 0,messageCount:0,pendingMessageCount:this.inner.pendingMessageCount,queuedMessages:{steering:[...this.inner.getSteeringMessages()],followUp:[...this.inner.getFollowUpMessages()]},contextUsage:b?{percent:b.percent,contextWindow:b.contextWindow,tokens:b.tokens}:null,systemPrompt:this.inner.agent.state?.systemPrompt??"",thinkingLevel:this.inner.agent.state?.thinkingLevel??"off",extensionStatuses:this.getExtensionStatuses(),extensionWidgets:this.getExtensionWidgets()}}case"set_model":{let{provider:b,modelId:c}=a,d=this.inner.modelRuntime.getModel(b,c);if(d||(await this.inner.modelRuntime.refresh({allowNetwork:!1}),d=this.inner.modelRuntime.getModel(b,c)),!d)throw Error(`Model not found: ${b}/${c}`);return await this.inner.setModel(d),(0,k.kn)(),(0,n.mD)(),{id:d.id,provider:d.provider}}case"fork":{let b;if(this.inner.isBashRunning)throw Error("Cannot fork while a shell command is running");let c=this.inner.sessionId,d=a.entryId,f=this.inner.sessionManager,g=this.inner.sessionFile;if(!f.isPersisted())return{cancelled:!0};if(!g)throw Error("Persisted session is missing a session file");let i=f.getEntry(d);if(!i)throw Error("Invalid entry ID for forking");let j=f.getSessionDir();if(i.parentId){let a=e.SessionManager.open(g,j),c=a.createBranchedSession(i.parentId);if(!c)throw Error("Failed to create forked session");if(b=c,!(0,h.existsSync)(b)){let c=[a.getHeader(),...a.getEntries()].map(a=>JSON.stringify(a)).join("\n")+"\n";(0,h.writeFileSync)(b,c,{encoding:"utf8",flag:"wx"}),a.flushed=!0}}else{let a=e.SessionManager.create(f.getCwd(),j);a.newSession({parentSession:g}),a.getSessionFile()&&a._rewriteFile(),b=a.getSessionFile()}let k=e.SessionManager.open(b,j).getSessionId();(0,n.O8)(k,b),(0,n.mD)();let l=f.getCwd();await this.shutdown();try{let a=await (0,p.KI)(l??"");(0,q.YH)(k,{path:b,cwd:l??"",projectKey:(0,o.z)(a?.projectRoot??l??""),parentId:c}),await (0,r.BC)(c)}catch{}return{cancelled:!1,newSessionId:k}}case"navigate_tree":if(this.inner.isBashRunning)throw Error("Cannot navigate while a shell command is running");return{cancelled:(await this.inner.navigateTree(a.targetId,{})).cancelled};case"set_thinking_level":{let b=a.level;return this.inner.setThinkingLevel(b),"xhigh"===b&&this.inner.model?.compat?.thinkingFormat==="deepseek"&&this.inner.agent?.state&&(this.inner.agent.state.thinkingLevel="xhigh"),(0,n.mD)(),null}case"compact":try{return await this.withFinalRunningNotification(()=>this.inner.compact(a.customInstructions))}finally{(0,n.mD)()}case"set_session_name":{let b=a.name?.trim();if(!b)throw Error("Session name cannot be empty");return this.inner.setSessionName(b),(0,n.mD)(),null}case"get_session_stats":return{...this.inner.getSessionStats(),sessionName:this.inner.sessionManager.getSessionName()};case"get_last_assistant_text":return{text:this.inner.getLastAssistantText()??""};case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;case"clear_queue":return this.inner.clearQueue();case"steer":{let b=a.images;return await this.inner.steer(a.message,b?.length?b:void 0),null}case"follow_up":{let b=a.images;return await this.inner.followUp(a.message,b?.length?b:void 0),null}case"get_tools":{let a=this.inner.getAllTools(),b=new Set(this.inner.getActiveToolNames());return a.map(a=>({name:a.name,description:a.description,active:b.has(a.name)}))}case"get_commands":{let a=[];for(let b of this.inner.extensionRunner.getRegisteredCommands())a.push({name:b.invocationName,description:b.description,source:"extension",sourceInfo:b.sourceInfo});for(let b of this.inner.promptTemplates)a.push({name:b.name,description:b.description,source:"prompt",sourceInfo:b.sourceInfo});for(let b of this.inner.resourceLoader.getSkills().skills)a.push({name:`skill:${b.name}`,description:b.description,source:"skill",sourceInfo:b.sourceInfo});return{commands:a}}case"set_tools":{let b=a.toolNames;return this.setForceEmptySystemPrompt(0===b.length),this.inner.setActiveToolsByName(w(this.inner,b)),this.applyForcedEmptySystemPrompt(),null}case"reload":return await this.waitForExtensionsBound(),this.extensionStatuses.clear(),this.resetExtensionWidgetsForReload(),this.syncProjectTrust(),await this.inner.reload(),"function"!=typeof this.inner.bindExtensions&&this.inner.extensionRunner.setUIContext?.(this.createExtensionUiContext(),"rpc"),this.applyForcedEmptySystemPrompt(),(0,k.kn)(),{success:!0};case"abort_compaction":return this.inner.abortCompaction(),null;case"extension_ui_response":return this.resolveExtensionUiResponse(a),null;case"extension_ui_input":return this.handleExtensionUiInput(a.id,a.data),null;case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;case"bash":{if(this.pendingPromptCount>0||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)throw Error("Cannot run a shell command while the session is busy");let b=this.inner.executeBash(a.command,void 0,{excludeFromContext:a.excludeFromContext,operations:(0,m.J1)({shellPath:this.inner.settingsManager.getShellPath()})});try{return await b}finally{this.resetIdleTimer(),(0,n.mD)()}}case"abort_bash":return this.inner.abortBash(),null;default:throw Error(`Unsupported command: ${b}`)}}destroy(){if(this._alive){for(let a of(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.inner.isBashRunning&&this.inner.abortBash(),this.unsubscribe?.(),this.pendingUiResponses.values()))a.cancel();for(let a of Array.from(this.activeCustomUis.keys()))this.closeCustomUi(a,void 0);this.pendingUiResponses.clear(),this.pendingUiRequests.clear(),this.clearExtensionWidgets(!1);try{this.inner.dispose()}finally{this.onDestroyCallback?.()}}}async shutdown(){return this.shutdownPromise?this.shutdownPromise:this._alive?(this.shutdownPromise=(async()=>{try{try{await this.waitForExtensionsBound()}catch(a){console.error("[pi-web] extension binding failed before session shutdown:",a instanceof Error?a.message:a)}await this.inner.extensionRunner.emit?.({type:"session_shutdown",reason:"quit"})}finally{this.destroy()}})(),this.shutdownPromise):void 0}resolveExtensionUiResponse(a){let b=this.pendingUiResponses.get(a.id);b&&b.resolve(a)}getExtensionStatuses(){return Array.from(this.extensionStatuses,([a,b])=>({key:a,text:b}))}getExtensionWidgets(){return Array.from(this.extensionWidgets.values())}nextExtensionWidgetGeneration(a){let b=(this.extensionWidgetGenerations.get(a)??0)+1;return this.extensionWidgetGenerations.set(a,b),b}disposeExtensionWidgetComponent(a){if(!a||"object"!=typeof a&&"function"!=typeof a)return;let b=a.dispose;if("function"==typeof b)try{b.call(a)}catch{}}emitExtensionWidgetClear(a){this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"setWidget",widgetKey:a,widgetLines:void 0,widgetPlacement:void 0})}clearExtensionWidget(a,b=!0){let c=this.nextExtensionWidgetGeneration(a),d=this.activeExtensionWidgets.get(a);return this.activeExtensionWidgets.delete(a),this.extensionWidgets.delete(a),d&&this.disposeExtensionWidgetComponent(d.component),this.extensionWidgetGenerations.get(a)!==c||b&&this.emitExtensionWidgetClear(a),c}clearExtensionWidgets(a){for(let b of new Set([...this.extensionWidgets.keys(),...this.activeExtensionWidgets.keys()]))this.clearExtensionWidget(b,a)}resetExtensionWidgetsForReload(){this.extensionWidgetsResetting=!0;try{for(let a of[...this.activeExtensionWidgets.keys()])this.clearExtensionWidget(a);this.extensionWidgets.clear()}finally{this.extensionWidgetsResetting=!1}}emitExtensionWidgetError(a,b){this.emit({type:"extension_error",extensionPath:`extension-widget:${a}`,event:"setWidget",error:b instanceof Error?b.message:String(b)})}failExtensionWidget(a,b,c,d,e){if(this.extensionWidgetGenerations.get(a)!==b)return void this.disposeExtensionWidgetComponent(e);let f=this.activeExtensionWidgets.get(a),g=!d;f?.generation===b?(g=f.rendered||!f.clearEmitted,this.activeExtensionWidgets.delete(a),this.disposeExtensionWidgetComponent(f.component)):this.disposeExtensionWidgetComponent(e),this.extensionWidgetGenerations.get(a)!==b||(this.extensionWidgets.delete(a),g&&this.emitExtensionWidgetClear(a)),this.emitExtensionWidgetError(a,c)}renderExtensionWidget(a){let b;if(this.activeExtensionWidgets.get(a.key)!==a||this.extensionWidgetGenerations.get(a.key)!==a.generation)return;try{b=a.component.render(u.p1)}catch(b){this.failExtensionWidget(a.key,a.generation,b,a.clearEmitted);return}if(!Array.isArray(b)||!b.every(a=>"string"==typeof a))return void this.failExtensionWidget(a.key,a.generation,Error("Extension widget render must return string[]"),a.clearEmitted);if(this.activeExtensionWidgets.get(a.key)!==a||this.extensionWidgetGenerations.get(a.key)!==a.generation)return;let c=b;this.extensionWidgets.set(a.key,{key:a.key,lines:c,placement:a.placement}),a.rendered=!0,this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"setWidget",widgetKey:a.key,widgetLines:c,widgetPlacement:a.placement})}setExtensionWidgetFactory(a,b,c){let d,e=this.extensionWidgets.has(a)||this.activeExtensionWidgets.has(a),f=this.clearExtensionWidget(a,e);if(this.extensionWidgetGenerations.get(a)!==f)return;let g=(0,u.TQ)(()=>{let b=this.activeExtensionWidgets.get(a);b?.generation===f&&this.renderExtensionWidget(b)},u.p1);try{d=b(g,F)}catch(b){this.failExtensionWidget(a,f,b,e);return}if(this.extensionWidgetGenerations.get(a)!==f)return void this.disposeExtensionWidgetComponent(d);if(!d||"object"!=typeof d&&"function"!=typeof d||"function"!=typeof d.render)return void this.failExtensionWidget(a,f,Error("Extension widget factory must return a component with render(width)"),e,d);let h={key:a,component:d,placement:c?.placement??"aboveEditor",generation:f,clearEmitted:e,rendered:!1};this.activeExtensionWidgets.set(a,h),this.renderExtensionWidget(h)}getCustomUiWidth(a){if(!a||"object"!=typeof a)return u.p1;let b=a.overlayOptions,c="function"==typeof b?b():b;if(!c||"object"!=typeof c)return u.p1;let d=c.width;return"number"==typeof d&&Number.isFinite(d)?Math.max(40,Math.min(140,Math.round(d))):92}emitCustomUiRender(a,b){let c;try{c=b.component.render(b.width)}catch(a){c=[`Extension custom UI render failed: ${a instanceof Error?a.message:String(a)}`]}let d={type:"extension_ui_request",id:a,method:"custom",lines:c};this.pendingUiRequests.set(a,d),this.emit(d)}closeCustomUi(a,b){let c=this.activeCustomUis.get(a);if(c&&!c.settled){c.settled=!0,this.activeCustomUis.delete(a),this.pendingUiRequests.delete(a);try{c.component.dispose?.()}catch{}this.emit({type:"extension_ui_request",id:a,method:"custom",lines:[],closed:!0}),c.resolve(b)}}handleExtensionUiInput(a,b){let c=this.activeCustomUis.get(a);if(c&&"string"==typeof b)try{c.component.handleInput?.(b),this.activeCustomUis.has(a)&&this.emitCustomUiRender(a,c)}catch(b){this.closeCustomUi(a,void 0),this.emit({type:"extension_error",extensionPath:`custom-ui:${a}`,event:"custom_ui_input",error:b instanceof Error?b.message:String(b)})}}requestExtensionCustomUi(a,b){if("function"!=typeof a)return Promise.resolve(void 0);let c=(0,g.randomUUID)(),d=this.getCustomUiWidth(b);return new Promise(b=>{let e=!1,f=(0,u.TQ)(()=>{let a=this.activeCustomUis.get(c);a&&this.emitCustomUiRender(c,a)},d),g=a=>{e||(e=!0,b(a))},h=a=>{this.activeCustomUis.has(c)?this.closeCustomUi(c,a):g(a)};Promise.resolve().then(()=>a(f,F,G,h)).then(a=>{if(e){try{a?.dispose?.()}catch{}return}if(!a||"object"!=typeof a||"function"!=typeof a.render)return void g(void 0);let b={component:a,width:d,resolve:a=>g(a),settled:!1};this.activeCustomUis.set(c,b),this.emitCustomUiRender(c,b)}).catch(a=>{e||(this.emit({type:"extension_error",extensionPath:`custom-ui:${c}`,event:"custom_ui",error:a instanceof Error?a.message:String(a)}),g(void 0))})})}requestExtensionUi(a,b,c,d,e){if(e?.aborted)return Promise.resolve(b);let f=(0,g.randomUUID)(),h={type:"extension_ui_request",id:f,...a,...d?{timeout:d,expiresAt:Date.now()+d}:{}};return new Promise(a=>{let g,i=()=>{g&&clearTimeout(g),e?.removeEventListener("abort",k),this.pendingUiRequests.delete(f),this.pendingUiResponses.delete(f)},j=b=>{i(),a(b)},k=()=>j(b);d&&(g=setTimeout(()=>j(b),d)),e?.addEventListener("abort",k,{once:!0}),this.pendingUiRequests.set(f,h),this.pendingUiResponses.set(f,{resolve:a=>j(c(a)),cancel:()=>j(b)}),this.emit(h)})}createExtensionUiContext(){return{select:(a,b,c)=>this.requestExtensionUi({method:"select",title:a,options:b,...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),confirm:(a,b,c)=>this.requestExtensionUi({method:"confirm",title:a,message:b,...c?.timeout?{timeout:c.timeout}:{}},!1,a=>"confirmed"in a&&a.confirmed,c?.timeout,c?.signal),input:(a,b,c)=>this.requestExtensionUi({method:"input",title:a,...void 0!==b?{placeholder:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),editor:(a,b,c)=>this.requestExtensionUi({method:"editor",title:a,...void 0!==b?{prefill:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),notify:(a,b)=>{this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"notify",message:a,notifyType:b})},onTerminalInput:()=>()=>{},setStatus:(a,b)=>{void 0===b?this.extensionStatuses.delete(a):this.extensionStatuses.set(a,b),this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"setStatus",statusKey:a,statusText:b})},setWorkingMessage:()=>{},setWorkingVisible:()=>{},setWorkingIndicator:()=>{},setHiddenThinkingLabel:()=>{},setWidget:(a,b,c)=>{if(!this._alive||this.extensionWidgetsResetting)return;if("function"==typeof b)return void this.setExtensionWidgetFactory(a,b,c);if(void 0!==b&&!Array.isArray(b))return;if(void 0===b)return void this.clearExtensionWidget(a);let d=this.activeExtensionWidgets.has(a)?this.clearExtensionWidget(a):this.nextExtensionWidgetGeneration(a);this.extensionWidgetGenerations.get(a)===d&&(this.extensionWidgets.set(a,{key:a,lines:b,placement:c?.placement??"aboveEditor"}),this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"setWidget",widgetKey:a,widgetLines:b,widgetPlacement:c?.placement}))},setFooter:()=>{},setHeader:()=>{},setTitle:a=>{this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"setTitle",title:a})},custom:(a,b)=>this.requestExtensionCustomUi(a,b),pasteToEditor:a=>{this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"set_editor_text",text:a})},setEditorText:a=>{this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"set_editor_text",text:a})},getEditorText:()=>"",addAutocompleteProvider:()=>{},setEditorComponent:()=>{},getEditorComponent:()=>void 0,get theme(){return F},getAllThemes:()=>[],getTheme:()=>void 0,setTheme:()=>({success:!1,error:"Theme switching is not supported in Pi Web extension UI yet"}),getToolsExpanded:()=>!1,setToolsExpanded:()=>{}}}createExtensionCommandContextActions(){return{waitForIdle:async()=>{let a=this.inner.agent;await a.waitForIdle?.()},newSession:async()=>({cancelled:!0}),fork:async()=>({cancelled:!0}),navigateTree:async(a,b)=>({cancelled:(await this.inner.navigateTree(a,{summarize:b?.summarize})).cancelled}),switchSession:async()=>({cancelled:!0}),reload:async()=>{this.extensionStatuses.clear(),this.resetExtensionWidgetsForReload(),this.syncProjectTrust(),await this.inner.reload({beforeSessionStart:()=>{this.inner.extensionRunner.setUIContext?.(this.createExtensionUiContext(),"rpc")}}),this.applyForcedEmptySystemPrompt()}}}syncProjectTrust(){let a=(0,s.Y1)(this.cwd,(0,e.getAgentDir)());this.inner.settingsManager.setProjectTrusted(a.trusted)}}function x(){if(!globalThis.__piSessions){globalThis.__piSessions=new Map;let a=()=>globalThis.__piSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__piSessions}async function y(a,b){let c=a.getSessionFile();if(!c||(0,h.existsSync)(c))return;let d=a.getHeader();if(!d)return;let e=[d,...a.getEntries()].map(a=>JSON.stringify(a)).join("\n")+"\n";(0,h.writeFileSync)(c,e,{encoding:"utf8",flag:"wx"}),a.flushed=!0,(0,n.O8)(b,c);let f=a.getCwd();try{let a=await (0,p.KI)(f??"");(0,q.YH)(b,{path:c,cwd:f??"",projectKey:(0,o.z)(a?.projectRoot??f??"")})}catch{}}function z(a){return x().get(a)}function A(){let a=new Set;for(let[b,c]of x())c.isRunning()&&a.add(c.sessionId||b);return[...a]}async function B(a,b,c,d={}){let f,g,j,{toolNames:o,initialModel:p,thinkingLevel:q}=d,r=x(),u=(globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks),v=r.get(a);if(v?.isAlive())return{session:v,realSessionId:a};let z=u.get(a);if(z)return z;if(b)f=e.SessionManager.open(b,void 0);else{if(!c)throw Error("cwd is required for a new session");let b=a.length>0&&!a.startsWith("__");f=e.SessionManager.create(c,void 0,b?{id:a}:void 0),b&&await y(f,a)}let A=f.getCwd(),C=(globalThis.__piStartingSessionCwds||(globalThis.__piStartingSessionCwds=new Map),g=globalThis.__piStartingSessionCwds,j=function(a){let b=(0,i.resolve)(a);try{return(0,h.realpathSync)(b)}catch{return b}}(A),g.set(j,(g.get(j)??0)+1),()=>{let a=(g.get(j)??1)-1;a>0?g.set(j,a):g.delete(j)}),D=(async()=>{let a;(0,e.initTheme)();let b=(0,e.getAgentDir)();void 0!==o&&(a=0===o.length?[]:void 0);let c=(0,s.Fk)(A,b),d=e.SettingsManager.create(A,b),g=await (0,e.createAgentSessionServices)({cwd:A,agentDir:b,settingsManager:d,resourceLoaderOptions:{extensionFactories:[(0,m.eD)({cwd:A,settings:d})],extensionsOverride:m.Ds},...c?{resourceLoaderReloadOptions:c}:{}}),h=await (0,l.p)(g.modelRuntime,g.settingsManager.getEnabledModels()),i=g.settingsManager.getDefaultProvider(),j=g.settingsManager.getDefaultModel(),u=f.getBranch().some(a=>"message"===a.type)?{scopedModels:[...h.scopedModels]}:(0,l.I)(h,{...p?{requestedModel:p}:{},...i&&j?{defaultModel:{provider:i,modelId:j}}:{},...q?{thinkingLevel:q}:{}}),{session:v}=await (0,e.createAgentSessionFromServices)({services:g,sessionManager:f,...u.model?{model:u.model}:{},...u.thinkingLevel?{thinkingLevel:u.thinkingLevel}:{},...u.scopedModels.length>0?{scopedModels:u.scopedModels}:{},...void 0!==a?{tools:a}:{}});(await (0,t.o)(g.settingsManager,{...p?{model:p}:{},...q?{thinkingLevel:q}:{}},{...v.model?{model:{provider:v.model.provider,modelId:v.model.id}}:{},thinkingLevel:v.thinkingLevel,supportsThinking:v.supportsThinking()})).modelDefaultChanged&&(0,k.kn)(),o&&o.length>0&&v.setActiveToolsByName(w(v,o));let x=new H(v);o?.length===0&&x.setForceEmptySystemPrompt(!0),x.start();let y=v.sessionId,z=v.sessionFile;return z&&(0,n.O8)(y,z),x.onDestroy(()=>r.delete(y)),r.set(y,x),x.beginExtensionBinding({forceEmptySystemPrompt:o?.length===0}),{session:x,realSessionId:y}})().finally(()=>{u.delete(a),C()});return u.set(a,D),D}d()}catch(a){d(a)}})},14916:(a,b,c)=>{c.d(b,{C1:()=>d});let d=["bash","read","edit","write","grep","find","ls"]},15253:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>h,Y1:()=>g});var e=c(75430),f=a([e]);function g(a,b){if(!(a&&(0,e.hasTrustRequiringProjectResources)(a)))return{requiresTrust:!1,trusted:!0};let c=new e.ProjectTrustStore(b);return{requiresTrust:!0,trusted:!0===c.get(a)}}function h(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},18437:(a,b,c)=>{c.d(b,{kc:()=>d});function d(a){if(void 0===a)return null;if(!Array.isArray(a))return"images must be an array";if(a.length>10)return"A message can include at most 10 images";for(let b of a){if(!b||"object"!=typeof b||"image"!==b.type)return"Each attachment must be an image";if(!function(a){if(!a||"object"!=typeof a||"string"!=typeof a.data||"string"!=typeof a.mimeType||!a.mimeType.startsWith("image/"))return!1;let b=function(a){if(!a||a.length%4!=0)return null;let b=a.endsWith("==")?2:+!!a.endsWith("="),c=a.length-b;for(let b=0;b<c;b+=1){var d;if(!((d=a.charCodeAt(b))>=65&&d<=90||d>=97&&d<=122||d>=48&&d<=57||43===d||47===d))return null}for(let b=c;b<a.length;b+=1)if("="!==a[b])return null;return a.length/4*3-b}(a.data);return null!==b&&b<=0xa00000}(b))return"Each image must be valid base64 image data of 10MB or smaller"}return null}},32105:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Wz:()=>k,bJ:()=>n,s4:()=>m});var e=c(75430),f=c(51455),g=c(69453),h=a([e,g]);[e,g]=h.then?(await h)():h;let o=new Set(["bash"]);async function i(a){let b=await (0,g.os)(a);if(!b)return null;let c=131072;for(;c<=1048576;){let a=await (0,f.open)(b,"r");try{let{size:b}=await a.stat(),d=Math.max(0,b-c),e=Buffer.alloc(b-d);e.length>0&&await a.read(e,0,e.length,d);let f=e.toString("utf8").split("\n"),g=d>0?f.slice(1):f,h=[];for(let a=g.length-1;a>=0&&h.length<8;a--){let b=g[a].trim();if(b)try{let a=JSON.parse(b);a?.type==="message"&&h.unshift(a)}catch{}}if(h.length>=4||c>=1048576||b<=c)return h}finally{await a.close()}c*=2}return null}function j(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>!!a&&"object"==typeof a&&"text"in a).map(a=>a.text).join("\n"):""}async function k(a){try{var b;let c=await i(a);if(!c)return null;let d=c.filter(a=>"message"===a.type),e=!1,f=0,g=[],h=d[d.length-1],k=!!h&&(b=h.message,"assistant"===b.role&&!!Array.isArray(b.content)&&b.content.some(a=>!!a&&"object"==typeof a&&"toolCall"===a.type&&o.has(a.name))),l=h&&"number"==typeof h.message.timestamp?h.message.timestamp:h?new Date(h.timestamp).getTime():0,m=k&&!Number.isNaN(l)?l:0;for(let a of d.slice(-4)){let b=a.message,c="number"==typeof b.timestamp?b.timestamp:new Date(a.timestamp).getTime();if(Number.isNaN(c)||(f=Math.max(f,c)),"assistant"===b.role){b.errorMessage&&(e=!0);let a=j(b.content);a&&g.push(`AI: ${a.slice(0,400)}`)}else if("toolResult"===b.role){b.isError&&(e=!0);let a=b.details;a&&"number"==typeof a.exitCode&&0!==a.exitCode&&(e=!0);let c=j(b.content);c&&g.push(`工具 ${b.toolName}: ${c.slice(0,300)}`)}else if("user"===b.role){let a=j(b.content);a&&g.push(`用户: ${a.slice(0,300)}`)}}return{failure:e,recentText:g.join("\n").slice(0,4e3),lastActivityMs:f,lastIsCommand:k,lastCommandAtMs:m}}catch(b){return console.error(`[task-scheduler] 读会话快照失败 ${a}:`,b instanceof Error?b.message:b),null}}async function l(a,b,c){let d=null,f=setTimeout(()=>{if(d&&"function"==typeof d.dispose)try{d.dispose()}catch{}},9e4);try{(0,e.initTheme)();let f=(0,e.getAgentDir)(),g=e.SettingsManager.create(a,f),h=await (0,e.createAgentSessionServices)({cwd:a,agentDir:f,settingsManager:g,resourceLoaderOptions:{extensionFactories:[]}}),i=e.SessionManager.inMemory(a);d=(await (0,e.createAgentSessionFromServices)({services:h,sessionManager:i,noTools:"all"})).session,await d.prompt(`${b}
|
|
1
|
+
"use strict";exports.id=542,exports.ids=[542],exports.modules={12144:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>A,HG:()=>B,OF:()=>C});var e=c(75430),f=c(29862),g=c(55511),h=c(29021),i=c(33873),j=c(18437),k=c(88250),l=c(96515),m=c(81186),n=c(87509),o=c(69453),p=c(7535),q=c(62391),r=c(65562),s=c(47128),t=c(15253),u=c(61577),v=c(57856),w=a([e,f,l,m,n,o,t]);[e,f,l,m,n,o,t]=w.then?(await w)():w;let D=new Set(["agent_end","agent_settled","auto_compaction_end","compaction_end"]),E=["read","bash","edit","write","grep","find","ls"];class F extends e.Theme{constructor(){super({thinkingXhigh:"",searchMatchText:""},{selectedBg:""},"truecolor")}fg(...[,a]){return a}bg(...[,a]){return a}bold(a){return a}italic(a){return a}underline(a){return a}inverse(a){return a}strikethrough(a){return a}getFgAnsi(){return""}getBgAnsi(){return""}getThinkingBorderColor(){return a=>a}getBashModeBorderColor(){return a=>a}}let G=new F,H=new f.KeybindingsManager(f.TUI_KEYBINDINGS);function x(a,b){if(0===b.length)return[];let c=new Set(E),d=a.getAllTools().map(a=>a.name).filter(a=>!c.has(a));return[...new Set([...b,...d])]}class I{constructor(a){this.inner=a,this.listeners=[],this.pendingUiResponses=new Map,this.pendingUiRequests=new Map,this.activeCustomUis=new Map,this.extensionStatuses=new Map,this.extensionWidgets=new Map,this.activeExtensionWidgets=new Map,this.extensionWidgetGenerations=new Map,this.extensionWidgetsResetting=!1,this.pendingPromptCount=0,this.promptAdmissionTail=Promise.resolve(),this.extensionsBound=!1,this.extensionBindingPromise=null,this.extensionBindingError=null,this.forceEmptySystemPrompt=!1,this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this.shutdownPromise=null,this._alive=!0,this.lastAgentStart=0}hasPendingUiRequest(){return this.pendingUiRequests.size>0}lastAgentStartAt(){return this.lastAgentStart}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}get cwd(){return this.inner.sessionManager.getCwd()}get streamingMessage(){return this.inner.agent.state?.streamingMessage}get isStreaming(){return this.inner.isStreaming}isAlive(){return this._alive}isRunning(){return this._alive&&(this.pendingPromptCount>0||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)}start(){this.unsubscribe=this.inner.subscribe(a=>{"agent_start"===a.type&&(this.lastAgentStart=Date.now()),"agent_end"===a.type&&(0,o.mD)(),D.has(a.type)&&this.resetIdleTimer(),this.emit(a)}),this.resetIdleTimer()}setForceEmptySystemPrompt(a){this.forceEmptySystemPrompt=a,this.applyForcedEmptySystemPrompt()}beginExtensionBinding(a={}){this.ensureExtensionsBound(a).catch(a=>{console.error("[pi-web] failed to dispatch session_start to extensions:",a instanceof Error?a.message:a)})}async waitUntilReady(){await this.waitForExtensionsBound()}ensureExtensionsBound(a={}){return(a.forceEmptySystemPrompt&&(this.forceEmptySystemPrompt=!0),this.extensionsBound)?(this.applyForcedEmptySystemPrompt(),Promise.resolve()):(this.extensionBindingPromise||(this.extensionBindingError=null,this.extensionBindingPromise=(async()=>{if(!this._alive)return;let a=this.createExtensionUiContext();if("function"==typeof this.inner.bindExtensions){let b=this.inner.bindExtensions;await b.call(this.inner,{uiContext:a,mode:"rpc",commandContextActions:this.createExtensionCommandContextActions(),shutdownHandler:()=>this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"notify",notifyType:"warning",message:"Extension requested shutdown, but shutdown is not supported in Pi Web."}),onError:a=>this.emit({type:"extension_error",extensionPath:a.extensionPath,event:a.event,error:a.error})})}else this.inner.extensionRunner.setUIContext?.(a,"rpc");this.extensionsBound=!0,this.applyForcedEmptySystemPrompt(),console.log(`[pi-web] session_start dispatched to extensions for session ${this.inner.sessionId}`)})().catch(a=>{throw this.extensionBindingError=a,a})),this.extensionBindingPromise)}async waitForExtensionsBound(){try{this.extensionBindingPromise&&await this.extensionBindingPromise}catch(a){throw a instanceof Error?a:Error(String(a))}if(this.extensionBindingError)throw this.extensionBindingError instanceof Error?this.extensionBindingError:Error(String(this.extensionBindingError))}shouldWaitForExtensions(a){return"prompt"===a||"steer"===a||"follow_up"===a||"get_commands"===a||"get_state"===a}async withFinalRunningNotification(a){try{return await a()}finally{this.resetIdleTimer()}}applyForcedEmptySystemPrompt(){this.forceEmptySystemPrompt&&this.inner.agent.state&&(this.inner.agent.state.systemPrompt="")}emit(a){for(let b of this.listeners)try{b(a)}catch(b){console.error(`[pi-web] failed to deliver ${a.type} event:`,b instanceof Error?b.message:b)}}async acquirePromptAdmission(){let a,b=this.promptAdmissionTail;return this.promptAdmissionTail=new Promise(b=>{a=b}),await b,a}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isRunning()?this.resetIdleTimer():this.shutdown().catch(a=>{console.error("[pi-web] failed to shut down idle session:",a instanceof Error?a.message:a)})},6e5)}onEvent(a){for(let b of(this.listeners.push(a),this.pendingUiRequests.values()))a(b);return()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}async send(a){this.resetIdleTimer();let b=a.type;if(this.shouldWaitForExtensions(b)&&await this.waitForExtensionsBound(),"prompt"===b||"steer"===b||"follow_up"===b){let b=(0,j.kc)(a.images);if(b)throw Error(b)}switch(b){case"prompt":{let b=await this.acquirePromptAdmission();try{let b,c,d;if(this.inner.isBashRunning)throw Error("Cannot send a prompt while a shell command is running");let e=a.images,f=a.streamingBehavior,g=!1,h=!1,i=!1,j=new Promise((a,d)=>{b=()=>{g=!0,h||(h=!0,a())},c=a=>{h||(h=!0,d(a))}}),k=()=>{i||(i=!0,this.pendingPromptCount=Math.max(0,this.pendingPromptCount-1),this.resetIdleTimer())};this.pendingPromptCount+=1;try{d=this.inner.prompt(a.message,{...e?.length?{images:e}:{},...f?{streamingBehavior:f}:{},source:"rpc",preflightResult:a=>{a&&b()}})}catch(a){throw k(),a}return d.then(()=>{b(),k(),f||this.emit({type:"prompt_done"})},a=>{c(a),k(),(0,o.mD)(),g&&(this.emit({type:"prompt_error",errorMessage:a instanceof Error?a.message:String(a)}),f||this.emit({type:"prompt_done"}))}).catch(a=>{console.error("[pi-web] prompt completion handler failed:",a instanceof Error?a.message:a)}),await j,null}finally{b()}}case"abort":return await this.withFinalRunningNotification(()=>this.inner.abort()),null;case"get_state":{let a=this.inner.model,b=this.inner.getContextUsage();return{sessionId:this.inner.sessionId,sessionFile:this.inner.sessionFile??"",isStreaming:this.inner.isStreaming,isPromptRunning:this.pendingPromptCount>0,isBashRunning:this.inner.isBashRunning,isCompacting:this.inner.isCompacting,autoCompactionEnabled:this.inner.autoCompactionEnabled,autoRetryEnabled:this.inner.autoRetryEnabled,model:a?{id:a.id,provider:a.provider}:void 0,messageCount:0,pendingMessageCount:this.inner.pendingMessageCount,queuedMessages:{steering:[...this.inner.getSteeringMessages()],followUp:[...this.inner.getFollowUpMessages()]},contextUsage:b?{percent:b.percent,contextWindow:b.contextWindow,tokens:b.tokens}:null,systemPrompt:this.inner.agent.state?.systemPrompt??"",thinkingLevel:this.inner.agent.state?.thinkingLevel??"off",extensionStatuses:this.getExtensionStatuses(),extensionWidgets:this.getExtensionWidgets()}}case"set_model":{let{provider:b,modelId:c}=a,d=this.inner.modelRuntime.getModel(b,c);if(d||(await this.inner.modelRuntime.refresh({allowNetwork:!1}),d=this.inner.modelRuntime.getModel(b,c)),!d)throw Error(`Model not found: ${b}/${c}`);return await this.inner.setModel(d),(0,k.kn)(),(0,o.mD)(),{id:d.id,provider:d.provider}}case"fork":{let b;if(this.inner.isBashRunning)throw Error("Cannot fork while a shell command is running");let c=this.inner.sessionId,d=a.entryId,f=this.inner.sessionManager,g=this.inner.sessionFile;if(!f.isPersisted())return{cancelled:!0};if(!g)throw Error("Persisted session is missing a session file");let i=f.getEntry(d);if(!i)throw Error("Invalid entry ID for forking");let j=f.getSessionDir();if(i.parentId){let a=e.SessionManager.open(g,j),c=a.createBranchedSession(i.parentId);if(!c)throw Error("Failed to create forked session");if(b=c,!(0,h.existsSync)(b)){let c=[a.getHeader(),...a.getEntries()].map(a=>JSON.stringify(a)).join("\n")+"\n";(0,h.writeFileSync)(b,c,{encoding:"utf8",flag:"wx"}),a.flushed=!0}}else{let a=e.SessionManager.create(f.getCwd(),j);a.newSession({parentSession:g}),a.getSessionFile()&&a._rewriteFile(),b=a.getSessionFile()}let k=e.SessionManager.open(b,j).getSessionId();(0,o.O8)(k,b),(0,o.mD)();let l=f.getCwd();await this.shutdown();try{let a=await (0,q.KI)(l??"");(0,r.YH)(k,{path:b,cwd:l??"",projectKey:(0,p.z)(a?.projectRoot??l??""),parentId:c}),await (0,s.BC)(c)}catch{}return{cancelled:!1,newSessionId:k}}case"navigate_tree":if(this.inner.isBashRunning)throw Error("Cannot navigate while a shell command is running");return{cancelled:(await this.inner.navigateTree(a.targetId,{})).cancelled};case"set_thinking_level":{let b=a.level;return this.inner.setThinkingLevel(b),"xhigh"===b&&this.inner.model?.compat?.thinkingFormat==="deepseek"&&this.inner.agent?.state&&(this.inner.agent.state.thinkingLevel="xhigh"),(0,o.mD)(),null}case"compact":try{return await this.withFinalRunningNotification(()=>this.inner.compact(a.customInstructions))}finally{(0,o.mD)()}case"set_session_name":{let b=a.name?.trim();if(!b)throw Error("Session name cannot be empty");return this.inner.setSessionName(b),(0,o.mD)(),null}case"get_session_stats":return{...this.inner.getSessionStats(),sessionName:this.inner.sessionManager.getSessionName()};case"get_last_assistant_text":return{text:this.inner.getLastAssistantText()??""};case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;case"clear_queue":return this.inner.clearQueue();case"steer":{let b=a.images;return await this.inner.steer(a.message,b?.length?b:void 0),null}case"follow_up":{let b=a.images;return await this.inner.followUp(a.message,b?.length?b:void 0),null}case"get_tools":{let a=this.inner.getAllTools(),b=new Set(this.inner.getActiveToolNames());return a.map(a=>({name:a.name,description:a.description,active:b.has(a.name)}))}case"get_commands":{let a=[];for(let b of this.inner.extensionRunner.getRegisteredCommands())a.push({name:b.invocationName,description:b.description,source:"extension",sourceInfo:b.sourceInfo});for(let b of this.inner.promptTemplates)a.push({name:b.name,description:b.description,source:"prompt",sourceInfo:b.sourceInfo});for(let b of this.inner.resourceLoader.getSkills().skills)a.push({name:`skill:${b.name}`,description:b.description,source:"skill",sourceInfo:b.sourceInfo});return{commands:a}}case"set_tools":{let b=a.toolNames;return this.setForceEmptySystemPrompt(0===b.length),this.inner.setActiveToolsByName(x(this.inner,b)),this.applyForcedEmptySystemPrompt(),null}case"reload":return await this.waitForExtensionsBound(),this.extensionStatuses.clear(),this.resetExtensionWidgetsForReload(),this.syncProjectTrust(),await this.inner.reload(),"function"!=typeof this.inner.bindExtensions&&this.inner.extensionRunner.setUIContext?.(this.createExtensionUiContext(),"rpc"),this.applyForcedEmptySystemPrompt(),(0,k.kn)(),{success:!0};case"abort_compaction":return this.inner.abortCompaction(),null;case"extension_ui_response":return this.resolveExtensionUiResponse(a),null;case"extension_ui_input":return this.handleExtensionUiInput(a.id,a.data),null;case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;case"bash":{if(this.pendingPromptCount>0||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)throw Error("Cannot run a shell command while the session is busy");let b=this.inner.executeBash(a.command,void 0,{excludeFromContext:a.excludeFromContext,operations:(0,m.J1)({shellPath:this.inner.settingsManager.getShellPath()})});try{return await b}finally{this.resetIdleTimer(),(0,o.mD)()}}case"abort_bash":return this.inner.abortBash(),null;default:throw Error(`Unsupported command: ${b}`)}}destroy(){if(this._alive){for(let a of(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.inner.isBashRunning&&this.inner.abortBash(),this.unsubscribe?.(),this.pendingUiResponses.values()))a.cancel();for(let a of Array.from(this.activeCustomUis.keys()))this.closeCustomUi(a,void 0);this.pendingUiResponses.clear(),this.pendingUiRequests.clear(),this.clearExtensionWidgets(!1);try{this.inner.dispose()}finally{this.onDestroyCallback?.()}}}async shutdown(){return this.shutdownPromise?this.shutdownPromise:this._alive?(this.shutdownPromise=(async()=>{try{try{await this.waitForExtensionsBound()}catch(a){console.error("[pi-web] extension binding failed before session shutdown:",a instanceof Error?a.message:a)}await this.inner.extensionRunner.emit?.({type:"session_shutdown",reason:"quit"})}finally{this.destroy()}})(),this.shutdownPromise):void 0}resolveExtensionUiResponse(a){let b=this.pendingUiResponses.get(a.id);b&&b.resolve(a)}getExtensionStatuses(){return Array.from(this.extensionStatuses,([a,b])=>({key:a,text:b}))}getExtensionWidgets(){return Array.from(this.extensionWidgets.values())}nextExtensionWidgetGeneration(a){let b=(this.extensionWidgetGenerations.get(a)??0)+1;return this.extensionWidgetGenerations.set(a,b),b}disposeExtensionWidgetComponent(a){if(!a||"object"!=typeof a&&"function"!=typeof a)return;let b=a.dispose;if("function"==typeof b)try{b.call(a)}catch{}}emitExtensionWidgetClear(a){this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"setWidget",widgetKey:a,widgetLines:void 0,widgetPlacement:void 0})}clearExtensionWidget(a,b=!0){let c=this.nextExtensionWidgetGeneration(a),d=this.activeExtensionWidgets.get(a);return this.activeExtensionWidgets.delete(a),this.extensionWidgets.delete(a),d&&this.disposeExtensionWidgetComponent(d.component),this.extensionWidgetGenerations.get(a)!==c||b&&this.emitExtensionWidgetClear(a),c}clearExtensionWidgets(a){for(let b of new Set([...this.extensionWidgets.keys(),...this.activeExtensionWidgets.keys()]))this.clearExtensionWidget(b,a)}resetExtensionWidgetsForReload(){this.extensionWidgetsResetting=!0;try{for(let a of[...this.activeExtensionWidgets.keys()])this.clearExtensionWidget(a);this.extensionWidgets.clear()}finally{this.extensionWidgetsResetting=!1}}emitExtensionWidgetError(a,b){this.emit({type:"extension_error",extensionPath:`extension-widget:${a}`,event:"setWidget",error:b instanceof Error?b.message:String(b)})}failExtensionWidget(a,b,c,d,e){if(this.extensionWidgetGenerations.get(a)!==b)return void this.disposeExtensionWidgetComponent(e);let f=this.activeExtensionWidgets.get(a),g=!d;f?.generation===b?(g=f.rendered||!f.clearEmitted,this.activeExtensionWidgets.delete(a),this.disposeExtensionWidgetComponent(f.component)):this.disposeExtensionWidgetComponent(e),this.extensionWidgetGenerations.get(a)!==b||(this.extensionWidgets.delete(a),g&&this.emitExtensionWidgetClear(a)),this.emitExtensionWidgetError(a,c)}renderExtensionWidget(a){let b;if(this.activeExtensionWidgets.get(a.key)!==a||this.extensionWidgetGenerations.get(a.key)!==a.generation)return;try{b=a.component.render(v.p1)}catch(b){this.failExtensionWidget(a.key,a.generation,b,a.clearEmitted);return}if(!Array.isArray(b)||!b.every(a=>"string"==typeof a))return void this.failExtensionWidget(a.key,a.generation,Error("Extension widget render must return string[]"),a.clearEmitted);if(this.activeExtensionWidgets.get(a.key)!==a||this.extensionWidgetGenerations.get(a.key)!==a.generation)return;let c=b;this.extensionWidgets.set(a.key,{key:a.key,lines:c,placement:a.placement}),a.rendered=!0,this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"setWidget",widgetKey:a.key,widgetLines:c,widgetPlacement:a.placement})}setExtensionWidgetFactory(a,b,c){let d,e=this.extensionWidgets.has(a)||this.activeExtensionWidgets.has(a),f=this.clearExtensionWidget(a,e);if(this.extensionWidgetGenerations.get(a)!==f)return;let g=(0,v.TQ)(()=>{let b=this.activeExtensionWidgets.get(a);b?.generation===f&&this.renderExtensionWidget(b)},v.p1);try{d=b(g,G)}catch(b){this.failExtensionWidget(a,f,b,e);return}if(this.extensionWidgetGenerations.get(a)!==f)return void this.disposeExtensionWidgetComponent(d);if(!d||"object"!=typeof d&&"function"!=typeof d||"function"!=typeof d.render)return void this.failExtensionWidget(a,f,Error("Extension widget factory must return a component with render(width)"),e,d);let h={key:a,component:d,placement:c?.placement??"aboveEditor",generation:f,clearEmitted:e,rendered:!1};this.activeExtensionWidgets.set(a,h),this.renderExtensionWidget(h)}getCustomUiWidth(a){if(!a||"object"!=typeof a)return v.p1;let b=a.overlayOptions,c="function"==typeof b?b():b;if(!c||"object"!=typeof c)return v.p1;let d=c.width;return"number"==typeof d&&Number.isFinite(d)?Math.max(40,Math.min(140,Math.round(d))):92}emitCustomUiRender(a,b){let c;try{c=b.component.render(b.width)}catch(a){c=[`Extension custom UI render failed: ${a instanceof Error?a.message:String(a)}`]}let d={type:"extension_ui_request",id:a,method:"custom",lines:c};this.pendingUiRequests.set(a,d),this.emit(d)}closeCustomUi(a,b){let c=this.activeCustomUis.get(a);if(c&&!c.settled){c.settled=!0,this.activeCustomUis.delete(a),this.pendingUiRequests.delete(a);try{c.component.dispose?.()}catch{}this.emit({type:"extension_ui_request",id:a,method:"custom",lines:[],closed:!0}),c.resolve(b)}}handleExtensionUiInput(a,b){let c=this.activeCustomUis.get(a);if(c&&"string"==typeof b)try{c.component.handleInput?.(b),this.activeCustomUis.has(a)&&this.emitCustomUiRender(a,c)}catch(b){this.closeCustomUi(a,void 0),this.emit({type:"extension_error",extensionPath:`custom-ui:${a}`,event:"custom_ui_input",error:b instanceof Error?b.message:String(b)})}}requestExtensionCustomUi(a,b){if("function"!=typeof a)return Promise.resolve(void 0);let c=(0,g.randomUUID)(),d=this.getCustomUiWidth(b);return new Promise(b=>{let e=!1,f=(0,v.TQ)(()=>{let a=this.activeCustomUis.get(c);a&&this.emitCustomUiRender(c,a)},d),g=a=>{e||(e=!0,b(a))},h=a=>{this.activeCustomUis.has(c)?this.closeCustomUi(c,a):g(a)};Promise.resolve().then(()=>a(f,G,H,h)).then(a=>{if(e){try{a?.dispose?.()}catch{}return}if(!a||"object"!=typeof a||"function"!=typeof a.render)return void g(void 0);let b={component:a,width:d,resolve:a=>g(a),settled:!1};this.activeCustomUis.set(c,b),this.emitCustomUiRender(c,b)}).catch(a=>{e||(this.emit({type:"extension_error",extensionPath:`custom-ui:${c}`,event:"custom_ui",error:a instanceof Error?a.message:String(a)}),g(void 0))})})}requestExtensionUi(a,b,c,d,e){if(e?.aborted)return Promise.resolve(b);let f=(0,g.randomUUID)(),h={type:"extension_ui_request",id:f,...a,...d?{timeout:d,expiresAt:Date.now()+d}:{}};return new Promise(a=>{let g,i=()=>{g&&clearTimeout(g),e?.removeEventListener("abort",k),this.pendingUiRequests.delete(f),this.pendingUiResponses.delete(f)},j=b=>{i(),a(b)},k=()=>j(b);d&&(g=setTimeout(()=>j(b),d)),e?.addEventListener("abort",k,{once:!0}),this.pendingUiRequests.set(f,h),this.pendingUiResponses.set(f,{resolve:a=>j(c(a)),cancel:()=>j(b)}),this.emit(h)})}createExtensionUiContext(){return{select:(a,b,c)=>this.requestExtensionUi({method:"select",title:a,options:b,...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),confirm:(a,b,c)=>this.requestExtensionUi({method:"confirm",title:a,message:b,...c?.timeout?{timeout:c.timeout}:{}},!1,a=>"confirmed"in a&&a.confirmed,c?.timeout,c?.signal),input:(a,b,c)=>this.requestExtensionUi({method:"input",title:a,...void 0!==b?{placeholder:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),editor:(a,b,c)=>this.requestExtensionUi({method:"editor",title:a,...void 0!==b?{prefill:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),notify:(a,b)=>{this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"notify",message:a,notifyType:b})},onTerminalInput:()=>()=>{},setStatus:(a,b)=>{void 0===b?this.extensionStatuses.delete(a):this.extensionStatuses.set(a,b),this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"setStatus",statusKey:a,statusText:b})},setWorkingMessage:()=>{},setWorkingVisible:()=>{},setWorkingIndicator:()=>{},setHiddenThinkingLabel:()=>{},setWidget:(a,b,c)=>{if(!this._alive||this.extensionWidgetsResetting)return;if("function"==typeof b)return void this.setExtensionWidgetFactory(a,b,c);if(void 0!==b&&!Array.isArray(b))return;if(void 0===b)return void this.clearExtensionWidget(a);let d=this.activeExtensionWidgets.has(a)?this.clearExtensionWidget(a):this.nextExtensionWidgetGeneration(a);this.extensionWidgetGenerations.get(a)===d&&(this.extensionWidgets.set(a,{key:a,lines:b,placement:c?.placement??"aboveEditor"}),this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"setWidget",widgetKey:a,widgetLines:b,widgetPlacement:c?.placement}))},setFooter:()=>{},setHeader:()=>{},setTitle:a=>{this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"setTitle",title:a})},custom:(a,b)=>this.requestExtensionCustomUi(a,b),pasteToEditor:a=>{this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"set_editor_text",text:a})},setEditorText:a=>{this.emit({type:"extension_ui_request",id:(0,g.randomUUID)(),method:"set_editor_text",text:a})},getEditorText:()=>"",addAutocompleteProvider:()=>{},setEditorComponent:()=>{},getEditorComponent:()=>void 0,get theme(){return G},getAllThemes:()=>[],getTheme:()=>void 0,setTheme:()=>({success:!1,error:"Theme switching is not supported in Pi Web extension UI yet"}),getToolsExpanded:()=>!1,setToolsExpanded:()=>{}}}createExtensionCommandContextActions(){return{waitForIdle:async()=>{let a=this.inner.agent;await a.waitForIdle?.()},newSession:async()=>({cancelled:!0}),fork:async()=>({cancelled:!0}),navigateTree:async(a,b)=>({cancelled:(await this.inner.navigateTree(a,{summarize:b?.summarize})).cancelled}),switchSession:async()=>({cancelled:!0}),reload:async()=>{this.extensionStatuses.clear(),this.resetExtensionWidgetsForReload(),this.syncProjectTrust(),await this.inner.reload({beforeSessionStart:()=>{this.inner.extensionRunner.setUIContext?.(this.createExtensionUiContext(),"rpc")}}),this.applyForcedEmptySystemPrompt()}}}syncProjectTrust(){let a=(0,t.Y1)(this.cwd,(0,e.getAgentDir)());this.inner.settingsManager.setProjectTrusted(a.trusted)}}function y(){if(!globalThis.__piSessions){globalThis.__piSessions=new Map;let a=()=>globalThis.__piSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__piSessions}async function z(a,b){let c=a.getSessionFile();if(!c||(0,h.existsSync)(c))return;let d=a.getHeader();if(!d)return;let e=[d,...a.getEntries()].map(a=>JSON.stringify(a)).join("\n")+"\n";(0,h.writeFileSync)(c,e,{encoding:"utf8",flag:"wx"}),a.flushed=!0,(0,o.O8)(b,c);let f=a.getCwd();try{let a=await (0,q.KI)(f??"");(0,r.YH)(b,{path:c,cwd:f??"",projectKey:(0,p.z)(a?.projectRoot??f??"")})}catch{}}function A(a){return y().get(a)}function B(){let a=new Set;for(let[b,c]of y())c.isRunning()&&a.add(c.sessionId||b);return[...a]}async function C(a,b,c,d={}){let f,g,j,{toolNames:p,initialModel:q,thinkingLevel:r}=d,s=y(),v=(globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks),w=s.get(a);if(w?.isAlive())return{session:w,realSessionId:a};let A=v.get(a);if(A)return A;if(b)f=e.SessionManager.open(b,void 0);else{if(!c)throw Error("cwd is required for a new session");let b=a.length>0&&!a.startsWith("__");f=e.SessionManager.create(c,void 0,b?{id:a}:void 0),b&&await z(f,a)}let B=f.getCwd(),D=(globalThis.__piStartingSessionCwds||(globalThis.__piStartingSessionCwds=new Map),g=globalThis.__piStartingSessionCwds,j=function(a){let b=(0,i.resolve)(a);try{return(0,h.realpathSync)(b)}catch{return b}}(B),g.set(j,(g.get(j)??0)+1),()=>{let a=(g.get(j)??1)-1;a>0?g.set(j,a):g.delete(j)}),E=(async()=>{let a;(0,e.initTheme)();let b=(0,e.getAgentDir)();void 0!==p&&(a=0===p.length?[]:void 0);let c=(0,t.Fk)(B,b),d=e.SettingsManager.create(B,b),g=await (0,e.createAgentSessionServices)({cwd:B,agentDir:b,settingsManager:d,resourceLoaderOptions:{extensionFactories:[(0,m.eD)({cwd:B,settings:d}),(0,n.U)()],extensionsOverride:m.Ds},...c?{resourceLoaderReloadOptions:c}:{}}),h=await (0,l.p)(g.modelRuntime,g.settingsManager.getEnabledModels()),i=g.settingsManager.getDefaultProvider(),j=g.settingsManager.getDefaultModel(),v=f.getBranch().some(a=>"message"===a.type)?{scopedModels:[...h.scopedModels]}:(0,l.I)(h,{...q?{requestedModel:q}:{},...i&&j?{defaultModel:{provider:i,modelId:j}}:{},...r?{thinkingLevel:r}:{}}),{session:w}=await (0,e.createAgentSessionFromServices)({services:g,sessionManager:f,...v.model?{model:v.model}:{},...v.thinkingLevel?{thinkingLevel:v.thinkingLevel}:{},...v.scopedModels.length>0?{scopedModels:v.scopedModels}:{},...void 0!==a?{tools:a}:{}});(await (0,u.o)(g.settingsManager,{...q?{model:q}:{},...r?{thinkingLevel:r}:{}},{...w.model?{model:{provider:w.model.provider,modelId:w.model.id}}:{},thinkingLevel:w.thinkingLevel,supportsThinking:w.supportsThinking()})).modelDefaultChanged&&(0,k.kn)(),p&&p.length>0&&w.setActiveToolsByName(x(w,p));let y=new I(w);p?.length===0&&y.setForceEmptySystemPrompt(!0),y.start();let z=w.sessionId,A=w.sessionFile;return A&&(0,o.O8)(z,A),y.onDestroy(()=>s.delete(z)),s.set(z,y),y.beginExtensionBinding({forceEmptySystemPrompt:p?.length===0}),{session:y,realSessionId:z}})().finally(()=>{v.delete(a),D()});return v.set(a,E),E}d()}catch(a){d(a)}})},14916:(a,b,c)=>{c.d(b,{C1:()=>d});let d=["bash","read","edit","write","grep","find","ls"]},15253:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>h,Y1:()=>g});var e=c(75430),f=a([e]);function g(a,b){if(!(a&&(0,e.hasTrustRequiringProjectResources)(a)))return{requiresTrust:!1,trusted:!0};let c=new e.ProjectTrustStore(b);return{requiresTrust:!0,trusted:!0===c.get(a)}}function h(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},18437:(a,b,c)=>{c.d(b,{kc:()=>d});function d(a){if(void 0===a)return null;if(!Array.isArray(a))return"images must be an array";if(a.length>10)return"A message can include at most 10 images";for(let b of a){if(!b||"object"!=typeof b||"image"!==b.type)return"Each attachment must be an image";if(!function(a){if(!a||"object"!=typeof a||"string"!=typeof a.data||"string"!=typeof a.mimeType||!a.mimeType.startsWith("image/"))return!1;let b=function(a){if(!a||a.length%4!=0)return null;let b=a.endsWith("==")?2:+!!a.endsWith("="),c=a.length-b;for(let b=0;b<c;b+=1){var d;if(!((d=a.charCodeAt(b))>=65&&d<=90||d>=97&&d<=122||d>=48&&d<=57||43===d||47===d))return null}for(let b=c;b<a.length;b+=1)if("="!==a[b])return null;return a.length/4*3-b}(a.data);return null!==b&&b<=0xa00000}(b))return"Each image must be valid base64 image data of 10MB or smaller"}return null}},32105:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Wz:()=>k,bJ:()=>n,s4:()=>m});var e=c(75430),f=c(51455),g=c(69453),h=a([e,g]);[e,g]=h.then?(await h)():h;let o=new Set(["bash"]);async function i(a){let b=await (0,g.os)(a);if(!b)return null;let c=131072;for(;c<=1048576;){let a=await (0,f.open)(b,"r");try{let{size:b}=await a.stat(),d=Math.max(0,b-c),e=Buffer.alloc(b-d);e.length>0&&await a.read(e,0,e.length,d);let f=e.toString("utf8").split("\n"),g=d>0?f.slice(1):f,h=[];for(let a=g.length-1;a>=0&&h.length<8;a--){let b=g[a].trim();if(b)try{let a=JSON.parse(b);a?.type==="message"&&h.unshift(a)}catch{}}if(h.length>=4||c>=1048576||b<=c)return h}finally{await a.close()}c*=2}return null}function j(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>!!a&&"object"==typeof a&&"text"in a).map(a=>a.text).join("\n"):""}async function k(a){try{var b;let c=await i(a);if(!c)return null;let d=c.filter(a=>"message"===a.type),e=!1,f=0,g=[],h=d[d.length-1],k=!!h&&(b=h.message,"assistant"===b.role&&!!Array.isArray(b.content)&&b.content.some(a=>!!a&&"object"==typeof a&&"toolCall"===a.type&&o.has(a.name))),l=h&&"number"==typeof h.message.timestamp?h.message.timestamp:h?new Date(h.timestamp).getTime():0,m=k&&!Number.isNaN(l)?l:0;for(let a of d.slice(-4)){let b=a.message,c="number"==typeof b.timestamp?b.timestamp:new Date(a.timestamp).getTime();if(Number.isNaN(c)||(f=Math.max(f,c)),"assistant"===b.role){b.errorMessage&&(e=!0);let a=j(b.content);a&&g.push(`AI: ${a.slice(0,400)}`)}else if("toolResult"===b.role){b.isError&&(e=!0);let a=b.details;a&&"number"==typeof a.exitCode&&0!==a.exitCode&&(e=!0);let c=j(b.content);c&&g.push(`工具 ${b.toolName}: ${c.slice(0,300)}`)}else if("user"===b.role){let a=j(b.content);a&&g.push(`用户: ${a.slice(0,300)}`)}}return{failure:e,recentText:g.join("\n").slice(0,4e3),lastActivityMs:f,lastIsCommand:k,lastCommandAtMs:m}}catch(b){return console.error(`[task-scheduler] 读会话快照失败 ${a}:`,b instanceof Error?b.message:b),null}}async function l(a,b,c){let d=null,f=setTimeout(()=>{if(d&&"function"==typeof d.dispose)try{d.dispose()}catch{}},9e4);try{(0,e.initTheme)();let f=(0,e.getAgentDir)(),g=e.SettingsManager.create(a,f),h=await (0,e.createAgentSessionServices)({cwd:a,agentDir:f,settingsManager:g,resourceLoaderOptions:{extensionFactories:[]}}),i=e.SessionManager.inMemory(a);d=(await (0,e.createAgentSessionFromServices)({services:h,sessionManager:i,noTools:"all"})).session,await d.prompt(`${b}
|
|
2
2
|
|
|
3
3
|
${c}`,{expandPromptTemplates:!1,source:"rpc"}),await d.waitForIdle();let j=d.getLastAssistantText()??"";return function(a){let b=a.indexOf("{");if(-1===b)return null;let c=0;for(let d=b;d<a.length;d++)if("{"===a[d])c+=1;else if("}"===a[d]&&(c-=1,0===c))try{return JSON.parse(a.slice(b,d+1))}catch{break}return null}(j)??null}catch(a){return console.error("[audit-session] 判定失败:",a instanceof Error?a.message:a),null}finally{if(clearTimeout(f),d)try{d.dispose()}catch{}}}let p=`你是任务卡审核员。下面给出任务卡信息与执行会话最后几条消息,判断任务执行结果:
|
|
4
4
|
- done: 任务已正确完成
|
|
@@ -14,8 +14,9 @@ ${c}`,{expandPromptTemplates:!1,source:"rpc"}),await d.waitForIdle();let j=d.get
|
|
|
14
14
|
- asking: AI 在提问等待用户输入
|
|
15
15
|
- normal: 正常运行中(长任务)
|
|
16
16
|
|
|
17
|
-
只输出一行 JSON(不要输出其他文字):{"kind":"sync_server|infinite_loop|rate_limit|error|asking|normal","detail":"简短说明"}`;async function n(a){let b=[`【任务卡 #${a.cardNumber}】${a.cardName}`,`任务描述:${a.taskDescription||"(空)"}`,"\n执行会话最后几条消息:",a.recentMessages||"(无消息)"].join("\n"),c=await l(a.cwd,q,b);return c&&["sync_server","infinite_loop","rate_limit","error","asking","normal"].includes(c.kind)?{kind:c.kind,detail:c.detail??""}:null}d()}catch(a){d(a)}})},57856:(a,b,c)=>{c.d(b,{TQ:()=>e,p1:()=>d});let d=92;function e(a,b=d,c=40){return Object.freeze({terminal:Object.freeze({columns:b,rows:c,kittyProtocolActive:!1}),requestRender:a})}},60542:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{startTaskScheduler:()=>G});var e=c(29021),f=c(55511),g=c(75384),h=c(47128),i=c(12144),j=c(69453),k=c(65562),l=c(14916),m=c(85158),n=c(48817),o=c(32105),p=a([i,j,o]);[i,j,o]=p.then?(await p)():p;let K=new Map,L=new Map;function q(a){if(a.cwd)return a.cwd;let b=(0,g.v$)(a.boardId);return b&&(0,e.existsSync)(b.projectKey)?b.projectKey:null}async function r(a){if(a.sessionId)try{let b=await (0,j.os)(a.sessionId);if(b)return{...await (0,i.OF)(a.sessionId,b,void 0),created:!1}}catch{}let b=q(a);return b?{...await (0,i.OF)((0,f.randomUUID)(),"",b,{toolNames:l.C1}),created:!0}:null}async function s(){let a=new Set((0,i.HG)()),b=0;for(let c of(0,n.O7)(["review"]))c.sessionId&&a.has(c.sessionId)&&((0,n.w0)(c.id,{execStatus:"running"}),console.log(`[task-scheduler] #${c.number} ${c.name} 自愈:会话仍在跑 → 拉回 running`),b+=1);return b}async function t(a){let b=(0,f.randomUUID)();if(!(0,n.Im)(a.id,b))return console.log(`[task-scheduler] #${a.number} ${a.name} 派发锁被占用,跳过`),!1;let c=null;try{if(!(c=await r(a)))return console.warn(`[task-scheduler] #${a.number} ${a.name} 无可用 cwd,跳过派发`),(0,n.$j)(a.id,b),!1;let d=c;await d.session.send({type:"set_session_name",name:`#${a.number} ${a.name}`});let e=(0,g.v$)(a.boardId);if(e?.taskId&&(0,k.mE)(d.realSessionId,e.taskId),d.session.isRunning())return(0,n.w0)(a.id,{sessionId:d.realSessionId,execStatus:"running"}),u(a.boardId),v(a,d.session),(0,n.$j)(a.id,b),console.log(`[task-scheduler] #${a.number} ${a.name} 会话忙(复用中),标 running 不重发`),!0;return await d.session.send({type:"prompt",message:function(a){let b=[`【任务卡 #${a.number}】${a.name}`];if(a.description.trim()&&b.push("",a.description.trim()),a.attachments.length>0)for(let c of(b.push("","附件:"),a.attachments))b.push(`- ${c}`);return b.join("\n")}(a)}),(0,n.w0)(a.id,{sessionId:d.realSessionId,execStatus:"running"}),u(a.boardId),v(a,d.session),(0,n.$j)(a.id,b),console.log(`[task-scheduler] 派发 #${a.number} ${a.name} → session ${d.realSessionId.slice(0,8)}`),!0}catch(d){if(c?.created)try{c.session.destroy()}catch{}return(0,n.$j)(a.id,b),console.error(`[task-scheduler] 派发 #${a.number} ${a.name} 失败:`,d instanceof Error?d.message:d),!1}}function u(a){(0,h.dA)(a).catch(b=>console.warn(`[task-scheduler] reconcile ${a} 异常:`,b?.message??b))}function v(a,b){if("function"!=typeof b.onEvent)return;let c=b.onEvent(b=>{if("agent_end"!==b.type)return;c();let d=(0,n.XJ)(a.id);d&&"running"===d.execStatus&&((0,n.w0)(a.id,{execStatus:"review"}),console.log(`[task-scheduler] #${a.number} ${a.name} 执行会话结束(agent_end) → review(待审核)`))})}async function w(){let a=new Set((0,i.HG)()),b=Date.now(),c=0;for(let d of(0,n.BH)()){if(!d.sessionId||a.has(d.sessionId))continue;let e=await (0,o.Wz)(d.sessionId);e&&0!==e.lastActivityMs&&(b-e.lastActivityMs<5e3||((0,n.w0)(d.id,{execStatus:"review"}),console.log(`[task-scheduler] #${d.number} ${d.name} 执行会话已结束 → review(待审核)`),c+=1))}return c}async function x(){let a=0;for(let b of(0,n.O7)(["not_started","running","review","waiting_reply"])){if(!b.sessionId)continue;let c=(0,i.A4)(b.sessionId);c&&(c.isRunning()?"running"!==b.execStatus&&((0,n.w0)(b.id,{execStatus:"running"}),a+=1):c.hasPendingUiRequest()&&"waiting_reply"!==b.execStatus&&((0,n.w0)(b.id,{execStatus:"waiting_reply"}),a+=1))}return a}async function y(){await x(),await s(),await w(),await D(),await z(),await E();let a=0,b=(0,n.CU)(),c=Math.max(0,1-b);if(c<=0)return H({type:"skipped_gate",at:Date.now()}),0;for(let b of(0,n.uZ)().slice(0,c)){if((0,n.CU)()>=1)break;await J({kind:"dispatch",cardNumber:b.number,cardName:b.name,at:Date.now()},()=>t(b))&&(a+=1,H({type:"dispatch",cardNumber:b.number,cardName:b.name,at:Date.now()}))}return a}async function z(){let a=0;for(let b of(0,n.Kg)()){let c=(0,n.XJ)(b.cardId);if(c&&"waiting_reply"===c.execStatus&&c.sessionId){if((0,n.CU)()>=1)break;await J({kind:"resume",cardNumber:c.number,cardName:c.name,at:Date.now()},()=>A(c,b))&&(a+=1,H({type:"resume",cardNumber:c.number,cardName:c.name,at:Date.now()}))}}return a}async function A(a,b){try{let c=await (0,j.os)(a.sessionId);if(!c)return!1;let{session:d}=await (0,i.OF)(a.sessionId,c,void 0);return await d.send({type:"prompt",message:`【用户回答了你的提问】
|
|
17
|
+
只输出一行 JSON(不要输出其他文字):{"kind":"sync_server|infinite_loop|rate_limit|error|asking|normal","detail":"简短说明"}`;async function n(a){let b=[`【任务卡 #${a.cardNumber}】${a.cardName}`,`任务描述:${a.taskDescription||"(空)"}`,"\n执行会话最后几条消息:",a.recentMessages||"(无消息)"].join("\n"),c=await l(a.cwd,q,b);return c&&["sync_server","infinite_loop","rate_limit","error","asking","normal"].includes(c.kind)?{kind:c.kind,detail:c.detail??""}:null}d()}catch(a){d(a)}})},45399:(a,b,c)=>{c.d(b,{ZUJ:()=>g});var d,e,f={};c.r(f),c.d(f,{ExtendsFalse:()=>db,ExtendsTrue:()=>c9,ExtendsUnion:()=>c7,IsExtendsFalse:()=>dc,IsExtendsTrue:()=>da,IsExtendsTrueLike:()=>dd,IsExtendsUnion:()=>c8,Match:()=>de});var g={};c.r(g),c.d(g,{Any:()=>T,Array:()=>I,BigInt:()=>aJ,Boolean:()=>aL,Call:()=>dP,Capitalize:()=>dT,Codec:()=>ax,Conditional:()=>d7,Constructor:()=>L,ConstructorParameters:()=>ea,Cyclic:()=>ad,Decode:()=>ay,DecodeBuilder:()=>aw,Dependent:()=>ak,Encode:()=>az,EncodeBuilder:()=>av,Enum:()=>an,Evaluate:()=>fi,Exclude:()=>ed,Extends:()=>dF,ExtendsResult:()=>f,Extract:()=>eg,Function:()=>N,Generic:()=>R,Identifier:()=>aN,Immutable:()=>aB,Index:()=>ek,Infer:()=>ai,InstanceType:()=>ez,Instantiate:()=>ff,Integer:()=>aQ,Interface:()=>dw,Intersect:()=>ap,IsAny:()=>U,IsArray:()=>J,IsBigInt:()=>aK,IsBoolean:()=>aM,IsCall:()=>dQ,IsCodec:()=>aA,IsConstructor:()=>M,IsCyclic:()=>ae,IsDependent:()=>al,IsEnum:()=>ao,IsEnumValue:()=>am,IsFunction:()=>O,IsGeneric:()=>S,IsIdentifier:()=>aO,IsImmutable:()=>aC,IsInfer:()=>aj,IsInteger:()=>aR,IsIntersect:()=>aq,IsKind:()=>C,IsLiteral:()=>aV,IsNever:()=>W,IsNull:()=>aX,IsNumber:()=>a$,IsObject:()=>aa,IsOptional:()=>$,IsParameter:()=>a2,IsReadonly:()=>aG,IsRecord:()=>bC,IsRef:()=>Q,IsRefine:()=>aI,IsRest:()=>bE,IsSchema:()=>D,IsString:()=>a4,IsSymbol:()=>a0,IsTemplateLiteral:()=>c6,IsThis:()=>bG,IsTuple:()=>bd,IsUndefined:()=>bI,IsUnion:()=>a6,IsUnknown:()=>ac,IsUnsafe:()=>ag,IsVoid:()=>bK,KeyOf:()=>eC,Literal:()=>aT,Lowercase:()=>dV,Mapped:()=>eF,Module:()=>fj,Never:()=>V,NonNullable:()=>eJ,Null:()=>aW,Number:()=>aZ,Object:()=>_,Omit:()=>eM,Optional:()=>Z,Parameter:()=>a1,Parameters:()=>eQ,Partial:()=>eT,Pick:()=>eW,Readonly:()=>aF,ReadonlyObject:()=>eZ,ReadonlyType:()=>e$,Record:()=>bx,RecordKey:()=>bA,RecordPattern:()=>bz,RecordValue:()=>bB,Ref:()=>P,Refine:()=>aH,Required:()=>e1,Rest:()=>bD,ReturnType:()=>e4,Script:()=>fk,String:()=>a3,Symbol:()=>a_,TemplateLiteral:()=>c5,This:()=>bF,Tuple:()=>bc,Uncapitalize:()=>dX,Undefined:()=>bH,Union:()=>a5,Unknown:()=>ab,Unsafe:()=>af,Uppercase:()=>dZ,Void:()=>bJ,With:()=>e7});let h={assign:0,create:0,clone:0,discard:0,update:0};function i(a,b){return h.assign+=1,{...a,...b}}function j(a){return Array.isArray(a)}function k(a){return"bigint"==typeof a}function l(a){return"boolean"==typeof a}function m(a){return"function"==typeof a}function n(a){return null===a}function o(a){return Number.isFinite(a)}function p(a){return q(a)&&!j(a)}function q(a){return"object"==typeof a&&!n(a)}function r(a){return"string"==typeof a}function s(a,b,c){return 0===a.length?c():b(a[0],a.slice(1))}function t(a){return"__proto__"===a||"constructor"===a||"prototype"===a}function u(a,b){return t(b)?Object.prototype.hasOwnProperty.call(a,b):b in a}function v(a){return Object.getOwnPropertyNames(a)}function w(a){return Object.values(a)}function x(a){return h.clone+=1,function a(b){return globalThis.ArrayBuffer.isView(b)?b.slice():b instanceof globalThis.RegExp?new RegExp(b.source,b.flags):b instanceof globalThis.Map?new Map(a([...b.entries()])):b instanceof globalThis.Set?new Set(a([...b.values()])):j(b)?b.map(b=>a(b)):q(b)?function(b){return!function(a){if(!q(a))return!1;let b=globalThis.Object.getPrototypeOf(a);return!n(b)&&"function"==typeof b.constructor&&b.constructor!==globalThis.Object&&"Object"!==b.constructor.name}(b)?u(b,"~kind")||u(b,"~unsafe")?function(b){let c={},d=Object.getOwnPropertyDescriptors(b);for(let b of Object.keys(d)){if(t(b))continue;let e=d[b];u(e,"value")&&Object.defineProperty(c,b,{...e,value:a(e.value)})}return c}(b):function(b){let c={};for(let d of v(b))t(d)||(c[d]=a(b[d]));for(let d of Object.getOwnPropertySymbols(b))c[d]=a(b[d]);return c}(b):b}(b):b}(a)}let y={immutableTypes:!1,maxErrors:8,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1,unionPrioritySort:!0};function z(a,b,c={}){h.create+=1;let d={...b,...c},e=y.enumerableKind?{...d,...a}:function(a,b){for(let c of Object.keys(b))Object.defineProperty(a,c,{configurable:!0,writable:!0,enumerable:!1,value:b[c]});return a}(d,a);return y.immutableTypes?Object.freeze(e):e}function A(a,b){h.discard+=1;let c={},d=Object.getOwnPropertyDescriptors(x(a)),e=new Set(b);for(let a of Object.keys(d))e.has(a)||Object.defineProperty(c,a,d[a]);return c}function B(a,b,c){h.update+=1;let d=x(a);for(let a of Object.keys(b))Object.defineProperty(d,a,{configurable:!0,writable:!0,enumerable:y.enumerableKind,value:b[a]});for(let a of Object.keys(c))Object.defineProperty(d,a,{configurable:!0,enumerable:!0,writable:!0,value:c[a]});return d}function C(a,b){return q(a)&&u(a,"~kind")&&a["~kind"]===b}function D(a){return q(a)}function E(a,b,c){return z({"~kind":"Deferred"},{type:"deferred",action:a,parameters:b,options:c},{})}function F(a){return C(a,"Deferred")}function G(a,b){return B(B(a,{"~readonly":!0},{}),{},b)}function H(a,b){return B(B(a,{"~optional":!0},{}),{},b)}function I(a,b){return z({"~kind":"Array"},{type:"array",items:a},b)}function J(a){return C(a,"Array")}function K(a){return A(a,["~kind","type","items"])}function L(a,b,c={}){return z({"~kind":"Constructor"},{type:"constructor",parameters:a,instanceType:b},c)}function M(a){return C(a,"Constructor")}function N(a,b,c={}){return z({"~kind":"Function"},{type:"function",parameters:a,returnType:b},c)}function O(a){return C(a,"Function")}function P(a,b){return z({"~kind":"Ref"},{$ref:a},b)}function Q(a){return C(a,"Ref")}function R(a,b){return z({"~kind":"Generic"},{type:"generic",parameters:a,expression:b})}function S(a){return C(a,"Generic")}function T(a){return z({"~kind":"Any"},{},a)}function U(a){return C(a,"Any")}function V(a){return z({"~kind":"Never"},{not:{}},a)}function W(a){return C(a,"Never")}function X(a,b={}){return E("AddOptional",[a],b)}function Y(a,b={}){return H(a,b)}function Z(a){return Y(a)}function $(a){return q(a)&&u(a,"~optional")}function _(a,b={}){let c=v(a).filter(b=>!$(a[b]));return z({"~kind":"Object"},{type:"object",...c.length>0?{required:c}:{},properties:a},b)}function aa(a){return C(a,"Object")}function ab(a){return z({"~kind":"Unknown"},{},a)}function ac(a){return C(a,"Unknown")}function ad(a,b,c){return z({"~kind":"Cyclic"},{$defs:v(a).reduce((b,c)=>({...b,[c]:B(a[c],{},{$id:c})}),{}),$ref:b},c)}function ae(a){return C(a,"Cyclic")}function af(a){return B(a,{"~unsafe":null},{})}function ag(a){return p(a)&&u(a,"~unsafe")&&n(a["~unsafe"])}function ah(a,b){return b[a.length]?.(...a)??(()=>{throw Error("Invalid Arguments")})()}function ai(...a){let[b,c]=ah(a,{2:(a,b)=>[a,b,b],1:a=>[a,ab(),ab()]});return z({"~kind":"Infer"},{type:"infer",name:b,extends:c},{})}function aj(a){return C(a,"Infer")}function ak(a,b,c,d={}){return z({"~kind":"Dependent"},{if:a,then:b,else:c},d)}function al(a){return C(a,"Dependent")}function am(a){return r(a)||o(a)}function an(a,b){return z({"~kind":"Enum"},{enum:p(a)?v(a).filter(a=>isNaN(a)).reduce((b,c)=>[...b,a[c]],[]):a},b)}function ao(a){return C(a,"Enum")}function ap(a,b={}){return z({"~kind":"Intersect"},{allOf:a},b)}function aq(a){return C(a,"Intersect")}(d=e||(e={}))[d.Array=0]="Array",d[d.BigInt=1]="BigInt",d[d.Boolean=2]="Boolean",d[d.Date=3]="Date",d[d.Constructor=4]="Constructor",d[d.Function=5]="Function",d[d.Null=6]="Null",d[d.Number=7]="Number",d[d.Object=8]="Object",d[d.RegExp=9]="RegExp",d[d.String=10]="String",d[d.Symbol=11]="Symbol",d[d.TypeArray=12]="TypeArray",d[d.Undefined=13]="Undefined",BigInt("14695981039346656037");let[ar,as]=[BigInt("1099511628211"),BigInt("18446744073709551616")];Array.from({length:256}).map((a,b)=>BigInt(b));let at=new Float64Array(1);function au(){throw Error("Unreachable")}new DataView(at.buffer),new Uint8Array(at.buffer),new TextEncoder;class av{constructor(a,b){this.type=a,this.decode=b}Encode(a){let b=this.type,c=aA(b)?a=>this.decode(b["~codec"].decode(a)):this.decode,d=aA(b)?c=>b["~codec"].encode(a(c)):a;return B(this.type,{"~codec":{decode:c,encode:d}},{})}}class aw{constructor(a){this.type=a}Decode(a){return new av(this.type,a)}}function ax(a){return new aw(a)}function ay(a,b){return ax(a).Decode(b).Encode(()=>{throw Error("Encode not implemented")})}function az(a,b){return ax(a).Decode(()=>{throw Error("Decode not implemented")}).Encode(b)}function aA(a){return q(a)&&u(a,"~codec")&&q(a["~codec"])&&u(a["~codec"],"encode")&&u(a["~codec"],"decode")}function aB(a){return fh(a)}function aC(a){return q(a)&&u(a,"~immutable")}function aD(a,b={}){return E("AddReadonly",[a],b)}function aE(a,b={}){return G(a,b)}function aF(a){return aE(a)}function aG(a){return q(a)&&u(a,"~readonly")}function aH(...a){var b;let c,[d,e,f]=ah(a,{3:(a,b,c)=>[a,b,c],2:(a,b)=>[a,b,()=>"Refine Error"]});return b={check:e,error:f},c=aI(d)?[...d["~refine"],b]:[b],B(d,{"~refine":c},{})}function aI(a){return q(a)&&u(a,"~refine")&&j(a["~refine"])&&function(a,b){for(let c=0;c<a.length;c++)if(!b(a[c],c))return!1;return!0}(a["~refine"],a=>p(a)&&u(a,"check")&&u(a,"error")&&m(a.check)&&m(a.error))}function aJ(a){return z({"~kind":"BigInt"},{type:"bigint"},a)}function aK(a){return C(a,"BigInt")}function aL(a){return z({"~kind":"Boolean"},{type:"boolean"},a)}function aM(a){return C(a,"Boolean")}function aN(a){return z({"~kind":"Identifier"},{name:a})}function aO(a){return C(a,"Identifier")}let aP="-?(?:0|[1-9][0-9]*)";function aQ(a){return z({"~kind":"Integer"},{type:"integer"},a)}function aR(a){return C(a,"Integer")}class aS extends Error{constructor(a){super("Invalid Literal value"),Object.defineProperty(this,"cause",{value:{value:a},writable:!1,configurable:!1,enumerable:!1})}}function aT(a,b){return z({"~kind":"Literal"},{type:k(a)?"bigint":l(a)?"boolean":o(a)?"number":r(a)?"string":(()=>{throw new aS(a)})(),const:a},b)}function aU(a){return k(a)||l(a)||o(a)||r(a)}function aV(a){return C(a,"Literal")}function aW(a){return z({"~kind":"Null"},{type:"null"},a)}function aX(a){return C(a,"Null")}let aY="-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?";function aZ(a){return z({"~kind":"Number"},{type:"number"},a)}function a$(a){return C(a,"Number")}function a_(a){return z({"~kind":"Symbol"},{type:"symbol"},a)}function a0(a){return C(a,"Symbol")}function a1(...a){let[b,c,d]=ah(a,{3:(a,b,c)=>[a,b,c],2:(a,b)=>[a,b,b],1:a=>[a,ab(),ab()]});return z({"~kind":"Parameter"},{name:b,extends:c,equals:d},{})}function a2(a){return C(a,"Parameter")}function a3(a){return z({"~kind":"String"},{type:"string"},a)}function a4(a){return C(a,"String")}function a5(a,b={}){return z({"~kind":"Union"},{anyOf:a},b)}function a6(a){return C(a,"Union")}function a7(a){let b=cZ(a);return 2===b.length?b[0]:[]}function a8(a){return 0!==a.length&&function a(b){return s(b,(b,c)=>{var d;return!!(a6(d=b)?a8(d.anyOf):!!aV(d)&&(d.const,!0))&&a(c)},()=>!0)}(a)}function a9(a){return z({"~kind":"TemplateLiteral"},{type:"string",pattern:a},{})}function ba(a){var b;let c=a7(a);return 0===c.length?a3():a8(c)?0===(b=c).length?au():1===b.length&&aV(b[0])?b[0]:a5((function a(b,c){return s(c,(c,d)=>a(function a(b,c){var d,e;return a6(c)?function b(c,d,e=[]){return s(d,(d,f)=>b(c,f,[...e,...a(c,d)]),()=>e)}(b,c.anyOf):aV(c)?(d=b,e=c.const,0===d.length?[`${e}`]:function a(b,c,d=[]){return s(b,(b,e)=>a(e,c,[...d,`${b}${c}`]),()=>d)}(d,e)):au()}(b,c),d),()=>b)})([],b).map(a=>aT(a))):a9(a)}function bb(a,b){return z({"~kind":"Record"},{type:"object",patternProperties:{[a]:b}})}function bc(a,b={}){let[c,d,e]=[a,a.length,!1];return z({"~kind":"Tuple"},{type:"array",additionalItems:e,items:c,minItems:d},b)}function bd(a){return C(a,"Tuple")}function be(a,b){return B(A(a,["~readonly"]),{},b)}function bf(a,b){return B(A(a,["~optional"]),{},b)}function bg(a,b={}){return bf(a,b)}function bh(a){return a.reduceRight((a,b,c)=>({[c]:b,...a}),{})}function bi(a){return aa(a)?a.properties:bd(a)?bh(a.items):au()}function bj(a,b){var c;let d=bp(a);return bo((c=a6(d)?d.anyOf:[d],c.reduce((a,c)=>[...a,...dd(dF({},c,b))?[]:[c]],[])))}function bk(a,b,c){return bo([ap([a,b]),bj(c,a)])}function bl(a){return bo(a.map(a=>aT(a)))}function bm(a){return bq(dK(function a(b,c=[]){return s(b,(b,d)=>a6(b)?a(d,function b(c,d,e=[]){return s(c,(c,f)=>b(f,d,[...e,...a([c],d)]),()=>e)}(b.anyOf,c)):a(d,function a(b,c,d=[]){return s(c,(c,e)=>{var f,g;let h,i,j,k,l,m,n,o,p,q;return a(b,e,[...d,(h=bp(b),i=bp(c),j=a6(h),k=a6(i),l=j||k,m=aa(h)||bd(h),n=aa(i)||bd(i),l?bm([h,i]):m&&n?(o=bi(h),_([...new Set([...v(p=bi(i)),...v(o)])].reduce((a,b)=>{var c,d;let e,f,g;return{...a,[b]:b in o?b in p?(c=o[b],d=p[b],e=!!aG(c)&&!!aG(d),f=!!$(c)&&!!$(d),g=function(a,b={}){return be(a,b)}(bg(bm([c,d]))),e&&f?aE(Y(g)):e&&!f?aE(g):!e&&f?Y(g):g):o[b]:b in p?p[b]:V()}},{}))):m&&!n?h:!m&&n?i:(q=dJ(f=h,g=i))===dH?f:q===dI||q===dG?g:V())])},()=>0===d.length?[b]:d)}(b,c)),()=>c)}(a)))}function bn(a){let b;return bp(c6(b=ba(a))?a3():b)}function bo(a){return bq(dK(a))}function bp(a){return al(a)?bk(a.if,a.then,a.else):ao(a)?bl(a.enum):aq(a)?bm(a.allOf):c6(a)?bn(a.pattern):a6(a)?bo(a.anyOf):a}function bq(a){return 1===a.length?a[0]:0===a.length?V():a5(a)}function br(a){return a.reduce((a,b)=>[...a,...a6(b)?br(b.anyOf):[b]],[])}function bs(a,b,c){return fa([a])?B(function a(b,c){var d,e,f,g,h,i;return U(b)?bb(bv,c):aM(b)?_({true:c,false:c}):ao(b)?(d=b.enum,a(bl(d),c)):aR(b)?bb(bt,c):aq(b)?(e=b.allOf,a(bm(e),c)):aV(b)?(f=b.const,g=c,r(f)||o(f)?_({[f]:g}):!1===f?_({false:g}):!0===f?_({true:g}):_({})):a$(b)?bb(bu,c):a6(b)?function(a,b){var c,d;let e=br(a),f=(c=e,d=b,!0===c.some(a=>a4(a)||a$(a)||aR(a))?bb(bv,d):void 0);return q(f)?f:_(e.reduce((a,c)=>aV(c)&&(r(c.const)||o(c.const))?{...a,[c.const]:b}:a,{}))}(b.anyOf,c):a4(b)?u(b,"pattern")&&(r(b.pattern)||b.pattern instanceof RegExp)?bb(b.pattern.toString(),c):bb(bv,c):c6(b)?(h=b.pattern,i=c,a8(a7(h))?a(bn(h),i):bb(h,i)):_({})}(a,b),{},c):bw(a,b,c)}let bt=`^${aP}$`,bu=`^${aY}$`,bv="^.*$";function bw(a,b,c={}){return E("Record",[a,b],c)}function bx(a,b,c={}){return bs(a,b,c)}function by(a){return a===bv?a3():a===bt?aQ():a===bu?aZ():ba(a)}function bz(a){return v(a.patternProperties)[0]}function bA(a){return by(bz(a))}function bB(a){return a.patternProperties[bz(a)]}function bC(a){return C(a,"Record")}function bD(a){return z({"~kind":"Rest"},{type:"rest",items:a},{})}function bE(a){return C(a,"Rest")}function bF(a){return z({"~kind":"This"},{$ref:"#"},a)}function bG(a){return C(a,"This")}function bH(a){return z({"~kind":"Undefined"},{type:"undefined"},a)}function bI(a){return C(a,"Undefined")}function bJ(a){return z({"~kind":"Void"},{type:"void"},a)}function bK(a){return C(a,"Void")}function bL(){throw Error("Unreachable")}let bM=a=>{let[b,c]=a;return[...b,...c].reduce((a,b)=>j(b)&&2===b.length?[...a,b[0]]:[...a,b],[])};function bN(a,b){return b.reduce((a,b)=>1===b.length?ej(a,b[0]):0===b.length?I(a):bL(),a)}function bO(a,b){return 3===b.length?d6(a,b[0],b[1],b[2]):a}function bP(a,b){return 3===b.length?(()=>{let[c,d,e]=b,f=bP(d,e);return"&"===c?aq(f)?ap([a,...f.allOf]):ap([a,f]):"|"===c?a6(f)?a5([a,...f.anyOf]):a5([a,f]):void bL()})():a}function bQ(a){return a.reduce((a,b)=>u(b,bt)||u(b,bu)||u(b,bv)?[a[0],i(a[1],b)]:[i(a[0],b),a[1]],[{},{}])}function bR(a,b){return"remove"===a?function(a,b={}){return E("RemoveReadonly",[a],b)}(b):"add"===a?aD(b):b}function bS(a,b){return"remove"===a?function(a,b={}){return E("RemoveOptional",[a],b)}(b):"add"===a?X(b):b}function bT(a){return 2===a.length}function bU(a,b,c){return bT(a)?b(a[0],a[1]):c()}function bV(a,b){for(let e=0;e<a.length;e++){var c,d;let f=(c=a[e],0===(d=b).indexOf(c)?[c,d.slice(c.length)]:[]);if(bT(f))return f}return[]}function bW(a,b){return Array.from({length:b-a+1},(b,c)=>String.fromCharCode(a+c))}let bX=[...bW(97,122),...bW(65,90)],bY=bW(49,57),bZ=["0",...bY];function b$(a){let b=a.indexOf("*/");return -1===b?"":a.slice(b+2)}function b_(a){let b=a.indexOf("\n");return -1===b?"":a.slice(b)}function b0(a){let b=a.trimStart();return b.startsWith("/*")?b0(b$(b.slice(2))):b.startsWith("//")?b0(b_(b.slice(2))):b}function b1(a,b){return bU(bV([a],b),(a,b)=>[a,b],()=>["",b])}function b2(a,b,c,d=""){return bU(bV(a,c),(c,e)=>b.includes(c)?b2(a,b,e,d):b2(a,b,e,`${d}${c}`),()=>[d,c])}let b3=[...bZ,"_"];function b4(a){var b;return bU(bV(["0"],b=b0(a)),(a,b)=>[a,b],()=>bU(bV(bY,b),(a,b)=>bU(b2(b3,["_"],b),(b,c)=>[`${a}${b}`,c],()=>[]),()=>[]))}function b5(a){return bU(bU(b1("-",b0(a)),(a,b)=>bU(b4(b),(b,c)=>[`${a}${b}`,c],()=>[]),()=>[]),(a,b)=>bU(bV(["n"],b),(b,c)=>[`${a}`,c],()=>[]),()=>[])}function b6(a,b){return""===a?["",b]:a.startsWith("\n")?bV([a],function a(b){let c=b.replace(/^[ \t\r\f\v]+/,"");return c.startsWith("/*")?a(b$(c.slice(2))):c.startsWith("//")?a(b_(c.slice(2))):c}(b)):a.startsWith(" ")?bV([a],b):bV([a],b0(b))}let b7=[...bX,"_","$"],b8=[...b7,...bZ];function b9(a){return bU(bV(b7,b0(a)),(a,b)=>bU(function a(b,c=""){return bU(bV(b8,b),(b,d)=>a(d,`${c}${b}`),()=>[c,b])}(b),(b,c)=>[`${a}${b}`,c],()=>[]),()=>[])}let ca=[...bZ,"_"];function cb(a){return bU(b2(ca,["_"],a),(a,b)=>""===a?[]:[a,b],()=>[])}function cc(a){return bU(b1("-",b0(a)),(a,b)=>{var c;return bU(bT(bV(["."],c=b0(b)))?bU(bV(["."],c),(a,b)=>bU(cb(b),(b,c)=>[`0${a}${b}`,c],()=>[]),()=>[]):bU(b4(c),(a,b)=>bU(bV(["."],b),(b,c)=>bU(cb(c),(c,d)=>[`${a}${b}${c}`,d],()=>[`${a}`,c]),()=>[`${a}`,b]),()=>[]),(b,c)=>[`${a}${b}`,c],()=>[])},()=>[])}function cd(a,b,c=""){var d;return bU(""===(d=b)?[]:[d.slice(0,1),d.slice(1)],(d,e)=>!function a(b,c){return s(b,(b,d)=>!!c.startsWith(b)||a(d,c),()=>!1)}(a,b)?cd(a,e,`${c}${d}`):[c,b],()=>[])}function ce(a,b){return bU(bV(a,b0(b)),(a,b)=>{var c;return c=`${a}${b}`,bU(bV([a],b0(c)),(b,c)=>bU(cd(["\n",a],c),(b,c)=>bU(bV([a],c),(a,c)=>[`${b}`,c],()=>[]),()=>[]),()=>[])},()=>[])}let cf=(a,b,c=()=>[])=>2===a.length?b(a):c(),cg=a=>cf(cf(cf(cf(b9(a),([a,b])=>cf(b6("extends",b),([b,c])=>cf(cy(c),([c,d])=>cf(b6("=",d),([d,e])=>cf(cy(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[a1(a[0],a[2],a[4]),b]),([a,b])=>[a,b],()=>cf(cf(cf(b9(a),([a,b])=>cf(b6("extends",b),([b,c])=>cf(cy(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a1(a[0],a[2],a[2]),b]),([a,b])=>[a,b],()=>cf(cf(cf(b9(a),([a,b])=>cf(b6("=",b),([b,c])=>cf(cy(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a1(a[0],ab(),a[2]),b]),([a,b])=>[a,b],()=>cf(cf(b9(a),([a,b])=>[a1(a,ab(),ab()),b]),([a,b])=>[a,b],()=>[])))),([a,b])=>[a,b]),ch=(a,b=[])=>cf(cf(cg(a),([a,b])=>cf(b6(",",b),([b,c])=>[[a,b],c])),([a,c])=>ch(c,[...b,a]),()=>[b,a]),ci=a=>cf(cf(b6("<",a),([a,b])=>cf(cf(cf(ch(b),([a,b])=>cf(cf(cf(cg(b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],b],([a,b])=>[a,b],()=>[])),([b,c])=>[[a,b],c])),([a,b])=>[bM(a),b]),([b,c])=>cf(b6(">",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),cj=(a,b=[])=>cf(cf(cy(a),([a,b])=>cf(b6(",",b),([b,c])=>[[a,b],c])),([a,c])=>cj(c,[...b,a]),()=>[b,a]),ck=a=>cf(cf(cf(b6(";",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[null,b]),cl=a=>cf(b6("string",a),([a,b])=>[a3(),b]),cm=a=>cf(b6("number",a),([a,b])=>[aZ(),b]),cn=a=>cf(b6("integer",a),([a,b])=>[aQ(),b]),co=a=>cf(b6("symbol",a),([a,b])=>[a_(),b]),cp=a=>cf(cd(["${","`"],a),([a,b])=>[aT(a),b]),cq=a=>cf(cf(cf(cp(a),([a,b])=>cf(cf(cf(b6("${",b),([a,b])=>cf(cy(b),([b,c])=>cf(b6("}",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),([b,c])=>cf(cq(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cf(cf(cp(a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf(cf(cp(a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>[]))),([a,b])=>{var c;return[3===(c=a).length?[c[0],c[1],...c[2]]:[c[0]],b]}),cr=a=>cf(cf(b6("`",a),([a,b])=>cf(cq(b),([b,c])=>cf(b6("`",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),cs=(a,b=[])=>cf(cf(cf(b6("[",a),([a,b])=>cf(cy(b),([b,c])=>cf(b6("]",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cf(cf(b6("[",a),([a,b])=>cf(b6("]",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>[])),([a,c])=>cs(c,[...b,a]),()=>[b,a]),ct=a=>cf(cf(cf(cf(cf(b6("keyof",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[a.length>0,b]),([a,b])=>cf(cf(cf(cf(b6("(",b),([a,b])=>cf(cy(b),([b,c])=>cf(b6(")",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cf(cl(b),([a,b])=>[a,b],()=>cf(cm(b),([a,b])=>[a,b],()=>cf(cf(b6("boolean",b),([a,b])=>[aL(),b]),([a,b])=>[a,b],()=>cf(cf(b6("undefined",b),([a,b])=>[bH(),b]),([a,b])=>[a,b],()=>cf(cf(b6("null",b),([a,b])=>[aW(),b]),([a,b])=>[a,b],()=>cf(cn(b),([a,b])=>[a,b],()=>cf(cf(b6("bigint",b),([a,b])=>[aJ(),b]),([a,b])=>[a,b],()=>cf(cf(b6("unknown",b),([a,b])=>[ab(),b]),([a,b])=>[a,b],()=>cf(cf(b6("any",b),([a,b])=>[T(),b]),([a,b])=>[a,b],()=>cf(cf(b6("object",b),([a,b])=>[_({}),b]),([a,b])=>[a,b],()=>cf(cf(b6("never",b),([a,b])=>[V(),b]),([a,b])=>[a,b],()=>cf(co(b),([a,b])=>[a,b],()=>cf(cf(b6("void",b),([a,b])=>[bJ(),b]),([a,b])=>[a,b],()=>cf(cf(b6("this",b),([a,b])=>[bF(),b]),([a,b])=>[a,b],()=>cf(cf(b5(b),([a,b])=>[aT(BigInt(a)),b]),([a,b])=>[a,b],()=>cf(cf(cf(b6("true",b),([a,b])=>[a,b],()=>cf(b6("false",b),([a,b])=>[a,b],()=>[])),([a,b])=>[aT("true"===a),b]),([a,b])=>[a,b],()=>cf(cf(cc(b),([a,b])=>[aT(parseFloat(a)),b]),([a,b])=>[a,b],()=>cf(cf(ce(["'",'"'],b),([a,b])=>[aT(a),b]),([a,b])=>[a,b],()=>cf(cf(cr(b),([a,b])=>[c4(a),b]),([a,b])=>[a,b],()=>cf(cf(cf(cf(b6("if",b),([a,b])=>cf(cy(b),([b,c])=>cf(b6("then",c),([c,d])=>cf(cy(d),([d,e])=>cf(b6("else",e),([e,f])=>cf(cy(f),([f,g])=>[[a,b,c,d,e,f],g])))))),([a,b])=>[a,b],()=>cf(cf(b6("if",b),([a,b])=>cf(cy(b),([b,c])=>cf(b6("then",c),([c,d])=>cf(cy(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[a,b],()=>[])),([a,b])=>[6===a.length?ak(a[1],a[3],a[5]):ak(a[1],a[3],ab()),b]),([a,b])=>[a,b],()=>cf(cE(b),([a,b])=>[a,b],()=>cf(cI(b),([a,b])=>[a,b],()=>cf(cO(b),([a,b])=>[a,b],()=>cf(cN(b),([a,b])=>[a,b],()=>cf(cP(b),([a,b])=>[a,b],()=>cf(cf(cf(b9(b),([a,b])=>cf(cf(cf(b6("<",b),([a,b])=>cf(cf(cf(cj(b),([a,b])=>cf(cf(cf(cy(b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],b],([a,b])=>[a,b],()=>[])),([b,c])=>[[a,b],c])),([a,b])=>[bM(a),b]),([b,c])=>cf(b6(">",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),([b,c])=>[[a,b],c])),([a,b])=>{var c,d;return[(c=a[0],d=a[1],"Array"===c?I(d[0]):"Capitalize"===c?dS(d[0]):"ConstructorParameters"===c?d9(d[0]):"Evaluate"===c?function(a,b={}){return E("Evaluate",[a],b)}(d[0]):"Exclude"===c?ec(d[0],d[1]):"Extract"===c?ef(d[0],d[1]):"Index"===c?ej(d[0],d[1]):"InstanceType"===c?ey(d[0]):"Lowercase"===c?dU(d[0]):"NonNullable"===c?eI(d[0]):"Omit"===c?eL(d[0],d[1]):"Parameters"===c?eP(d[0]):"Partial"===c?eS(d[0]):"Pick"===c?eV(d[0],d[1]):"Readonly"===c?eY(d[0]):"KeyOf"===c?eB(d[0]):"Record"===c?bw(d[0],d[1]):"Required"===c?e0(d[0]):"ReturnType"===c?e3(d[0]):"Uncapitalize"===c?dW(d[0]):"Uppercase"===c?dY(d[0]):dO(P(c),d)),b]}),([a,b])=>[a,b],()=>cf(cQ(b),([a,b])=>[a,b],()=>[])))))))))))))))))))))))))))),([a,b])=>[j(a)&&3===a.length?a[1]:a,b]),([b,c])=>cf(cf(cs(c),([a,b])=>[a.reduce((a,b)=>3===b.length?[...a,[b[1]]]:[...a,[]],[]),b]),([c,d])=>cf(cf(cf(cf(b6("extends",d),([a,b])=>cf(cy(b),([b,c])=>cf(b6("?",c),([c,d])=>cf(cy(d),([d,e])=>cf(b6(":",e),([e,f])=>cf(cy(f),([f,g])=>[[a,b,c,d,e,f],g])))))),([a,b])=>[a,b],()=>cf([[],d],([a,b])=>[a,b],()=>[])),([a,b])=>[6===a.length?[a[1],a[3],a[5]]:[],b]),([d,e])=>cf(cf(cf(cf(b6("with",e),([a,b])=>cf(cT(b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf([[],e],([a,b])=>[a,b],()=>[])),([a,b])=>[2===a.length?a[1]:[],b]),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[function(a){let[b,c,d,e,f]=a;var g=b?bO(eB(bN(c,d)),e):bO(bN(c,d),e);return j(f)&&0===f.length?g:e6(g,f)}(a),b]),cu=a=>cf(cf(cf(b6("&",a),([a,b])=>cf(ct(b),([b,c])=>cf(cu(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cf([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[a,b]),cv=a=>cf(cf(ct(a),([a,b])=>cf(cu(b),([b,c])=>[[a,b],c])),([a,b])=>[function(a){let[b,c]=a;return bP(b,c)}(a),b]),cw=a=>cf(cf(cf(b6("|",a),([a,b])=>cf(cv(b),([b,c])=>cf(cw(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cf([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[a,b]),cx=a=>cf(cf(cv(a),([a,b])=>cf(cw(b),([b,c])=>[[a,b],c])),([a,b])=>[function(a){let[b,c]=a;return bP(b,c)}(a),b]),cy=a=>cf(cf(cf(cf(cf(b6("infer",a),([a,b])=>cf(b9(b),([b,c])=>cf(b6("extends",c),([c,d])=>cf(cx(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[a,b],()=>cf(cf(b6("infer",a),([a,b])=>cf(b9(b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>[])),([a,b])=>[4===a.length?ai(a[1],a[3]):2===a.length?ai(a[1],ab()):bL(),b]),([a,b])=>[a,b],()=>cf(cf(cf(b6("|",a),([a,b])=>cf(cx(b),([b,c])=>[[a,b],c])),([a,b])=>[a[1],b]),([a,b])=>[a,b],()=>cf(cf(cf(b6("readonly",a),([a,b])=>cf(cx(b),([b,c])=>[[a,b],c])),([a,b])=>[function(a,b={}){return E("AddImmutable",[a],b)}(a[1]),b]),([a,b])=>[a,b],()=>cf(cx(a),([a,b])=>[a,b],()=>[])))),([a,b])=>[a,b]),cz=a=>cf(cf(cf(cc(a),([a,b])=>[`${a}`,b]),([a,b])=>[a,b],()=>cf(cf(b9(a),([a,b])=>[a,b]),([a,b])=>[a,b],()=>cf(cf(ce(["'",'"'],a),([a,b])=>[a,b]),([a,b])=>[a,b],()=>cf(cf(cf(b6("[",a),([a,b])=>cf(b9(b),([b,c])=>cf(b6(":",c),([c,d])=>cf(cf(cn(d),([a,b])=>[a,b],()=>cf(cm(d),([a,b])=>[a,b],()=>cf(cl(d),([a,b])=>[a,b],()=>cf(co(d),([a,b])=>[a,b],()=>[])))),([d,e])=>cf(b6("]",e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[aR(a[3])?bt:a$(a[3])?bu:a0(a[3])||a4(a[3])?bv:bL(),b]),([a,b])=>[a,b],()=>[])))),([a,b])=>[a,b]),cA=a=>cf(cf(cf(cf(cf(b6("readonly",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[a.length>0,b]),([a,b])=>cf(cz(b),([b,c])=>cf(cf(cf(cf(b6("?",c),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],c],([a,b])=>[a,b],()=>[])),([a,b])=>[a.length>0,b]),([c,d])=>cf(b6(":",d),([d,e])=>cf(cy(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[function(a){let[b,c,d,e,f]=a;return{[c]:b&&d?aD(X(f)):b&&!d?aD(f):!b&&d?X(f):f}}(a),b]),cB=a=>cf(cf(cf(b6(",",a),([a,b])=>cf(b6("\n",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf(cf(b6(";",a),([a,b])=>cf(b6("\n",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf(cf(b6(",",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf(cf(b6(";",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf(cf(b6("\n",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>[]))))),([a,b])=>[a,b]),cC=(a,b=[])=>cf(cf(cA(a),([a,b])=>cf(cB(b),([b,c])=>[[a,b],c])),([a,c])=>cC(c,[...b,a]),()=>[b,a]),cD=a=>cf(cf(b6("{",a),([a,b])=>cf(cf(cf(cC(b),([a,b])=>cf(cf(cf(cA(b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],b],([a,b])=>[a,b],()=>[])),([b,c])=>[[a,b],c])),([a,b])=>[bM(a),b]),([b,c])=>cf(b6("}",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[bQ(a[1]),b]),cE=a=>cf(cD(a),([a,b])=>[function(a){let[b,c]=a;return _(b,0===v(c).length?{}:{patternProperties:c})}(a),b]),cF=a=>cf(cf(cf(cf(cf(b9(a),([a,b])=>cf(b6("?",b),([b,c])=>cf(b6(":",c),([c,d])=>cf(b6("readonly",d),([d,e])=>cf(cy(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[a,b],()=>cf(cf(b9(a),([a,b])=>cf(b6(":",b),([b,c])=>cf(b6("readonly",c),([c,d])=>cf(cy(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[a,b],()=>cf(cf(b9(a),([a,b])=>cf(b6("?",b),([b,c])=>cf(b6(":",c),([c,d])=>cf(cy(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[a,b],()=>cf(cf(b9(a),([a,b])=>cf(b6(":",b),([b,c])=>cf(cy(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>[])))),([a,b])=>[5===a.length?aD(X(a[4])):3===a.length?a[2]:4===a.length?"readonly"===a[2]?aD(a[3]):X(a[3]):bL(),b]),([a,b])=>[a,b],()=>cf(cf(cf(b6("readonly",a),([a,b])=>cf(cy(b),([b,c])=>cf(b6("?",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[aD(X(a[1])),b]),([a,b])=>[a,b],()=>cf(cf(cf(b6("readonly",a),([a,b])=>cf(cy(b),([b,c])=>[[a,b],c])),([a,b])=>[aD(a[1]),b]),([a,b])=>[a,b],()=>cf(cf(cf(cy(a),([a,b])=>cf(b6("?",b),([b,c])=>[[a,b],c])),([a,b])=>[X(a[0]),b]),([a,b])=>[a,b],()=>cf(cy(a),([a,b])=>[a,b],()=>[]))))),([a,b])=>[a,b]),cG=a=>cf(cf(cf(b6("...",a),([a,b])=>cf(cF(b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf(cf(cF(a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>[])),([a,b])=>{var c;return[2===(c=a).length?bD(c[1]):1===c.length?c[0]:bL(),b]}),cH=(a,b=[])=>cf(cf(cG(a),([a,b])=>cf(b6(",",b),([b,c])=>[[a,b],c])),([a,c])=>cH(c,[...b,a]),()=>[b,a]),cI=a=>cf(cf(b6("[",a),([a,b])=>cf(cf(cf(cH(b),([a,b])=>cf(cf(cf(cG(b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],b],([a,b])=>[a,b],()=>[])),([b,c])=>[[a,b],c])),([a,b])=>[bM(a),b]),([b,c])=>cf(b6("]",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[bc(a[1]),b]),cJ=a=>cf(cf(cf(cf(b9(a),([a,b])=>cf(b6("?",b),([b,c])=>cf(b6(":",c),([c,d])=>cf(b6("readonly",d),([d,e])=>cf(cy(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[aD(X(a[4])),b]),([a,b])=>[a,b],()=>cf(cf(cf(b9(a),([a,b])=>cf(b6(":",b),([b,c])=>cf(b6("readonly",c),([c,d])=>cf(cy(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[aD(a[3]),b]),([a,b])=>[a,b],()=>cf(cf(cf(b9(a),([a,b])=>cf(b6("?",b),([b,c])=>cf(b6(":",c),([c,d])=>cf(cy(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[X(a[3]),b]),([a,b])=>[a,b],()=>cf(cf(cf(b9(a),([a,b])=>cf(b6(":",b),([b,c])=>cf(cy(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[2],b]),([a,b])=>[a,b],()=>[])))),([a,b])=>[a,b]),cK=a=>cf(cf(cf(b6("...",a),([a,b])=>cf(cJ(b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf(cf(cJ(a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>[])),([a,b])=>{var c;return[2===(c=a).length?bD(c[1]):1===c.length?c[0]:bL(),b]}),cL=(a,b=[])=>cf(cf(cK(a),([a,b])=>cf(b6(",",b),([b,c])=>[[a,b],c])),([a,c])=>cL(c,[...b,a]),()=>[b,a]),cM=a=>cf(cf(cL(a),([a,b])=>cf(cf(cf(cK(b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],b],([a,b])=>[a,b],()=>[])),([b,c])=>[[a,b],c])),([a,b])=>[bM(a),b]),cN=a=>cf(cf(b6("(",a),([a,b])=>cf(cM(b),([b,c])=>cf(b6(")",c),([c,d])=>cf(b6("=>",d),([d,e])=>cf(cy(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[N(a[1],a[4]),b]),cO=a=>cf(cf(b6("new",a),([a,b])=>cf(b6("(",b),([b,c])=>cf(cM(c),([c,d])=>cf(b6(")",d),([d,e])=>cf(b6("=>",e),([e,f])=>cf(cy(f),([f,g])=>[[a,b,c,d,e,f],g])))))),([a,b])=>[L(a[2],a[5]),b]),cP=a=>cf(cf(b6("{",a),([a,b])=>cf(cf(cf(cf(b6("+",b),([a,b])=>cf(b6("readonly",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf(cf(b6("-",b),([a,b])=>cf(b6("readonly",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf(cf(b6("readonly",b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],b],([a,b])=>[a,b],()=>[])))),([a,b])=>[2===a.length&&"-"===a[0]?"remove":2===a.length&&"+"===a[0]||1===a.length?"add":"none",b]),([b,c])=>cf(b6("[",c),([c,d])=>cf(b9(d),([d,e])=>cf(b6("in",e),([e,f])=>cf(cy(f),([f,g])=>cf(cf(cf(cf(b6("as",g),([a,b])=>cf(cy(b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf([[],g],([a,b])=>[a,b],()=>[])),([a,b])=>[2===a.length?[a[1]]:[],b]),([g,h])=>cf(b6("]",h),([h,i])=>cf(cf(cf(cf(b6("+",i),([a,b])=>cf(b6("?",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf(cf(b6("-",i),([a,b])=>cf(b6("?",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf(cf(b6("?",i),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],i],([a,b])=>[a,b],()=>[])))),([a,b])=>[2===a.length&&"-"===a[0]?"remove":2===a.length&&"+"===a[0]||1===a.length?"add":"none",b]),([i,j])=>cf(b6(":",j),([j,k])=>cf(cy(k),([k,l])=>cf(ck(l),([l,m])=>cf(b6("}",m),([m,n])=>[[a,b,c,d,e,f,g,h,i,j,k,l,m],n]))))))))))))),([a,b])=>{var c;return[j((c=a)[6])&&1===c[6].length?eE(aN(c[3]),c[5],c[6][0],bR(c[1],bS(c[8],c[10]))):eE(aN(c[3]),c[5],P(c[3]),bR(c[1],bS(c[8],c[10]))),b]}),cQ=a=>cf(b9(a),([a,b])=>[P(a),b]),cR=a=>cf(cf(cz(a),([a,b])=>cf(b6(":",b),([b,c])=>cf(cV(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[{[a[0]]:a[2]},b]),cS=(a,b=[])=>cf(cf(cR(a),([a,b])=>cf(cB(b),([b,c])=>[[a,b],c])),([a,c])=>cS(c,[...b,a]),()=>[b,a]),cT=a=>cf(cf(b6("{",a),([a,b])=>cf(cf(cf(cS(b),([a,b])=>cf(cf(cf(cR(b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],b],([a,b])=>[a,b],()=>[])),([b,c])=>[[a,b],c])),([a,b])=>[bM(a),b]),([b,c])=>cf(b6("}",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1].reduce((a,b)=>i(a,b),{}),b]),cU=(a,b=[])=>cf(cf(cV(a),([a,b])=>cf(b6(",",b),([b,c])=>[[a,b],c])),([a,c])=>cU(c,[...b,a]),()=>[b,a]),cV=a=>cf(cf(cf(b5(a),([a,b])=>[BigInt(a),b]),([a,b])=>[a,b],()=>cf(cf(cc(a),([a,b])=>[parseFloat(a),b]),([a,b])=>[a,b],()=>cf(cf(cf(b6("true",a),([a,b])=>[a,b],()=>cf(b6("false",a),([a,b])=>[a,b],()=>[])),([a,b])=>["true"===a,b]),([a,b])=>[a,b],()=>cf(cf(ce(['"',"'"],a),([a,b])=>[a,b]),([a,b])=>[a,b],()=>cf(cf(b6("null",a),([a,b])=>[null,b]),([a,b])=>[a,b],()=>cf(cf(b6("undefined",a),([a,b])=>[void 0,b]),([a,b])=>[a,b],()=>cf(cT(a),([a,b])=>[a,b],()=>cf(cf(cf(b6("[",a),([a,b])=>cf(cf(cf(cU(b),([a,b])=>cf(cf(cf(cV(b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],b],([a,b])=>[a,b],()=>[])),([b,c])=>[[a,b],c])),([a,b])=>[bM(a),b]),([b,c])=>cf(b6("]",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),([a,b])=>[a,b],()=>[])))))))),([a,b])=>[a,b]),cW=a=>cf(cf(cf(cX(a),([a,b])=>cf(b6("|",b),([b,c])=>cf(cW(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cf(cf(cX(a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],a],([a,b])=>[a,b],()=>[]))),([a,b])=>[3===a.length?[...a[0],...a[2]]:1===a.length?[...a[0]]:[],b]),cX=a=>{let b;return cf(cf(cf(cf(cf(b6("-?(?:0|[1-9][0-9]*)n",b=a),([a,b])=>[aJ(),b]),([a,b])=>[a,b],()=>cf(cf(b6(".*",b),([a,b])=>[a3(),b]),([a,b])=>[a,b],()=>cf(cf(b6("-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?",b),([a,b])=>[aZ(),b]),([a,b])=>[a,b],()=>cf(cf(b6("-?(?:0|[1-9][0-9]*)",b),([a,b])=>[aQ(),b]),([a,b])=>[a,b],()=>cf(cf(b6("(?!)",b),([a,b])=>[V(),b]),([a,b])=>[a,b],()=>cf(cf(cf(b6("(",b),([a,b])=>cf(cY(b),([b,c])=>cf(b6(")",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a5(a[1]),b]),([a,b])=>[a,b],()=>cf(cf(bU(cd(["-?(?:0|[1-9][0-9]*)n",".*","-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?","-?(?:0|[1-9][0-9]*)","(?!)","(",")","$","|"],b),(a,b)=>""===a?[]:[a,b],()=>[]),([a,b])=>[aT(a),b]),([a,b])=>[a,b],()=>[]))))))),([a,b])=>[a,b]),([a,b])=>cf(cY(b),([b,c])=>[[a,b],c])),([a,b])=>[[a[0],...a[1]],b])},cY=a=>cf(cf(cW(a),([a,b])=>[a,b],()=>cf(cX(a),([a,b])=>[a,b],()=>[])),([a,b])=>[a,b]),cZ=a=>cf(cf(b6("^",a),([a,b])=>cf(cY(b),([b,c])=>cf(b6("$",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),c$=(a,b=[])=>cf(cf(cy(a),([a,b])=>cf(b6(",",b),([b,c])=>[[a,b],c])),([a,c])=>c$(c,[...b,a]),()=>[b,a]),c_=a=>cf(cf(cf(b6("extends",a),([a,b])=>cf(cf(cf(c$(b),([a,b])=>cf(cf(cf(cy(b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],b],([a,b])=>[a,b],()=>[])),([b,c])=>[[a,b],c])),([a,b])=>[bM(a),b]),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>{var c;return[2===(c=a).length?c[1]:[],b]}),c0=(a,b=[])=>cf(cf(c1(a),([a,b])=>cf(cf(cf(cf(b6(";",b),([a,b])=>cf(b6("\n",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cf(cf(b6(";",b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf(cf(b6("\n",b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>[]))),([a,b])=>[a,b]),([b,c])=>[[a,b],c])),([a,c])=>c0(c,[...b,a]),()=>[b,a]),c1=a=>cf(cf(cf(cf(cf(b6("export",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[null,b]),([a,b])=>cf(cf(cf(cf(b6("interface",b),([a,b])=>cf(b9(b),([b,c])=>cf(ci(c),([c,d])=>cf(c_(d),([d,e])=>cf(cD(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[function(a){let b=a[2],c=a[3],[d,e]=a[4],f=0===v(e).length?{}:{patternProperties:e};return{[a[1]]:R(b,du(c,d,f))}}(a),b]),([a,b])=>[a,b],()=>cf(cf(cf(b6("interface",b),([a,b])=>cf(b9(b),([b,c])=>cf(c_(c),([c,d])=>cf(cD(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[function(a){let b=a[2],[c,d]=a[3],e=0===v(d).length?{}:{patternProperties:d};return{[a[1]]:du(b,c,e)}}(a),b]),([a,b])=>[a,b],()=>cf(cf(cf(b6("type",b),([a,b])=>cf(b9(b),([b,c])=>cf(ci(c),([c,d])=>cf(b6("=",d),([d,e])=>cf(cy(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[{[a[1]]:R(a[2],a[4])},b]),([a,b])=>[a,b],()=>cf(cf(cf(b6("type",b),([a,b])=>cf(b9(b),([b,c])=>cf(b6("=",c),([c,d])=>cf(cy(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[{[a[1]]:a[3]},b]),([a,b])=>[a,b],()=>[])))),([b,c])=>cf(ck(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]);function c2(a,b){return s(a,(a,c)=>(function a(b,c,d){var e,f,g,h,i;return ao(b)?(e=b.enum,a(bl(e),c,d)):aR(b)?c2(c,`${d}${aP}`):aV(b)?(f=b.const,c2(c,`${d}${f}`)):aK(b)?c2(c,`${d}-?(?:0|[1-9][0-9]*)n`):aM(b)?a(a5([aT("false"),aT("true")]),c,d):a$(b)?c2(c,`${d}${aY}`):a4(b)?c2(c,`${d}.*`):c6(b)?(g=b.pattern,c2(c,`${d}${g.slice(1,g.length-1)}`)):q(i=b)&&u(i,"action")&&"TemplateLiteral"===i.action?(h=b.parameters[0],a(c3(h,{}),c,d)):a6(b)?function b(c,d,e,f=[]){return s(c,(c,g)=>b(g,d,e,[...f,a(c,[],"")]),()=>c2(d,`${e}(${f.join("|")})`))}(b.anyOf,c,d):"(?!)"})(a,c,b),()=>b)}function c3(a,b){let c;return fa(a)?B(a9((c=c2(a,""),`^${c}$`)),{},b):c4(a,b)}function c4(a,b={}){return E("TemplateLiteral",[a],b)}function c5(a,b={}){var c;let d;return B(r(a)?c3((c=a,2===(d=cr(`\`${c}\``)).length?d[0]:au()),{}):c3(a,{}),{},b)}function c6(a){return C(a,"TemplateLiteral")}function c7(a){return z({"~kind":"ExtendsUnion"},{inferred:a})}function c8(a){return q(a)&&u(a,"~kind")&&u(a,"inferred")&&"ExtendsUnion"===a["~kind"]&&q(a.inferred)}function c9(a){return z({"~kind":"ExtendsTrue"},{inferred:a})}function da(a){return q(a)&&u(a,"~kind")&&u(a,"inferred")&&"ExtendsTrue"===a["~kind"]&&q(a.inferred)}function db(){return z({"~kind":"ExtendsFalse"},{})}function dc(a){return q(a)&&u(a,"~kind")&&"ExtendsFalse"===a["~kind"]}function dd(a){return c8(a)||da(a)}function de(a,b,c){return dd(a)?b(a.inferred):c()}function df(a,b,c){var d,e,f,g;return U(c)?c9(a):al(c)?(d=c.if,e=c.then,f=c.else,de(ds(a,b,d),a=>de(ds(a,b,e),a=>c9(a),()=>db()),()=>de(ds(a,b,f),a=>c9(a),()=>db()))):ao(c)?ds(a,b,bl(c.enum)):aj(c)?(g=c.name,de(ds(a,b,c.extends),c=>c9(i(i(a,c),{[g]:b})),()=>db())):aq(c)?function a(b,c,d){return s(d,(d,e)=>de(ds(b,c,d),b=>a(b,c,e),()=>db()),()=>c9(b))}(a,b,c.allOf):c6(c)?ds(a,b,bn(c.pattern)):a6(c)?function a(b,c,d){return s(d,(d,e)=>de(ds(b,c,d),a=>c9(a),()=>a(b,c,e)),()=>db())}(a,b,c.anyOf):ac(c)?c9(a):db()}function dg(a,b,c){return s(b,(b,d)=>s(c,(c,e)=>{let f,g,h,i;return f=aj(c)?b:c,g=aj(c)?c:b,h=$(b),i=$(c),!h&&i?db():de(ds(a,f,g),a=>dg(a,d,e),()=>db())},()=>$(b)?c9(a):db()),()=>c9(a))}function dh(a,b,c){return bK(c)?c9(a):ds(a,b,c)}function di(a,b,c){return b===c?c9(a):db()}function dj(a,b){return z({"~kind":"Inferrable"},{name:a,type:b},{})}function dk(a){return q(a)&&u(a,"~kind")&&u(a,"name")&&u(a,"type")&&"Inferrable"===a["~kind"]&&r(a.name)&&q(a.type)}function dl(a){return bE(a)?aj(a.items)?J(a.items.extends)?dj(a.items.name,a.items.extends.items):ac(a.items.extends)?dj(a.items.name,a.items.extends):void 0:au():void 0}function dm(a){return aj(a)?dj(a.name,a.extends):void 0}function dn(a,b,c=[]){return s(a,(a,d)=>de(ds({},a,b),()=>dn(d,b,[...c,a]),()=>void 0),()=>c)}function dp(a,b,c,d){let e=dn(c,d);return j(e)?c9(i(a,{[b]:a5(e)})):db()}function dq(a,b){return b?[...a].reverse():a}function dr(a,b,c){return s(b,(b,d)=>de(function a(b,c,d){return s(d,(d,e)=>de(ds(b,c,d),a=>c9(a),()=>a(b,c,e)),()=>db())}(a,b,c),a=>dr(a,d,c),()=>db()),()=>c9(a))}function ds(a,b,c){var d,e,f,g,h,m,n,p,t,x,y,z,A,B,C,D,E,F,G,H,I,K,L,N;let P,Q,R,S,T,V,X,Y,Z,ab;return U(b)?aj(c)?df(a,b,c):U(c)||ac(c)?c9(a):c7(a):J(b)?(d=b.items,J(c)?(P=aC(b),Q=aC(c),P&&Q||!P&&Q||!P||Q)?ds(a,d,c.items):db():df(a,b,c)):aK(b)?aK(c)?c9(a):df(a,b,c):aM(b)?aM(c)?c9(a):df(a,b,c):M(b)?(e=b.parameters,f=b.instanceType,U(c)||ac(c)?c9(a):M(c)?de(dg(a,e,c.parameters),a=>dh(a,f,c.instanceType),()=>db()):db()):al(b)?(g=b.if,h=b.then,m=b.else,de(ds(a,g,c),()=>ds(a,h,c),()=>ds(a,m,c))):ao(b)?(n=b.enum,ds(a,bl(n),c)):O(b)?(p=b.parameters,t=b.returnType,U(c)||ac(c)?c9(a):O(c)?de(dg(a,p,c.parameters),a=>dh(a,t,c.returnType),()=>db()):db()):aR(b)?aR(c)||a$(c)?c9(a):df(a,b,c):aq(b)?(x=b.allOf,ds(a,bm(x),c)):aV(b)?k(b.const)?(y=b.const,aV(c)?di(a,y,c.const):aK(c)?c9(a):df(a,aT(y),c)):l(b.const)?(z=b.const,aV(c)?di(a,z,c.const):aM(c)?c9(a):df(a,aT(z),c)):o(b.const)?(A=b.const,aV(c)?di(a,A,c.const):a$(c)?c9(a):df(a,aT(A),c)):r(b.const)?(B=b.const,aV(c)?di(a,B,c.const):a4(c)?c9(a):df(a,aT(B),c)):au():W(b)?aj(c)?df(a,b,c):c9(a):aX(b)?aX(c)?c9(a):df(a,b,c):a$(b)?a$(c)?c9(a):df(a,b,c):aa(b)?(C=b.properties,bC(c)?(bz(c),D=bB(c),R=v(C),function a(b,c,d,e){return s(c,(c,f)=>de(ds({},b[c],d),c=>a(b,f,d,v(c).reduce((a,b)=>({...a,[b]:u(e,b)?a6(a[b])?a5([...a[b].anyOf,c[b]]):a5([e[b],c[b]]):c[b]}),e)),()=>db()),()=>c9(e))}(C,R,D,a)):aa(c)?(S=function(a,b,c){var d;let e={};for(let d of v(c))e[d]=d in b?function(a,b,c){return aj(c)&&W(c.extends)?db():de(ds(a,b,c),a=>$(b)?$(c)?c9(a):db():c9(a),()=>db())}({},b[d],c[d]):$(c[d])?aj(c[d])?c9(i(a,{[c[d].name]:c[d].extends})):c9(a):db();let f=w(e).every(a=>dd(a)),g=f?(d=v(e),d.reduce((a,b)=>b in e&&dd(e[b])?{...a,...e[b].inferred}:au(),{})):{};return f?c9(g):db()}(a,C,c.properties),dd(S)?c9(i(a,S.inferred)):db()):df(a,_(C),c)):bC(b)?(E=bz(b),F=bB(b),bC(c)?(by(E),by(bz(c)),ds(a,F,bB(c))):aa(c)?(L=a,0===v(c.properties).length?c9(L):db()):U(c)||ac(c)?c9(a):db()):a4(b)?a4(c)?c9(a):df(a,b,c):a0(b)?a0(c)?c9(a):df(a,b,c):c6(b)?(G=b.pattern,ds(a,bn(G),c)):bd(b)?(H=b.items,T=fc(a,e9([],[]),H),bd(c)?(I=c.items,ab=q(Z=(N=V=fc(a,e9([],[]),I)).length>0?N[0]:void 0)?dl(Z):void 0,function a(b,c,d,e){return s(e,(e,f)=>{var g;let h,k;return dk(h=dl(e))?(g=h.name,j(k=dn(dq(d,c),h.type))?c9(i(b,{[g]:bc(k)})):db()):s(d,(d,g)=>de(ds(b,d,e),b=>a(b,c,g,f),()=>db()),()=>db())},()=>0===d.length?c9(b):db())}(a,X=q(ab),dq(T,X),dq(V,X))):J(c)?function a(b,c,d){let e=dm(d);return dk(e)?dp(b,e.name,c,e.type):s(c,(c,e)=>de(ds(b,c,d),b=>a(b,e,d),()=>db()),()=>c9(b))}(a,T,c.items):df(a,bc(T),c)):bI(b)?bK(c)||bI(c)?c9(a):df(a,b,c):a6(b)?(K=b.anyOf,dk(Y=dm(c))?dp(a,Y.name,K,Y.type):a6(c)?dr(a,K,c.anyOf):dr(a,K,[c])):ac(b)?aj(c)?df(a,b,c):U(c)||ac(c)?c9(a):db():bK(b)?bK(c)?c9(a):df(a,b,c):db()}function dt(a,b,c){return fa(a)?B(bm([...a,_(b)]),{},c):du(a,b,c)}function du(a,b,c={}){return E("Interface",[a,b],c)}function dv(a){return q(a)&&u(a,"action")&&"Interface"===a.action}function dw(a,b,c={}){return dt(a,b,c)}function dx(a,b,c){return s(c,(c,d)=>!!dy(a,b,c)||dx(a,b,d),()=>!1)}function dy(a,b,c){var d;return Q(c)?(d=c.$ref,!!a.includes(d)||dy([...a,d],b,b[d])):J(c)?dy(a,b,c.items):M(c)?dx(a,b,[...c.parameters,c.instanceType]):O(c)?dx(a,b,[...c.parameters,c.returnType]):dv(c)?dx(a,b,w(c.parameters[1])):aq(c)?dx(a,b,c.allOf):aa(c)?dx(a,b,w(c.properties)):a6(c)?dx(a,b,c.anyOf):bd(c)?dx(a,b,c.items):!!bC(c)&&dy(a,b,bB(c))}function dz(a,b,c){return b.reduce((b,c)=>dA(a,c,b),c)}function dA(a,b,c){var d,e,f,g,h,i,j;return Q(b)?(d=b.$ref,c.includes(d)?c:d in a?dA(a,a[d],[...c,d]):au()):J(b)?dA(a,b.items,c):M(b)?dz(a,[...b.parameters,b.instanceType],c):O(b)?dz(a,[...b.parameters,b.returnType],c):dv(b)?(e=a,f=b.parameters[1],g=c,dz(e,w(f),g)):aq(b)?dz(a,b.allOf,c):aa(b)?(h=a,i=b.properties,j=c,dz(h,w(i),j)):a6(b)?dz(a,b.anyOf,c):bd(b)?dz(a,b.items,c):bC(b)?dA(a,bB(b),c):c}function dB(a){return a.reduce((a,b)=>[...a,dC(b)],[])}function dC(a){var b;return Q(a)?(a.$ref,T()):J(a)?I(dC(a.items),K(a)):M(a)?L(dB(a.parameters),dC(a.instanceType)):O(a)?N(dB(a.parameters),dC(a.returnType)):aq(a)?ap(dB(a.allOf)):aa(a)?_(v(b=a.properties).reduce((a,c)=>({...a,[c]:dC(b[c])}),{})):bC(a)?bx(bA(a),dC(bB(a))):a6(a)?a5(dB(a.anyOf)):bd(a)?bc(dB(a.items)):a}function dD(a,b){return function a(b,c){return c in b?Q(b[c])?a(b,b[c].$ref):b[c]:V()}(a,b)}function dE(a){var b,c;return ae(a)?(b=a.$defs,(c=a.$ref)in b?dC(b[c]):ab()):ag(a)?ab():a}function dF(a,b,c){return ds(a,dE(b),dE(c))}let dG="equal",dH="left-inside",dI="right-inside";function dJ(a,b){let c=[ac(a)?db():dF({},a,b),ac(a)?c9({}):dF({},b,a)];return dd(c[0])&&dd(c[1])?dG:dd(c[0])&&dc(c[1])?dH:dc(c[0])&&dd(c[1])?dI:"disjoint"}function dK(a){return br(a.reduce((a,b)=>{var c;let d;return aa(b)?[...a,b]:W(b)?a:U(d=bp(b))?[d]:(c=d,!1!==a.some(a=>{let b=dJ(c,a);return b===dH||b===dG}))?a:[...a.filter(a=>dJ(d,a)!==dI),d]},[]))}function dL(a,b){return b.reduce((b,c)=>[...b,...a.reduce((a,b)=>[...a,[...b,c]],[])],[])}function dM(a,b,c,d,e){let f=fe(a,b,e);return!function(a,b,c){if(!(aj(b)||dQ(b)||dd(dF({},b,c))))throw Error(`Argument for parameter ${a} does not satisfy constraint`,{cause:{parameter:a,expect:c,actual:b}})}(c,f,d),i(a,{[c]:f})}function dN(a,b,c,d){var e;let f=fd(a,b,d),g=function a(b,c,d,e){var f;return S(d)?[c,R(d.parameters,d.expression)]:Q(d)?(f=d.$ref,f in b?a(b,f,b[f],e):["(not-resolvable)",V()]):["(not-generic)",V()]}(a,"(anonymous)",c,d),h=g[0],i=g[1];return S(i)?((e=b).callstack.length>0?e.callstack[e.callstack.length-1]:"")===h?dO(P(h),f):function(a,b,c,d,e,f){let g=function(a,b,c){let d=function a(b,c=[]){return F(b)&&"Conditional"===b.action?Q(b.parameters[0])?a(b.parameters[2],a(b.parameters[3],[...c,b.parameters[0].$ref])):a(b.parameters[2],a(b.parameters[3],c)):F(b)&&"Mapped"===b.action&&F(b.parameters[1])&&"KeyOf"===b.parameters[1].action&&Q(b.parameters[1].parameters[0])?[...c,b.parameters[1].parameters[0].$ref]:c}(c),e=function a(b,c,d=[]){return s(b,(b,e)=>s(c,(c,f)=>a(e,f,[...d,[c,b]]),()=>d),()=>d)}(b,a.reduce((a,b)=>[...a,d.includes(b.name)],[]));return F(c)&&"Conditional"===c.action||F(c)&&"Mapped"===c.action?e.reduce((a,b)=>{var c;return!0===b[0]?dL(a,a6(c=b[1])?[...c.anyOf]:[c]):dL(a,[b[1]])},[[]]):[b]}(d,f,e),h=g.reduce((f,g)=>{var h,i,j,k,l;let m,n;return[...f,(h=a,i=b,j=c,k=d,l=e,m=function a(b,c,d,e){return s(d,(d,f)=>{let g,h;return g=fe(b,c,d.extends),h=fe(b,c,d.equals),s(e,(e,h)=>a(dM(b,c,d.name,g,e),c,f,h),()=>a(dM(b,c,d.name,g,h),c,f,[]))},()=>b)}(h,i,k,g),n=fe(m,e9([...i.callstack,j.$ref],i.visited),l),fe(m,e9([],[]),n))]},[]);return 1===h.length?h[0]:bo(h)}(a,b,P(h),i.parameters,i.expression,f):dO(c,f)}function dO(a,b){return z({"~kind":"Call"},{type:"call",target:a,arguments:b},{})}function dP(a,b){return dN({},e9([],[]),a,b)}function dQ(a){return C(a,"Call")}function dR(a,b){var c,d;return aV(b)?(c=a,r(d=b.const)?aT(c(d)):aT(d)):c6(b)?dR(a,bn(b.pattern)):a6(b)?a5(b.anyOf.map(b=>dR(a,b))):b}function dS(a,b={}){return E("Capitalize",[a],b)}function dT(a,b={}){return d2(a,b)}function dU(a,b={}){return E("Lowercase",[a],b)}function dV(a,b={}){return d3(a,b)}function dW(a,b={}){return E("Uncapitalize",[a],b)}function dX(a,b={}){return d4(a,b)}function dY(a,b={}){return E("Uppercase",[a],b)}function dZ(a,b={}){return d5(a,b)}let d$=a=>a[0].toUpperCase()+a.slice(1),d_=a=>a.toLowerCase(),d0=a=>a[0].toLowerCase()+a.slice(1),d1=a=>a.toUpperCase();function d2(a,b){return fa([a])?B(dR(d$,a),{},b):dS(a,b)}function d3(a,b){return fa([a])?B(dR(d_,a),{},b):dU(a,b)}function d4(a,b){return fa([a])?B(dR(d0,a),{},b):dW(a,b)}function d5(a,b){return fa([a])?B(dR(d1,a),{},b):dY(a,b)}function d6(a,b,c,d,e={}){return E("Conditional",[a,b,c,d],e)}function d7(a,b,c,d,e={}){return d8({},e9([],[]),a,b,c,d,e)}function d8(a,b,c,d,e,f,g){let h;return fa([c,d])?B(c8(h=dF(a,c,d))?a5([fe(h.inferred,b,e),fe(a,b,f)]):da(h)?fe(h.inferred,b,e):fe(a,b,f),{},g):d6(c,d,e,f,g)}function d9(a,b={}){return E("ConstructorParameters",[a],b)}function ea(a,b={}){return eb(a,b)}function eb(a,b){let c;return fa([a])?B((c=M(a)?a.parameters:[],bc(fc({},e9([],[]),c))),{},b):d9(a,b)}function ec(a,b,c={}){return E("Exclude",[a,b],c)}function ed(a,b,c={}){return ee(a,b,c)}function ee(a,b,c){return fa([a,b])?B(bj(a,b),{},c):ec(a,b,c)}function ef(a,b,c={}){return E("Extract",[a,b],c)}function eg(a,b,c={}){return eh(a,b,c)}function eh(a,b,c){var d;let e;return fa([a,b])?B(bo((d=a6(e=bp(a))?e.anyOf:[e],d.reduce((a,c)=>[...a,...dd(dF({},c,b))?[c]:[]],[]))),{},c):ef(a,b,c)}function ei(a){return a5(a.reduce((a,b)=>aU(b)?[...a,aT(b)]:a,[]))}function ej(a,b,c={}){return E("Index",[a,b],c)}function ek(a,b,c={}){return ex(a,j(b)?ei(b):b,c)}function el(a){var b;return ae(a)?el(dD(a.$defs,a.$ref)):al(a)?(b=a.if,el(bk(b,a.then,a.else))):aq(a)?a.allOf.reduce((a,b)=>{var c;let d,e,f,g,h,j,k;return c=el(b),d=v(a).filter(a=>!u(c,a)),e=v(c).filter(b=>!u(a,b)),f=v(a).filter(a=>u(c,a)),g=d.reduce((b,c)=>({...b,[c]:a[c]}),{}),h=e.reduce((a,b)=>({...a,[b]:c[b]}),{}),j=f.reduce((b,d)=>({...b,[d]:bm([a[d],c[d]])}),{}),k=i(g,h),i(k,j)},{}):a6(a)?s(a.anyOf,(a,b)=>(function a(b,c){return s(b,(b,d)=>{var e;return a(d,(e=el(b),v(c).filter(a=>a in e).reduce((a,b)=>({...a,[b]:bo([c[b],e[b]])}),{})))},()=>c)})(b,el(a)),()=>au()):bd(a)?el(_(bh(bc(a.items).items))):aa(a)?a.properties:{}}let em=RegExp("^(?:0|[1-9][0-9]*)$");function en(a){let b=`${a}`;return em.test(b)?parseInt(b):a}function eo(a){return a.map(a=>ep(a))}function ep(a){return aq(a)?ap(eo(a.allOf)):a6(a)?a5(eo(a.anyOf)):aV(a)?aT(en(a.const)):a}function eq(a){var b,c;return ae(a)?eq(dD(a.$defs,a.$ref)):al(a)?(b=a.if,eq(bk(b,a.then,a.else))):ao(a)?eq(bl(a.enum)):aq(a)?eq(bm(a.allOf)):aV(a)?(c=a.const,[`${c}`]):c6(a)?eq(bn(a.pattern)):a6(a)?a.anyOf.reduce((a,b)=>[...a,...eq(b)],[]):[]}function er(a,b){return b.map(b=>es(a,b))}function es(a,b){return J(b)?I(es(a,b.items)):M(b)?L(er(a,b.parameters),es(a,b.instanceType)):O(b)?N(er(a,b.parameters),es(a,b.returnType)):bd(b)?bc(er(a,b.items)):a6(b)?a5(er(a,b.anyOf)):aq(b)?ap(er(a,b.allOf)):bG(b)?_(a):b}function et(a,b){return b.reduce((b,c)=>{var d,e;let f;return[...b,(d=a,f=(e=c)in d?d[e]:V(),es(d,f))]},[])}let eu=new RegExp(bt);function ev(a){return a.map(a=>ew(a))}function ew(a){return aq(a)?ap(ev(a.allOf)):a6(a)?a5(ev(a.anyOf)):aV(a)?aT(en(a.const)):a}function ex(a,b,c){var d,e,f,g,h,i;let j;return fa([a,b])?B((d=ae(f=a)||al(f)||aq(f)||a6(f)?_(el(f)):f,J(d)?(g=d.items,dd(dF({},ep(h=b),aZ()))?g:aV(h)&&"length"===h.const?aZ():V()):aa(d)?(e=d.properties,a$(b)?(j=v(i=e).filter(a=>eu.test(a)),bo(et(i,j))):bo(et(e,eq(b)))):bd(d)?function(a,b){let c;return aV(b)&&"length"===b.const?aT(a.length):a$(b)||aR(b)?bq(a):bq((c=ew(b),a.reduceRight((a,b,d)=>dd(dF({},aT(d),c))?[b,...a]:a,[])))}(d.items,b):V()),{},c):ej(a,b,c)}function ey(a,b={}){return E("InstanceType",[a],b)}function ez(a,b={}){return eA(a,b)}function eA(a,b){return fa([a])?B(M(a)?a.instanceType:V(),{},b):ey(a,b)}function eB(a,b={}){return E("KeyOf",[a],b)}function eC(a,b={}){return eD(a,b)}function eD(a,b){var c,d;return fa([a])?B(U(d=ae(c=a)||al(c)||aq(c)||a6(c)?_(el(c)):c)?a5([aZ(),a3(),a_()]):J(d)?(d.items,aZ()):aa(d)?bq(v(d.properties).reduce((a,b)=>aU(b)?[...a,aT(en(b))]:au(),[])):bC(d)?bA(d):bd(d)?bq(d.items.map((a,b)=>aT(b))):V(),{},b):eB(a,b)}function eE(a,b,c,d,e={}){return E("Mapped",[a,b,c,d],e)}function eF(a,b,c,d,e={}){return eG({},e9([],[]),a,b,c,d,e)}function eG(a,b,c,d,e,f,g){return fa([d])?B(function(a,b,c,d,e,f){let g=function a(b){var c;return ao(b)?a(bl(b.enum)):aV(b)?o(c=b.const)?[aT(`${c}`)]:[aT(c)]:c6(b)?a(bn(b.pattern)):a6(b)?b.anyOf.reduce((b,c)=>[...b,...a(c)],[]):[b]}(d);return bm(g.reduce((d,g)=>{var h;let j,k,l;return[...d,(k=c6(h=fe(j=i(a,{[c.name]:g}),b,e))?bn(h.pattern):h,l=fe(j,b,f),aV(k)&&o(k.const)||aV(k)&&r(k.const)?{[k.const]:l}:{})]},[]).reduce((a,b)=>[...a,_(b)],[]))}(a,b,c,d,e,f),{},g):eE(c,d,e,f,g)}function eH(a,b,c,d){let e,f,g,h,j;return e=function(a){let b=v(a);return b.reduce((b,c)=>dy([c],a,a[c])?[...b,c]:b,[])}(c),f=i(a,c),g=v(c).filter(a=>e.includes(a)).reduce((a,b)=>({...a,[b]:function(a,b,c){let d=dA(a,c,[b]);return ad(v(a).filter(a=>d.includes(a)).reduce((b,c)=>{var d,e;let f=a[c],g=dv(f)?(d=f.parameters[0],e=f.parameters[1],bm([...fd(a,e9([],[]),d),_(fb({},e9([],[]),e))])):f;return{...b,[c]:g}},{}),b)}(f,b,c[b])}),{}),h=i(a,c),j=v(c).filter(a=>!e.includes(a)).reduce((a,b)=>({...a,[b]:fe(h,e9([],[]),c[b])}),{}),B({...g,...j},{},d)}function eI(a,b={}){return E("NonNullable",[a],b)}function eJ(a,b={}){return eK(a,b)}function eK(a,b){return fa([a])?B(ee(a,a5([aW(),bH()]),{}),{},b):eI(a,b)}function eL(a,b,c={}){return E("Omit",[a,b],c)}function eM(a,b,c={}){return eO(a,j(b)?ei(b):b,c)}function eN(a){let b=_(el(a));return aa(b)?b.properties:au()}function eO(a,b,c){return fa([a,b])?B(function(a,b){let c=eN(a),d=eq(b);return _(v(c).reduce((a,b)=>d.includes(b)?a:{...a,[b]:c[b]},{}))}(a,b),{},c):eL(a,b,c)}function eP(a,b={}){return E("Parameters",[a],b)}function eQ(a,b={}){return eR(a,b)}function eR(a,b){let c;return fa([a])?B((c=O(a)?a.parameters:[],bc(fc({},e9([],[]),c))),{},b):eP(a,b)}function eS(a,b={}){return E("Partial",[a],b)}function eT(a,b={}){return eU(a,b)}function eU(a,b){return fa([a])?B(function a(b){var c,d,e,f;let g;return ae(b)?(g=a(dD(c=b.$defs,d=b.$ref)),ad(i(c,{[d]:g}),d)):al(b)?(e=b.if,a(bk(e,b.then,b.else))):aq(b)?a(bm(b.allOf)):a6(b)?a5(b.anyOf.map(b=>a(b))):aa(b)?_(v(f=b.properties).reduce((a,b)=>({...a,[b]:Y(f[b])}),{})):_({})}(a),{},b):eS(a,b)}function eV(a,b,c={}){return E("Pick",[a,b],c)}function eW(a,b,c={}){return eX(a,j(b)?ei(b):b,c)}function eX(a,b,c){return fa([a,b])?B(function(a,b){let c=eN(a),d=eq(b);return _(v(c).reduce((a,b)=>d.includes(b)?i(a,{[b]:c[b]}):a,{}))}(a,b),{},c):eV(a,b,c)}function eY(a,b={}){return E("ReadonlyObject",[a],b)}function eZ(a,b={}){return e_(a,b)}let e$=eZ;function e_(a,b){return fa([a])?B(function a(b){var c,d,e,f;let g;return J(b)?fh(I(b.items)):ae(b)?(g=a(dD(c=b.$defs,d=b.$ref)),ad(i(c,{[d]:g}),d)):al(b)?(e=b.if,a(bk(e,b.then,b.else))):aq(b)?a(bm(b.allOf)):aa(b)?_(v(f=b.properties).reduce((a,b)=>({...a,[b]:aE(f[b])}),{})):bd(b)?fh(bc(b.items)):a6(b)?a5(b.anyOf.map(b=>a(b))):b}(a),{},b):eY(a)}function e0(a,b={}){return E("Required",[a],b)}function e1(a,b={}){return e2(a,b)}function e2(a,b){return fa([a])?B(function a(b){var c,d,e,f;let g;return ae(b)?(g=a(dD(c=b.$defs,d=b.$ref)),ad(i(c,{[d]:g}),d)):al(b)?(e=b.if,a(bk(e,b.then,b.else))):aq(b)?a(bm(b.allOf)):a6(b)?a5(b.anyOf.map(b=>a(b))):aa(b)?_(v(f=b.properties).reduce((a,b)=>({...a,[b]:bg(f[b])}),{})):_({})}(a),{},b):e0(a,b)}function e3(a,b={}){return E("ReturnType",[a],b)}function e4(a,b={}){return e5(a,b)}function e5(a,b){return fa([a])?B(O(a)?a.returnType:V(),{},b):e3(a,b)}function e6(a,b){return E("With",[a,b],{})}function e7(a,b){return e8(a,b)}function e8(a,b){return fa([a])?B(a,{},b):e6(a,b)}function e9(a,b){return{callstack:a,visited:b}}function fa(a){return s(a,(a,b)=>!Q(a)&&fa(b),()=>!0)}function fb(a,b,c){return v(c).reduce((d,e)=>({...d,[e]:fe(a,b,c[e])}),{})}function fc(a,b,c){return function a(b){return b.reduce((b,c)=>[...b,...bE(c)?bd(c.items)?a(c.items.items):aj(c.items)||Q(c.items)?[c]:[V()]:[c]],[])}(fd(a,b,c))}function fd(a,b,c){return c.map(c=>fe(a,b,c))}function fe(a,b,c){return F(c)?function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,C,D,F,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa,ab,ac,ad;let ae,af,ag;return"AddImmutable"===c?(aa=a,ab=b,ac=d[0],ad=e,fg(fe(aa,ab,ac),ad)):"RemoveImmutable"===c?(f=d[0],g=fe(a,b,f),B(A(g,["~immutable"]),{},e)):"AddReadonly"===c?(h=d[0],G(fe(a,b,h),e)):"RemoveReadonly"===c?(i=d[0],be(fe(a,b,i),e)):"AddOptional"===c?(j=d[0],H(fe(a,b,j),e)):"RemoveOptional"===c?(k=d[0],bf(fe(a,b,k),e)):"Capitalize"===c?(l=d[0],d2(fe(a,b,l),e)):"Conditional"===c?(m=d[0],n=d[1],o=d[2],p=d[3],ae=fe(a,b,m),af=fe(a,b,n),d8(a,b,ae,af,o,p,e)):"ConstructorParameters"===c?(q=d[0],eb(fe(a,b,q),e)):"Evaluate"===c?(r=d[0],s=fe(a,b,r),B(bp(s),{},e)):"Exclude"===c?(t=d[0],u=d[1],ee(fe(a,b,t),fe(a,b,u),e)):"Extract"===c?(v=d[0],w=d[1],eh(fe(a,b,v),fe(a,b,w),e)):"Index"===c?(x=d[0],y=d[1],ex(fe(a,b,x),fe(a,b,y),e)):"InstanceType"===c?function(a,b,c,d={}){return eA(fe(a,b,c),d)}(a,b,d[0],e):"Interface"===c?(z=d[0],C=d[1],dt(fd(a,b,z),fb(a,b,C),e)):"KeyOf"===c?(D=d[0],eD(fe(a,b,D),e)):"Lowercase"===c?(F=d[0],d3(fe(a,b,F),e)):"Mapped"===c?(I=d[0],J=d[1],K=d[2],L=d[3],ag=fe(a,b,J),eG(a,b,I,ag,K,L,e)):"Module"===c?eH(a,b,d[0],e):"NonNullable"===c?(M=d[0],eK(fe(a,b,M),e)):"Pick"===c?(N=d[0],O=d[1],eX(fe(a,b,N),fe(a,b,O),e)):"Parameters"===c?(P=d[0],eR(fe(a,b,P),e)):"Partial"===c?(Q=d[0],eU(fe(a,b,Q),e)):"Omit"===c?(R=d[0],S=d[1],eO(fe(a,b,R),fe(a,b,S),e)):"ReadonlyObject"===c?(T=d[0],e_(fe(a,b,T),e)):"Record"===c?(U=d[0],V=d[1],bs(fe(a,b,U),fe(a,b,V),e)):"Required"===c?(W=d[0],e2(fe(a,b,W),e)):"ReturnType"===c?function(a,b,c,d={}){return e5(fe(a,b,c),d)}(a,b,d[0],e):"TemplateLiteral"===c?(X=d[0],c3(fd(a,b,X),e)):"Uncapitalize"===c?(Y=d[0],d4(fe(a,b,Y),e)):"Uppercase"===c?(Z=d[0],d5(fe(a,b,Z),e)):"With"===c?($=d[0],_=d[1],e8(fe(a,b,$),_)):E(c,d,e)}(a,b,c.action,c.parameters,c.options):function(a,b,c){var d;let e,f,g=Q(c)?(d=c.$ref,b.visited.includes(d)?c:d in a?fe(a,e9(b.callstack,[...b.visited,d]),a[d]):c):J(c)?I(fe(a,b,c.items),K(c)):dQ(c)?dN(a,b,c.target,c.arguments):M(c)?L(fd(a,b,c.parameters),fe(a,b,c.instanceType),A(c,["~kind","type","parameters","instanceType"])):O(c)?N(fd(a,b,c.parameters),fe(a,b,c.returnType),A(c,["~kind","type","parameters","returnType"])):al(c)?ak(fe(a,b,c.if),fe(a,b,c.then),fe(a,b,c.else),A(c,["~kind","if","then","else"])):aq(c)?ap(fd(a,b,c.allOf),A(c,["~kind","allOf"])):aa(c)?_(fb(a,b,c.properties),A(c,["~kind","type","properties","required"])):bC(c)?bb(bz(c),fe(a,b,bB(c))):bE(c)?bD(fe(a,b,c.items)):bd(c)?bc(fc(a,b,c.items),A(c,["~kind","type","items","minItems","additionalItems"])):a6(c)?a5(fd(a,b,c.anyOf),A(c,["~kind","anyOf"])):c;return e=$(c)?H(g,{}):g,f=aG(c)?G(e,{}):e,aC(c)?fg(f,{}):f}(a,b,c)}function ff(a,b){return fe(a,e9([],[]),b)}function fg(a,b){return B(B(a,{"~immutable":!0},{}),{},b)}function fh(a,b={}){return fg(a,b)}function fi(a,b={}){return B(bp(a),{},b)}function fj(a,b={}){return eH({},e9([],[]),a,b)}function fk(...a){let b,[c,d,e]=ah(a,{2:(a,b)=>r(a)?[{},a,b]:[a,b,{}],3:(a,b,c)=>[a,b,c],1:a=>[{},a,{}]}),f=cf(cf(cf(cf(c1(b=d),([a,b])=>cf(cf(cf(c0(b),([a,b])=>cf(cf(cf(c1(b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cf([[],b],([a,b])=>[a,b],()=>[])),([b,c])=>[[a,b],c])),([a,b])=>[bQ(bM(a)),b]),([b,c])=>[[a,b],c])),([a,b])=>[function(a,b={}){return E("Module",[a],b)}(i(a[0],a[1][0])),b]),([a,b])=>[a,b],()=>cf(cf(cf(ci(b),([a,b])=>cf(b6("=",b),([b,c])=>cf(cy(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[R(a[0],a[2]),b]),([a,b])=>[a,b],()=>cf(cy(b),([a,b])=>[a,b],()=>[]))),([a,b])=>[a,b]);return B(j(f)&&2===f.length?fe(c,e9([],[]),f[0]):V(),{},e)}},57856:(a,b,c)=>{c.d(b,{TQ:()=>e,p1:()=>d});let d=92;function e(a,b=d,c=40){return Object.freeze({terminal:Object.freeze({columns:b,rows:c,kittyProtocolActive:!1}),requestRender:a})}},60542:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{startTaskScheduler:()=>G});var e=c(29021),f=c(55511),g=c(75384),h=c(47128),i=c(12144),j=c(69453),k=c(65562),l=c(14916),m=c(85158),n=c(48817),o=c(32105),p=a([i,j,o]);[i,j,o]=p.then?(await p)():p;let K=new Map,L=new Map;function q(a){if(a.cwd)return a.cwd;let b=(0,g.v$)(a.boardId);return b&&(0,e.existsSync)(b.projectKey)?b.projectKey:null}async function r(a){if(a.sessionId)try{let b=await (0,j.os)(a.sessionId);if(b)return{...await (0,i.OF)(a.sessionId,b,void 0),created:!1}}catch{}let b=q(a);return b?{...await (0,i.OF)((0,f.randomUUID)(),"",b,{toolNames:l.C1}),created:!0}:null}async function s(){let a=new Set((0,i.HG)()),b=0;for(let c of(0,n.O7)(["review"]))c.sessionId&&a.has(c.sessionId)&&((0,n.w0)(c.id,{execStatus:"running"}),console.log(`[task-scheduler] #${c.number} ${c.name} 自愈:会话仍在跑 → 拉回 running`),b+=1);return b}async function t(a){let b=(0,f.randomUUID)();if(!(0,n.Im)(a.id,b))return console.log(`[task-scheduler] #${a.number} ${a.name} 派发锁被占用,跳过`),!1;let c=null;try{if(!(c=await r(a)))return console.warn(`[task-scheduler] #${a.number} ${a.name} 无可用 cwd,跳过派发`),(0,n.$j)(a.id,b),!1;let d=c;await d.session.send({type:"set_session_name",name:`#${a.number} ${a.name}`});let e=(0,g.v$)(a.boardId);if(e?.taskId&&(0,k.mE)(d.realSessionId,e.taskId),d.session.isRunning())return(0,n.w0)(a.id,{sessionId:d.realSessionId,execStatus:"running"}),u(a.boardId),v(a,d.session),(0,n.$j)(a.id,b),console.log(`[task-scheduler] #${a.number} ${a.name} 会话忙(复用中),标 running 不重发`),!0;return await d.session.send({type:"prompt",message:function(a){let b=[`【任务卡 #${a.number}】${a.name}`];if(a.description.trim()&&b.push("",a.description.trim()),a.attachments.length>0)for(let c of(b.push("","附件:"),a.attachments))b.push(`- ${c}`);return b.join("\n")}(a)}),(0,n.w0)(a.id,{sessionId:d.realSessionId,execStatus:"running"}),u(a.boardId),v(a,d.session),(0,n.$j)(a.id,b),console.log(`[task-scheduler] 派发 #${a.number} ${a.name} → session ${d.realSessionId.slice(0,8)}`),!0}catch(d){if(c?.created)try{c.session.destroy()}catch{}return(0,n.$j)(a.id,b),console.error(`[task-scheduler] 派发 #${a.number} ${a.name} 失败:`,d instanceof Error?d.message:d),!1}}function u(a){(0,h.dA)(a).catch(b=>console.warn(`[task-scheduler] reconcile ${a} 异常:`,b?.message??b))}function v(a,b){if("function"!=typeof b.onEvent)return;let c=b.onEvent(b=>{if("agent_end"!==b.type)return;c();let d=(0,n.XJ)(a.id);d&&"running"===d.execStatus&&((0,n.w0)(a.id,{execStatus:"review"}),console.log(`[task-scheduler] #${a.number} ${a.name} 执行会话结束(agent_end) → review(待审核)`))})}async function w(){let a=new Set((0,i.HG)()),b=Date.now(),c=0;for(let d of(0,n.BH)()){if(!d.sessionId||a.has(d.sessionId))continue;let e=await (0,o.Wz)(d.sessionId);e&&0!==e.lastActivityMs&&(b-e.lastActivityMs<5e3||((0,n.w0)(d.id,{execStatus:"review"}),console.log(`[task-scheduler] #${d.number} ${d.name} 执行会话已结束 → review(待审核)`),c+=1))}return c}async function x(){let a=0;for(let b of(0,n.O7)(["not_started","running","review","waiting_reply"])){if(!b.sessionId)continue;let c=(0,i.A4)(b.sessionId);c&&(c.isRunning()?"running"!==b.execStatus&&((0,n.w0)(b.id,{execStatus:"running"}),a+=1):c.hasPendingUiRequest()&&"waiting_reply"!==b.execStatus&&((0,n.w0)(b.id,{execStatus:"waiting_reply"}),a+=1))}return a}async function y(){await x(),await s(),await w(),await D(),await z(),await E();let a=0,b=(0,n.CU)(),c=Math.max(0,1-b);if(c<=0)return H({type:"skipped_gate",at:Date.now()}),0;for(let b of(0,n.uZ)().slice(0,c)){if((0,n.CU)()>=1)break;await J({kind:"dispatch",cardNumber:b.number,cardName:b.name,at:Date.now()},()=>t(b))&&(a+=1,H({type:"dispatch",cardNumber:b.number,cardName:b.name,at:Date.now()}))}return a}async function z(){let a=0;for(let b of(0,n.Kg)()){let c=(0,n.XJ)(b.cardId);if(c&&"waiting_reply"===c.execStatus&&c.sessionId){if((0,n.CU)()>=1)break;await J({kind:"resume",cardNumber:c.number,cardName:c.name,at:Date.now()},()=>A(c,b))&&(a+=1,H({type:"resume",cardNumber:c.number,cardName:c.name,at:Date.now()}))}}return a}async function A(a,b){try{let c=await (0,j.os)(a.sessionId);if(!c)return!1;let{session:d}=await (0,i.OF)(a.sessionId,c,void 0);return await d.send({type:"prompt",message:`【用户回答了你的提问】
|
|
18
18
|
${b.answer}
|
|
19
19
|
|
|
20
20
|
请据此继续完成任务。`}),(0,n.w0)(a.id,{execStatus:"running"}),console.log(`[task-scheduler] 回复续会话 #${a.number} ${a.name}`),!0}catch(b){return console.error(`[task-scheduler] 回复续会话失败 #${a.number}:`,b instanceof Error?b.message:b),!1}}function B(a){let b=a.retryCount+1;b<a.maxRetries?((0,n.w0)(a.id,{execStatus:"not_started",retryCount:b}),console.log(`[task-scheduler] #${a.number} 失败(${b}/${a.maxRetries})→ 待重试`)):((0,n.w0)(a.id,{execStatus:"failed",retryCount:b}),console.log(`[task-scheduler] #${a.number} 失败(${b}/${a.maxRetries})→ failed`))}function C(a,b){(0,n.w0)(a.id,{execStatus:"waiting_reply"}),a.sessionId&&(0,n.hG)(a.id,a.sessionId,`AI 需要你回答后继续任务。
|
|
21
|
-
${b.slice(0,500)}`),console.log(`[task-scheduler] #${a.number} → waiting_reply(提问入队)`)}async function D(){let a=Date.now(),b=0;for(let c of(0,n.O7)(["review"])){let d=c.sessionId?await (0,o.Wz)(c.sessionId):null;if(d?.failure){B(c),b+=1;continue}if(!c.sessionId||!d){(0,n.w0)(c.id,{execStatus:"done"}),console.log(`[task-scheduler] #${c.number} 无执行内容 → done`),b+=1;continue}let e=L.get(c.id)??0;if(a-e<3e5)continue;L.set(c.id,a);let f=q(c);if(!f)continue;let g=await J({kind:"review",cardNumber:c.number,cardName:c.name,at:Date.now()},()=>(0,o.s4)({cwd:f,cardNumber:c.number,cardName:c.name,taskDescription:c.description,recentMessages:d.recentText}));g?.verdict==="done"?((0,n.w0)(c.id,{execStatus:"done"}),console.log(`[task-scheduler] #${c.number} 审核通过 → done(${g.reason})`),b+=1):g?.verdict==="failed"?(B(c),b+=1):g?.verdict==="waiting_reply"?(C(c,d.recentText),b+=1):console.log(`[task-scheduler] #${c.number} 审核未决:${g?g.reason:"AI 判定失败"}(保持 review)`)}return b}async function E(){let a=Date.now(),b=0;for(let c of(0,n.O7)(["running"])){if(!c.sessionId)continue;let d=K.get(c.id)??0;if(a-d<6e5)continue;let e=await (0,o.Wz)(c.sessionId);if(!e||0===e.lastActivityMs||!e.lastIsCommand||a-e.lastCommandAtMs<3e5)continue;K.set(c.id,a);let f=q(c);if(!f)continue;let g=await J({kind:"blockcheck",cardNumber:c.number,cardName:c.name,at:Date.now()},()=>(0,o.bJ)({cwd:f,cardNumber:c.number,cardName:c.name,taskDescription:c.description,recentMessages:e.recentText}));if(g)switch(g.kind){case"sync_server":case"infinite_loop":await F(c),b+=1;break;case"rate_limit":console.log(`[task-scheduler] #${c.number} 限流退避,继续观察`);break;case"asking":C(c,e.recentText),b+=1;break;case"error":(0,n.w0)(c.id,{execStatus:"review"}),b+=1}}return b}async function F(a){try{if(a.sessionId){let b=await (0,j.os)(a.sessionId);if(b){let{session:c}=await (0,i.OF)(a.sessionId,b,void 0);await c.send({type:"abort"}),await c.send({type:"prompt",message:"检测到任务卡执行异常(可能是同步开启服务或死循环)。\n请改用 tmux 后台启动服务:tmux new-session -d '命令',不要在前台阻塞等待日志;如为死循环请重新规划步骤后继续。"}),v(a,c)}}(0,n.w0)(a.id,{execStatus:"running"}),console.log(`[task-scheduler] #${a.number} 阻塞处置:abort+tmux 引导,继续运行`)}catch(b){console.error(`[task-scheduler] 阻塞处置失败 #${a.number}:`,b instanceof Error?b.message:b)}}function G(){if(globalThis.__piTaskScheduler)return;let a=!1,b=setInterval(()=>{!(0,m.oT)()||a||(a=!0,y().catch(a=>{console.error("[task-scheduler] tick error:",a instanceof Error?a.message:a)}).finally(()=>{a=!1}))},1e4);b.unref?.();let c=setInterval(()=>{try{(0,m.U4)((0,m.zZ)())}catch(a){console.error("[task-scheduler] leader heartbeat error:",a instanceof Error?a.message:a)}},m.dp/3);c.unref?.();let d={timer:b,heartbeatTimer:c,startedAt:Date.now(),lastAction:{type:"none",at:0},activity:null};globalThis.__piTaskScheduler=d,console.log("[pi-web] task scheduler started (interval 10000ms, max 1)")}function H(a){globalThis.__piTaskScheduler&&(globalThis.__piTaskScheduler.lastAction=a)}function I(a){globalThis.__piTaskScheduler&&(globalThis.__piTaskScheduler.activity=a)}async function J(a,b){I(a);try{return await b()}finally{I(null)}}d()}catch(a){d(a)}})},61577:(a,b,c)=>{c.d(b,{o:()=>e});let d=new Set(["off","minimal","low","medium","high","xhigh","max"]);async function e(a,b,c){if(!b.model&&!b.thinkingLevel)return{modelDefaultChanged:!1};let e=!1;if(b.model&&c.model&&b.model.provider===c.model.provider&&b.model.modelId===c.model.modelId&&(a.setDefaultModelAndProvider(c.model.provider,c.model.modelId),e=!0),b.thinkingLevel&&(c.supportsThinking||"off"!==c.thinkingLevel)){var f;let b=(f=c.thinkingLevel,d.has(f))?c.thinkingLevel:void 0;a.setDefaultThinkingLevel(b)}return await a.flush(),{modelDefaultChanged:e}}},81186:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ds:()=>j,J1:()=>h,eD:()=>i});var e=c(75430),f=c(76760),g=a([e]);e=(g.then?(await g)():g)[0];let k="pi-web-project-command-environment",l=`<inline:${k}>`;function h(a={}){let{agentBinDir:b=(0,f.join)((0,e.getAgentDir)(),"bin"),baseEnvironment:c=process.env,localOperations:d=(0,e.createLocalBashOperations)({shellPath:a.shellPath}),platform:g=process.platform}=a;return{exec(a,e,f){var h;let i,j,k,l=(h=function(a,b=process.platform){let c={...a};for(let a of Object.keys(c))(function(a,b){let c="win32"===b?a.toUpperCase():a;return"PORT"===c||"NODE_ENV"===c||c.startsWith("NEXT_")})(a,b)&&delete c[a];return c}(f.env??c,g),i="win32"===g?Object.keys(h).find(a=>"PATH"===a.toUpperCase())??"PATH":"PATH",j="win32"===g?";":":",(k=h[i]??"").split(j).filter(Boolean).includes(b)||(h[i]=[b,k].filter(Boolean).join(j)),h);return d.exec(a,e,{...f,env:l})}}}function i(a){return{name:k,hidden:!0,factory:b=>{let c=(0,e.createBashToolDefinition)(a.cwd);b.registerTool({...c,execute:(b,c,d,f,g)=>(0,e.createBashToolDefinition)(a.cwd,{commandPrefix:a.settings.getShellCommandPrefix(),operations:h({shellPath:a.settings.getShellPath()})}).execute(b,c,d,f,g)})}}}function j(a){let b=a.extensions.findIndex(a=>a.path===l);if(b<0)return a;let c=a.extensions.slice(0,b).find(a=>a.tools.has("bash"));return c?{...a,extensions:a.extensions.filter((a,c)=>c!==b),errors:a.errors.filter(a=>a.path!==l||a.error!==`Tool "bash" conflicts with ${c.path}`)}:a}d()}catch(a){d(a)}})},88250:(a,b,c)=>{c.d(b,{kn:()=>d});function d(){let a=(globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState);a.generation+=1,a.entries.clear(),a.inFlight.clear()}},96515:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{I:()=>j,p:()=>i});var e=c(75430),f=a([e]);e=(f.then?(await f)():f)[0];let k=new Set(["off","minimal","low","medium","high","xhigh","max"]);function g(a,b){return a.provider===b.provider&&a.id===b.modelId}function h(a,b){let c=a.toLowerCase(),d=b.filter(a=>`${a.provider}/${a.id}`.toLowerCase()===c);return d.length>0?d:b.filter(a=>a.id.toLowerCase()===c)}async function i(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:await a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:[]};let d=await a.getAvailable();!function(a,b){for(let c of a){if(c.includes("*")||c.includes("?")||c.includes("["))continue;let a=h(c,b);if(0===a.length){let d=c.lastIndexOf(":"),e=d>=0?c.slice(d+1):"";k.has(e)&&(a=h(c.slice(0,d),b))}if(a.length>1){let b=a.map(a=>`${a.provider}/${a.id}`).sort().join(", ");throw Error(`Ambiguous enabledModels entry "${c}" matches multiple models: ${b}. Use provider/modelId.`)}}}(c,d);let{scopedModels:f,diagnostics:g}=await (0,e.resolveModelScopeWithDiagnostics)(c,{getAvailable:async()=>d}),i=g.map(a=>a.message);if(0===f.length)return{visible:d,scopedModels:[],thinkingLevelPins:{},warnings:i};let j={};for(let a of f)a.thinkingLevel&&(j[`${a.model.provider}/${a.model.id}`]=a.thinkingLevel);return{visible:f.map(a=>a.model),scopedModels:f,thinkingLevelPins:j,warnings:i}}function j(a,b={}){let c=b.requestedModel,d=b.defaultModel,e=c?a.visible.find(a=>g(a,c)):void 0;if(c&&!e)throw Error(`Model is not available in the enabled scope: ${c.provider}/${c.modelId}`);let f=e?a.scopedModels.find(a=>a.model===e||g(a.model,{provider:e.provider,modelId:e.id})):void 0,h=!e&&d?a.scopedModels.find(a=>g(a.model,d)):void 0,i=e?void 0:h??a.scopedModels[0],k=e||i||!d?void 0:a.visible.find(a=>g(a,d)),l=e??i?.model??k,m=f??i,n=b.thinkingLevel??m?.thinkingLevel;return{...l?{model:l}:{},...n?{thinkingLevel:n}:{},scopedModels:[...a.scopedModels]}}d()}catch(a){d(a)}})}};
|
|
21
|
+
${b.slice(0,500)}`),console.log(`[task-scheduler] #${a.number} → waiting_reply(提问入队)`)}async function D(){let a=Date.now(),b=0;for(let c of(0,n.O7)(["review"])){let d=c.sessionId?await (0,o.Wz)(c.sessionId):null;if(d?.failure){B(c),b+=1;continue}if(!c.sessionId||!d){(0,n.w0)(c.id,{execStatus:"done"}),console.log(`[task-scheduler] #${c.number} 无执行内容 → done`),b+=1;continue}let e=L.get(c.id)??0;if(a-e<3e5)continue;L.set(c.id,a);let f=q(c);if(!f)continue;let g=await J({kind:"review",cardNumber:c.number,cardName:c.name,at:Date.now()},()=>(0,o.s4)({cwd:f,cardNumber:c.number,cardName:c.name,taskDescription:c.description,recentMessages:d.recentText}));g?.verdict==="done"?((0,n.w0)(c.id,{execStatus:"done"}),console.log(`[task-scheduler] #${c.number} 审核通过 → done(${g.reason})`),b+=1):g?.verdict==="failed"?(B(c),b+=1):g?.verdict==="waiting_reply"?(C(c,d.recentText),b+=1):console.log(`[task-scheduler] #${c.number} 审核未决:${g?g.reason:"AI 判定失败"}(保持 review)`)}return b}async function E(){let a=Date.now(),b=0;for(let c of(0,n.O7)(["running"])){if(!c.sessionId)continue;let d=K.get(c.id)??0;if(a-d<6e5)continue;let e=await (0,o.Wz)(c.sessionId);if(!e||0===e.lastActivityMs||!e.lastIsCommand||a-e.lastCommandAtMs<3e5)continue;K.set(c.id,a);let f=q(c);if(!f)continue;let g=await J({kind:"blockcheck",cardNumber:c.number,cardName:c.name,at:Date.now()},()=>(0,o.bJ)({cwd:f,cardNumber:c.number,cardName:c.name,taskDescription:c.description,recentMessages:e.recentText}));if(g)switch(g.kind){case"sync_server":case"infinite_loop":await F(c),b+=1;break;case"rate_limit":console.log(`[task-scheduler] #${c.number} 限流退避,继续观察`);break;case"asking":C(c,e.recentText),b+=1;break;case"error":(0,n.w0)(c.id,{execStatus:"review"}),b+=1}}return b}async function F(a){try{if(a.sessionId){let b=await (0,j.os)(a.sessionId);if(b){let{session:c}=await (0,i.OF)(a.sessionId,b,void 0);await c.send({type:"abort"}),await c.send({type:"prompt",message:"检测到任务卡执行异常(可能是同步开启服务或死循环)。\n请改用 tmux 后台启动服务:tmux new-session -d '命令',不要在前台阻塞等待日志;如为死循环请重新规划步骤后继续。"}),v(a,c)}}(0,n.w0)(a.id,{execStatus:"running"}),console.log(`[task-scheduler] #${a.number} 阻塞处置:abort+tmux 引导,继续运行`)}catch(b){console.error(`[task-scheduler] 阻塞处置失败 #${a.number}:`,b instanceof Error?b.message:b)}}function G(){if(globalThis.__piTaskScheduler)return;let a=!1,b=setInterval(()=>{!(0,m.oT)()||a||(a=!0,y().catch(a=>{console.error("[task-scheduler] tick error:",a instanceof Error?a.message:a)}).finally(()=>{a=!1}))},1e4);b.unref?.();let c=setInterval(()=>{try{(0,m.U4)((0,m.zZ)())}catch(a){console.error("[task-scheduler] leader heartbeat error:",a instanceof Error?a.message:a)}},m.dp/3);c.unref?.();let d={timer:b,heartbeatTimer:c,startedAt:Date.now(),lastAction:{type:"none",at:0},activity:null};globalThis.__piTaskScheduler=d,console.log("[pi-web] task scheduler started (interval 10000ms, max 1)")}function H(a){globalThis.__piTaskScheduler&&(globalThis.__piTaskScheduler.lastAction=a)}function I(a){globalThis.__piTaskScheduler&&(globalThis.__piTaskScheduler.activity=a)}async function J(a,b){I(a);try{return await b()}finally{I(null)}}d()}catch(a){d(a)}})},61577:(a,b,c)=>{c.d(b,{o:()=>e});let d=new Set(["off","minimal","low","medium","high","xhigh","max"]);async function e(a,b,c){if(!b.model&&!b.thinkingLevel)return{modelDefaultChanged:!1};let e=!1;if(b.model&&c.model&&b.model.provider===c.model.provider&&b.model.modelId===c.model.modelId&&(a.setDefaultModelAndProvider(c.model.provider,c.model.modelId),e=!0),b.thinkingLevel&&(c.supportsThinking||"off"!==c.thinkingLevel)){var f;let b=(f=c.thinkingLevel,d.has(f))?c.thinkingLevel:void 0;a.setDefaultThinkingLevel(b)}return await a.flush(),{modelDefaultChanged:e}}},77605:(a,b,c)=>{c.d(b,{Ql:()=>i,Y0:()=>e,aO:()=>k,cn:()=>f,mU:()=>l,sT:()=>d,xw:()=>n});let d="pi-todo.state",e="todo",f=["pending","in_progress","completed"];function g(a){return"string"==typeof a&&f.includes(a)}function h(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function i(a){return a.some(a=>"completed"!==a.status)}function j(a,b){let c=a.trim();if(0===c.length)throw Error(`${b} cannot be empty or whitespace-only`);return c}function k(a){if(!h(a)||!Array.isArray(a.todos))return null;let b=[];for(let c of a.todos)h(c)&&"number"==typeof c.id&&Number.isFinite(c.id)&&"string"==typeof c.content&&0!==c.content.length&&g(c.status)&&b.push({id:c.id,content:c.content,status:c.status});let c=b.reduce((a,b)=>Math.max(a,b.id),0);return{todos:b,nextId:"number"==typeof a.nextId&&a.nextId>c?a.nextId:c+1}}function l(a){let b="completed"===a.status?"x":"in_progress"===a.status?"~":" ";return`[${b}] #${a.id}: ${a.content}`}function m(a,b){if(0===b.length)throw Error("update requires at least status or text parameter");let c=new Set;for(let d of b){if(c.has(d.id))throw Error(`duplicate id ${d.id} in updates`);if(c.add(d.id),void 0===d.status&&void 0===d.text)throw Error(`update item for id ${d.id} has neither status nor text`);if(void 0!==d.status&&!g(d.status))throw Error(`status only accepts ${f.join(" / ")}`);if(void 0!==d.text&&j(d.text,`update item id ${d.id}: text`),!a.todos.some(a=>a.id===d.id))throw Error(`Todo #${d.id} not found`)}return{snapshot:{todos:a.todos.map(a=>{let c=b.find(b=>b.id===a.id);return c?{...a,...void 0!==c.status?{status:c.status}:{},...void 0!==c.text?{content:c.text.trim()}:{}}:a}),nextId:a.nextId},resultText:`Updated ${b.length} todo(s)`}}function n(a,b){switch(a.action){case"list":var c;return{action:"list",snapshot:b,resultText:(c=b.todos).length>0?c.map(l).join("\n"):"No todos"};case"add":{if(void 0!==a.text&&void 0!==a.texts)throw Error('add only accepts texts array; do not also pass singular "text"');if(void 0!==a.text)throw Error('add needs texts (array). You passed singular "text" — that field is for update. Correct: {"action":"add","texts":["<your text>"]}');let{snapshot:c,resultText:d}=function(a,b){if(0===b.length)throw Error('add requires texts parameter (non-empty array). Correct: {"action":"add","texts":["..."]}');let c=b.map(a=>j(a,"texts item")),d=a.nextId,e=c.map((a,b)=>({id:d+b,content:a,status:"pending"})),f=d+e.length;return{snapshot:{todos:[...a.todos,...e],nextId:f},resultText:`Added ${e.length} todos (#${d}-#${f-1})`}}(b,a.texts??[]);return{action:"add",snapshot:c,resultText:d}}case"update":{if(void 0!==a.updates&&a.updates.length>0){let{snapshot:c,resultText:d}=m(b,a.updates);return{action:"update",snapshot:c,resultText:d}}if(void 0===a.id)throw Error('update requires id parameter. Correct: {"action":"update","id":1,"status":"in_progress"}');let{snapshot:c,resultText:d}=m(b,[{id:a.id,...void 0!==a.status?{status:a.status}:{},...void 0!==a.text?{text:a.text}:{}}]);return{action:"update",snapshot:c,resultText:d}}case"delete":{if(void 0===a.ids||0===a.ids.length){if(void 0!==a.id)throw Error('delete needs ids (array). You passed singular "id". Correct: {"action":"delete","ids":[1]}');throw Error('delete requires ids parameter (non-empty array). Correct: {"action":"delete","ids":[1]}')}let{snapshot:c,resultText:d}=function(a,b){if(0===b.length)throw Error('delete requires ids parameter (non-empty array). Correct: {"action":"delete","ids":[1]}');for(let c of b)if(!a.todos.some(a=>a.id===c))throw Error(`Todo #${c} not found`);let c=new Set(b);return{snapshot:{todos:a.todos.filter(a=>!c.has(a.id)),nextId:a.nextId},resultText:`Deleted ${b.length} todo(s)`}}(b,a.ids);return{action:"delete",snapshot:c,resultText:d}}default:throw Error(`Unknown action: ${String(a.action)}`)}}},81186:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ds:()=>j,J1:()=>h,eD:()=>i});var e=c(75430),f=c(76760),g=a([e]);e=(g.then?(await g)():g)[0];let k="pi-web-project-command-environment",l=`<inline:${k}>`;function h(a={}){let{agentBinDir:b=(0,f.join)((0,e.getAgentDir)(),"bin"),baseEnvironment:c=process.env,localOperations:d=(0,e.createLocalBashOperations)({shellPath:a.shellPath}),platform:g=process.platform}=a;return{exec(a,e,f){var h;let i,j,k,l=(h=function(a,b=process.platform){let c={...a};for(let a of Object.keys(c))(function(a,b){let c="win32"===b?a.toUpperCase():a;return"PORT"===c||"NODE_ENV"===c||c.startsWith("NEXT_")})(a,b)&&delete c[a];return c}(f.env??c,g),i="win32"===g?Object.keys(h).find(a=>"PATH"===a.toUpperCase())??"PATH":"PATH",j="win32"===g?";":":",(k=h[i]??"").split(j).filter(Boolean).includes(b)||(h[i]=[b,k].filter(Boolean).join(j)),h);return d.exec(a,e,{...f,env:l})}}}function i(a){return{name:k,hidden:!0,factory:b=>{let c=(0,e.createBashToolDefinition)(a.cwd);b.registerTool({...c,execute:(b,c,d,f,g)=>(0,e.createBashToolDefinition)(a.cwd,{commandPrefix:a.settings.getShellCommandPrefix(),operations:h({shellPath:a.settings.getShellPath()})}).execute(b,c,d,f,g)})}}}function j(a){let b=a.extensions.findIndex(a=>a.path===l);if(b<0)return a;let c=a.extensions.slice(0,b).find(a=>a.tools.has("bash"));return c?{...a,extensions:a.extensions.filter((a,c)=>c!==b),errors:a.errors.filter(a=>a.path!==l||a.error!==`Tool "bash" conflicts with ${c.path}`)}:a}d()}catch(a){d(a)}})},87509:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{U:()=>j});var e=c(28802),f=c(45399),g=c(77605),h=a([e]);function i(){return{currentTurn:0,lastTodoToolUseTurn:0}}e=(h.then?(await h)():h)[0];let k=f.ZUJ.Object({action:f.ZUJ.Union([f.ZUJ.Literal("list"),f.ZUJ.Literal("add"),f.ZUJ.Literal("update"),f.ZUJ.Literal("delete")],{description:"list | add | update | delete"}),text:f.ZUJ.Optional(f.ZUJ.String({description:"新文本,仅 update 使用(trim 后不可为空)"})),texts:f.ZUJ.Optional(f.ZUJ.Array(f.ZUJ.String(),{description:"待添加的 todo 文本数组(仅 add 使用)"})),id:f.ZUJ.Optional(f.ZUJ.Number({description:"要更新的 todo id"})),ids:f.ZUJ.Optional(f.ZUJ.Array(f.ZUJ.Number(),{description:"要删除的 todo id 数组"})),status:f.ZUJ.Optional((0,e.StringEnum)(g.cn,{description:"pending | in_progress | completed"})),updates:f.ZUJ.Optional(f.ZUJ.Array(f.ZUJ.Object({id:f.ZUJ.Number({description:"要更新的 todo id"}),status:f.ZUJ.Optional((0,e.StringEnum)(g.cn)),text:f.ZUJ.Optional(f.ZUJ.String({description:"新文本(trim 后不可为空)"}))},{additionalProperties:!1}),{description:"批量更新数组(优先于单条 id/status/text)"}))},{additionalProperties:!1});function j(){return{name:"pi-web-todo",hidden:!0,factory:a=>{let b={todos:[],nextId:1},c=i(),d=()=>{a.appendEntry(g.sT,{todos:b.todos,nextId:b.nextId})},e=a=>{let d=a.sessionManager.getBranch();for(let a of(b.todos=[],b.nextId=1,Object.assign(c,i()),d)){if("custom"!==a.type||a.customType!==g.sT)continue;let c=(0,g.aO)(a.data);c&&(b.todos=c.todos,b.nextId=c.nextId)}c.currentTurn=function(a){let b=0;for(let c of a){if("custom"===c.type&&c.customType===g.sT){b=0;continue}c.message?.role==="assistant"&&b++}return b}(d)};a.on("session_start",async(a,b)=>e(b)),a.on("session_tree",async(a,b)=>e(b)),a.on("agent_end",async(a,c)=>{0===b.todos.length||(0,g.Ql)(b.todos)||function(a){let b,c=0,d=0;for(let e of a)"custom"===e.type&&e.customType===g.sT?(b=e.data,d=c):e.message?.role==="user"&&c++;let e=(0,g.aO)(b);return!(!e||0===e.todos.length||(0,g.Ql)(e.todos))&&c-d>=2}(c.sessionManager.getBranch())&&(b.todos=[],b.nextId=1,d())}),a.on("turn_start",async()=>{c.currentTurn++}),a.on("tool_result",async a=>{String(a.toolName??"")===g.Y0&&(c.lastTodoToolUseTurn=c.currentTurn)}),a.on("context",async a=>{if(!(0,g.Ql)(b.todos)||c.currentTurn-c.lastTodoToolUseTurn<4||(c.lastTodoToolUseTurn=c.currentTurn,0))return;let d=function(a){let b=a.filter(a=>"completed"!==a.status);if(0===b.length)return null;let c=b.filter(a=>"in_progress"===a.status),d=c.length>0?`#${c[0].id}("${c[0].content}")仍标记为 in_progress。这一步如果已经做完,立刻用 todo update 把它标成 completed,并在同一次调用里把下一项 pending 置为 in_progress,不要留下过期的 [~]。`:"还有 pending 项但没有任何 in_progress。准备继续动手前,先用 todo update 把其中一项置为 in_progress。";return["<system-reminder>","todo 工具已连续 4 轮没有被使用,但仍有未完成任务:","",...b.map(g.mU),"",d,"","只在与本轮工作相关时行动;这是一条温和提醒,不适用就忽略。绝不要向用户提及这条提醒,也不要为了回应它而新造任务。","</system-reminder>"].join("\n")}(b.todos);if(d)return{messages:[...a.messages,{role:"user",content:[{type:"text",text:d}],timestamp:Date.now()}]}}),a.registerTool({name:g.Y0,label:"Todo",description:"管理当前会话的 todo 列表。\n\n动作:\n- list: 查看全部 todo\n- add: 批量添加 todo(texts 数组)\n- update: 按 id 更新 todo——status 和/或 text;批量用 updates[]\n- delete: 按 id 删除 todo(ids 数组)\n\n规则:\n- 同一时间只有一个 todo 处于 in_progress\n- 完成一个 todo 立即标记 completed,不要攒到最后批量标记\n- 未真正完成不得标记 completed:被阻塞或测试失败时保持 in_progress",promptSnippet:"用 todo 跟踪多步骤工作;记得为验证步骤(测试、类型检查)单独建 todo。",promptGuidelines:["[Usage] 多步骤工作(3+步)时使用,AI 自发创建,无需用户触发","[验证任务] 为测试 / 类型检查等验证步骤单独建 todo,完成前确保验证通过","[批量优先] 完成多项任务时使用 updates[] 批量更新,减少工具调用次数","[自动闭合] 全部完成后自动清理,无需手动 delete","[Not for] 单步操作、简单对话"],executionMode:"sequential",parameters:k,async execute(a,c,e){if(e?.aborted)throw Error("Todo call aborted by signal.");let f=(0,g.xw)(c,b),h="list"!==f.action;h&&(b.todos=f.snapshot.todos,b.nextId=f.snapshot.nextId,d());let i=h?`${f.resultText}
|
|
22
|
+
${b.todos.map(a=>(0,g.mU)(a)).join("\n")||"No todos"}`:f.resultText;return{content:[{type:"text",text:i}],details:{action:f.action,todos:[...b.todos],nextId:b.nextId}}}})}}}d()}catch(a){d(a)}})},88250:(a,b,c)=>{c.d(b,{kn:()=>d});function d(){let a=(globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState);a.generation+=1,a.entries.clear(),a.inFlight.clear()}},96515:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{I:()=>j,p:()=>i});var e=c(75430),f=a([e]);e=(f.then?(await f)():f)[0];let k=new Set(["off","minimal","low","medium","high","xhigh","max"]);function g(a,b){return a.provider===b.provider&&a.id===b.modelId}function h(a,b){let c=a.toLowerCase(),d=b.filter(a=>`${a.provider}/${a.id}`.toLowerCase()===c);return d.length>0?d:b.filter(a=>a.id.toLowerCase()===c)}async function i(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:await a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:[]};let d=await a.getAvailable();!function(a,b){for(let c of a){if(c.includes("*")||c.includes("?")||c.includes("["))continue;let a=h(c,b);if(0===a.length){let d=c.lastIndexOf(":"),e=d>=0?c.slice(d+1):"";k.has(e)&&(a=h(c.slice(0,d),b))}if(a.length>1){let b=a.map(a=>`${a.provider}/${a.id}`).sort().join(", ");throw Error(`Ambiguous enabledModels entry "${c}" matches multiple models: ${b}. Use provider/modelId.`)}}}(c,d);let{scopedModels:f,diagnostics:g}=await (0,e.resolveModelScopeWithDiagnostics)(c,{getAvailable:async()=>d}),i=g.map(a=>a.message);if(0===f.length)return{visible:d,scopedModels:[],thinkingLevelPins:{},warnings:i};let j={};for(let a of f)a.thinkingLevel&&(j[`${a.model.provider}/${a.model.id}`]=a.thinkingLevel);return{visible:f.map(a=>a.model),scopedModels:f,thinkingLevelPins:j,warnings:i}}function j(a,b={}){let c=b.requestedModel,d=b.defaultModel,e=c?a.visible.find(a=>g(a,c)):void 0;if(c&&!e)throw Error(`Model is not available in the enabled scope: ${c.provider}/${c.modelId}`);let f=e?a.scopedModels.find(a=>a.model===e||g(a.model,{provider:e.provider,modelId:e.id})):void 0,h=!e&&d?a.scopedModels.find(a=>g(a.model,d)):void 0,i=e?void 0:h??a.scopedModels[0],k=e||i||!d?void 0:a.visible.find(a=>g(a,d)),l=e??i?.model??k,m=f??i,n=b.thinkingLevel??m?.thinkingLevel;return{...l?{model:l}:{},...n?{thinkingLevel:n}:{},scopedModels:[...a.scopedModels]}}d()}catch(a){d(a)}})}};
|