@seqyuan/annodex 0.1.95 → 0.1.97

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.
Files changed (71) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +6 -6
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  23. package/.next/server/app/api/internal/runtime/route.js +1 -1
  24. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  25. package/.next/server/app/api/version/route.js +1 -1
  26. package/.next/server/app/docs/changelog.html +2 -2
  27. package/.next/server/app/docs/changelog.rsc +1 -1
  28. package/.next/server/app/docs/changelog.segments/_full.segment.rsc +1 -1
  29. package/.next/server/app/docs/changelog.segments/_head.segment.rsc +1 -1
  30. package/.next/server/app/docs/changelog.segments/_index.segment.rsc +1 -1
  31. package/.next/server/app/docs/changelog.segments/_tree.segment.rsc +1 -1
  32. package/.next/server/app/docs/changelog.segments/docs/changelog/__PAGE__.segment.rsc +1 -1
  33. package/.next/server/app/docs/changelog.segments/docs/changelog.segment.rsc +1 -1
  34. package/.next/server/app/docs/changelog.segments/docs.segment.rsc +1 -1
  35. package/.next/server/app/index.html +1 -1
  36. package/.next/server/app/index.rsc +1 -1
  37. package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  38. package/.next/server/app/index.segments/_full.segment.rsc +1 -1
  39. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  40. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  41. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  42. package/.next/server/app/login.html +1 -1
  43. package/.next/server/app/login.rsc +1 -1
  44. package/.next/server/app/login.segments/_full.segment.rsc +1 -1
  45. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  46. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  47. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  48. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  49. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  50. package/.next/server/app/workspace/page.js +4 -4
  51. package/.next/server/app/workspace/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/workspace.html +1 -1
  53. package/.next/server/app/workspace.rsc +2 -2
  54. package/.next/server/app/workspace.segments/_full.segment.rsc +2 -2
  55. package/.next/server/app/workspace.segments/_head.segment.rsc +1 -1
  56. package/.next/server/app/workspace.segments/_index.segment.rsc +1 -1
  57. package/.next/server/app/workspace.segments/_tree.segment.rsc +1 -1
  58. package/.next/server/app/workspace.segments/workspace/__PAGE__.segment.rsc +2 -2
  59. package/.next/server/app/workspace.segments/workspace.segment.rsc +1 -1
  60. package/.next/server/app-paths-manifest.json +6 -6
  61. package/.next/server/chunks/402.js +1 -1
  62. package/.next/server/chunks/6429.js +1 -1
  63. package/.next/server/chunks/6983.js +2 -2
  64. package/.next/server/middleware-build-manifest.js +1 -1
  65. package/.next/server/pages/404.html +1 -1
  66. package/.next/server/pages/500.html +1 -1
  67. package/.next/server/server-reference-manifest.json +1 -1
  68. package/.next/static/chunks/app/workspace/{page-c9b078183d94ebaf.js → page-da42eab640e2c887.js} +4 -4
  69. package/package.json +1 -1
  70. /package/.next/static/{o4wYT5iJnH2UQkb3wYmOd → SVHmVqHgsyh7rLM_BP4l1}/_buildManifest.js +0 -0
  71. /package/.next/static/{o4wYT5iJnH2UQkb3wYmOd → SVHmVqHgsyh7rLM_BP4l1}/_ssgManifest.js +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";exports.id=6429,exports.ids=[6429],exports.modules={4087:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820);function g(){return process.env.ANNODEX_CONFIG_DIR??process.env.ANNOVIBE_CONFIG_DIR??e.join(f.homedir(),".config","annodex")}function h(){return e.join(g(),"settings.json")}function i(){let a=h();if(!d.existsSync(a))return{};try{let b=JSON.parse(d.readFileSync(a,"utf8"));return"object"!=typeof b||null===b||Array.isArray(b)?{}:b}catch{return{}}}function j(){let a=i();return{autoRestart:"boolean"==typeof a.autoRestart?a.autoRestart:void 0}}function k(a){let b=g();d.existsSync(b)||d.mkdirSync(b,{recursive:!0});let c={...i(),..."boolean"==typeof a?.autoRestart?{autoRestart:a.autoRestart}:{}};return d.writeFileSync(h(),JSON.stringify(c,null,2),"utf8"),j()}a.exports={readAppSettings:j,writeAppSettings:k,ensureAppSettings:function(a={autoRestart:!0}){return"boolean"==typeof i().autoRestart?j():k(a)}}},9805:(a,b,c)=>{c.d(b,{FE:()=>h,zN:()=>i});let d='<widget-capability>\nYou can create interactive visualizations using the `show-widget` code fence.\n\nUse `show-widget` by default when visual output is the primary answer. This includes charts, diagrams, flowcharts, dashboards, UI prototypes, mockups, SVG illustrations, icons, logos, infographics, timelines, hierarchies, comparison views, and visual explanations.\n\nFor diagrams, flowcharts, architecture maps, sequence-style explanations, and Markdown-to-diagram requests, prefer `show-widget` with SVG/HTML over Mermaid. Widgets stream more reliably in this UI. Use Mermaid only when the user explicitly asks for Mermaid source, raw Mermaid, raw Markdown, or a saved Mermaid/Markdown file.\n\nFormat:\n```show-widget\n{"title":"Human-readable title","widget_code":"<raw HTML/SVG string>"}\n```\n\nDetailed specs:\nWhen a `<widget-guidelines>` block is present, follow it. It contains the module-specific design rules for the current request.\n\nRequired rules:\n1. `widget_code` is a JSON string: escape quotes and newlines. Always close the JSON object and fence.\n2. Do not include DOCTYPE, html, head, body, iframe, object, embed, form, link, base, or meta tags.\n3. Keep outer backgrounds transparent. The host supplies theme variables.\n4. Use a single concise widget per fence. For multiple widgets, interleave prose and use a separate `show-widget` fence for each widget.\n5. Streaming order: SVG puts `<defs>` before visible shapes; HTML uses `<style>`, then visible markup, then `<script>` last.\n6. Prefer responsive SVG for static visuals and small HTML widgets for controls.\n7. SVG widgets use `<svg width="100%" viewBox="0 0 680 H">` and keep all content inside the viewBox.\n8. Interactive controls must visibly update the output. For Chart.js, call `chart.update()` after changes.\n9. Clickable drill-down actions call `window.__widgetSendMessage("short request")`.\n10. Cross-widget filters publish with `window.__widgetPublish("topic", { key: "value" })`; other widgets listen for `widget-filter`.\n11. Allowed CDN hosts: `cdnjs.cloudflare.com`, `cdn.jsdelivr.net`, `unpkg.com`, `esm.sh`.\n12. CDN scripts must use an `onload` initializer plus an `if (window.Lib) init();` fallback.\n13. Use `min-height` instead of fixed outer `height` to prevent clipping.\n14. Title should be human-readable in the user\'s language.\n15. Put explanatory prose outside the code fence.\n16. Do not output raw ```svg, ```html, or plain Mermaid for visual answers unless the user explicitly asks for source code, raw Markdown, raw Mermaid, or a saved file.\n17. Do not convert Markdown outlines into Mermaid by default. Render them as a `show-widget` diagram unless Mermaid/source text is explicitly requested.\n</widget-capability>',e=/\n?\s*<widget-capability>[\s\S]*?<\/widget-capability>\s*/g,f=/\n?\s*<visualization_harness>[\s\S]*?<\/visualization_harness>\s*/g,g=/\n?\s*<widget-guidelines\b[^>]*>[\s\S]*?<\/widget-guidelines>\s*/g;function h(a){return a.replace(e,"\n").replace(f,"\n").replace(g,"\n").replace(/\n{3,}/g,"\n\n").trim()}function i(a){return a.includes("<widget-capability>")?a:a.trim()?`${a.trimEnd()}
2
2
 
3
3
  ${d}`:d}},11002:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{WK:()=>l,z2:()=>m});var e=c(46983),f=c(65369),g=c(46696),h=c(14482),i=a([e]);function j(a){return"agentMessage"===a.type&&"string"==typeof a.text?a.text:"reasoning"===a.type?[...a.summary??[],...a.content??[]].join("\n"):"plan"===a.type&&"string"==typeof a.text?a.text:""}function k(a){return"commandExecution"===a.type?"bash":"fileChange"===a.type?"edit":"mcpToolCall"===a.type?a.tool||a.server||"mcp":"dynamicToolCall"===a.type?a.tool||"tool":"collabAgentToolCall"===a.type?"agents":a.type}e=(i.then?(await i)():i)[0];class n{constructor(a,b,c,d){this.threadId=a,this.cwd=b,this.connection=c,this.baseInstructions=d,this.listeners=[],this.cleanupFns=[],this._alive=!0,this._isStreaming=!1,this._isCompacting=!1,this._threadGoal=null,this._accumulatedText="",this._activeTurnId=null,this._activeAgentItemId=null,this._activeItems=new Map,this._currentModel=null,this._wireModel=null,this._sandboxMode="workspace-write",this._pendingApprovals=new Map,this.setupNotifications()}get sessionId(){return this.threadId}get sessionFile(){return""}get isAlive(){return this._alive}get isStreaming(){return this._isStreaming}get isCompacting(){return this._isCompacting}get threadGoal(){return this._threadGoal}get model(){return this._currentModel}get wireModel(){return this._wireModel}get sandboxMode(){return this._sandboxMode}onEvent(a){return this.listeners.push(a),()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}emit(a){for(let b of this.listeners)try{b(a)}catch{}}assistantMeta(){return{model:this._currentModel?.modelId??"",provider:this._currentModel?.provider??""}}restoreActiveTurnFromThread(a){let b=[...a?.turns??[]].reverse().find(a=>(0,e.pU)(a));if(!b)return;this._isStreaming=!0,this._activeTurnId=b.id;let c=[...b.items??[]].reverse().find(a=>"agentMessage"===a.type);c?.type==="agentMessage"&&(this._activeAgentItemId=c.id,this._accumulatedText=j(c))}setupNotifications(){let a=this.connection.onAnyNotification((a,b)=>this.handleCodexNotification(a,b));this.cleanupFns.push(a);let b=this.connection.onServerRequest(a=>this.handleServerRequest(a));this.cleanupFns.push(b)}handleCodexNotification(a,b){switch(a){case"turn/started":this.handleTurnStarted(b);break;case"item/agentMessage/delta":this.handleAgentMessageDelta(b);break;case"item/reasoning/textDelta":case"item/reasoning/summaryTextDelta":this.handleReasoningDelta(b);break;case"item/started":this.handleItemStarted(b);break;case"item/completed":this.handleItemCompleted(b);break;case"turn/completed":this.handleTurnCompleted(b);break;case"turn/failed":case"error":this.handleError(b);break;case"thread/status/changed":this.handleThreadStatusChanged(b);break;case"thread/compacted":this.handleCompacted(b);break;case"thread/goal/updated":this.handleGoalUpdated(b);break;case"thread/goal/cleared":this.handleGoalCleared(b);break;case"turn/plan/updated":this.handlePlanUpdated(b)}}ensureStreamingStarted(a){a&&(this._activeTurnId=a),this._isStreaming||(this._isStreaming=!0,this.emit({type:"agent_start"}),this.emit({type:"message_start",message:{role:"assistant",content:[],...this.assistantMeta()}}))}activeItem(a,b){let c=this._activeItems.get(a);if(c)return c;let d={kind:b,textSoFar:"",receivedDelta:!1};return this._activeItems.set(a,d),d}emitTextUpdate(a){this.emit({type:"message_update",message:{role:"assistant",content:[{type:"text",text:a}],...this.assistantMeta()}})}emitThinkingUpdate(a){this.emit({type:"message_update",message:{role:"assistant",content:[{type:"thinking",thinking:a}],...this.assistantMeta()}})}sandboxPolicy(){return"danger-full-access"===this._sandboxMode?{type:"dangerFullAccess"}:{type:"workspaceWrite",writableRoots:this.cwd?[this.cwd]:[],readOnlyAccess:{type:"fullAccess"},networkAccess:!0,excludeTmpdirEnvVar:!1,excludeSlashTmp:!1}}approvalPolicy(){return"danger-full-access"===this._sandboxMode?"never":"on-request"}requestBelongsToSession(a){return("string"==typeof a?.threadId?a.threadId:"string"==typeof a?.conversationId?a.conversationId:null)===this.threadId}isLegacyApprovalMethod(a){return"execCommandApproval"===a||"applyPatchApproval"===a}handleServerRequest(a){if("item/commandExecution/requestApproval"!==a.method&&"item/fileChange/requestApproval"!==a.method&&"item/permissions/requestApproval"!==a.method&&"execCommandApproval"!==a.method&&"applyPatchApproval"!==a.method)return;let b=a.params;if(!this.requestBelongsToSession(b))return;let c="string"==typeof b?.itemId?b.itemId:"string"==typeof b?.callId?b.callId:null;if(!c)return;let d="string"==typeof b?.approvalId&&b.approvalId?b.approvalId:null,e=d?`${c}:${d}`:c,f=`${a.method}:${e}`;return new Promise(b=>{this._pendingApprovals.set(f,{request:{id:f,method:a.method,serverRequestId:a.id,params:a.params},resolve:b}),this.emit({type:"approval_request",requestId:f,method:a.method,params:a.params})})}eventBelongsToThread(a){return a.threadId===this.threadId}handleTurnStarted(a){this.eventBelongsToThread(a)&&this.ensureStreamingStarted(a.turnId)}handleAgentMessageDelta(a){if(!this.eventBelongsToThread(a))return;let b=a.delta??"";if(!b)return;this.ensureStreamingStarted(a.turnId),this._activeAgentItemId=a.itemId;let c=this.activeItem(a.itemId,"text");c.textSoFar+=b,c.receivedDelta=!0,this._accumulatedText=c.textSoFar,this.emitTextUpdate(c.textSoFar)}handleReasoningDelta(a){if(!this.eventBelongsToThread(a))return;let b=a.delta??"";if(!b)return;this.ensureStreamingStarted(a.turnId);let c=this.activeItem(a.itemId,"thinking");c.textSoFar+=b,c.receivedDelta=!0,this.emitThinkingUpdate(c.textSoFar)}handleItemStarted(a){if(!this.eventBelongsToThread(a))return;let b=a.item;if("commandExecution"===b.type||"fileChange"===b.type||"mcpToolCall"===b.type||"dynamicToolCall"===b.type||"collabAgentToolCall"===b.type){if(this._activeTurnId=a.turnId,"collabAgentToolCall"===b.type)return void this.emit({type:"subagent_progress",runs:(0,f.k8)(b,Date.now())});this.emit({type:"tool_execution_start",toolCallId:b.id,toolName:k(b)})}}handleItemCompleted(a){if(!this.eventBelongsToThread(a))return;let b=a.item;if(this._activeTurnId=a.turnId,"agentMessage"===b.type){this.ensureStreamingStarted(a.turnId);let c=this._activeItems.get(b.id),d=j(b),e=c?.textSoFar||d||this._accumulatedText;!c?.receivedDelta&&e&&this.emitTextUpdate(e),this.emit({type:"message_end",message:{role:"assistant",content:[{type:"text",text:e}],...this.assistantMeta()}}),this._activeItems.delete(b.id),this._accumulatedText="",this._activeAgentItemId=null}else if("reasoning"===b.type){let c=this._activeItems.get(b.id),d=c?.textSoFar||j(b);d&&!c?.receivedDelta&&(this.ensureStreamingStarted(a.turnId),this.emitThinkingUpdate(d)),this._activeItems.delete(b.id)}else if("collabAgentToolCall"===b.type)this.emit({type:"subagent_progress",runs:(0,f.k8)(b,Date.now())});else("commandExecution"===b.type||"fileChange"===b.type||"mcpToolCall"===b.type||"dynamicToolCall"===b.type)&&this.emit({type:"tool_execution_end",toolCallId:b.id,toolName:k(b),result:function(a){if("commandExecution"===a.type){let b=a.aggregatedOutput??"",c=null!==a.exitCode&&void 0!==a.exitCode?`Exit code: ${a.exitCode}`:"";return b?c?`${b}
4
- ${c}`:b:c}return"fileChange"===a.type?JSON.stringify(a.changes??[]):"mcpToolCall"===a.type?a.error?"string"==typeof a.error?a.error:JSON.stringify(a.error):a.result?"string"==typeof a.result?a.result:JSON.stringify(a.result):"":"dynamicToolCall"===a.type?JSON.stringify(a.contentItems??[]):"collabAgentToolCall"===a.type?JSON.stringify(a.agentsStates??[]):""}(b),isError:"status"in b&&"string"==typeof b.status?"failed"===b.status||"declined"===b.status:"dynamicToolCall"===b.type&&!1===b.success})}handleTurnCompleted(a){if(!this.eventBelongsToThread(a))return;this._isStreaming=!1,this._activeTurnId=null;let b=!1;for(let[a,c]of[...this._activeItems])"text"===c.kind&&c.textSoFar&&(this.emit({type:"message_end",message:{role:"assistant",content:[{type:"text",text:c.textSoFar}],...this.assistantMeta()}}),b=!0),this._activeItems.delete(a);b&&(this._accumulatedText=""),this._accumulatedText&&(this.emit({type:"message_end",message:{role:"assistant",content:[{type:"text",text:this._accumulatedText}],...this.assistantMeta()}}),this._accumulatedText=""),this.emit({type:"agent_end",...a.turn?.status==="failed"?{error:a.turn.error?.message??"Turn failed"}:{}})}handleThreadStatusChanged(a){this.eventBelongsToThread(a)&&a.status?.type==="idle"&&this._isStreaming&&(this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear(),this.emit({type:"agent_end"}))}handlePlanUpdated(a){this.eventBelongsToThread(a)&&this.emit({type:"plan_update",plan:(a.plan??[]).map(a=>({id:a.step,step:a.step,status:"inProgress"===a.status?"inProgress":"completed"===a.status?"completed":"pending"}))})}handleCompacted(a){this.eventBelongsToThread(a)&&(this._isCompacting=!1,this.emit({type:"compaction_end"}))}handleGoalUpdated(a){if(!this.eventBelongsToThread(a))return;let b=(0,g.Bt)(a.goal);b&&(this._threadGoal=b,this.emit({type:"goal_updated",goal:b}))}handleGoalCleared(a){this.eventBelongsToThread(a)&&(this._threadGoal=null,this.emit({type:"goal_cleared"}))}handleError(a){if(!this.eventBelongsToThread(a))return;let b=a.error?.message||a.error?.additionalDetails||"Codex turn failed";this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear(),this.emit({type:"agent_end",error:b})}async prompt(a,b){if(this._isStreaming)throw Error("Session already has a running turn");this._isStreaming=!0,this._accumulatedText="",this._activeItems.clear(),this.emit({type:"agent_start"}),this.emit({type:"message_start",message:{role:"assistant",content:[],...this.assistantMeta()}});try{let c=await this.connection.request("turn/start",{threadId:this.threadId,input:function(a,b){let c=[];for(let d of(a.trim()&&c.push({type:"text",text:a,text_elements:[]}),b??[])){let a=d.mimeType||"image/png";if(d.path){c.push({type:"localImage",path:d.path});try{let b=d.data??(0,h.zb)(d.path);c.push({type:"image",url:`data:${a};base64,${b}`})}catch{}}else d.data&&c.push({type:"image",url:`data:${a};base64,${d.data}`})}return c.length>0?c:[{type:"text",text:"",text_elements:[]}]}(a,b),...this.cwd?{cwd:this.cwd}:{},...(this._wireModel??this._currentModel)?.modelId?{model:(this._wireModel??this._currentModel).modelId}:{},approvalPolicy:this.approvalPolicy(),approvalsReviewer:"user",sandboxPolicy:this.sandboxPolicy()});this._activeTurnId=c.turn?.id??null}catch(a){this._isStreaming=!1,this._activeItems.clear(),this.emit({type:"agent_end",error:a instanceof Error?a.message:String(a)})}}async abort(){if(this._activeTurnId)try{await this.connection.request("turn/interrupt",{threadId:this.threadId,turnId:this._activeTurnId})}catch{}this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear()}async setModel(a,b,c){this._currentModel={provider:a,modelId:b},this._wireModel=c??null}async setSandboxMode(a){this._sandboxMode=a}async resume(a,b){let c=await this.connection.request("thread/resume",{threadId:this.threadId,...this.cwd?{cwd:this.cwd}:{},...a?.modelId?{model:a.modelId}:{},...a?.provider?{modelProvider:a.provider}:{},...b?{baseInstructions:b}:{},approvalPolicy:this.approvalPolicy(),sandbox:this._sandboxMode});if(a&&this._currentModel)this._wireModel=a;else if(c.model){let a=(0,e.g8)(c.modelProvider??c.thread?.modelProvider)??"codex";await this.setModel(a,c.model,c.modelProvider?{provider:c.modelProvider,modelId:c.model}:void 0)}this.restoreActiveTurnFromThread(c.thread)}async fork(){try{let a=await this.connection.request("thread/fork",{threadId:this.threadId,persistExtendedHistory:!0}),b=a.thread?.id;if(!b)return{cancelled:!0};return{newThreadId:b}}catch{return{cancelled:!0}}}async navigateTree(a){try{let b=await this.connection.request("thread/read",{threadId:this.threadId,includeTurns:!0}),c=b.thread?.turns??[],d=c.findIndex(b=>b.items.some(b=>b.id===a));if(d<0||d>=c.length-1)return{cancelled:!1};let e=c.length-d-1;return await this.connection.request("thread/rollback",{threadId:this.threadId,numTurns:e}),{cancelled:!1}}catch{return{cancelled:!0}}}async compact(){this._isCompacting=!0,this.emit({type:"compaction_start"});try{await this.connection.request("thread/compact/start",{threadId:this.threadId})}catch(a){this._isCompacting=!1,this.emit({type:"compaction_end",errorMessage:a instanceof Error?a.message:String(a)})}}async setGoal(a,b){let c=await this.connection.request("thread/goal/set",{threadId:this.threadId,objective:a,status:b?.status??"active",...b?.tokenBudget!==void 0?{tokenBudget:b.tokenBudget}:{}}),d=(0,g.Bt)(c.goal);if(!d)throw Error("thread/goal/set returned no goal");return this._threadGoal=d,this.emit({type:"goal_updated",goal:d}),d}async getGoal(){let a=await this.connection.request("thread/goal/get",{threadId:this.threadId}),b=null==a.goal?null:(0,g.Bt)(a.goal);return this._threadGoal=b,b}async clearGoal(){let a=await this.connection.request("thread/goal/clear",{threadId:this.threadId});return a.cleared&&(this._threadGoal=null,this.emit({type:"goal_cleared"})),!!a.cleared}async rename(a){try{await this.connection.request("thread/name/set",{threadId:this.threadId,name:a})}catch{}}async resolveApproval(a,b){let c=this._pendingApprovals.get(a);if(!c)throw Error(`Approval request not found: ${a}`);this._pendingApprovals.delete(a),"item/permissions/requestApproval"===c.request.method?c.resolve({permissions:b.permissions??{},scope:b.scope??"turn"}):this.isLegacyApprovalMethod(c.request.method)?c.resolve({decision:"accept"===b.decision||"acceptForSession"===b.decision||"approved"===b.decision?"approved":"denied"}):c.resolve({decision:b.decision??"decline"}),this.emit({type:"approval_resolved",requestId:a})}destroy(){if(this._alive){for(let a of(this._alive=!1,this._isStreaming=!1,this.cleanupFns))try{a()}catch{}for(let[,a]of(this.cleanupFns=[],this.listeners=[],this._pendingApprovals))"item/permissions/requestApproval"===a.request.method?a.resolve({permissions:{},scope:"turn"}):this.isLegacyApprovalMethod(a.request.method)?a.resolve({decision:"denied"}):a.resolve({decision:"cancel"});this._pendingApprovals.clear()}}}async function l(a,b){let c=await a.request("thread/start",{cwd:b.cwd,...b.baseInstructions?{baseInstructions:b.baseInstructions}:{},...b.model?{model:(b.wireModel??b.model).modelId,modelProvider:(b.wireModel??b.model).provider}:{},approvalPolicy:"danger-full-access"===b.sandboxMode?"never":"on-request",sandbox:b.sandboxMode??"workspace-write",experimentalRawEvents:!1,persistExtendedHistory:!0}),d=c.thread?.id;if(!d)throw Error("Failed to create codex thread: no thread.id returned");let f=new n(d,b.cwd,a,b.baseInstructions);return await f.setSandboxMode(b.sandboxMode??"workspace-write"),b.model?f.setModel(b.model.provider,b.model.modelId,b.wireModel):b.acceptReturnedModel&&c.model&&f.setModel((0,e.g8)(c.modelProvider)??"codex",c.model,c.modelProvider?{provider:c.modelProvider,modelId:c.model}:void 0),f}async function m(a,b,c,d={}){let f=await a.request("thread/resume",{threadId:b,cwd:c,...d.baseInstructions?{baseInstructions:d.baseInstructions}:{},...d.model?{model:(d.wireModel??d.model).modelId,modelProvider:(d.wireModel??d.model).provider}:{},approvalPolicy:"danger-full-access"===d.sandboxMode?"never":"on-request",sandbox:d.sandboxMode??"workspace-write"}),g=new n(b,c,a);return await g.setSandboxMode(d.sandboxMode??"workspace-write"),d.model?g.setModel(d.model.provider,d.model.modelId,d.wireModel):f.model&&g.setModel((0,e.g8)(f.modelProvider??f.thread?.modelProvider)??"codex",f.model,f.modelProvider?{provider:f.modelProvider,modelId:f.model}:void 0),g.restoreActiveTurnFromThread(f.thread),g}d()}catch(a){d(a)}})},14482:(a,b,c)=>{c.d(b,{nt:()=>g,zb:()=>h});var d=c(29021),e=c.n(d);c(33873),c(64489);var f=c(69835);function g(a,b){return(0,f.vk)(a,b)}function h(a){return e().readFileSync(a).toString("base64")}},46696:(a,b,c)=>{c.d(b,{Bt:()=>d});function d(a){return a&&"object"==typeof a?"string"!=typeof a.threadId||"string"!=typeof a.objective||"string"!=typeof a.status?null:{threadId:a.threadId,objective:a.objective,status:a.status,tokenBudget:"number"==typeof a.tokenBudget?a.tokenBudget:(a.tokenBudget,null),tokensUsed:"number"==typeof a.tokensUsed?a.tokensUsed:0,timeUsedSeconds:"number"==typeof a.timeUsedSeconds?a.timeUsedSeconds:0,createdAt:"number"==typeof a.createdAt?a.createdAt:0,updatedAt:"number"==typeof a.updatedAt?a.updatedAt:0}:null}},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>y,Bj:()=>z,OF:()=>A});var e=c(11002),f=c(46983),g=c(55132),h=c(9805),i=c(29021),j=c(33873),k=c(21820),l=c(40402),m=c(66469),n=c(26257),o=c(72801),p=c(54167),q=c(4087),r=c(75120),s=a([e,f,l]);function t(a){return a instanceof Error?a.message:String(a)}function u(a,b,c){return(0,p.w5)(a.providers,b,c)}[e,f,l]=s.then?(await s)():s;class B{constructor(a,b={}){this.inner=a,this.listeners=[],this.cleanupEventSub=null,this.idleTimer=null,this.onDestroyCallback=null,this.busyOperations=new Set,this.busyStartedAtMs=null,this.activeTools=new Map,this.runStartedAtMs=null,this.firstModelEventAtMs=null,this.lastEventAtMs=null,this.lastEventType=null,this.errorMessage=null,this._alive=!0,this._thinkingLevel="auto",this._enabledExtensions=[],this._serverConnection=a.connection,this._needsResumeBeforePrompt=b.needsResumeBeforePrompt??!0,this._sandboxMode=a.sandboxMode}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile}get cwd(){return this.inner.cwd}isAlive(){return this._alive&&this.inner.isAlive}isBusy(){return this.busyOperations.size>0||this.inner.isStreaming||this.inner.isCompacting}getRuntimeStatus(){let a=Date.now(),b=this.getRuntimePhase(),c=this.runStartedAtMs??(this.isBusy()?this.busyStartedAtMs:null);return{sessionId:this.sessionId,sessionFile:this.sessionFile,cwd:this.cwd||null,busy:this.isBusy(),enabledExtensions:[...this._enabledExtensions],operations:[...this.busyOperations],isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,phase:b,model:this.inner.model?{provider:this.inner.model.provider,id:this.inner.model.modelId}:null,sandboxMode:this._sandboxMode,activeTools:[...this.activeTools.values()],runStartedAt:c?new Date(c).toISOString():null,firstModelEventAt:this.firstModelEventAtMs?new Date(this.firstModelEventAtMs).toISOString():null,lastEventAt:this.lastEventAtMs?new Date(this.lastEventAtMs).toISOString():null,lastEventType:this.lastEventType,uptimeMs:this.isBusy()&&c?a-c:null,waitingForModelMs:"waiting_model"===b&&c?a-c:null,pendingMessageCount:0,errorMessage:this.errorMessage}}start(){this.cleanupEventSub?.(),this.cleanupEventSub=this.inner.onEvent(a=>{this.resetIdleTimer(),this.emitToListeners(a)}),this.resetIdleTimer()}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isBusy()?this.resetIdleTimer():this.destroy()},6e5)}onEvent(a){return this.listeners.push(a),()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}setEnabledExtensions(a){this._enabledExtensions=[...new Set(a.filter(Boolean))].sort()}get enabledExtensions(){return[...this._enabledExtensions]}async send(a){this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{let b=a.images,c=a.message;return this.trackBusy("prompt",(async()=>{if(this.inner.isStreaming||(await this.resumeWithCurrentModel(),this.inner.isStreaming))throw Error("Session already has a running turn");await this.inner.prompt(c,b?.map(a=>({data:a.data,mimeType:a.mimeType,path:a.path,name:a.name})))})()).catch(a=>this.emitAgentError(a)),null}case"abort":try{await this.inner.abort()}catch{}this.busyOperations.delete("prompt"),0===this.busyOperations.size&&(this.busyStartedAtMs=null);try{this.emitToListeners({type:"agent_end"})}catch{}return null;case"get_state":{let a=(0,o.l)((0,l.bd)(this.inner.sessionId),this.inner.model?.modelId);return{sessionId:this.inner.sessionId,sessionFile:"",isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,autoCompactionEnabled:!0,autoRetryEnabled:!0,model:this.inner.model?{id:this.inner.model.modelId,provider:this.inner.model.provider,...a.contextUsage?.contextWindow?{contextWindow:a.contextUsage.contextWindow}:{}}:void 0,messageCount:0,pendingMessageCount:0,contextUsage:a.contextUsage,systemPrompt:this.inner.baseInstructions??"",thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,enabledExtensions:[...this._enabledExtensions],threadGoal:this.inner.threadGoal}}case"set_model":{let{provider:b,modelId:c}=a,d=(0,g.Dw)(),e=(0,g.wB)(d,b),h=(0,g.AX)(d,c,e??b),i=h?.provider.id??e??b,j=h?.modelId??c,k=(0,f.kW)(d.providers,i,j);return await this.inner.setModel(i,j,k),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider??i,modelId:this.inner.model?.modelId??j,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{id:j,provider:i}}case"set_sandbox_mode":{let b="danger-full-access"===a.mode?"danger-full-access":"workspace-write";return this._sandboxMode=b,await this.inner.setSandboxMode(b),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{mode:this._sandboxMode}}case"set_enabled_extensions":{let b=Array.isArray(a.ids)?a.ids.filter(a=>"string"==typeof a):[];return this.setEnabledExtensions(b),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{enabledExtensions:[...this._enabledExtensions]}}case"resolve_approval":{let b="string"==typeof a.requestId?a.requestId:"";if(!b)throw Error("requestId is required");return await this.inner.resolveApproval(b,{decision:"string"==typeof a.decision?a.decision:void 0,permissions:a.permissions,scope:"session"===a.scope?"session":"turn"}),{ok:!0}}case"rename":{let b="string"==typeof a.name?a.name:"";return await this.inner.rename(b),null}case"fork":{let a=await this.inner.fork();if("newThreadId"in a)return(0,n.yJ)(a.newThreadId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),this.destroy(),{cancelled:!1,newSessionId:a.newThreadId};return{cancelled:!0}}case"navigate_tree":{let b=a.targetId;return{cancelled:(await this.inner.navigateTree(b)).cancelled}}case"compact":return await this.trackBusy("compact",this.inner.compact()),null;case"goal_set":{let b="string"==typeof a.objective?a.objective.trim():"";if(!b)throw Error("objective is required");return{goal:await this.inner.setGoal(b)}}case"goal_get":return{goal:await this.inner.getGoal()};case"goal_clear":return{cleared:await this.inner.clearGoal()};case"get_tools":return[{name:"read",description:"Read files",active:!0},{name:"bash",description:"Run shell commands",active:!0},{name:"edit",description:"Edit files",active:!0},{name:"write",description:"Create files",active:!0},{name:"grep",description:"Search files",active:!0},{name:"find",description:"List files",active:!0}];case"set_tools":case"abort_compaction":case"set_auto_compaction":case"set_auto_retry":return null;case"set_thinking_level":return this._thinkingLevel="string"==typeof a.level?a.level:"auto",(0,n.yJ)(this.sessionId,{cwd:this.cwd,thinkingLevel:this._thinkingLevel,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),null;default:throw Error(`Unsupported command: ${b}`)}}async trackBusy(a,b){let c=!this.isBusy()&&0===this.busyOperations.size;this.busyOperations.add(a),(c||!this.busyStartedAtMs)&&(this.busyStartedAtMs=Date.now()),"prompt"===a&&(this.runStartedAtMs=this.busyStartedAtMs,this.firstModelEventAtMs=null,this.errorMessage=null,this.activeTools.clear(),this.lastEventAtMs=this.busyStartedAtMs,this.lastEventType="prompt"),this.resetIdleTimer();try{return await b}finally{this.busyOperations.delete(a),this.isBusy()||0!==this.busyOperations.size||(this.busyStartedAtMs=null),this.resetIdleTimer()}}emitToListeners(a){for(let b of(this.recordRuntimeEvent(a),"agent_end"===a.type&&(this.busyOperations.delete("prompt"),this.busyStartedAtMs=this.isBusy()||this.busyOperations.size>0?this.busyStartedAtMs:null),this.listeners))try{b(a)}catch{}}emitAgentError(a){let b={type:"agent_end",error:t(a)};this.emitToListeners(b)}getRuntimePhase(){return this.inner.isCompacting||this.busyOperations.has("compact")?"compacting":this.activeTools.size>0?"running_tools":this.inner.isStreaming||this.busyOperations.has("prompt")?this.firstModelEventAtMs?"streaming":"waiting_model":"idle"}recordRuntimeEvent(a){let b=Date.now();switch(this.lastEventAtMs=b,this.lastEventType=a.type,a.type){case"agent_start":this.runStartedAtMs??=b,this.firstModelEventAtMs=null,this.errorMessage=null,this.activeTools.clear();break;case"message_update":case"message_end":this.firstModelEventAtMs??=b;break;case"tool_execution_start":{this.firstModelEventAtMs??=b;let c="string"==typeof a.toolCallId&&a.toolCallId?a.toolCallId:`tool:${b}`,d="string"==typeof a.toolName&&a.toolName?a.toolName:"tool";this.activeTools.set(c,{id:c,name:d});break}case"tool_execution_end":{let b="string"==typeof a.toolCallId?a.toolCallId:"";b&&this.activeTools.delete(b),a.isError&&"string"==typeof a.result&&a.result&&(this.errorMessage=a.result);break}case"subagent_progress":this.firstModelEventAtMs??=b,this.recordSubagentTools(a.runs);break;case"compaction_start":case"auto_compaction_start":this.runStartedAtMs??=b;break;case"compaction_end":case"auto_compaction_end":"string"==typeof a.errorMessage&&a.errorMessage&&(this.errorMessage=a.errorMessage);break;case"agent_end":this.activeTools.clear(),"string"==typeof a.error&&a.error&&(this.errorMessage=a.error)}}recordSubagentTools(a){if(Array.isArray(a))for(let b of a){if("object"!=typeof b||null===b)continue;let a=b.id??b.threadId??b.agent,c="string"==typeof a&&a?`subagent:${a}`:`subagent:${Date.now()}`,d=b.agent??b.role??b.threadId,e="string"==typeof d&&d?d:"agent",f="string"==typeof b.status?b.status:"";"running"===f||"pending"===f?this.activeTools.set(c,{id:c,name:e}):this.activeTools.delete(c)}}resolveCurrentModel(){let a=(0,g.Dw)(),b=(0,n.zZ)(this.sessionId),c=u(a,b?.provider,b?.modelId),d=(0,f.g8)(c.provider)??c.provider,e=d?(0,g.wB)(a,d):this.inner.model?.provider,h=c.modelId??this.inner.model?.modelId;if(!h)return null;let i=(0,g.AX)(a,h,e),j=i?.provider.id??e,k=i?.modelId??h;return j&&k?{provider:j,modelId:k,wireModel:(0,f.kW)(a.providers,j,k)}:null}async resumeWithCurrentModel(){let a=this.resolveCurrentModel();if(!this._needsResumeBeforePrompt){a&&await this.inner.setModel(a.provider,a.modelId,a.wireModel),this._needsResumeBeforePrompt=!0;return}a?(await this.inner.setModel(a.provider,a.modelId,a.wireModel),await this.inner.resume(a.wireModel,this.inner.baseInstructions),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:a.provider,modelId:a.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions})):await this.inner.resume(void 0,this.inner.baseInstructions)}destroy(){this._alive&&(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.cleanupEventSub?.(),this.inner.destroy(),(0,f.sM)(this._serverConnection),this.onDestroyCallback?.())}}function v(){if(!globalThis.__annodexSessions){globalThis.__annodexSessions=new Map;let a=()=>globalThis.__annodexSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__annodexSessions}function w(){return globalThis.__annodexSessionAliases||(globalThis.__annodexSessionAliases=new Map),globalThis.__annodexSessionAliases}function x(a){let b=a,c=new Set;for(;!c.has(b);){c.add(b);let a=w().get(b);if(!a)break;b=a}return b}function y(a){return v().get(x(a))}function z(){let a=[...v().values()].filter(a=>{try{return a.isAlive()}catch{return!1}}).map(a=>{try{return a.getRuntimeStatus()}catch{return{sessionId:a.sessionId??"unknown",sessionFile:a.sessionFile??"unknown",cwd:null,busy:!1,enabledExtensions:[],operations:[],isStreaming:!1,isCompacting:!1,phase:"idle",model:null,sandboxMode:"workspace-write",activeTools:[],runStartedAt:null,firstModelEventAt:null,lastEventAt:null,lastEventType:null,uptimeMs:null,waitingForModelMs:null,pendingMessageCount:null,errorMessage:"Failed to read session status"}}}),b=a.filter(a=>a.busy);return{busy:b.length>0,activeSessions:a.length,busySessions:b,sessions:a}}async function A(a,b,c,d,o,p,s,y){let z=v(),A=(globalThis.__annodexStartLocks||(globalThis.__annodexStartLocks=new Map),globalThis.__annodexStartLocks),C=x(a),D=z.get(C);if(D?.isAlive())return{session:D,realSessionId:C};let E=A.get(C);if(E)return E;let F=(async()=>{let d,v=(0,g.Dw)();(0,r.E9)();let x=function(a,b,c="web"){let d=function(a,b){let c=(0,l.$M)(),d=["## Annodex Runtime Rules — higher priority than persona guidance\n\nThese rules override conflicting language in persona-style files such as SOUL.md.\n\n- When the user explicitly asks for an external action in the current conversation, treat that request as authorization to execute it with available tools.\n- Do not refuse solely because the action touches GitHub, Vercel, remote APIs, publishing systems, or other external services.\n- Distinguish authorization from capability. If a tool such as `gh`, `git`, `curl`, or `vercel` may solve the task, try it before claiming it is unavailable. Report the concrete failure only if the command or permission is actually missing.\n- Ask before acting only when the user has not clearly requested the action, the action is unexpectedly destructive beyond the stated request, or it would reveal or transfer secrets beyond the user's instruction."],e=(()=>{let a=(0,j.join)(c,"SOUL.md"),b=(0,j.join)((0,k.homedir)(),".pi","agent","SOUL.md");if(!(0,i.existsSync)(a)&&(0,i.existsSync)(b))try{let c=(0,i.readFileSync)(b,"utf-8");(0,i.existsSync)((0,j.dirname)(a))||(0,i.mkdirSync)((0,j.dirname)(a),{recursive:!0}),(0,i.writeFileSync)(a,c,"utf-8")}catch{}return(0,m.sz)(c)})();if((0,i.existsSync)(e))try{let a=(0,i.readFileSync)(e,"utf-8").trim();a&&d.push((0,m.Is)(a,(0,m.Tg)(e)))}catch{}let f=(()=>{let a=(0,j.join)(c,"HARNESS.md"),b=(0,j.join)((0,k.homedir)(),".pi","agent","HARNESS.md");if(!(0,i.existsSync)(a)&&(0,i.existsSync)(b))try{let c=(0,i.readFileSync)(b,"utf-8");(0,i.existsSync)((0,j.dirname)(a))||(0,i.mkdirSync)((0,j.dirname)(a),{recursive:!0}),(0,i.writeFileSync)(a,c,"utf-8")}catch{}return(0,m.td)(c)})();if((0,i.existsSync)(f))try{let a=(0,i.readFileSync)(f,"utf-8").trim();a&&d.push((0,m.x9)(a,(0,m.Tg)(f)))}catch{}for(let b of[(0,j.join)(a,"AGENTS.md"),(0,j.join)(a,"CLAUDE.md")])if((0,i.existsSync)(b))try{let a=(0,i.readFileSync)(b,"utf-8").trim();if(a){d.push("## Project Instructions","",a);break}}catch{}let g=(0,m.o7)(a);if((0,i.existsSync)(g))try{let a=(0,i.readFileSync)(g,"utf-8").trim();a&&d.push((0,m.w0)(a,(0,m.Tg)(g)))}catch{}let n=(0,m.a)(a);if((0,i.existsSync)(n))try{let a=(0,i.readFileSync)(n,"utf-8").trim();a&&d.push((0,m.Me)(a,(0,m.Tg)(n)))}catch{}let o=d.join("\n\n");return o=b.generativeUI?(0,h.zN)((0,h.FE)(o)):(0,h.FE)(o)}(a,b);if("im"!==c)return d;let e=(0,h.FE)(d);return e.includes("<wecom_im_channel>")?e:`${e}
4
+ ${c}`:b:c}return"fileChange"===a.type?JSON.stringify(a.changes??[]):"mcpToolCall"===a.type?a.error?"string"==typeof a.error?a.error:JSON.stringify(a.error):a.result?"string"==typeof a.result?a.result:JSON.stringify(a.result):"":"dynamicToolCall"===a.type?JSON.stringify(a.contentItems??[]):"collabAgentToolCall"===a.type?JSON.stringify(a.agentsStates??[]):""}(b),isError:"status"in b&&"string"==typeof b.status?"failed"===b.status||"declined"===b.status:"dynamicToolCall"===b.type&&!1===b.success})}handleTurnCompleted(a){if(!this.eventBelongsToThread(a))return;this._isStreaming=!1,this._activeTurnId=null;let b=!1;for(let[a,c]of[...this._activeItems])"text"===c.kind&&c.textSoFar&&(this.emit({type:"message_end",message:{role:"assistant",content:[{type:"text",text:c.textSoFar}],...this.assistantMeta()}}),b=!0),this._activeItems.delete(a);b&&(this._accumulatedText=""),this._accumulatedText&&(this.emit({type:"message_end",message:{role:"assistant",content:[{type:"text",text:this._accumulatedText}],...this.assistantMeta()}}),this._accumulatedText=""),this.emit({type:"agent_end",...a.turn?.status==="failed"?{error:a.turn.error?.message??"Turn failed"}:{}})}handleThreadStatusChanged(a){this.eventBelongsToThread(a)&&a.status?.type==="idle"&&this._isStreaming&&(this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear(),this.emit({type:"agent_end"}))}handlePlanUpdated(a){this.eventBelongsToThread(a)&&this.emit({type:"plan_update",plan:(a.plan??[]).map(a=>({id:a.step,step:a.step,status:"inProgress"===a.status?"inProgress":"completed"===a.status?"completed":"pending"}))})}handleCompacted(a){this.eventBelongsToThread(a)&&(this._isCompacting=!1,this.emit({type:"compaction_end"}))}handleGoalUpdated(a){if(!this.eventBelongsToThread(a))return;let b=(0,g.Bt)(a.goal);b&&(this._threadGoal=b,this.emit({type:"goal_updated",goal:b}))}handleGoalCleared(a){this.eventBelongsToThread(a)&&(this._threadGoal=null,this.emit({type:"goal_cleared"}))}handleError(a){if(!this.eventBelongsToThread(a))return;let b=a.error?.message||a.error?.additionalDetails||"Codex turn failed";this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear(),this.emit({type:"agent_end",error:b})}async prompt(a,b){if(this._isStreaming)throw Error("Session already has a running turn");this._isStreaming=!0,this._accumulatedText="",this._activeItems.clear(),this.emit({type:"agent_start"}),this.emit({type:"message_start",message:{role:"assistant",content:[],...this.assistantMeta()}});try{let c=await this.connection.request("turn/start",{threadId:this.threadId,input:function(a,b){let c=[];for(let d of(a.trim()&&c.push({type:"text",text:a,text_elements:[]}),b??[])){let a=d.mimeType||"image/png";if(d.path){c.push({type:"localImage",path:d.path});try{let b=d.data??(0,h.zb)(d.path);c.push({type:"image",url:`data:${a};base64,${b}`})}catch{}}else d.data&&c.push({type:"image",url:`data:${a};base64,${d.data}`})}return c.length>0?c:[{type:"text",text:"",text_elements:[]}]}(a,b),...this.cwd?{cwd:this.cwd}:{},...(this._wireModel??this._currentModel)?.modelId?{model:(this._wireModel??this._currentModel).modelId}:{},approvalPolicy:this.approvalPolicy(),approvalsReviewer:"user",sandboxPolicy:this.sandboxPolicy()});this._activeTurnId=c.turn?.id??null}catch(a){this._isStreaming=!1,this._activeItems.clear(),this.emit({type:"agent_end",error:a instanceof Error?a.message:String(a)})}}async abort(){if(this._activeTurnId)try{await this.connection.request("turn/interrupt",{threadId:this.threadId,turnId:this._activeTurnId})}catch{}this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear()}async setModel(a,b,c){this._currentModel={provider:a,modelId:b},this._wireModel=c??null}async setSandboxMode(a){this._sandboxMode=a}async resume(a,b){let c=await this.connection.request("thread/resume",{threadId:this.threadId,...this.cwd?{cwd:this.cwd}:{},...a?.modelId?{model:a.modelId}:{},...a?.provider?{modelProvider:a.provider}:{},...b?{baseInstructions:b}:{},approvalPolicy:this.approvalPolicy(),sandbox:this._sandboxMode});if(a&&this._currentModel)this._wireModel=a;else if(c.model){let a=(0,e.g8)(c.modelProvider??c.thread?.modelProvider)??"codex";await this.setModel(a,c.model,c.modelProvider?{provider:c.modelProvider,modelId:c.model}:void 0)}this.restoreActiveTurnFromThread(c.thread)}async fork(){try{let a=await this.connection.request("thread/fork",{threadId:this.threadId,persistExtendedHistory:!0}),b=a.thread?.id;if(!b)return{cancelled:!0};return{newThreadId:b}}catch{return{cancelled:!0}}}async navigateTree(a){try{let b=await this.connection.request("thread/read",{threadId:this.threadId,includeTurns:!0}),c=b.thread?.turns??[],d=c.findIndex(b=>b.items.some(b=>b.id===a));if(d<0||d>=c.length-1)return{cancelled:!1};let e=c.length-d-1;return await this.connection.request("thread/rollback",{threadId:this.threadId,numTurns:e}),{cancelled:!1}}catch{return{cancelled:!0}}}async compact(){this._isCompacting=!0,this.emit({type:"compaction_start"});try{await this.connection.request("thread/compact/start",{threadId:this.threadId})}catch(a){this._isCompacting=!1,this.emit({type:"compaction_end",errorMessage:a instanceof Error?a.message:String(a)})}}async setGoal(a,b){let c=await this.connection.request("thread/goal/set",{threadId:this.threadId,objective:a,status:b?.status??"active",...b?.tokenBudget!==void 0?{tokenBudget:b.tokenBudget}:{}}),d=(0,g.Bt)(c.goal);if(!d)throw Error("thread/goal/set returned no goal");return this._threadGoal=d,this.emit({type:"goal_updated",goal:d}),d}async getGoal(){let a=await this.connection.request("thread/goal/get",{threadId:this.threadId}),b=null==a.goal?null:(0,g.Bt)(a.goal);return this._threadGoal=b,b}async clearGoal(){let a=await this.connection.request("thread/goal/clear",{threadId:this.threadId});return a.cleared&&(this._threadGoal=null,this.emit({type:"goal_cleared"})),!!a.cleared}async rename(a){await this.connection.request("thread/name/set",{threadId:this.threadId,name:a})}async resolveApproval(a,b){let c=this._pendingApprovals.get(a);if(!c)throw Error(`Approval request not found: ${a}`);this._pendingApprovals.delete(a),"item/permissions/requestApproval"===c.request.method?c.resolve({permissions:b.permissions??{},scope:b.scope??"turn"}):this.isLegacyApprovalMethod(c.request.method)?c.resolve({decision:"accept"===b.decision||"acceptForSession"===b.decision||"approved"===b.decision?"approved":"denied"}):c.resolve({decision:b.decision??"decline"}),this.emit({type:"approval_resolved",requestId:a})}destroy(){if(this._alive){for(let a of(this._alive=!1,this._isStreaming=!1,this.cleanupFns))try{a()}catch{}for(let[,a]of(this.cleanupFns=[],this.listeners=[],this._pendingApprovals))"item/permissions/requestApproval"===a.request.method?a.resolve({permissions:{},scope:"turn"}):this.isLegacyApprovalMethod(a.request.method)?a.resolve({decision:"denied"}):a.resolve({decision:"cancel"});this._pendingApprovals.clear()}}}async function l(a,b){let c=await a.request("thread/start",{cwd:b.cwd,...b.baseInstructions?{baseInstructions:b.baseInstructions}:{},...b.model?{model:(b.wireModel??b.model).modelId,modelProvider:(b.wireModel??b.model).provider}:{},approvalPolicy:"danger-full-access"===b.sandboxMode?"never":"on-request",sandbox:b.sandboxMode??"workspace-write",experimentalRawEvents:!1,persistExtendedHistory:!0}),d=c.thread?.id;if(!d)throw Error("Failed to create codex thread: no thread.id returned");let f=new n(d,b.cwd,a,b.baseInstructions);return await f.setSandboxMode(b.sandboxMode??"workspace-write"),b.model?f.setModel(b.model.provider,b.model.modelId,b.wireModel):b.acceptReturnedModel&&c.model&&f.setModel((0,e.g8)(c.modelProvider)??"codex",c.model,c.modelProvider?{provider:c.modelProvider,modelId:c.model}:void 0),f}async function m(a,b,c,d={}){let f=await a.request("thread/resume",{threadId:b,cwd:c,...d.baseInstructions?{baseInstructions:d.baseInstructions}:{},...d.model?{model:(d.wireModel??d.model).modelId,modelProvider:(d.wireModel??d.model).provider}:{},approvalPolicy:"danger-full-access"===d.sandboxMode?"never":"on-request",sandbox:d.sandboxMode??"workspace-write"}),g=new n(b,c,a);return await g.setSandboxMode(d.sandboxMode??"workspace-write"),d.model?g.setModel(d.model.provider,d.model.modelId,d.wireModel):f.model&&g.setModel((0,e.g8)(f.modelProvider??f.thread?.modelProvider)??"codex",f.model,f.modelProvider?{provider:f.modelProvider,modelId:f.model}:void 0),g.restoreActiveTurnFromThread(f.thread),g}d()}catch(a){d(a)}})},14482:(a,b,c)=>{c.d(b,{nt:()=>g,zb:()=>h});var d=c(29021),e=c.n(d);c(33873),c(64489);var f=c(69835);function g(a,b){return(0,f.vk)(a,b)}function h(a){return e().readFileSync(a).toString("base64")}},46696:(a,b,c)=>{c.d(b,{Bt:()=>d});function d(a){return a&&"object"==typeof a?"string"!=typeof a.threadId||"string"!=typeof a.objective||"string"!=typeof a.status?null:{threadId:a.threadId,objective:a.objective,status:a.status,tokenBudget:"number"==typeof a.tokenBudget?a.tokenBudget:(a.tokenBudget,null),tokensUsed:"number"==typeof a.tokensUsed?a.tokensUsed:0,timeUsedSeconds:"number"==typeof a.timeUsedSeconds?a.timeUsedSeconds:0,createdAt:"number"==typeof a.createdAt?a.createdAt:0,updatedAt:"number"==typeof a.updatedAt?a.updatedAt:0}:null}},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>y,Bj:()=>z,OF:()=>A});var e=c(11002),f=c(46983),g=c(55132),h=c(9805),i=c(29021),j=c(33873),k=c(21820),l=c(40402),m=c(66469),n=c(26257),o=c(72801),p=c(54167),q=c(4087),r=c(75120),s=a([e,f,l]);function t(a){return a instanceof Error?a.message:String(a)}function u(a,b,c){return(0,p.w5)(a.providers,b,c)}[e,f,l]=s.then?(await s)():s;class B{constructor(a,b={}){this.inner=a,this.listeners=[],this.cleanupEventSub=null,this.idleTimer=null,this.onDestroyCallback=null,this.busyOperations=new Set,this.busyStartedAtMs=null,this.activeTools=new Map,this.runStartedAtMs=null,this.firstModelEventAtMs=null,this.lastEventAtMs=null,this.lastEventType=null,this.errorMessage=null,this._alive=!0,this._thinkingLevel="auto",this._enabledExtensions=[],this._serverConnection=a.connection,this._needsResumeBeforePrompt=b.needsResumeBeforePrompt??!0,this._sandboxMode=a.sandboxMode}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile}get cwd(){return this.inner.cwd}isAlive(){return this._alive&&this.inner.isAlive}isBusy(){return this.busyOperations.size>0||this.inner.isStreaming||this.inner.isCompacting}getRuntimeStatus(){let a=Date.now(),b=this.getRuntimePhase(),c=this.runStartedAtMs??(this.isBusy()?this.busyStartedAtMs:null);return{sessionId:this.sessionId,sessionFile:this.sessionFile,cwd:this.cwd||null,busy:this.isBusy(),enabledExtensions:[...this._enabledExtensions],operations:[...this.busyOperations],isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,phase:b,model:this.inner.model?{provider:this.inner.model.provider,id:this.inner.model.modelId}:null,sandboxMode:this._sandboxMode,activeTools:[...this.activeTools.values()],runStartedAt:c?new Date(c).toISOString():null,firstModelEventAt:this.firstModelEventAtMs?new Date(this.firstModelEventAtMs).toISOString():null,lastEventAt:this.lastEventAtMs?new Date(this.lastEventAtMs).toISOString():null,lastEventType:this.lastEventType,uptimeMs:this.isBusy()&&c?a-c:null,waitingForModelMs:"waiting_model"===b&&c?a-c:null,pendingMessageCount:0,errorMessage:this.errorMessage}}start(){this.cleanupEventSub?.(),this.cleanupEventSub=this.inner.onEvent(a=>{this.resetIdleTimer(),this.emitToListeners(a)}),this.resetIdleTimer()}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isBusy()?this.resetIdleTimer():this.destroy()},6e5)}onEvent(a){return this.listeners.push(a),()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}setEnabledExtensions(a){this._enabledExtensions=[...new Set(a.filter(Boolean))].sort()}get enabledExtensions(){return[...this._enabledExtensions]}async send(a){this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{let b=a.images,c=a.message;return this.trackBusy("prompt",(async()=>{if(this.inner.isStreaming||(await this.resumeWithCurrentModel(),this.inner.isStreaming))throw Error("Session already has a running turn");await this.inner.prompt(c,b?.map(a=>({data:a.data,mimeType:a.mimeType,path:a.path,name:a.name})))})()).catch(a=>this.emitAgentError(a)),null}case"abort":try{await this.inner.abort()}catch{}this.busyOperations.delete("prompt"),0===this.busyOperations.size&&(this.busyStartedAtMs=null);try{this.emitToListeners({type:"agent_end"})}catch{}return null;case"get_state":{let a=(0,o.l)((0,l.bd)(this.inner.sessionId),this.inner.model?.modelId);return{sessionId:this.inner.sessionId,sessionFile:"",isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,autoCompactionEnabled:!0,autoRetryEnabled:!0,model:this.inner.model?{id:this.inner.model.modelId,provider:this.inner.model.provider,...a.contextUsage?.contextWindow?{contextWindow:a.contextUsage.contextWindow}:{}}:void 0,messageCount:0,pendingMessageCount:0,contextUsage:a.contextUsage,systemPrompt:this.inner.baseInstructions??"",thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,enabledExtensions:[...this._enabledExtensions],threadGoal:this.inner.threadGoal}}case"set_model":{let{provider:b,modelId:c}=a,d=(0,g.Dw)(),e=(0,g.wB)(d,b),h=(0,g.AX)(d,c,e??b),i=h?.provider.id??e??b,j=h?.modelId??c,k=(0,f.kW)(d.providers,i,j);return await this.inner.setModel(i,j,k),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider??i,modelId:this.inner.model?.modelId??j,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{id:j,provider:i}}case"set_sandbox_mode":{let b="danger-full-access"===a.mode?"danger-full-access":"workspace-write";return this._sandboxMode=b,await this.inner.setSandboxMode(b),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{mode:this._sandboxMode}}case"set_enabled_extensions":{let b=Array.isArray(a.ids)?a.ids.filter(a=>"string"==typeof a):[];return this.setEnabledExtensions(b),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{enabledExtensions:[...this._enabledExtensions]}}case"resolve_approval":{let b="string"==typeof a.requestId?a.requestId:"";if(!b)throw Error("requestId is required");return await this.inner.resolveApproval(b,{decision:"string"==typeof a.decision?a.decision:void 0,permissions:a.permissions,scope:"session"===a.scope?"session":"turn"}),{ok:!0}}case"rename":{let b="string"==typeof a.name?a.name:"";return await this.inner.rename(b),null}case"fork":{let a=await this.inner.fork();if("newThreadId"in a)return(0,n.yJ)(a.newThreadId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),this.destroy(),{cancelled:!1,newSessionId:a.newThreadId};return{cancelled:!0}}case"navigate_tree":{let b=a.targetId;return{cancelled:(await this.inner.navigateTree(b)).cancelled}}case"compact":return await this.trackBusy("compact",this.inner.compact()),null;case"goal_set":{let b="string"==typeof a.objective?a.objective.trim():"";if(!b)throw Error("objective is required");return{goal:await this.inner.setGoal(b)}}case"goal_get":return{goal:await this.inner.getGoal()};case"goal_clear":return{cleared:await this.inner.clearGoal()};case"get_tools":return[{name:"read",description:"Read files",active:!0},{name:"bash",description:"Run shell commands",active:!0},{name:"edit",description:"Edit files",active:!0},{name:"write",description:"Create files",active:!0},{name:"grep",description:"Search files",active:!0},{name:"find",description:"List files",active:!0}];case"set_tools":case"abort_compaction":case"set_auto_compaction":case"set_auto_retry":return null;case"set_thinking_level":return this._thinkingLevel="string"==typeof a.level?a.level:"auto",(0,n.yJ)(this.sessionId,{cwd:this.cwd,thinkingLevel:this._thinkingLevel,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),null;default:throw Error(`Unsupported command: ${b}`)}}async trackBusy(a,b){let c=!this.isBusy()&&0===this.busyOperations.size;this.busyOperations.add(a),(c||!this.busyStartedAtMs)&&(this.busyStartedAtMs=Date.now()),"prompt"===a&&(this.runStartedAtMs=this.busyStartedAtMs,this.firstModelEventAtMs=null,this.errorMessage=null,this.activeTools.clear(),this.lastEventAtMs=this.busyStartedAtMs,this.lastEventType="prompt"),this.resetIdleTimer();try{return await b}finally{this.busyOperations.delete(a),this.isBusy()||0!==this.busyOperations.size||(this.busyStartedAtMs=null),this.resetIdleTimer()}}emitToListeners(a){for(let b of(this.recordRuntimeEvent(a),"agent_end"===a.type&&(this.busyOperations.delete("prompt"),this.busyStartedAtMs=this.isBusy()||this.busyOperations.size>0?this.busyStartedAtMs:null),this.listeners))try{b(a)}catch{}}emitAgentError(a){let b={type:"agent_end",error:t(a)};this.emitToListeners(b)}getRuntimePhase(){return this.inner.isCompacting||this.busyOperations.has("compact")?"compacting":this.activeTools.size>0?"running_tools":this.inner.isStreaming||this.busyOperations.has("prompt")?this.firstModelEventAtMs?"streaming":"waiting_model":"idle"}recordRuntimeEvent(a){let b=Date.now();switch(this.lastEventAtMs=b,this.lastEventType=a.type,a.type){case"agent_start":this.runStartedAtMs??=b,this.firstModelEventAtMs=null,this.errorMessage=null,this.activeTools.clear();break;case"message_update":case"message_end":this.firstModelEventAtMs??=b;break;case"tool_execution_start":{this.firstModelEventAtMs??=b;let c="string"==typeof a.toolCallId&&a.toolCallId?a.toolCallId:`tool:${b}`,d="string"==typeof a.toolName&&a.toolName?a.toolName:"tool";this.activeTools.set(c,{id:c,name:d});break}case"tool_execution_end":{let b="string"==typeof a.toolCallId?a.toolCallId:"";b&&this.activeTools.delete(b),a.isError&&"string"==typeof a.result&&a.result&&(this.errorMessage=a.result);break}case"subagent_progress":this.firstModelEventAtMs??=b,this.recordSubagentTools(a.runs);break;case"compaction_start":case"auto_compaction_start":this.runStartedAtMs??=b;break;case"compaction_end":case"auto_compaction_end":"string"==typeof a.errorMessage&&a.errorMessage&&(this.errorMessage=a.errorMessage);break;case"agent_end":this.activeTools.clear(),"string"==typeof a.error&&a.error&&(this.errorMessage=a.error)}}recordSubagentTools(a){if(Array.isArray(a))for(let b of a){if("object"!=typeof b||null===b)continue;let a=b.id??b.threadId??b.agent,c="string"==typeof a&&a?`subagent:${a}`:`subagent:${Date.now()}`,d=b.agent??b.role??b.threadId,e="string"==typeof d&&d?d:"agent",f="string"==typeof b.status?b.status:"";"running"===f||"pending"===f?this.activeTools.set(c,{id:c,name:e}):this.activeTools.delete(c)}}resolveCurrentModel(){let a=(0,g.Dw)(),b=(0,n.zZ)(this.sessionId),c=u(a,b?.provider,b?.modelId),d=(0,f.g8)(c.provider)??c.provider,e=d?(0,g.wB)(a,d):this.inner.model?.provider,h=c.modelId??this.inner.model?.modelId;if(!h)return null;let i=(0,g.AX)(a,h,e),j=i?.provider.id??e,k=i?.modelId??h;return j&&k?{provider:j,modelId:k,wireModel:(0,f.kW)(a.providers,j,k)}:null}async resumeWithCurrentModel(){let a=this.resolveCurrentModel();if(!this._needsResumeBeforePrompt){a&&await this.inner.setModel(a.provider,a.modelId,a.wireModel),this._needsResumeBeforePrompt=!0;return}a?(await this.inner.setModel(a.provider,a.modelId,a.wireModel),await this.inner.resume(a.wireModel,this.inner.baseInstructions),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:a.provider,modelId:a.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions})):await this.inner.resume(void 0,this.inner.baseInstructions)}destroy(){this._alive&&(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.cleanupEventSub?.(),this.inner.destroy(),(0,f.sM)(this._serverConnection),this.onDestroyCallback?.())}}function v(){if(!globalThis.__annodexSessions){globalThis.__annodexSessions=new Map;let a=()=>globalThis.__annodexSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__annodexSessions}function w(){return globalThis.__annodexSessionAliases||(globalThis.__annodexSessionAliases=new Map),globalThis.__annodexSessionAliases}function x(a){let b=a,c=new Set;for(;!c.has(b);){c.add(b);let a=w().get(b);if(!a)break;b=a}return b}function y(a){return v().get(x(a))}function z(){let a=[...v().values()].filter(a=>{try{return a.isAlive()}catch{return!1}}).map(a=>{try{return a.getRuntimeStatus()}catch{return{sessionId:a.sessionId??"unknown",sessionFile:a.sessionFile??"unknown",cwd:null,busy:!1,enabledExtensions:[],operations:[],isStreaming:!1,isCompacting:!1,phase:"idle",model:null,sandboxMode:"workspace-write",activeTools:[],runStartedAt:null,firstModelEventAt:null,lastEventAt:null,lastEventType:null,uptimeMs:null,waitingForModelMs:null,pendingMessageCount:null,errorMessage:"Failed to read session status"}}}),b=a.filter(a=>a.busy);return{busy:b.length>0,activeSessions:a.length,busySessions:b,sessions:a}}async function A(a,b,c,d,o,p,s,y){let z=v(),A=(globalThis.__annodexStartLocks||(globalThis.__annodexStartLocks=new Map),globalThis.__annodexStartLocks),C=x(a),D=z.get(C);if(D?.isAlive())return{session:D,realSessionId:C};let E=A.get(C);if(E)return E;let F=(async()=>{let d,v=(0,g.Dw)();(0,r.E9)();let x=function(a,b,c="web"){let d=function(a,b){let c=(0,l.$M)(),d=["## Annodex Runtime Rules — higher priority than persona guidance\n\nThese rules override conflicting language in persona-style files such as SOUL.md.\n\n- When the user explicitly asks for an external action in the current conversation, treat that request as authorization to execute it with available tools.\n- Do not refuse solely because the action touches GitHub, Vercel, remote APIs, publishing systems, or other external services.\n- Distinguish authorization from capability. If a tool such as `gh`, `git`, `curl`, or `vercel` may solve the task, try it before claiming it is unavailable. Report the concrete failure only if the command or permission is actually missing.\n- Ask before acting only when the user has not clearly requested the action, the action is unexpectedly destructive beyond the stated request, or it would reveal or transfer secrets beyond the user's instruction."],e=(()=>{let a=(0,j.join)(c,"SOUL.md"),b=(0,j.join)((0,k.homedir)(),".pi","agent","SOUL.md");if(!(0,i.existsSync)(a)&&(0,i.existsSync)(b))try{let c=(0,i.readFileSync)(b,"utf-8");(0,i.existsSync)((0,j.dirname)(a))||(0,i.mkdirSync)((0,j.dirname)(a),{recursive:!0}),(0,i.writeFileSync)(a,c,"utf-8")}catch{}return(0,m.sz)(c)})();if((0,i.existsSync)(e))try{let a=(0,i.readFileSync)(e,"utf-8").trim();a&&d.push((0,m.Is)(a,(0,m.Tg)(e)))}catch{}let f=(()=>{let a=(0,j.join)(c,"HARNESS.md"),b=(0,j.join)((0,k.homedir)(),".pi","agent","HARNESS.md");if(!(0,i.existsSync)(a)&&(0,i.existsSync)(b))try{let c=(0,i.readFileSync)(b,"utf-8");(0,i.existsSync)((0,j.dirname)(a))||(0,i.mkdirSync)((0,j.dirname)(a),{recursive:!0}),(0,i.writeFileSync)(a,c,"utf-8")}catch{}return(0,m.td)(c)})();if((0,i.existsSync)(f))try{let a=(0,i.readFileSync)(f,"utf-8").trim();a&&d.push((0,m.x9)(a,(0,m.Tg)(f)))}catch{}for(let b of[(0,j.join)(a,"AGENTS.md"),(0,j.join)(a,"CLAUDE.md")])if((0,i.existsSync)(b))try{let a=(0,i.readFileSync)(b,"utf-8").trim();if(a){d.push("## Project Instructions","",a);break}}catch{}let g=(0,m.o7)(a);if((0,i.existsSync)(g))try{let a=(0,i.readFileSync)(g,"utf-8").trim();a&&d.push((0,m.w0)(a,(0,m.Tg)(g)))}catch{}let n=(0,m.a)(a);if((0,i.existsSync)(n))try{let a=(0,i.readFileSync)(n,"utf-8").trim();a&&d.push((0,m.Me)(a,(0,m.Tg)(n)))}catch{}let o=d.join("\n\n");return o=b.generativeUI?(0,h.zN)((0,h.FE)(o)):(0,h.FE)(o)}(a,b);if("im"!==c)return d;let e=(0,h.FE)(d);return e.includes("<wecom_im_channel>")?e:`${e}
5
5
 
6
6
  <wecom_im_channel>
7
7
  WeCom IM channel: plain text and file attachments only.
@@ -1,5 +1,5 @@
1
- "use strict";exports.id=6983,exports.ids=[6983],exports.modules={39006:a=>{a.exports={rE:"0.1.95"}},46983:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{DY:()=>K,H3:()=>A,Mi:()=>I,g8:()=>x,gu:()=>G,kW:()=>y,nj:()=>J,nt:()=>t,pU:()=>s,sM:()=>H});var e=c(79646),f=c(4984),g=c(55511),h=c(56220),i=c(29021),j=c(33873),k=c(91645),l=c(55399),m=c(54167),n=c(65833),o=c(99526),p=c(39006),q=c(70784),r=a([h]);function s(a){let b="string"==typeof a?.status?a.status.toLowerCase():"";return"inprogress"===b||"in_progress"===b||"running"===b||"pending"===b||"queued"===b}function t(a){return!!a?.turns?.some(a=>s(a))}h=(r.then?(await r)():r)[0];class L{constructor(a,b,c){this.cwd=a,this.transport=b,this.serverKey=c,this.ws=null,this.readline=null,this.pending=new Map,this.nextId=1,this.notificationHandlers=new Map,this.anyNotificationHandlers=[],this.serverRequestHandlers=[],this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectDelay=1e3,this._closed=!1,this.mode=b.mode}isConnected(){return"ws"===this.transport.mode?this.ws?.readyState===h.WebSocket.OPEN:!this._closed&&!!this.transport.process.pid&&null===this.transport.process.exitCode&&!this.transport.process.killed}isClosed(){return this._closed}async connect(){(this._closed=!1,"stdio"===this.transport.mode)?await this.connectStdio():await this.connectWebSocket()}async connectWebSocket(){if("ws"!==this.transport.mode)throw Error("Invalid websocket transport state");let{default:a}=await Promise.resolve().then(c.bind(c,56220)),b=this.transport.url;return new Promise((c,d)=>{let e=new a(b);this.ws=e,e.on("open",()=>{this.reconnectAttempts=0,this.initialize().then(c).catch(d)}),e.on("message",a=>{this.handleRawMessage(a.toString())}),e.on("close",()=>{this.handleDisconnect()}),e.on("error",a=>{0===this.reconnectAttempts&&d(a)})})}async connectStdio(){if("stdio"!==this.transport.mode)throw Error("Invalid stdio transport state");let a=this.transport.process;if(!a.stdin||!a.stdout)throw Error("Codex stdio transport is missing stdin/stdout");this.readline=(0,f.createInterface)({input:a.stdout}),this.readline.on("line",a=>this.handleRawMessage(a)),this.readline.on("close",()=>this.handleDisconnect()),await this.initialize()}async initialize(){let a=await this.request("initialize",{clientInfo:{name:"annodex",title:n.C3,version:p.rE},capabilities:{experimentalApi:!0}});this.notify("initialized",{}),this.serverInfo=a}notify(a,b){this.isConnected()&&this.sendRaw(JSON.stringify({jsonrpc:"2.0",method:a,params:b}))}request(a,b,c=3e5){if(!this.isConnected())return Promise.reject(Error(`Codex server not connected (method: ${a})`));let d=this.nextId++;return new Promise((e,f)=>{let g=setTimeout(()=>{this.pending.delete(d),f(Error(`Request timeout: ${a}`))},c);this.pending.set(d,{resolve:e,reject:f,timer:g}),this.sendRaw(JSON.stringify({jsonrpc:"2.0",id:d,method:a,params:b}))})}onNotification(a,b){let c=this.notificationHandlers.get(a)??[];return c.push(b),this.notificationHandlers.set(a,c),()=>{let c=this.notificationHandlers.get(a);if(c){let a=c.indexOf(b);-1!==a&&c.splice(a,1)}}}onAnyNotification(a){return this.anyNotificationHandlers.push(a),()=>{let b=this.anyNotificationHandlers.indexOf(a);-1!==b&&this.anyNotificationHandlers.splice(b,1)}}onServerRequest(a){return this.serverRequestHandlers.push(a),()=>{let b=this.serverRequestHandlers.indexOf(a);-1!==b&&this.serverRequestHandlers.splice(b,1)}}handleRawMessage(a){let b=a.trim();if(b)try{let a=JSON.parse(b);this.handleMessage(a)}catch{}}sendRaw(a){if("ws"===this.transport.mode){this.ws?.readyState===h.WebSocket.OPEN&&this.ws.send(a);return}let b=this.transport.process.stdin;b&&!b.destroyed&&b.write(`${a}
2
- `)}handleMessage(a){if("method"in a&&"id"in a)return void this.respondToServerRequest(a);if("method"in a&&!("id"in a)){for(let b of("1"===process.env.ANNODEX_CODEX_EVENT_LOG&&console.log(`[codex event] ${a.method}`),[...this.anyNotificationHandlers]))b(a.method,a.params);let b=this.notificationHandlers.get(a.method);if(b)for(let c of[...b])c(a.params);return}if("id"in a&&("result"in a||"error"in a)){let b=this.pending.get(a.id);b&&(clearTimeout(b.timer),this.pending.delete(a.id),"error"in a&&a.error?b.reject(Error(a.error.message??"JSON-RPC error")):b.resolve(a.result))}}async respondToServerRequest(a){let b;if(!this.isConnected())return;for(let c of[...this.serverRequestHandlers]){try{b=await c({id:a.id,method:a.method,params:a.params})}catch{b=void 0}if(void 0!==b)break}void 0===b&&(b=function(a){switch(a){case"item/commandExecution/requestApproval":case"item/fileChange/requestApproval":return{decision:"decline"};case"applyPatchApproval":case"execCommandApproval":return{decision:"denied"};case"item/tool/requestUserInput":return{answers:{}};case"mcpServer/elicitation/request":return{action:"decline",content:null,_meta:null};case"item/permissions/requestApproval":return{permissions:{},scope:"turn"};case"item/tool/call":return{contentItems:[],success:!1};case"account/chatgptAuthTokens/refresh":return{accessToken:"",chatgptAccountId:"",chatgptPlanType:null};default:return{}}}(a.method));let c={jsonrpc:"2.0",id:a.id,result:b};this.sendRaw(JSON.stringify(c))}handleDisconnect(){for(let[,a]of this.pending)clearTimeout(a.timer),a.reject(Error("Codex server disconnected"));if(this.pending.clear(),"stdio"===this.transport.mode){this._closed=!0;return}if(!this._closed&&this.reconnectAttempts<this.maxReconnectAttempts){this.reconnectAttempts++;let a=this.reconnectDelay*Math.pow(2,this.reconnectAttempts-1);setTimeout(()=>{this._closed||this.connect().catch(()=>{})},a)}}close(){this._closed=!0,this.readline?.close(),this.readline=null,this.ws?.close(),this.ws=null,"stdio"===this.transport.mode&&this.transport.process.stdin?.end()}}function u(a){if(a.connection?.close(),a.process?.pid)try{"linux"===process.platform?process.kill(-a.process.pid,"SIGTERM"):a.process.kill("SIGTERM")}catch{try{a.process.kill("SIGTERM")}catch{}}for(let b of a.compatProxies)b.stop().catch(()=>{});for(let b of a.annodexRouters)b.stop().catch(()=>{})}function v(){if(!globalThis.__codexServers){globalThis.__codexServers=new Map;let a=()=>{globalThis.__codexServers?.forEach(a=>{u(a)})};process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__codexServers}function w(){return c(79646)}function x(a){if(a)return a.replace(/#(?:chat|responses)-[a-f0-9]{10}$/i,"")}function y(a,b,c){let d=a.find(a=>a.id===b);return{provider:m.so,modelId:d?(0,m.XO)(b,c):c}}function z(){let a,b=(a=process.env.ANNODEX_CODEX_TRANSPORT?.trim().toLowerCase(),"ws"===a||"stdio"===a||"auto"===a?a:"auto");return"ws"===b||"stdio"===b?b:"linux"===process.platform?"ws":"stdio"}function A(a){return{workspace:!0,contextWindow:function(a){let b=0;for(let c of a)for(let a of c.models)"number"==typeof a.contextWindow&&a.contextWindow>b&&(b=a.contextWindow);return b>0?b:void 0}(a),routerProviders:a,providers:[{id:m.so,name:"Annodex Router",baseUrl:"__annodex_router__",api:"openai-responses",requiresOpenAiAuth:!1}]}}function B(a){let b=a?.trim();if(b){if(b.startsWith("!"))try{return(0,e.execSync)(b.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:1e4}).trim()||void 0}catch{return}return/^[A-Za-z_][A-Za-z0-9_]*$/.test(b)&&process.env[b]?process.env[b]:b}}function C(a){return JSON.stringify(a)}function D(a){return/^[A-Za-z0-9_-]+$/.test(a)?a:C(a)}function E(a,b){if(b)return"responses";let c=(0,o.pp)(a);return"openai-responses"===c?"responses":"openai-completions"===c?"chat":null}async function F(a,b,c,d,e,f){let h,i=a.baseUrl?.trim().replace(/\/+$/,"")||"";if(a.id===m.so&&"__annodex_router__"===i){let a=new m.Po({providers:e??[],defaultThinking:f??"disabled"});await a.start(),d.push(a),i=a.getBaseUrl(),console.log(`[codex-server] Annodex router started on port ${a.getPort()}`)}let j=B(a.apiKey),k=(0,o.pp)(a.api,i,a.id),n="openai-completions"===k,p=!1;if(n&&i&&j&&(0,l.s3)(i)){let b=(0,l.xh)(i),d=new l.F6({targetUrl:b,apiKey:j,defaultThinking:f??"disabled",reasoningConfig:a.reasoningConfig});try{await d.start(),c.push(d),i=d.getBaseUrl(),p=!0,console.log(`[codex-server] Compat proxy started on port ${d.getPort()} for ${b}`)}catch(a){console.error("[codex-server] Failed to start compat proxy:",a)}}if(j){var q;let c;q=a.id,c=(0,g.createHash)("sha256").update(q).digest("hex").slice(0,16).toUpperCase(),b[h=`ANNODEX_PROVIDER_${c}_API_KEY`]=j}return{id:a.id,name:a.name,baseUrl:i,wireApi:E(k,p),envKey:h,requiresOpenAiAuth:a.requiresOpenAiAuth??!!j}}async function G(a,b){let c=v(),d=a.replace(/\/+$/,"")||a,f=function(a,b){let c=a.replace(/\/+$/,"")||a,d=z();if(b?.workspace){let a=JSON.stringify({providers:b.providers??[],routerProviders:b.routerProviders??[]}),e=(0,g.createHash)("sha256").update(a).digest("hex").slice(0,16),f=b?.contextWindow?String(b.contextWindow):"default";return`${c}\0${d}\0workspace\0${f}\0${e}`}let e=b?.providerId||b?.baseUrl||"default",f=b?.baseUrl?.replace(/\/+$/,"")||"default",h=b?.api||"default",i=b?.apiKey||"default",j=b?.contextWindow?String(b.contextWindow):"default",k=b?.reasoningConfig?`${b.reasoningConfig.thinkingParam??""}|${b.reasoningConfig.effortParam??""}|${b.reasoningConfig.effortValueMode??""}`:"default";return`${c}\0${d}\0${e}\0${f}\0${h}\0${i}\0${j}\0${k}`}(d,b),h=c.get(f);if(h?.connection?.isConnected())return h.refCount++,h.connection;if(h?.startPromise)try{let a=await h.startPromise,b=c.get(f);return b&&b.refCount++,a}catch{}else h&&(u(h),c.delete(f));let m=z(),n="ws"===m?await new Promise((a,b)=>{let c=(0,k.createServer)();c.unref(),c.on("error",b),c.listen(0,"127.0.0.1",()=>{let d=c.address();c.close(()=>{d&&"object"==typeof d?a(d.port):b(Error("Failed to allocate a local port"))})})}):0,p="ws"===m?`ws://127.0.0.1:${n}`:"",r=function(){let a=process.env.ANNODEX_CODEX_PATH?.trim();if(a)return a;let b=function(){let a,b,c="win32"===process.platform?"codex.exe":"codex";if("darwin"===process.platform)if("arm64"===process.arch)a="codex-darwin-arm64",b="aarch64-apple-darwin";else{if("x64"!==process.arch)return null;a="codex-darwin-x64",b="x86_64-apple-darwin"}else if("linux"===process.platform)if("arm64"===process.arch)a="codex-linux-arm64",b="aarch64-unknown-linux-musl";else{if("x64"!==process.arch)return null;a="codex-linux-x64",b="x86_64-unknown-linux-musl"}else if("win32"!==process.platform)return null;else if("arm64"===process.arch)a="codex-win32-arm64",b="aarch64-pc-windows-msvc";else{if("x64"!==process.arch)return null;a="codex-win32-x64",b="x86_64-pc-windows-msvc"}let d=[];d.push((0,j.join)(process.cwd(),"node_modules"));try{let{execSync:a}=w(),b=a("npm prefix -g",{encoding:"utf8",timeout:3e3}).trim();b&&d.push((0,j.join)(b,"lib","node_modules"))}catch{}d.push((0,j.join)(__dirname,"..","node_modules"));try{d.push((0,j.join)(__dirname,"..","..","..","..","node_modules"))}catch{}let e=[(0,j.join)("vendor",b,"bin",c),(0,j.join)("vendor",b,"codex",c)];for(let b of d)for(let c of["flat","nested"]){let d="flat"===c?(0,j.join)(b,"@openai",a):(0,j.join)(b,"@openai","codex","node_modules","@openai",a);for(let a of e){let b=(0,j.join)(d,a);if((0,i.existsSync)(b))return{binaryPath:b,isNative:!0,isJsShim:!1}}}return null}();if(b)return b.binaryPath;let c="win32"===process.platform,d=c?["codex.cmd","codex.exe","codex"]:["codex"],e=[];e.push((0,j.join)(process.cwd(),"node_modules",".bin"));try{let a=(0,j.join)(__dirname,"..",".."),b=(0,j.join)(a,"..","..",".bin");e.includes(b)||e.push(b);let c=(0,j.join)(a,"..",".bin");e.includes(c)||e.push(c)}catch{}try{let{execSync:a}=w(),b=a("npm prefix -g",{encoding:"utf8",timeout:3e3}).trim();if(b){let a=c?b:(0,j.join)(b,"bin");e.includes(a)||e.push(a)}}catch{}for(let a of e)for(let b of d){let c=(0,j.join)(a,b);if((0,i.existsSync)(c))return c}for(let a of d)try{let{execSync:b}=w(),d=b(c?`where ${a}`:`which ${a}`,{encoding:"utf8",timeout:3e3}).trim().split(/\r?\n/)[0];if(d&&(0,i.existsSync)(d))return d}catch{}return c?"codex.cmd":"codex"}();(0,q.prepareMacOSCodexForSpawn)(r,d);let s=(async()=>{let a=[],g=[],h=null,i=b?.baseUrl||void 0,j=B(b?.apiKey),k=b?.requiresOpenAiAuth??!!j,q=(0,o.pp)(b?.api,i,b?.providerId),s="openai-completions"===q,t=!1;if(s&&i&&j&&(0,l.s3)(i)){let c=(0,l.xh)(i);h=new l.F6({targetUrl:c,apiKey:j,defaultThinking:b?.thinkingLevel??"disabled",reasoningConfig:b?.reasoningConfig});try{await h.start(),a.push(h),i=h.getBaseUrl(),t=!0,console.log(`[codex-server] Compat proxy started on port ${h.getPort()} for ${c}`)}catch(a){console.error("[codex-server] Failed to start compat proxy:",a),h=null}}let u={...process.env};j&&!b?.workspace&&(u.OPENAI_API_KEY=j),i&&(u.OPENAI_BASE_URL=i);let v=[];if(b?.contextWindow&&b.contextWindow>0&&v.push("-c",`model_context_window=${b.contextWindow}`),b?.workspace){let c=[];for(let d of b.providers??[])d.id&&d.baseUrl&&c.push(await F(d,u,a,g,b.routerProviders,b.thinkingLevel));for(let a of c)!function(a,b){if(!b.id||!b.baseUrl)return;let c=D(b.id);a.push("-c",`model_providers.${c}.name=${C(b.name||b.id)}`),a.push("-c",`model_providers.${c}.base_url=${C(b.baseUrl.replace(/\/+$/,""))}`),b.wireApi&&a.push("-c",`model_providers.${c}.wire_api=${C(b.wireApi)}`),a.push("-c",`model_providers.${c}.requires_openai_auth=${b.requiresOpenAiAuth?"true":"false"}`),b.envKey&&a.push("-c",`model_providers.${c}.env_key=${C(b.envKey)}`)}(v,a)}else if(b?.providerId&&i){let a=D(b.providerId),c=E(q,t);v.push("-c",`model_provider=${C(b.providerId)}`),v.push("-c",`model_providers.${a}.name=${C(b.providerId)}`),v.push("-c",`model_providers.${a}.base_url=${C(i.replace(/\/+$/,""))}`),c&&v.push("-c",`model_providers.${a}.wire_api=${C(c)}`),v.push("-c",`model_providers.${a}.requires_openai_auth=${k?"true":"false"}`)}let w=[...v,"app-server",..."ws"===m?["--listen",p]:[]];console.log(`[codex-server] Starting app-server transport=${m}`+("ws"===m?` url=${p}`:""));let x=null,y=function(a,b){let c=a.toLowerCase();if("win32"===process.platform&&(c.endsWith(".cmd")||c.endsWith(".bat"))){let c=[a,...b].map(a=>`"${a.replace(/"/g,'\\"')}"`).join(" ");return{command:process.env.ComSpec||"cmd.exe",args:["/d","/s","/c",`"${c}"`],windowsVerbatimArguments:!0}}return{command:a,args:b}}(r,w),z=(0,e.spawn)(y.command,y.args,{cwd:d,stdio:["stdio"===m?"pipe":"ignore","pipe","pipe"],env:u,detached:"linux"===process.platform,windowsVerbatimArguments:y.windowsVerbatimArguments}),A=[];z.stderr?.on("data",a=>{A.push(a.toString())}),"ws"===m&&z.stdout?.on("data",()=>{}),z.on("error",a=>{let b="ENOENT"===a.code?`[codex-server] codex CLI not found at "${r}". Install @openai/codex or ensure codex is on PATH.`:`[codex-server] Process error for ${d}: ${a.message}`;console.error(b)}),z.on("exit",(b,d)=>{let e="darwin"===process.platform;if(null!==d){let a=A.join(""),c=e?`
1
+ "use strict";exports.id=6983,exports.ids=[6983],exports.modules={39006:a=>{a.exports={rE:"0.1.97"}},46983:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{DY:()=>K,H3:()=>A,Mi:()=>I,g8:()=>x,gu:()=>G,kW:()=>y,nj:()=>J,nt:()=>t,pU:()=>s,sM:()=>H});var e=c(79646),f=c(4984),g=c(55511),h=c(56220),i=c(29021),j=c(33873),k=c(91645),l=c(55399),m=c(54167),n=c(65833),o=c(99526),p=c(39006),q=c(70784),r=a([h]);function s(a){let b="string"==typeof a?.status?a.status.toLowerCase():"";return"inprogress"===b||"in_progress"===b||"running"===b||"pending"===b||"queued"===b}function t(a){return!!a?.turns?.some(a=>s(a))}h=(r.then?(await r)():r)[0];class L{constructor(a,b,c){this.cwd=a,this.transport=b,this.serverKey=c,this.ws=null,this.readline=null,this.pending=new Map,this.nextId=1,this.notificationHandlers=new Map,this.anyNotificationHandlers=[],this.serverRequestHandlers=[],this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectDelay=1e3,this._closed=!1,this.mode=b.mode}isConnected(){return"ws"===this.transport.mode?this.ws?.readyState===h.WebSocket.OPEN:!this._closed&&!!this.transport.process.pid&&null===this.transport.process.exitCode&&!this.transport.process.killed}isClosed(){return this._closed}async connect(){(this._closed=!1,"stdio"===this.transport.mode)?await this.connectStdio():await this.connectWebSocket()}async connectWebSocket(){if("ws"!==this.transport.mode)throw Error("Invalid websocket transport state");let{default:a}=await Promise.resolve().then(c.bind(c,56220)),b=this.transport.url;return new Promise((c,d)=>{let e=new a(b);this.ws=e,e.on("open",()=>{this.reconnectAttempts=0,this.initialize().then(c).catch(d)}),e.on("message",a=>{this.handleRawMessage(a.toString())}),e.on("close",()=>{this.handleDisconnect()}),e.on("error",a=>{0===this.reconnectAttempts&&d(a)})})}async connectStdio(){if("stdio"!==this.transport.mode)throw Error("Invalid stdio transport state");let a=this.transport.process;if(!a.stdin||!a.stdout)throw Error("Codex stdio transport is missing stdin/stdout");this.readline=(0,f.createInterface)({input:a.stdout}),this.readline.on("line",a=>this.handleRawMessage(a)),this.readline.on("close",()=>this.handleDisconnect()),await this.initialize()}async initialize(){let a=await this.request("initialize",{clientInfo:{name:"annodex",title:n.C3,version:p.rE},capabilities:{experimentalApi:!0}});this.notify("initialized",{}),this.serverInfo=a}notify(a,b){this.isConnected()&&this.sendRaw(JSON.stringify({jsonrpc:"2.0",method:a,params:b}))}request(a,b,c=3e5){if(!this.isConnected())return Promise.reject(Error(`Codex server not connected (method: ${a})`));let d=this.nextId++;return new Promise((e,f)=>{let g=setTimeout(()=>{this.pending.delete(d),f(Error(`Request timeout: ${a}`))},c);this.pending.set(d,{resolve:e,reject:f,timer:g}),this.sendRaw(JSON.stringify({jsonrpc:"2.0",id:d,method:a,params:b}))})}onNotification(a,b){let c=this.notificationHandlers.get(a)??[];return c.push(b),this.notificationHandlers.set(a,c),()=>{let c=this.notificationHandlers.get(a);if(c){let a=c.indexOf(b);-1!==a&&c.splice(a,1)}}}onAnyNotification(a){return this.anyNotificationHandlers.push(a),()=>{let b=this.anyNotificationHandlers.indexOf(a);-1!==b&&this.anyNotificationHandlers.splice(b,1)}}onServerRequest(a){return this.serverRequestHandlers.push(a),()=>{let b=this.serverRequestHandlers.indexOf(a);-1!==b&&this.serverRequestHandlers.splice(b,1)}}handleRawMessage(a){let b=a.trim();if(b)try{let a=JSON.parse(b);this.handleMessage(a)}catch{}}sendRaw(a){if("ws"===this.transport.mode){this.ws?.readyState===h.WebSocket.OPEN&&this.ws.send(a);return}let b=this.transport.process.stdin;b&&!b.destroyed&&b.write(`${a}
2
+ `)}handleMessage(a){if("method"in a&&"id"in a)return void this.respondToServerRequest(a);if("method"in a&&!("id"in a)){for(let b of("1"===process.env.ANNODEX_CODEX_EVENT_LOG&&console.log(`[codex event] ${a.method}`),[...this.anyNotificationHandlers]))b(a.method,a.params);let b=this.notificationHandlers.get(a.method);if(b)for(let c of[...b])c(a.params);return}if("id"in a&&("result"in a||"error"in a)){let b=this.pending.get(a.id);b&&(clearTimeout(b.timer),this.pending.delete(a.id),"error"in a&&a.error?b.reject(Error(a.error.message??"JSON-RPC error")):b.resolve(a.result))}}async respondToServerRequest(a){let b;if(!this.isConnected())return;for(let c of[...this.serverRequestHandlers]){try{b=await c({id:a.id,method:a.method,params:a.params})}catch{b=void 0}if(void 0!==b)break}void 0===b&&(b=function(a){switch(a){case"item/commandExecution/requestApproval":case"item/fileChange/requestApproval":return{decision:"decline"};case"applyPatchApproval":case"execCommandApproval":return{decision:"denied"};case"item/tool/requestUserInput":return{answers:{}};case"mcpServer/elicitation/request":return{action:"decline",content:null,_meta:null};case"item/permissions/requestApproval":return{permissions:{},scope:"turn"};case"item/tool/call":return{contentItems:[],success:!1};case"account/chatgptAuthTokens/refresh":return{accessToken:"",chatgptAccountId:"",chatgptPlanType:null};default:return{}}}(a.method));let c={jsonrpc:"2.0",id:a.id,result:b};this.sendRaw(JSON.stringify(c))}handleDisconnect(){for(let[,a]of this.pending)clearTimeout(a.timer),a.reject(Error("Codex server disconnected"));if(this.pending.clear(),"stdio"===this.transport.mode){this._closed=!0;return}if(!this._closed&&this.reconnectAttempts<this.maxReconnectAttempts){this.reconnectAttempts++;let a=this.reconnectDelay*Math.pow(2,this.reconnectAttempts-1);setTimeout(()=>{this._closed||this.connect().catch(()=>{})},a)}}close(){this._closed=!0,this.readline?.close(),this.readline=null,this.ws?.close(),this.ws=null,"stdio"===this.transport.mode&&this.transport.process.stdin?.end()}}function u(a){a.connection?.close(),Promise.all([...a.compatProxies.map(a=>a.stop().catch(()=>{})),...a.annodexRouters.map(a=>a.stop().catch(()=>{}))]);let b=a.process?.pid;if(!b)return;try{"linux"===process.platform?process.kill(-b,"SIGTERM"):a.process.kill("SIGTERM")}catch{try{a.process.kill("SIGTERM")}catch{}}let c=setTimeout(()=>{if(null===a.process.exitCode&&null===a.process.signalCode)try{"linux"===process.platform?process.kill(-b,"SIGKILL"):a.process.kill("SIGKILL")}catch{}},5e3);c.unref?.();let d=()=>{clearTimeout(c),a.process.removeListener("exit",d)};a.process.once("exit",d);let e=setTimeout(()=>{clearTimeout(c),a.process.removeListener("exit",d)},15e3);e.unref?.()}function v(){if(!globalThis.__codexServers){globalThis.__codexServers=new Map;let a=()=>{globalThis.__codexServers?.forEach(a=>{u(a)})};process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__codexServers}function w(){return c(79646)}function x(a){if(a)return a.replace(/#(?:chat|responses)-[a-f0-9]{10}$/i,"")}function y(a,b,c){let d=a.find(a=>a.id===b);return{provider:m.so,modelId:d?(0,m.XO)(b,c):c}}function z(){let a,b=(a=process.env.ANNODEX_CODEX_TRANSPORT?.trim().toLowerCase(),"ws"===a||"stdio"===a||"auto"===a?a:"auto");return"ws"===b||"stdio"===b?b:"linux"===process.platform?"ws":"stdio"}function A(a){return{workspace:!0,contextWindow:function(a){let b=0;for(let c of a)for(let a of c.models)"number"==typeof a.contextWindow&&a.contextWindow>b&&(b=a.contextWindow);return b>0?b:void 0}(a),routerProviders:a,providers:[{id:m.so,name:"Annodex Router",baseUrl:"__annodex_router__",api:"openai-responses",requiresOpenAiAuth:!1}]}}function B(a){let b=a?.trim();if(b){if(b.startsWith("!"))try{return(0,e.execSync)(b.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:1e4}).trim()||void 0}catch{return}return/^[A-Za-z_][A-Za-z0-9_]*$/.test(b)&&process.env[b]?process.env[b]:b}}function C(a){return JSON.stringify(a)}function D(a){return/^[A-Za-z0-9_-]+$/.test(a)?a:C(a)}function E(a,b){if(b)return"responses";let c=(0,o.pp)(a);return"openai-responses"===c?"responses":"openai-completions"===c?"chat":null}async function F(a,b,c,d,e,f){let h,i=a.baseUrl?.trim().replace(/\/+$/,"")||"";if(a.id===m.so&&"__annodex_router__"===i){let a=new m.Po({providers:e??[],defaultThinking:f??"disabled"});await a.start(),d.push(a),i=a.getBaseUrl(),console.log(`[codex-server] Annodex router started on port ${a.getPort()}`)}let j=B(a.apiKey),k=(0,o.pp)(a.api,i,a.id),n="openai-completions"===k,p=!1;if(n&&i&&j&&(0,l.s3)(i)){let b=(0,l.xh)(i),d=new l.F6({targetUrl:b,apiKey:j,defaultThinking:f??"disabled",reasoningConfig:a.reasoningConfig});try{await d.start(),c.push(d),i=d.getBaseUrl(),p=!0,console.log(`[codex-server] Compat proxy started on port ${d.getPort()} for ${b}`)}catch(a){console.error("[codex-server] Failed to start compat proxy:",a)}}if(j){var q;let c;q=a.id,c=(0,g.createHash)("sha256").update(q).digest("hex").slice(0,16).toUpperCase(),b[h=`ANNODEX_PROVIDER_${c}_API_KEY`]=j}return{id:a.id,name:a.name,baseUrl:i,wireApi:E(k,p),envKey:h,requiresOpenAiAuth:a.requiresOpenAiAuth??!!j}}async function G(a,b){let c=v(),d=a.replace(/\/+$/,"")||a,f=function(a,b){let c=a.replace(/\/+$/,"")||a,d=z();if(b?.workspace){let a=JSON.stringify({providers:b.providers??[],routerProviders:b.routerProviders??[]}),e=(0,g.createHash)("sha256").update(a).digest("hex").slice(0,16),f=b?.contextWindow?String(b.contextWindow):"default";return`${c}\0${d}\0workspace\0${f}\0${e}`}let e=b?.providerId||b?.baseUrl||"default",f=b?.baseUrl?.replace(/\/+$/,"")||"default",h=b?.api||"default",i=b?.apiKey||"default",j=b?.contextWindow?String(b.contextWindow):"default",k=b?.reasoningConfig?`${b.reasoningConfig.thinkingParam??""}|${b.reasoningConfig.effortParam??""}|${b.reasoningConfig.effortValueMode??""}`:"default";return`${c}\0${d}\0${e}\0${f}\0${h}\0${i}\0${j}\0${k}`}(d,b),h=c.get(f);if(h?.connection?.isConnected())return h.refCount++,h.connection;if(h?.startPromise)try{let a=await h.startPromise,b=c.get(f);return b&&b.refCount++,a}catch{}else h&&(u(h),c.delete(f));let m=z(),n="ws"===m?await new Promise((a,b)=>{let c=(0,k.createServer)();c.unref(),c.on("error",b),c.listen(0,"127.0.0.1",()=>{let d=c.address();c.close(()=>{d&&"object"==typeof d?a(d.port):b(Error("Failed to allocate a local port"))})})}):0,p="ws"===m?`ws://127.0.0.1:${n}`:"",r=function(){let a=process.env.ANNODEX_CODEX_PATH?.trim();if(a)return a;let b=function(){let a,b,c="win32"===process.platform?"codex.exe":"codex";if("darwin"===process.platform)if("arm64"===process.arch)a="codex-darwin-arm64",b="aarch64-apple-darwin";else{if("x64"!==process.arch)return null;a="codex-darwin-x64",b="x86_64-apple-darwin"}else if("linux"===process.platform)if("arm64"===process.arch)a="codex-linux-arm64",b="aarch64-unknown-linux-musl";else{if("x64"!==process.arch)return null;a="codex-linux-x64",b="x86_64-unknown-linux-musl"}else if("win32"!==process.platform)return null;else if("arm64"===process.arch)a="codex-win32-arm64",b="aarch64-pc-windows-msvc";else{if("x64"!==process.arch)return null;a="codex-win32-x64",b="x86_64-pc-windows-msvc"}let d=[];d.push((0,j.join)(process.cwd(),"node_modules"));try{let{execSync:a}=w(),b=a("npm prefix -g",{encoding:"utf8",timeout:3e3}).trim();b&&d.push((0,j.join)(b,"lib","node_modules"))}catch{}d.push((0,j.join)(__dirname,"..","node_modules"));try{d.push((0,j.join)(__dirname,"..","..","..","..","node_modules"))}catch{}let e=[(0,j.join)("vendor",b,"bin",c),(0,j.join)("vendor",b,"codex",c)];for(let b of d)for(let c of["flat","nested"]){let d="flat"===c?(0,j.join)(b,"@openai",a):(0,j.join)(b,"@openai","codex","node_modules","@openai",a);for(let a of e){let b=(0,j.join)(d,a);if((0,i.existsSync)(b))return{binaryPath:b,isNative:!0,isJsShim:!1}}}return null}();if(b)return b.binaryPath;let c="win32"===process.platform,d=c?["codex.cmd","codex.exe","codex"]:["codex"],e=[];e.push((0,j.join)(process.cwd(),"node_modules",".bin"));try{let a=(0,j.join)(__dirname,"..",".."),b=(0,j.join)(a,"..","..",".bin");e.includes(b)||e.push(b);let c=(0,j.join)(a,"..",".bin");e.includes(c)||e.push(c)}catch{}try{let{execSync:a}=w(),b=a("npm prefix -g",{encoding:"utf8",timeout:3e3}).trim();if(b){let a=c?b:(0,j.join)(b,"bin");e.includes(a)||e.push(a)}}catch{}for(let a of e)for(let b of d){let c=(0,j.join)(a,b);if((0,i.existsSync)(c))return c}for(let a of d)try{let{execSync:b}=w(),d=b(c?`where ${a}`:`which ${a}`,{encoding:"utf8",timeout:3e3}).trim().split(/\r?\n/)[0];if(d&&(0,i.existsSync)(d))return d}catch{}return c?"codex.cmd":"codex"}();(0,q.prepareMacOSCodexForSpawn)(r,d);let s=(async()=>{let a=[],g=[],h=null,i=b?.baseUrl||void 0,j=B(b?.apiKey),k=b?.requiresOpenAiAuth??!!j,q=(0,o.pp)(b?.api,i,b?.providerId),s="openai-completions"===q,t=!1;if(s&&i&&j&&(0,l.s3)(i)){let c=(0,l.xh)(i);h=new l.F6({targetUrl:c,apiKey:j,defaultThinking:b?.thinkingLevel??"disabled",reasoningConfig:b?.reasoningConfig});try{await h.start(),a.push(h),i=h.getBaseUrl(),t=!0,console.log(`[codex-server] Compat proxy started on port ${h.getPort()} for ${c}`)}catch(a){console.error("[codex-server] Failed to start compat proxy:",a),h=null}}let u={...process.env};j&&!b?.workspace&&(u.OPENAI_API_KEY=j),i&&(u.OPENAI_BASE_URL=i);let v=[];if(b?.contextWindow&&b.contextWindow>0&&v.push("-c",`model_context_window=${b.contextWindow}`),b?.workspace){let c=[];for(let d of b.providers??[])d.id&&d.baseUrl&&c.push(await F(d,u,a,g,b.routerProviders,b.thinkingLevel));for(let a of c)!function(a,b){if(!b.id||!b.baseUrl)return;let c=D(b.id);a.push("-c",`model_providers.${c}.name=${C(b.name||b.id)}`),a.push("-c",`model_providers.${c}.base_url=${C(b.baseUrl.replace(/\/+$/,""))}`),b.wireApi&&a.push("-c",`model_providers.${c}.wire_api=${C(b.wireApi)}`),a.push("-c",`model_providers.${c}.requires_openai_auth=${b.requiresOpenAiAuth?"true":"false"}`),b.envKey&&a.push("-c",`model_providers.${c}.env_key=${C(b.envKey)}`)}(v,a)}else if(b?.providerId&&i){let a=D(b.providerId),c=E(q,t);v.push("-c",`model_provider=${C(b.providerId)}`),v.push("-c",`model_providers.${a}.name=${C(b.providerId)}`),v.push("-c",`model_providers.${a}.base_url=${C(i.replace(/\/+$/,""))}`),c&&v.push("-c",`model_providers.${a}.wire_api=${C(c)}`),v.push("-c",`model_providers.${a}.requires_openai_auth=${k?"true":"false"}`)}let w=[...v,"app-server",..."ws"===m?["--listen",p]:[]];console.log(`[codex-server] Starting app-server transport=${m}`+("ws"===m?` url=${p}`:""));let x=null,y=function(a,b){let c=a.toLowerCase();if("win32"===process.platform&&(c.endsWith(".cmd")||c.endsWith(".bat"))){let c=[a,...b].map(a=>`"${a.replace(/"/g,'\\"')}"`).join(" ");return{command:process.env.ComSpec||"cmd.exe",args:["/d","/s","/c",`"${c}"`],windowsVerbatimArguments:!0}}return{command:a,args:b}}(r,w),z=(0,e.spawn)(y.command,y.args,{cwd:d,stdio:["stdio"===m?"pipe":"ignore","pipe","pipe"],env:u,detached:"linux"===process.platform,windowsVerbatimArguments:y.windowsVerbatimArguments}),A=[];z.stderr?.on("data",a=>{A.push(a.toString())}),"ws"===m&&z.stdout?.on("data",()=>{}),z.on("error",a=>{let b="ENOENT"===a.code?`[codex-server] codex CLI not found at "${r}". Install @openai/codex or ensure codex is on PATH.`:`[codex-server] Process error for ${d}: ${a.message}`;console.error(b)}),z.on("exit",(b,d)=>{let e="darwin"===process.platform;if(null!==d){let a=A.join(""),c=e?`
3
3
  This is likely macOS blocking the native codex binary from the current process context.
4
4
  Executable: ${r}
5
5
  Transport: ${m}
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/o4wYT5iJnH2UQkb3wYmOd/_buildManifest.js","static/o4wYT5iJnH2UQkb3wYmOd/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-0b1e0af2488fca8f.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-123fdf632563f469.js","static/chunks/main-app-45a0f19af99d61b6.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/SVHmVqHgsyh7rLM_BP4l1/_buildManifest.js","static/SVHmVqHgsyh7rLM_BP4l1/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-0b1e0af2488fca8f.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-123fdf632563f469.js","static/chunks/main-app-45a0f19af99d61b6.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" class="__variable_66b8ca"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/6b00dcf032cca328.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/fddca953485158e4.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0b1e0af2488fca8f.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-123fdf632563f469.js" async=""></script><script src="/_next/static/chunks/main-app-45a0f19af99d61b6.js" async=""></script><script src="/_next/static/chunks/8500-f62a38ff68ab7f42.js" async=""></script><script src="/_next/static/chunks/4550-eff0bf233a5b0aec.js" async=""></script><script src="/_next/static/chunks/app/layout-2e8a047b671c8731.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>annodex</title><meta name="description" content="AI-native bioinformatics workspace by Annoroad"/><link rel="shortcut icon" href="/favicon.svg" type="image/svg+xml"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><script>(function(){try{var t=localStorage.getItem("annodex-theme");if(t==="dark")document.documentElement.classList.add("dark")}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body style="min-height:100dvh;display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><!--$--><div class="bg-fd-secondary/50 p-3 empty:hidden"></div><!--/$--><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><div aria-live="polite" style="position:fixed;right:16px;bottom:16px;z-index:10050;display:flex;flex-direction:column;gap:8px;max-width:min(420px, calc(100vw - 32px));pointer-events:none"></div><script src="/_next/static/chunks/webpack-0b1e0af2488fca8f.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[11056,[\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4550\",\"static/chunks/4550-eff0bf233a5b0aec.js\",\"7177\",\"static/chunks/app/layout-2e8a047b671c8731.js\"],\"RootProvider\"]\n3:I[58132,[\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4550\",\"static/chunks/4550-eff0bf233a5b0aec.js\",\"7177\",\"static/chunks/app/layout-2e8a047b671c8731.js\"],\"AppProviders\"]\n4:I[57121,[],\"\"]\n5:I[74581,[],\"\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/6b00dcf032cca328.css\",\"style\"]\n:HL[\"/_next/static/css/fddca953485158e4.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/6b00dcf032cca328.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fddca953485158e4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_66b8ca\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"annodex-theme\\\");if(t===\\\"dark\\\")document.documentElement.classList.add(\\\"dark\\\")}catch(e){}})();\"}}]}],[\"$\",\"body\",null,{\"style\":{\"minHeight\":\"100dvh\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"o4wYT5iJnH2UQkb3wYmOd\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[86869,[],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"annodex\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI-native bioinformatics workspace by Annoroad\"}],[\"$\",\"link\",\"2\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L10\",\"4\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" class="__variable_66b8ca"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/6b00dcf032cca328.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/fddca953485158e4.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0b1e0af2488fca8f.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-123fdf632563f469.js" async=""></script><script src="/_next/static/chunks/main-app-45a0f19af99d61b6.js" async=""></script><script src="/_next/static/chunks/8500-f62a38ff68ab7f42.js" async=""></script><script src="/_next/static/chunks/4550-eff0bf233a5b0aec.js" async=""></script><script src="/_next/static/chunks/app/layout-2e8a047b671c8731.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>annodex</title><meta name="description" content="AI-native bioinformatics workspace by Annoroad"/><link rel="shortcut icon" href="/favicon.svg" type="image/svg+xml"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><script>(function(){try{var t=localStorage.getItem("annodex-theme");if(t==="dark")document.documentElement.classList.add("dark")}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body style="min-height:100dvh;display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><!--$--><div class="bg-fd-secondary/50 p-3 empty:hidden"></div><!--/$--><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><div aria-live="polite" style="position:fixed;right:16px;bottom:16px;z-index:10050;display:flex;flex-direction:column;gap:8px;max-width:min(420px, calc(100vw - 32px));pointer-events:none"></div><script src="/_next/static/chunks/webpack-0b1e0af2488fca8f.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[11056,[\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4550\",\"static/chunks/4550-eff0bf233a5b0aec.js\",\"7177\",\"static/chunks/app/layout-2e8a047b671c8731.js\"],\"RootProvider\"]\n3:I[58132,[\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4550\",\"static/chunks/4550-eff0bf233a5b0aec.js\",\"7177\",\"static/chunks/app/layout-2e8a047b671c8731.js\"],\"AppProviders\"]\n4:I[57121,[],\"\"]\n5:I[74581,[],\"\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/6b00dcf032cca328.css\",\"style\"]\n:HL[\"/_next/static/css/fddca953485158e4.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/6b00dcf032cca328.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fddca953485158e4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_66b8ca\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"annodex-theme\\\");if(t===\\\"dark\\\")document.documentElement.classList.add(\\\"dark\\\")}catch(e){}})();\"}}]}],[\"$\",\"body\",null,{\"style\":{\"minHeight\":\"100dvh\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"SVHmVqHgsyh7rLM_BP4l1\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[86869,[],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"annodex\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI-native bioinformatics workspace by Annoroad\"}],[\"$\",\"link\",\"2\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L10\",\"4\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0b1e0af2488fca8f.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-123fdf632563f469.js" async=""></script><script src="/_next/static/chunks/main-app-45a0f19af99d61b6.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-0b1e0af2488fca8f.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"o4wYT5iJnH2UQkb3wYmOd\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0b1e0af2488fca8f.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-123fdf632563f469.js" async=""></script><script src="/_next/static/chunks/main-app-45a0f19af99d61b6.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-0b1e0af2488fca8f.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"SVHmVqHgsyh7rLM_BP4l1\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
@@ -1 +1 @@
1
- {"node":{},"edge":{},"encryptionKey":"6GcQ2eb3bSNBr5NhMnzPNZRTV0q5GFNmGyYP3P4sAYQ="}
1
+ {"node":{},"edge":{},"encryptionKey":"o6Cg/8x19djI5VC0Yh2LpsmmnEUKTpaxm3yTixQ5NwM="}