cuelo 0.5.4 → 0.5.6

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 (113) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +8 -8
  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/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page.js +1 -1
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +1 -1
  19. package/.next/server/app/_not-found.rsc +4 -4
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  21. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  23. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/.next/server/app/api/agent/[id]/account/route.js +1 -1
  27. package/.next/server/app/api/agent/[id]/account/route.js.nft.json +1 -1
  28. package/.next/server/app/api/agent/[id]/events/route.js +1 -1
  29. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  30. package/.next/server/app/api/agent/[id]/route.js +1 -1
  31. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  32. package/.next/server/app/api/agent/new/route.js +1 -1
  33. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  34. package/.next/server/app/api/agent/running/route.js +1 -1
  35. package/.next/server/app/api/agent/running/route.js.nft.json +1 -1
  36. package/.next/server/app/api/gpt6/handles/route.js +1 -1
  37. package/.next/server/app/api/gpt6/handles/route.js.nft.json +1 -1
  38. package/.next/server/app/api/gpt6/mcp/route.js +1 -1
  39. package/.next/server/app/api/gpt6/mcp/route.js.nft.json +1 -1
  40. package/.next/server/app/api/gpt6/reply/route.js +1 -1
  41. package/.next/server/app/api/gpt6/reply/route.js.nft.json +1 -1
  42. package/.next/server/app/api/gpt6/token/route.js +1 -1
  43. package/.next/server/app/api/gpt6/token/route.js.nft.json +1 -1
  44. package/.next/server/app/api/gpt6/web6-session/route.js +1 -1
  45. package/.next/server/app/api/gpt6/web6-session/route.js.nft.json +1 -1
  46. package/.next/server/app/api/live/call/[callId]/route.js +1 -1
  47. package/.next/server/app/api/live/call/[callId]/route.js.nft.json +1 -1
  48. package/.next/server/app/api/live/events/route.js +1 -1
  49. package/.next/server/app/api/live/events/route.js.nft.json +1 -1
  50. package/.next/server/app/api/live/offer/route.js +1 -1
  51. package/.next/server/app/api/live/offer/route.js.nft.json +1 -1
  52. package/.next/server/app/api/live/voices/route.js +1 -1
  53. package/.next/server/app/api/live/voices/route.js.nft.json +1 -1
  54. package/.next/server/app/api/project-trust/route.js +1 -1
  55. package/.next/server/app/api/project-trust/route.js.nft.json +1 -1
  56. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  57. package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
  58. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  59. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
  60. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  61. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  62. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  63. package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
  64. package/.next/server/app/api/sessions/route.js +1 -1
  65. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  66. package/.next/server/app/api/update-maintenance/route.js +2 -2
  67. package/.next/server/app/api/update-maintenance/route.js.nft.json +1 -1
  68. package/.next/server/app/api/updates/route.js +1 -1
  69. package/.next/server/app/favicon.ico/route.js +1 -1
  70. package/.next/server/app/favicon.ico.body +0 -0
  71. package/.next/server/app/index.html +1 -1
  72. package/.next/server/app/index.rsc +6 -6
  73. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  74. package/.next/server/app/index.segments/_full.segment.rsc +6 -6
  75. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  76. package/.next/server/app/index.segments/_index.segment.rsc +3 -3
  77. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  78. package/.next/server/app/page.js +2 -2
  79. package/.next/server/app/page_client-reference-manifest.js +1 -1
  80. package/.next/server/app/recover/page.js +1 -1
  81. package/.next/server/app/recover/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/recover.html +1 -1
  83. package/.next/server/app/recover.rsc +4 -4
  84. package/.next/server/app/recover.segments/_full.segment.rsc +4 -4
  85. package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
  86. package/.next/server/app/recover.segments/_index.segment.rsc +3 -3
  87. package/.next/server/app/recover.segments/_tree.segment.rsc +2 -2
  88. package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +1 -1
  89. package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
  90. package/.next/server/app-paths-manifest.json +8 -8
  91. package/.next/server/chunks/6429.js +3 -3
  92. package/.next/server/middleware-build-manifest.js +1 -1
  93. package/.next/server/pages/404.html +1 -1
  94. package/.next/server/pages/500.html +1 -1
  95. package/.next/server/server-reference-manifest.json +1 -1
  96. package/.next/static/chunks/app/{layout-61356b8386302172.js → layout-6261ac86255ccc75.js} +1 -1
  97. package/.next/static/chunks/app/{page-d1291e02ffa77a51.js → page-d101dfa547083afb.js} +2 -2
  98. package/.next/static/css/{41958fa4965167ad.css → 0282259eb1a6b95f.css} +1 -1
  99. package/.next/trace +104 -104
  100. package/.next/trace-build +1 -1
  101. package/Tools/CUELO_Setup/files/native-runtime-patch.js +1 -1
  102. package/Tools/OMP_Global_Config/agent/extensions/jev-runtime.ts +10 -3
  103. package/Tools/OMP_Global_Config/agent/extensions/turn-end-guard.ts +4 -0
  104. package/Tools/OMP_Global_Config/patches/apply-core-patch.mjs +124 -6
  105. package/install.mjs +5 -3
  106. package/package.json +1 -1
  107. package/public/icons/apple-touch-icon.png +0 -0
  108. package/public/icons/cuelo-icon.svg +8 -0
  109. package/public/icons/icon-192.png +0 -0
  110. package/public/icons/icon-512.png +0 -0
  111. package/public/sw.js +3 -2
  112. /package/.next/static/{Xey7BdddcpqFxM5-ikcal → NZvNUVntEzl6V9pD45vuq}/_buildManifest.js +0 -0
  113. /package/.next/static/{Xey7BdddcpqFxM5-ikcal → NZvNUVntEzl6V9pD45vuq}/_ssgManifest.js +0 -0
@@ -2,4 +2,4 @@
2
2
  2:I[57121,[],""]
3
3
  3:I[74581,[],""]
4
4
  4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"Xey7BdddcpqFxM5-ikcal"}
5
+ 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"NZvNUVntEzl6V9pD45vuq"}
@@ -22,19 +22,19 @@
22
22
  "/favicon.ico/route": "app/favicon.ico/route.js",
23
23
  "/manifest.webmanifest/route": "app/manifest.webmanifest/route.js",
24
24
  "/api/agent/running/route": "app/api/agent/running/route.js",
25
- "/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
26
25
  "/api/auth/all-providers/route": "app/api/auth/all-providers/route.js",
27
- "/api/agent/new/route": "app/api/agent/new/route.js",
26
+ "/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
28
27
  "/api/auth/api-key/[provider]/route": "app/api/auth/api-key/[provider]/route.js",
29
28
  "/api/auth/logout/[provider]/route": "app/api/auth/logout/[provider]/route.js",
30
29
  "/api/auth/providers/route": "app/api/auth/providers/route.js",
30
+ "/api/agent/new/route": "app/api/agent/new/route.js",
31
31
  "/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
32
32
  "/api/display-settings/route": "app/api/display-settings/route.js",
33
33
  "/api/document-text/route": "app/api/document-text/route.js",
34
34
  "/api/experiments/route": "app/api/experiments/route.js",
35
+ "/api/gpt6/mcp/route": "app/api/gpt6/mcp/route.js",
35
36
  "/api/gpt6/handles/route": "app/api/gpt6/handles/route.js",
36
37
  "/api/gpt6/reply/route": "app/api/gpt6/reply/route.js",
37
- "/api/gpt6/mcp/route": "app/api/gpt6/mcp/route.js",
38
38
  "/api/gpt6/token/route": "app/api/gpt6/token/route.js",
39
39
  "/api/gpt6/web6-session/route": "app/api/gpt6/web6-session/route.js",
40
40
  "/api/live/call/[callId]/route": "app/api/live/call/[callId]/route.js",
@@ -42,12 +42,12 @@
42
42
  "/api/live/offer/route": "app/api/live/offer/route.js",
43
43
  "/api/live/voices/route": "app/api/live/voices/route.js",
44
44
  "/api/model-roles/route": "app/api/model-roles/route.js",
45
- "/api/mcp/route": "app/api/mcp/route.js",
46
45
  "/api/models-config/catalog/route": "app/api/models-config/catalog/route.js",
47
46
  "/api/models-config/discover/route": "app/api/models-config/discover/route.js",
47
+ "/api/mcp/route": "app/api/mcp/route.js",
48
48
  "/api/models-config/route": "app/api/models-config/route.js",
49
- "/api/models-config/test/route": "app/api/models-config/test/route.js",
50
49
  "/api/models/route": "app/api/models/route.js",
50
+ "/api/models-config/test/route": "app/api/models-config/test/route.js",
51
51
  "/api/project-trust/route": "app/api/project-trust/route.js",
52
52
  "/api/runs/[runId]/route": "app/api/runs/[runId]/route.js",
53
53
  "/api/plugins/route": "app/api/plugins/route.js",
@@ -55,17 +55,17 @@
55
55
  "/api/sessions/[id]/export/route": "app/api/sessions/[id]/export/route.js",
56
56
  "/api/sessions/route": "app/api/sessions/route.js",
57
57
  "/api/sidecars/[service]/[...path]/route": "app/api/sidecars/[service]/[...path]/route.js",
58
+ "/api/settings/route": "app/api/settings/route.js",
58
59
  "/api/skills/check/route": "app/api/skills/check/route.js",
59
60
  "/api/skills/install/route": "app/api/skills/install/route.js",
60
- "/api/settings/route": "app/api/settings/route.js",
61
61
  "/api/skills/route": "app/api/skills/route.js",
62
62
  "/api/skills/update/route": "app/api/skills/update/route.js",
63
- "/api/skills/search/route": "app/api/skills/search/route.js",
64
63
  "/api/theme/route": "app/api/theme/route.js",
64
+ "/api/skills/search/route": "app/api/skills/search/route.js",
65
65
  "/api/updates/route": "app/api/updates/route.js",
66
66
  "/api/update-maintenance/route": "app/api/update-maintenance/route.js",
67
- "/api/web-access/recovery/route": "app/api/web-access/recovery/route.js",
68
67
  "/api/web-access/route": "app/api/web-access/route.js",
68
+ "/api/web-access/recovery/route": "app/api/web-access/recovery/route.js",
69
69
  "/api/web6/consults/route": "app/api/web6/consults/route.js",
70
70
  "/page": "app/page.js",
71
71
  "/recover/page": "app/recover/page.js"
@@ -4,7 +4,7 @@
4
4
  `)}finally{(0,d.closeSync)(e)}}catch(a){if("EEXIST"===a.code)return g("already-claimed");throw a}return{notice:!0,requestId:a.requestId,stageHash:a.stageHash,sessionId:b.initiatorSessionId,terminalError:o}}function C(a){let b=p(a.requestId);if(!b)return;let c=(0,f.join)(b.maintenanceDirectory,"wake");try{n((0,f.join)(c,`${a.sessionId}.failure-error.json`),{schemaVersion:1,requestId:a.requestId,stageHash:a.stageHash,clientId:a.clientId,sessionId:a.sessionId,stage:a.stage,error:a.error instanceof Error?{name:a.error.name,message:a.error.message,stack:a.error.stack??null}:{name:"unknown",message:String(a.error),stack:null},failedAtUtc:new Date().toISOString()})}finally{try{(0,d.rmSync)((0,f.join)(c,`${a.sessionId}.failure.json`),{force:!0})}catch{}}}function D(){let a=s();return a?{requestId:a.request.requestId,stageHash:a.command.stageHash,phase:a.command.phase}:null}function E(a){let b=[...new Set(a.filter(a=>"string"==typeof a&&a.trim()).map(a=>a.trim()))].sort();n((0,f.join)(l(),"runtime-activity",`${process.pid}.json`),{schemaVersion:2,processId:process.pid,processStartedAtUtc:new Date(Date.now()-1e3*process.uptime()).toISOString(),updatedAtUtc:new Date().toISOString(),runningSessionIds:b})}function F(){let a=process.env.CUELO_DEPLOY_REQUEST_ID?.trim()||null,b=process.env.CUELO_DEPLOY_STAGE_HASH?.trim().toLowerCase()||null,c=process.env.CUELO_DEPLOY_MARKER_PATH?.trim()||null;if(!a||!b||!c||!g.test(a)||!i.test(b))return{ready:!1,requestId:a,stageHash:b,transactionId:null};let d=m((0,f.resolve)(c)),e=d&&"string"==typeof d.transactionId?d.transactionId:null;return{ready:d?.schemaVersion===1&&d.requestId===a&&String(d.stageHash??"").toLowerCase()===b&&"string"==typeof e&&e.length>0,requestId:a,stageHash:b,transactionId:e}}function G(a,b){let c=F(),d=a&&g.test(a)?p(a):null,e=d?q(d):null,h=d?m(d.resultPath):null,i=d&&e?r(d,e):null,j=d&&e?function(a,b){let c=m((0,f.join)(a.maintenanceDirectory,"cleanup.json"));if(!c||1!==c.schemaVersion||"runtime-transaction"!==c.owner||c.requestId!==a.requestId||c.stageHash!==b.stageHash||"ARTIFACT_CLEANUP"!==c.phase)return null;let d=c.status;if("running"!==d&&"succeeded"!==d&&"failed"!==d&&"skipped"!==d&&"pending-approval"!==d)return null;let e=Number(c.ownerPid),g=Number(c.completedCount),h=Number(c.totalCount),i=Number(c.removedCount),j=Number(c.keptCount),k=Number(c.elapsedSeconds);if(!Number.isInteger(e)||e<=0||!Number.isInteger(g)||g<0||!Number.isInteger(h)||h<g||!Number.isInteger(i)||i<0||!Number.isInteger(j)||j<0||!Number.isFinite(k)||k<0||"succeeded"===d&&g!==h)return null;let l=null===c.currentTarget?null:String(c.currentTarget??"");if(null!==l&&!l)return null;let n=String(c.startedAtUtc??""),o=String(c.updatedAtUtc??""),p=null===c.finishedAtUtc?null:String(c.finishedAtUtc??"");return Number.isFinite(Date.parse(n))&&Number.isFinite(Date.parse(o))&&(null===p||Number.isFinite(Date.parse(p)))?{schemaVersion:1,owner:"runtime-transaction",ownerPid:e,requestId:a.requestId,stageHash:b.stageHash,phase:"ARTIFACT_CLEANUP",status:d,reason:null===c.reason?null:String(c.reason??""),startedAtUtc:n,updatedAtUtc:o,finishedAtUtc:p,currentTarget:l,completedCount:g,totalCount:h,removedCount:i,keptCount:j,elapsedSeconds:k,failureCount:Array.isArray(c.failures)?c.failures.length:0}:null}(d,e):null,k=b?.toLowerCase()||null,l=null!==D();return{schemaVersion:2,phase:c.ready&&c.requestId===a&&c.stageHash===k?"SERVICE_READY":e?.phase??"IDLE",service:c,mutationBlocked:l,deploymentCompleted:i?.completed===!0,writeSafe:i?.writeSafe===!0,cleanup:j,terminalStatus:h&&"string"==typeof h.status?h.status:null,terminalError:h&&"string"==typeof h.error?h.error:null}}},8102:(a,b,c)=>{c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},18904:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{I:()=>i,p:()=>h});var e=c(88692),f=a([e]);function g(a,b){return a.provider===b.provider&&a.id===b.modelId}async function h(a,b,c){let d=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===d.length)return{visible:a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:[]};let f=await (0,e.resolveModelScope)(d,a,void 0,c),g=[];if(await Promise.all(d.map(async b=>{let d=await (0,e.resolveModelScope)([b],a,void 0,c);0===d.length&&g.push(`No model matches "${b}" in enabledModels.`)})),0===f.length)return{visible:a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:g};let h={};for(let a of f)a.thinkingLevel&&(h[`${a.model.provider}/${a.model.id}`]=a.thinkingLevel);return{visible:f.map(a=>a.model),scopedModels:f,thinkingLevelPins:h,warnings:g}}function i(a,b={}){let c=b.requestedModel,d=b.defaultModel,e=c?a.visible.find(a=>g(a,c)):void 0;if(c&&!e)throw Error(`Model is not available in the enabled scope: ${c.provider}/${c.modelId}`);let f=e?a.scopedModels.find(a=>a.model===e||g(a.model,{provider:e.provider,modelId:e.id})):void 0,h=!e&&d?a.scopedModels.find(a=>g(a.model,d)):void 0,j=e?void 0:h??a.scopedModels[0],k=e||j||!d?void 0:a.visible.find(a=>g(a,d)),l=e??j?.model??k,m=f??j,n=b.thinkingLevel??m?.thinkingLevel;return{...l?{model:l}:{},...n?{thinkingLevel:n}:{},scopedModels:[...a.scopedModels]}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},25429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ex:()=>j,Ff:()=>i,R3:()=>k,Ro:()=>l});var e=c(73079),f=c(88692),g=c(96282),h=a([e,f,g]);function i(a){let b=(0,g.parseModelString)(a.getModelRole("default")??"");if(!b)return;let c=void 0===b.thinkingLevel||"auto"===b.thinkingLevel?void 0:b.thinkingLevel;return{provider:b.provider,modelId:b.id,...c?{thinkingLevel:c}:{}}}function j(a){let b=new Set,c=[];for(let d of(0,e.getKnownRoleIds)(a)){let e=function(a){if(!a)return;let b=a.indexOf("/");if(b<=0)return;let c=a.slice(b+1).split(":")[0];if(c)return{provider:a.slice(0,b),modelId:c}}(a.getModelRole(d));if(!e)continue;let f=`${e.provider}/${e.modelId}`;b.has(f)||(b.add(f),c.push(e))}return c}function k(a,b){let c=new Set(e.MODEL_ROLE_IDS);return(0,e.getKnownRoleIds)(a).map(d=>{var g,h;let i=(0,e.getRoleInfo)(d,a),j=a.getModelRole(d),k=j?(0,f.resolveModelRoleValue)(j,b,{settings:a}):void 0,l=k?.model?k.warning:k?k.warning??`No available model matches "${j}". The saved assignment is kept.`:void 0;return{role:d,...i.tag?{tag:i.tag}:{},name:i.name,...i.color?{color:String(i.color)}:{},builtin:c.has(d),hidden:!!e.MODEL_ROLES[d]?.hidden,...j?{selector:j}:{},source:a.getModelRoleSource(d),provenance:a.getModelRoleProvenance(d),...k?.model?{resolved:(g=k.model,h=k.thinkingLevel,{provider:g.provider,modelId:g.id,...g.name?{name:g.name}:{},...h?{thinkingLevel:h}:{}})}:{},...l?{warning:l}:{}}})}function l(a,b,c,d){"project"===d?c?a.setProjectModelRole(b,c):a.clearProjectModelRole(b):a.setModelRole(b,c)}[e,f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},28967:(a,b,c)=>{function d(){return globalThis.__ompModelsCacheState||(globalThis.__ompModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__ompModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){return b?{...a,modelError:b}:a}function g(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function h(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{Fw:()=>g,Mx:()=>f,kn:()=>e,rC:()=>h})},39873:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{zd:()=>i});var e=c(19819),f=a([e]);e=(f.then?(await f)():f)[0];let g=new Set(["set","show","pause","resume","drop","budget"]),h=["interactive","web"];class i{#a;#b;#c;#d;#e;#f;#g;#h;#i;constructor(a,b){this.#e=!1,this.#f=!1,this.#g=!1,this.#h=!1,this.#a=a,this.#b=b}getStatus(){var a;return a=this.#a.getGoalModeState?.(),a?.goal?{objective:a.goal.objective,status:a.goal.status,enabled:!0===a.enabled,tokensUsed:a.goal.tokensUsed,...void 0!==a.goal.tokenBudget?{tokenBudget:a.goal.tokenBudget}:{},timeUsedSeconds:a.goal.timeUsedSeconds}:null}get enabled(){return this.#a.getGoalModeState?.()?.enabled===!0}dispose(){this.#h=!0,this.#j()}restore(){return this.#i??=this.#k(),this.#i}async #k(){if(this.#a.getGoalModeState?.())return;let a=this.#l();if(a?.mode!=="goal"&&a?.mode!=="goal_paused")return;if(!this.#m()){this.#a.goalRuntime.clearAccounting(),this.#a.sessionManager.appendModeChange("none");return}let b=function(a){if(!a||"object"!=typeof a)return;let b=a.goal;if(b&&"object"==typeof b&&"string"==typeof b.id&&"string"==typeof b.objective&&"string"==typeof b.status&&"number"==typeof b.tokensUsed&&"number"==typeof b.timeUsedSeconds&&"number"==typeof b.createdAt&&"number"==typeof b.updatedAt)return{id:b.id,objective:b.objective,status:b.status,tokenBudget:"number"==typeof b.tokenBudget?b.tokenBudget:void 0,tokensUsed:b.tokensUsed,timeUsedSeconds:b.timeUsedSeconds,createdAt:b.createdAt,updatedAt:b.updatedAt}}(a.data);if(!b)return void this.#a.sessionManager.appendModeChange("none");this.#a.setGoalModeState?.({enabled:"goal"===a.mode,mode:"active",goal:b});let c=await this.#a.goalRuntime.onThreadResumed();c?.goal&&(await this.#n(),this.#o())}async handleCommand(a){if(await this.restore().catch(()=>{}),!this.#m())return this.#p("Goal mode is disabled. Enable it in settings (goal.enabled).");if(this.#a.getPlanModeState?.()?.enabled)return this.#p("Exit plan mode first.");let{sub:b,rest:c}=function(a){let b=a.trim();if(!b)return{rest:""};let c=/^(\S+)(?:\s+([\s\S]*))?$/.exec(b);if(!c)return{rest:b};let d=c[1].toLowerCase();return g.has(d)?{sub:d,rest:c[2]?.trim()??""}:{rest:b}}(a);switch(b){case"show":return this.#q();case"pause":return await this.#r();case"resume":return await this.#s();case"drop":return await this.#t();case"budget":return await this.#u(c);case"set":return await this.#v(c)}let d=this.#a.getGoalModeState?.();return c?d?.enabled?this.#p("Goal mode is already active. Use /goal set to replace it, or /goal drop to start over."):this.#w()?this.#p("Resume the current goal first, or drop it before setting a new objective."):await this.#x(c):d?this.#q():this.#p("Usage: /goal <objective>, or /goal set <objective>.")}reconcileToolNames(a){return this.enabled||this.#w()?(this.#c=a.filter(a=>"goal"!==a),[...new Set([...a,"goal"])]):a}onUserPrompt(){this.#g=!1,this.#j()}onAbort(){this.#j()}async handleSessionEvent(a){switch(a.type){case"agent_start":this.#f=!1,this.#j();return;case"tool_execution_start":this.#f=!0,this.#e||(this.#g=!1);return;case"goal_updated":{let b=a.state;if(b?.goal?.status==="dropped")return void await this.#y({reason:"dropped"});b?.enabled&&!this.#c&&(this.#c=this.#a.getEnabledToolNames().filter(a=>"goal"!==a)),b?.enabled||this.#j(),this.#o();return}case"agent_end":if(this.#e&&(this.#g=!this.#f,this.#e=!1),this.#a.getGoalModeState?.()?.mode==="exiting")return void await this.#y({reason:"completed"});this.#z();return;default:return}}#q(){var a;let b,c,d,e,f,g=this.getStatus();if(!g)return this.#p("No goal set.");return{message:(e=g.tokensUsed.toLocaleString(),f=void 0!==g.tokenBudget?`${e} / ${g.tokenBudget.toLocaleString()} (${Math.max(0,g.tokenBudget-g.tokensUsed).toLocaleString()} left)`:`${e} (no budget)`,`Objective: ${g.objective}
5
5
  Status: ${g.status}${g.enabled?"":" (paused)"}
6
6
  Tokens: ${f}
7
- Time spent: ${a=g.timeUsedSeconds,b=Math.max(0,Math.round(a)),c=Math.floor(b/3600),d=Math.floor(b%3600/60),c>0?`${c}h ${d}m`:d>0?`${d}m ${b%60}s`:`${b}s`}`),status:g}}async #v(a){if(!a)return this.#p("Usage: /goal set <objective>");if(!this.enabled&&this.#w())return this.#p("Resume the current goal first, or drop it before setting a new objective.");if(!this.enabled)return await this.#x(a);let b=await this.#a.goalRuntime.replaceGoal({objective:a});return this.#a.setGoalModeState?.(b),this.#g=!1,this.#a.isStreaming&&await this.#a.sendGoalModeContext({deliverAs:"steer"}),{message:"Goal replaced.",prompt:a,status:this.getStatus()}}async #x(a){let b=this.#a.getEnabledToolNames().filter(a=>"goal"!==a),c=await this.#a.goalRuntime.createGoal({objective:a});return this.#c=b,await this.#a.setActiveToolsByName([...new Set([...b,"goal"])]),this.#a.setGoalModeState?.(c),this.#g=!1,this.#a.isStreaming&&await this.#a.sendGoalModeContext({deliverAs:"steer"}),this.#o(),{message:"Goal mode enabled.",prompt:a,status:this.getStatus()}}async #r(){return this.enabled?(await this.#a.goalRuntime.pauseGoal(),await this.#y({reason:"paused"}),{message:"Goal mode paused.",status:this.getStatus()}):this.#p("No active goal to pause.")}async #s(){if(!this.#w())return this.#p("No paused goal to resume.");let a=this.#a.getEnabledToolNames().filter(a=>"goal"!==a),b=await this.#a.goalRuntime.resumeGoal();return this.#c=a,await this.#a.setActiveToolsByName([...new Set([...a,"goal"])]),this.#a.setGoalModeState?.(b),this.#g=!1,this.#o(),this.#z(),{message:"Goal mode resumed.",status:this.getStatus()}}async #t(){return this.enabled||this.#w()?(await this.#a.goalRuntime.dropGoal(),await this.#y({reason:"dropped"}),{message:"Goal dropped.",status:this.getStatus()}):this.#p("No goal to drop.")}async #u(a){let b=this.#a.getGoalModeState?.();if(!this.enabled||!b?.enabled)return this.#p(this.#w()?"Resume the goal before adjusting the budget.":"No active goal.");if("complete"===b.goal.status)return this.#p("Goal is already complete.");if(!a)return this.#p("Usage: /goal budget <N|off>");let{budget:c,error:d}=function(a){let b=a.trim().toLowerCase();if("off"===b)return{};let c=Number.parseInt(b,10);return!Number.isInteger(c)||c<=0||String(c)!==b?{error:"Goal budget must be a positive integer or `off`."}:{budget:c}}(a);return d?this.#p(d):(await this.#a.goalRuntime.onBudgetMutated(c),this.#g=!1,this.#o(),this.#z(),{message:void 0===c?"Goal budget cleared.":`Goal budget set to ${c.toLocaleString()}.`,status:this.getStatus()})}async #y(a){let b=this.#c;if(b&&await this.#a.setActiveToolsByName(b),"completed"===a.reason){let a=this.#a.getGoalModeState?.()?.goal;this.#a.setGoalModeState?.(void 0),this.#a.sessionManager.appendModeChange("none"),this.#a.sessionManager.appendCustomEntry("goal-completed",{objective:a?.objective,tokensUsed:a?.tokensUsed,tokenBudget:a?.tokenBudget,timeUsedSeconds:a?.timeUsedSeconds})}this.#c=void 0,this.#e=!1,this.#j(),this.#o()}async #n(){let a=this.#a.getEnabledToolNames().filter(a=>"goal"!==a);this.#c=a,await this.#a.setActiveToolsByName([...new Set([...a,"goal"])])}#z(){var a;if(this.#j(),this.#h||(a=e.cfgGoalContinuationModes.get(this.#a.settings),!(Array.isArray(a)&&h.some(b=>a.includes(b)))||this.#a.getPlanModeState?.()?.enabled||this.#g))return;let b=this.#a.getGoalModeState?.();!b?.enabled||"active"!==b.goal.status||this.#a.goalRuntime.buildContinuationPrompt()&&(this.#d=setTimeout(()=>{this.#d=void 0,this.#A()},this.#b.continuationDelayMs??800))}async #A(){if(this.#h||this.#g||this.#b.isBusy())return;let a=this.#a.getGoalModeState?.();if(!a?.enabled||"active"!==a.goal.status)return;let b=this.#a.goalRuntime.buildContinuationPrompt();if(b){this.#e=!0;try{await this.#b.runContinuation(b)}catch{this.#e=!1}}}#j(){this.#d&&(clearTimeout(this.#d),this.#d=void 0)}#p(a){return{error:a,status:this.getStatus()}}#m(){return!1!==e.cfgGoalEnabled.get(this.#a.settings)}#w(){let a=this.#a.getGoalModeState?.();if(a?.goal&&!a.enabled&&"paused"===a.goal.status)return a}#l(){let a=this.#a.sessionManager.getEntries();for(let b=a.length-1;b>=0;b-=1)if(a[b]?.type==="mode_change")return a[b]}#o(){this.#b.onStatusChange?.(this.getStatus())}}d()}catch(a){d(a)}})},41761:(a,b,c)=>{c.d(b,{C1:()=>d});let d=["read","bash","edit","write","grep","glob"];Object.fromEntries(d.map(a=>[a,!0]))},53923:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{D:()=>i});var e=c(58505),f=c(4327),g=a([e,f]);function h(a,b){return(0,e.findConfigFile)(a,{user:!1,cwd:b})??(0,e.findConfigFile)(a,{user:!0,cwd:b})}async function i(a){let[b,c]=await Promise.all([(0,f.resolvePromptInput)(h("SYSTEM.md",a),"system prompt"),(0,f.resolvePromptInput)(h("APPEND_SYSTEM.md",a),"append system prompt")]);return{systemPrompt:b,appendPrompt:c}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>Z,Bp:()=>$,HG:()=>ab,KI:()=>J,MT:()=>W,OF:()=>ad,_I:()=>_,oA:()=>aa});var e=c(63411),f=c(92582),g=c(33594),h=c(94285),i=c(59895),j=c(28315),k=c(25167),l=c(14882),m=c(1740),n=c(9655),o=c(82512),p=c(43696),q=c(26854),r=c(55511),s=c(29021),t=c(33873),u=c(78970),v=c(36208),w=c(28967),x=c(18904),y=c(40402),z=c(72498),A=c(53923),B=c(25429),C=c(38741),D=c(5908),E=c(41761),F=c(4157),G=c(39873),H=c(71069),I=a([e,f,g,h,i,j,k,l,m,n,o,p,q,x,y,A,B,C,G]);function J(a){let b,c=null,d=!1,e=()=>{if(b&&(clearTimeout(b),b=void 0),d||!c)return;let e=c;c=null,a(e)};return{push:f=>{if(!d){if("message_update"===f.type){c=f,b||(b=setTimeout(()=>{b=void 0,e()},33));return}e(),a(f)}},flush:e,close:()=>{d=!0,c=null,clearTimeout(b),b=void 0}}}[e,f,g,h,i,j,k,l,m,n,o,p,q,x,y,A,B,C,G]=I.then?(await I)():I;let ae=new Set(["agent_start","agent_end","agent_settled","auto_compaction_start","auto_compaction_end","compaction_start","compaction_end"]),af=new Set(["agent_end","agent_settled","auto_compaction_end","compaction_end"]),ag={abort:!0,extension_ui_input:!0,extension_ui_response:!0,get_commands:!0,get_last_assistant_text:!0,get_session_stats:!0,get_state:!0,get_subagent_messages:!0,get_subagents:!0,get_tools:!0},ah={bash:!0,compact:!0,follow_up:!0,fork:!0,handoff:!0,prompt:!0,steer:!0},ai={set_model:!0,set_role_model:!0,set_thinking_level:!0};async function K(a,b){let c=a.modelRegistry.authStorage;if(!c?.oauth)return{ok:!1,reason:"이 세션은 OAuth 계정 목록을 읽을 수 없습니다."};try{return await c.reload?.(),{ok:!0,accounts:c.oauth.accounts(b,a.sessionId)}}catch(a){return{ok:!1,reason:`계정 목록을 읽지 못했습니다: ${a instanceof Error?a.message:String(a)}`}}}async function L(a,b){let c=await K(a,b);return c.ok?{ok:!0,snapshot:{provider:b,credentialId:c.accounts.find(a=>a.active)?.credentialId}}:{ok:!1,reason:c.reason}}async function M(a,b){if(!b)return!1;let c=a.modelRegistry.authStorage;if(!c)return!1;try{if(void 0!==b.credentialId)return c.sessions?.pin(b.provider,a.sessionId,b.credentialId)??!1;return c.sessions?.release(b.provider,a.sessionId)??!1}catch{return!1}}async function N(a,b,c){if(!Number.isSafeInteger(c)||c<0)return{ok:!1,reason:`OAuth 저장 위치 ${String(c)}가 올바르지 않습니다.`};if(!a.modelRegistry.authStorage?.sessions)return{ok:!1,reason:"이 세션은 OAuth 계정 pin을 지원하지 않습니다."};let d=await K(a,b);if(!d.ok)return{ok:!1,reason:d.reason};if(0===d.accounts.length)return{ok:!1,reason:"저장된 OAuth 계정이 없습니다."};let e=d.accounts.find((a,b)=>(Number.isInteger(a.position)?a.position:b)===c);if(!e)return{ok:!1,reason:`${b} OAuth 저장 위치 ${c}의 계정이 없습니다.`};let f=!1;try{f=a.modelRegistry.authStorage.sessions.pin(b,a.sessionId,e.credentialId)}catch{f=!1}if(!f)return{ok:!1,reason:`${b} OAuth 저장 위치 ${c} 계정을 이 세션의 선호 계정으로 설정하지 못했습니다.`};let g=await K(a,b),h=g.ok?g.accounts.find((a,b)=>(Number.isInteger(a.position)?a.position:b)===c):void 0;return h?.active!==!0?{ok:!1,reason:`${b} OAuth 저장 위치 ${c}이 이 세션의 선호 계정으로 설정되지 않았습니다.`}:{ok:!0}}async function O(a,b){let c=await Q(a,b.previousModel,b.previousRole),d=void 0===b.account||await M(a,b.account),e=!0;if(void 0!==b.previousThinking&&a.configuredThinkingLevel()!==b.previousThinking){try{a.setThinkingLevel(b.previousThinking)}catch{}e=a.configuredThinkingLevel()===b.previousThinking}return{model:c,account:d,thinking:e}}function P(a){let b=[];return a.model||b.push("모델"),a.account||b.push("계정 선호"),a.thinking||b.push("thinking 강도"),0===b.length?"모델\xb7계정\xb7강도를 되돌렸습니다.":`${b.join("\xb7")} 복원에 실패했습니다 — 이전 상태로 돌아가지 않았습니다.`}async function Q(a,b,c){if(!b)return!1;let d=a.model;if(d?.provider===b.provider&&d?.id===b.id)return!0;try{return await a.setModel(b,c),!0}catch{return!1}}let aj=Object.fromEntries(E.C1.map(a=>[a,!0]));class ak extends f.Theme{constructor(){super({thinkingXhigh:""},{},"truecolor","unicode",{})}fg(...[,a]){return a}bg(...[,a]){return a}bold(a){return a}italic(a){return a}underline(a){return a}inverse(a){return a}strikethrough(a){return a}getFgAnsi(){return""}getBgAnsi(){return""}getThinkingBorderColor(){return a=>a}getBashModeBorderColor(){return a=>a}}let al=new ak,am=new q.KeybindingsManager(q.TUI_KEYBINDINGS);function R(a,b){if(0===b.length)return[];let c=a.getAllToolNames().filter(a=>!0!==aj[a]);return[...new Set([...b,...c])]}function S(a,b,c){let d=c.name.trim();!d||b.has(d)||(b.add(d),a.push({...c,name:d}))}let an=["fork","goal"];async function T(a){let b=[],c=new Set;for(let a of an){let d=i.BUILTIN_SLASH_COMMAND_DEFS.find(b=>b.name===a);if(!d)continue;let e=d.inlineHint;S(b,c,{name:d.name,aliases:d.aliases,description:d.description,source:"builtin",...e?{input:{hint:e}}:{},...d.subcommands?{subcommands:d.subcommands}:{}})}for(let d of(await (0,g.buildAvailableSlashCommands)(a)))S(b,c,d);for(let d of a.promptTemplates)S(b,c,{name:d.name,description:d.description,source:"prompt",...d.source?{path:d.source}:{}});return b}class ao{constructor(a,b){this.inner=a,this.listeners=[],this.pendingUiResponses=new Map,this.keepAliveListeners=new Set,this.pendingUiRequests=new Map,this.activeCustomUis=new Map,this.extensionStatuses=new Map,this.extensionWidgets=new Map,this.promptRunning=!1,this.modelMutations=0,this.presetMutation=!1,this.handoffRunning=!1,this.extensionsBound=!1,this.extensionBindingPromise=null,this.extensionBindingError=null,this.forceEmptySystemPrompt=!1,this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this.shutdownPromise=null,this.subagentHistory=new Map,this.goalModeController=null,this._alive=!0,this.closing=!1,this.subagents=new p.RpcSubagentRegistry(b,a=>{this.rememberSubagentFrame(a),this.emit(a),this.resetIdleTimer(),ac()}),this.subagents.setSubscriptionLevel("progress")}rememberSubagentSnapshot(a){if(this.subagentHistory.set(a.id,a),this.subagentHistory.size<=128)return;let b=[...this.subagentHistory.values()].filter(a=>"pending"!==a.status&&"running"!==a.status).sort((a,b)=>a.lastUpdate-b.lastUpdate);for(;this.subagentHistory.size>128&&b.length>0;){let a=b.shift();a&&this.subagentHistory.delete(a.id)}}rememberSubagentFrame(a){if("subagent_progress"===a.type){let b=a.payload,c=b?.progress?.id;if(!c)return;let d=this.subagents.getSubagents().find(a=>a.id===c);d&&this.rememberSubagentSnapshot(d);return}if("subagent_lifecycle"!==a.type)return;let b=a.payload;if(!b?.id||!b.status)return;let c=this.subagents.getSubagents().find(a=>a.id===b.id);if("started"===b.status){c&&this.rememberSubagentSnapshot(c);return}let d=c??this.subagentHistory.get(b.id),e="failed"===b.status?"failed":"aborted"===b.status?"aborted":"completed";this.rememberSubagentSnapshot({id:b.id,index:b.index??d?.index??0,agent:b.agent??d?.agent??b.id,agentSource:b.agentSource??d?.agentSource??"bundled",description:b.description??d?.description,status:e,task:d?.task,assignment:d?.assignment,sessionFile:b.sessionFile??d?.sessionFile,lastUpdate:Date.now(),parentToolCallId:b.parentToolCallId??d?.parentToolCallId,progress:d?.progress?{...d.progress,status:e}:void 0})}getSubagentSnapshots(){for(let a of this.subagents.getSubagents())this.rememberSubagentSnapshot(a);let a=new Map(this.subagentHistory);for(let b of this.subagents.getSubagents())a.set(b.id,b);return[...a.values()].sort((a,b)=>{let c="pending"===a.status||"running"===a.status,d="pending"===b.status||"running"===b.status;return c!==d?c?-1:1:c?a.index-b.index||a.id.localeCompare(b.id):b.lastUpdate-a.lastUpdate||a.id.localeCompare(b.id)})}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}get cwd(){return this.inner.sessionManager.getCwd()}isAlive(){return this._alive}isRunning(){return this._alive&&(this.promptRunning||this.handoffRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning||this.subagents.getSubagents().length>0)}beginClose({onlyWhenIdle:a=!1}={}){return!this._alive||!(a&&!this.closing&&this.isRunning())&&(this.closing=!0,!0)}cancelClose(){this._alive&&!this.shutdownPromise&&(this.closing=!1)}bindToolUiContext(a){a(this.createExtensionUiContext(),!0)}start(){this.syncPlanModeFromSession(),this.goalMode.restore().catch(a=>{console.error("[cuelo] failed to restore goal mode:",a instanceof Error?a.message:a)}),this.unsubscribe=this.inner.subscribe(a=>{"agent_end"===a.type&&(0,y.mD)(),af.has(a.type)&&this.resetIdleTimer(),this.emit(a),ae.has(a.type)&&ac(),this.goalMode.handleSessionEvent(a).catch(a=>{console.error("[cuelo] goal mode failed to handle a session event:",a instanceof Error?a.message:a)})}),this.resetIdleTimer(),ac()}setForceEmptySystemPrompt(a){this.forceEmptySystemPrompt=a,this.applyForcedEmptySystemPrompt()}beginExtensionBinding(a={}){this.ensureExtensionsBound(a).catch(a=>{console.error("[cuelo] failed to dispatch session_start to extensions:",a instanceof Error?a.message:a)})}async waitUntilReady(){await this.waitForExtensionsBound()}ensureExtensionsBound(a={}){return(a.forceEmptySystemPrompt&&(this.forceEmptySystemPrompt=!0),this.extensionsBound)?(this.applyForcedEmptySystemPrompt(),Promise.resolve()):(this.extensionBindingPromise||(this.extensionBindingError=null,this.extensionBindingPromise=(async()=>{this._alive&&(await (0,n.initializeExtensions)(this.inner,{uiContext:this.createExtensionUiContext(),reportSendError:(a,b)=>this.emit({type:"extension_error",extensionPath:a,event:"send",error:b.message}),reportRuntimeError:a=>this.emit({type:"extension_error",extensionPath:a.extensionPath,event:a.event,error:a.error}),onShutdown:()=>this.emit({type:"extension_ui_request",id:(0,r.randomUUID)(),method:"notify",notifyType:"warning",message:"Extension requested shutdown, but shutdown is not supported in CUELO."})}),this.extensionsBound=!0,this.applyForcedEmptySystemPrompt(),console.log(`[cuelo] session_start dispatched to extensions for session ${this.inner.sessionId}`))})().catch(a=>{throw this.extensionBindingError=a,a})),this.extensionBindingPromise)}async waitForExtensionsBound(){try{this.extensionBindingPromise&&await this.extensionBindingPromise}catch(a){throw a instanceof Error?a:Error(String(a))}if(this.extensionBindingError)throw this.extensionBindingError instanceof Error?this.extensionBindingError:Error(String(this.extensionBindingError))}shouldWaitForExtensions(a){return"prompt"===a||"steer"===a||"follow_up"===a||"handoff"===a||"get_commands"===a||"execute_slash_command"===a||"goal"===a}async withFinalRunningNotification(a){try{return await a()}finally{this.resetIdleTimer(),ac()}}async shutdownAfterCommittedFork(a){try{await this.shutdown()}catch(b){console.error(`[cuelo] fork created session ${a}, but wrapper shutdown failed:`,b instanceof Error?b.message:b)}}applyForcedEmptySystemPrompt(){this.forceEmptySystemPrompt&&this.inner.agent.state&&(this.inner.agent.state.systemPrompt=[])}get goalMode(){return this.goalModeController||(this.goalModeController=new G.zd(this.inner,{isBusy:()=>this.promptRunning||this.handoffRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning,runContinuation:a=>this.runGoalContinuation(a),onStatusChange:a=>this.emit({type:"goal_status",status:a})})),this.goalModeController}async runGoalContinuation(a){this.promptRunning=!0,ac();try{await this.inner.promptCustomMessage({customType:"goal-continuation",content:a,display:!1,attribution:"user"})}catch(a){throw this.emit({type:"prompt_error",errorMessage:a instanceof Error?a.message:String(a)}),a}finally{this.promptRunning=!1,this.resetIdleTimer(),this.emit({type:"prompt_done"}),ac()}}syncPlanModeFromSession(){let a=this.inner.getPlanModeState?.();if(!a){let b,c=this.inner.sessionManager.getEntries();for(let a=c.length-1;a>=0;a-=1)if(c[a]?.type==="mode_change"){b=c[a];break}let d=b?.data?.planFilePath;b?.mode==="plan"&&"string"==typeof d&&d.length>0&&(a={enabled:!0,planFilePath:d,workflow:b.data?.workflow==="sequential"?"sequential":"parallel",reentry:!0},this.inner.setPlanModeState?.(a))}a?.enabled&&this.inner.setPlanProposalHandler?.(a=>this.handlePlanProposal(a))}async handlePlanProposal(a){let b=this.inner.getPlanModeState?.();if(!b?.enabled||!this.inner.preparePlanForReview)throw Error("Plan mode is not active.");let c=await this.inner.preparePlanForReview(a),d=c.details?.planFilePath,e=c.details?.title;if(!d||!e)throw Error("The proposed plan could not be resolved.");let f=await (0,o.readPlanFile)(d,{cwd:this.cwd,localProtocolOptions:{getArtifactsDir:()=>this.inner.sessionManager.getArtifactsDir(),getSessionId:()=>this.inner.sessionManager.getSessionId()}});if(!f?.trim())throw Error(`Plan file not found at ${d}`);let g=await this.requestExtensionUi({method:"plan_review",title:e,planFilePath:d,planContent:f},JSON.stringify({action:"refine"}),a=>"value"in a?a.value:JSON.stringify({action:"refine"})),h={};try{h=JSON.parse(g)}catch{}let i={planFilePath:d,title:e,planExists:!0};if("approve"===h.action)return this.inner.setPlanReferencePath?.(d),this.inner.setPlanProposalHandler?.(null),this.inner.setPlanModeState?.(void 0),this.inner.sessionManager.appendModeChange("none"),{content:[{type:"text",text:`Plan approved at ${d}. Plan mode exited; proceed with the implementation.`}],details:i};b.planFilePath!==d&&(this.inner.setPlanModeState?.({...b,planFilePath:d}),this.inner.sessionManager.appendModeChange("plan",{planFilePath:d}));let j="string"==typeof h.feedback?h.feedback.trim():"";return{content:[{type:"text",text:["Plan refinement requested.",j?`User feedback:
8
- ${j}`:"",`Update the plan file, then write ${e} to xd://propose again when ready.`].filter(Boolean).join("\n\n")}],details:i}}publishSessionSnapshot(a,b){this.emit({type:"session_snapshot",sessionId:this.sessionId,entryId:a,context:b})}emit(a){for(let b of this.listeners)b(a)}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.keepAliveListeners.size>0||this.isRunning()?this.resetIdleTimer():this.shutdown().catch(a=>{console.error("[pi-web] failed to shut down idle session:",a instanceof Error?a.message:a)})},6e5)}persistBashOnlySession(){let a=this.inner.sessionManager,b=a.getSessionFile();if(!b||(0,s.existsSync)(b))return;let c=a.getHeader();if(!c)return;let d=[c,...a.getEntries()].map(a=>JSON.stringify(a)).join("\n")+"\n";(0,s.writeFileSync)(b,d,{encoding:"utf8",flag:"wx"}),a.flushed=!0,(0,y.O8)(this.inner.sessionId,b)}onEvent(a,b={}){for(let c of(this.listeners.push(a),b.keepAlive&&(this.keepAliveListeners.add(a),this.resetIdleTimer()),this.pendingUiRequests.values()))a(c);return()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1),this.keepAliveListeners.delete(a)&&0===this.keepAliveListeners.size&&this._alive&&this.resetIdleTimer()}}onDestroy(a){this.onDestroyCallback=a}async sendInternalPrompt(a){return this.send({type:"prompt",message:a},!0)}async emitGenuineUserInput(a,b){let c=this.inner.extensionRunner;if(!c?.hasHandlers?.("input"))return{text:a,images:b};let d=await c.emitInput?.(a,b,"rpc");return d?!0===d.handled?(console.log(`[cuelo] input event consumed by an extension for session ${this.inner.sessionId}`),null):{text:void 0!==d.text?d.text.trim():a,images:void 0!==d.images?d.images:b}:{text:a,images:b}}async send(a,b=!1){this.resetIdleTimer();let c=a.type;if(this.shouldWaitForExtensions(c)&&await this.waitForExtensionsBound(),this.closing&&!0===ah[c])throw Error("Session is closing");if(this.handoffRunning&&!0!==ag[c])throw Error("Cannot modify the session while a handoff is in progress");let d="set_model"===c&&(void 0!==a.thinkingLevel||void 0!==a.oauthPosition);if(!0===ai[c]&&(this.presetMutation||d&&this.modelMutations>0))throw Error("Cannot change the model while another model change is in progress");if("prompt"===c&&!b&&this.presetMutation)throw Error("Cannot send a prompt while a Main preset is being applied");if(("prompt"===c||"steer"===c||"follow_up"===c)&&this.syncPlanModeFromSession(),"prompt"===c||"steer"===c||"follow_up"===c){let b=(0,u.kc)(a.images);if(b)throw Error(b)}switch(c){case"prompt":{if(this.inner.isBashRunning)throw Error("Cannot send a prompt while a shell command is running");this.goalMode.onUserPrompt();let c=a.message,d=a.images,e=a.streamingBehavior;if(!b&&void 0===e){let a=await this.emitGenuineUserInput(c,d);if(null===a||(c=a.text,d=a.images,!c&&!d?.length))return null}let f=(0,k.resolveRpcSkillInvocation)(this.inner,c),g=f?(0,j.buildSkillPromptMessage)(f.skill,f,"user").then(a=>this.inner.promptCustomMessage({customType:l.SKILL_PROMPT_MESSAGE_TYPE,content:d?.length?[{type:"text",text:a.message},...d]:a.message,display:!0,details:a.details,attribution:"user"},{...e?{streamingBehavior:e}:{},queueChipText:c})):this.inner.prompt(c,{...d?.length?{images:d}:{},...e?{streamingBehavior:e}:{},userInitiated:!0});return this.promptRunning=!0,ac(),g.then(()=>{this.promptRunning=!1,this.resetIdleTimer(),e||this.emit({type:"prompt_done"}),ac()}).catch(a=>{this.promptRunning=!1,this.resetIdleTimer(),(0,y.mD)(),this.emit({type:"prompt_error",errorMessage:a instanceof Error?a.message:String(a)}),e||this.emit({type:"prompt_done"}),ac()}),null}case"abort":return this.goalMode.onAbort(),await this.withFinalRunningNotification(()=>this.inner.abort()),null;case"get_state":{let a=this.inner.model,b=this.inner.getContextUsage();return{sessionId:this.inner.sessionId,sessionFile:this.inner.sessionFile??"",isStreaming:this.inner.isStreaming,isPromptRunning:this.promptRunning,isBashRunning:this.inner.isBashRunning,isCompacting:this.inner.isCompacting,isHandoffRunning:this.handoffRunning,autoCompactionEnabled:this.inner.autoCompactionEnabled,autoRetryEnabled:this.inner.autoRetryEnabled,model:a?{id:a.id,provider:a.provider}:void 0,messageCount:0,pendingMessageCount:this.inner.queuedMessageCount,queuedMessages:{steering:[...this.inner.getQueuedMessages().steering],followUp:[...this.inner.getQueuedMessages().followUp]},contextUsage:b?{percent:b.percent,contextWindow:b.contextWindow,tokens:b.tokens}:null,systemPrompt:[this.inner.agent.state?.systemPrompt??""].flat().join("\n"),thinkingLevel:this.inner.agent.state?.thinkingLevel??"off",configuredThinkingLevel:this.inner.configuredThinkingLevel()??"off",extensionStatuses:this.getExtensionStatuses(),extensionWidgets:this.getExtensionWidgets(),subagents:this.getSubagentSnapshots(),todoPhases:this.inner.getTodoPhases(),goal:this.goalMode.getStatus()}}case"get_subagents":return{subagents:this.getSubagentSnapshots()};case"get_subagent_messages":{let b=this.subagents.resolveSessionFile(a);return(0,p.readRpcSubagentTranscript)(b,a.fromByte)}case"set_model":{let{provider:b,modelId:c,role:d,oauthPosition:e,thinkingLevel:f}=a,g=void 0!==f||void 0!==e;this.modelMutations+=1,g&&(this.presetMutation=!0);try{let a,g=await (0,C.Ix)(this.inner.modelRegistry,b,c,{forceDiscovery:!0});if(g.miss)throw Error((0,D.zX)(g.miss));let h=g.model,i=this.inner.model,j=void 0!==e||void 0!==f?function(a){try{let b=a.sessionManager.getBranch();if(!Array.isArray(b))return;for(let a=b.length-1;a>=0;a-=1){let c=b[a];if(c?.type==="model_change")return"string"==typeof c.role?c.role:void 0}}catch{}}(this.inner):void 0,k=void 0!==f?this.inner.configuredThinkingLevel():void 0;if(void 0!==e){let b=await L(this.inner,h.provider);if(!b.ok)throw Error(`${b.reason} 계정 변경을 시작하지 않았습니다.`);a=b.snapshot}if(await this.inner.setModel(h,d),void 0!==e){let b=await N(this.inner,h.provider,e);if(!b.ok){let c=await O(this.inner,{previousModel:i,previousRole:j,previousThinking:k,account:a});throw Error(`${b.reason} ${P(c)}`)}}if(void 0!==f)try{this.inner.setThinkingLevel(f)}catch(d){let b=`thinking level ${f} 적용에 실패했습니다: ${d instanceof Error?d.message:String(d)}`,c=await O(this.inner,{previousModel:i,previousRole:j,previousThinking:k,account:a});throw Error(`${b} ${P(c)}`)}return(0,w.kn)(),(0,y.mD)(),{id:h.id,provider:h.provider,...d?{role:d}:{}}}finally{g&&(this.presetMutation=!1),this.modelMutations-=1}}case"set_role_model":{let b=a.role;this.modelMutations+=1;try{await (0,C.Ef)(this.inner.modelRegistry,(0,B.Ex)(this.inner.settings));let a=this.inner.resolveRoleModel(b);if(!a)throw Error(`No model configured for role "${b}"`);return await this.inner.setModel(a,b),(0,w.kn)(),(0,y.mD)(),{id:a.id,provider:a.provider,role:b}}finally{this.modelMutations-=1}}case"fork":{let b;if(this.inner.isBashRunning)throw Error("Cannot fork while a shell command is running");let c=this.inner.sessionManager,d=function(a,b){if("string"==typeof b&&b.length>0)return b;for(let b=a.length-1;b>=0;b-=1){let c=a[b];if(c?.type==="message"&&c.message?.role==="user"&&c.id)return c.id}}(c.getBranch(),a.entryId);if(!d)throw Error("No user message to fork from yet");let e=this.inner.sessionFile;if(!e)return{cancelled:!0};let g=c.getEntry(d);if(!g)throw Error("Invalid entry ID for forking");let h=c.getSessionDir();if(g.parentId){let a=(await f.SessionManager.open(e,h)).createBranchedSession(g.parentId);if(!a)throw Error("Failed to create forked session");b=a}else{let a=f.SessionManager.create(c.getCwd(),h);await a.newSession({parentSession:e}),await a.ensureOnDisk(),b=a.getSessionFile()}let i=(await f.SessionManager.open(b,h)).getSessionId();return(0,y.O8)(i,b),(0,y.mD)(),await this.shutdownAfterCommittedFork(i),{cancelled:!1,newSessionId:i}}case"handoff":{if(this.handoffRunning||this.promptRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)throw Error("Cannot hand off while the session is busy");let b=a.customInstructions;this.handoffRunning=!0,ac();try{if(!await this.inner.handoff(b))return{cancelled:!0};return(0,y.mD)(),{cancelled:!1}}finally{this.handoffRunning=!1,ac()}}case"navigate_tree":if(this.inner.isBashRunning)throw Error("Cannot navigate while a shell command is running");return{cancelled:(await this.inner.navigateTree(a.targetId,{})).cancelled};case"set_thinking_level":{let b=a.level;this.modelMutations+=1;try{return this.inner.setThinkingLevel(b),"xhigh"===b&&this.inner.model?.compat?.thinkingFormat==="deepseek"&&this.inner.agent?.state&&(this.inner.agent.state.thinkingLevel="xhigh"),(0,y.mD)(),null}finally{this.modelMutations-=1}}case"compact":try{return await this.withFinalRunningNotification(()=>this.inner.compact(a.customInstructions))}finally{(0,y.mD)()}case"set_session_name":{let b=a.name?.trim();if(!b)throw Error("Session name cannot be empty");return await this.inner.sessionManager.setSessionName(b,"user"),(0,y.mD)(),null}case"get_session_stats":return{...this.inner.getSessionStats(),sessionName:this.inner.sessionManager.getSessionName()};case"get_last_assistant_text":return{text:this.inner.getLastAssistantText()??""};case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;case"clear_queue":return this.inner.clearQueue();case"steer":{let b=a.images;var e,g=this.sessionId,i=a.message;try{(0,s.appendFileSync)((0,t.join)((0,f.getAgentDir)(),"steering-received.jsonl"),`${JSON.stringify({ts:Date.now(),sessionId:g??null,via:"steer",length:"string"==typeof i?i.length:0})}
9
- `)}catch{}return await this.inner.steer(a.message,b?.length?b:void 0),null}case"follow_up":{let b=a.images;return await this.inner.followUp(a.message,b?.length?b:void 0),null}case"get_tools":{let a=new Set(this.inner.getActiveToolNames());return(e=this.inner).getAllToolNames().map(a=>({name:a,description:e.getToolByName(a)?.description??""})).map(b=>({name:b.name,description:b.description,active:a.has(b.name)}))}case"get_commands":return{commands:await T(this.inner)};case"goal":return await this.goalMode.handleCommand(a.args??"");case"execute_slash_command":{let b=[],c=await (0,h.executeAcpBuiltinSlashCommand)(a.message,{session:this.inner,sessionManager:this.inner.sessionManager,settings:this.inner.settings,cwd:this.cwd,output:a=>{b.push(a)},refreshCommands:()=>{},reloadPlugins:async()=>{await this.waitForExtensionsBound(),this.extensionStatuses.clear(),this.extensionWidgets.clear(),await this.inner.reload(),await this.inner.refreshSkills?.(),this.applyForcedEmptySystemPrompt(),(0,w.kn)()}});if(!1===c)return{handled:!1,output:b};return{handled:!0,output:b,..."prompt"in c?{prompt:c.prompt}:{}}}case"set_tools":{let b=a.toolNames;return this.setForceEmptySystemPrompt(0===b.length),await this.inner.setActiveToolsByName(this.goalMode.reconcileToolNames(R(this.inner,b))),this.applyForcedEmptySystemPrompt(),null}case"reload":return await this.waitForExtensionsBound(),this.extensionStatuses.clear(),this.extensionWidgets.clear(),await this.inner.reload(),await this.inner.refreshSkills?.(),this.applyForcedEmptySystemPrompt(),(0,w.kn)(),{success:!0};case"abort_compaction":return this.inner.abortCompaction(),null;case"extension_ui_response":return this.resolveExtensionUiResponse(a),null;case"extension_ui_input":return this.handleExtensionUiInput(a.id,a.data),null;case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;case"bash":{if(this.promptRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)throw Error("Cannot run a shell command while the session is busy");let b=this.inner.executeBash(a.command,void 0,{excludeFromContext:a.excludeFromContext});ac();try{let a=await b;return this.persistBashOnlySession(),a}finally{this.resetIdleTimer(),(0,y.mD)(),ac()}}case"abort_bash":return this.inner.abortBash(),null;default:throw Error(`Unsupported command: ${c}`)}}destroy(){if(this._alive){for(let a of(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.inner.isBashRunning&&this.inner.abortBash(),this.unsubscribe?.(),this.goalModeController?.dispose(),this.subagents.dispose(),this.subagentHistory.clear(),this.keepAliveListeners.clear(),this.pendingUiResponses.values()))a.cancel();for(let a of Array.from(this.activeCustomUis.keys()))this.closeCustomUi(a,void 0);this.pendingUiResponses.clear(),this.pendingUiRequests.clear();try{this.inner.dispose?.()}finally{try{this.onDestroyCallback?.()}finally{ac()}}}}async shutdown(){return this.shutdownPromise?this.shutdownPromise:this._alive?(this.shutdownPromise=(async()=>{try{try{await this.waitForExtensionsBound()}catch(a){console.error("[pi-web] extension binding failed before session shutdown:",a instanceof Error?a.message:a)}await this.inner.extensionRunner?.emit?.({type:"session_shutdown",reason:"quit"})}finally{this.destroy()}})(),this.shutdownPromise):void 0}resolveExtensionUiResponse(a){let b=this.pendingUiResponses.get(a.id);b&&b.resolve(a)}getExtensionStatuses(){return Array.from(this.extensionStatuses,([a,b])=>({key:a,text:b}))}getExtensionWidgets(){return Array.from(this.extensionWidgets.values())}getCustomUiWidth(a){if(!a||"object"!=typeof a)return H.p1;let b=a.overlayOptions,c="function"==typeof b?b():b;if(!c||"object"!=typeof c)return H.p1;let d=c.width;return"number"==typeof d&&Number.isFinite(d)?Math.max(40,Math.min(140,Math.round(d))):92}emitCustomUiRender(a,b){let c;try{c=b.component.render(b.width)}catch(a){c=[`Extension custom UI render failed: ${a instanceof Error?a.message:String(a)}`]}let d={type:"extension_ui_request",id:a,method:"custom",lines:c};this.pendingUiRequests.set(a,d),this.emit(d)}closeCustomUi(a,b){let c=this.activeCustomUis.get(a);if(c&&!c.settled){c.settled=!0,this.activeCustomUis.delete(a),this.pendingUiRequests.delete(a);try{c.component.dispose?.()}catch{}this.emit({type:"extension_ui_request",id:a,method:"custom",lines:[],closed:!0}),c.resolve(b)}}handleExtensionUiInput(a,b){let c=this.activeCustomUis.get(a);if(c&&"string"==typeof b)try{c.component.handleInput?.(b),this.activeCustomUis.has(a)&&this.emitCustomUiRender(a,c)}catch(b){this.closeCustomUi(a,void 0),this.emit({type:"extension_error",extensionPath:`custom-ui:${a}`,event:"custom_ui_input",error:b instanceof Error?b.message:String(b)})}}requestExtensionCustomUi(a,b){if("function"!=typeof a)return Promise.resolve(void 0);let c=(0,r.randomUUID)(),d=this.getCustomUiWidth(b);return new Promise(b=>{let e=!1,f=(0,H.TQ)(()=>{let a=this.activeCustomUis.get(c);a&&this.emitCustomUiRender(c,a)},d),g=a=>{e||(e=!0,b(a))},h=a=>{this.activeCustomUis.has(c)?this.closeCustomUi(c,a):g(a)};Promise.resolve().then(()=>a(f,al,am,h)).then(a=>{if(e){try{a?.dispose?.()}catch{}return}if(!a||"object"!=typeof a||"function"!=typeof a.render)return void g(void 0);let b={component:a,width:d,resolve:a=>g(a),settled:!1};this.activeCustomUis.set(c,b),this.emitCustomUiRender(c,b)}).catch(a=>{e||(this.emit({type:"extension_error",extensionPath:`custom-ui:${c}`,event:"custom_ui",error:a instanceof Error?a.message:String(a)}),g(void 0))})})}requestExtensionUi(a,b,c,d,e){if(e?.aborted)return Promise.resolve(b);let f=(0,r.randomUUID)(),g={type:"extension_ui_request",id:f,...a,...d?{timeout:d,expiresAt:Date.now()+d}:{}};return new Promise(a=>{let h,i=()=>{h&&clearTimeout(h),e?.removeEventListener("abort",k),this.pendingUiRequests.delete(f),this.pendingUiResponses.delete(f)},j=(b,c=!1)=>{i(),c&&this.emit({...g,closed:!0}),a(b)},k=()=>j(b,!0);d&&(h=setTimeout(()=>j(b),d)),e?.addEventListener("abort",k,{once:!0}),this.pendingUiRequests.set(f,g),this.pendingUiResponses.set(f,{resolve:a=>j(c(a)),cancel:()=>j(b)}),this.emit(g)})}createExtensionUiContext(){return{timeoutStartsOnPresentation:!1,askDialog:(a,b)=>this.requestExtensionUi({method:"ask",questions:a,...b?.timeout?{timeout:b.timeout}:{}},void 0,a=>{if("value"in a)try{return JSON.parse(a.value)}catch{return}},b?.timeout,b?.signal),select:(a,b,c)=>this.requestExtensionUi({method:"select",title:a,options:b,...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),confirm:(a,b,c)=>this.requestExtensionUi({method:"confirm",title:a,message:b,...c?.timeout?{timeout:c.timeout}:{}},!1,a=>"confirmed"in a&&a.confirmed,c?.timeout,c?.signal),input:(a,b,c)=>this.requestExtensionUi({method:"input",title:a,...void 0!==b?{placeholder:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),editor:(a,b,c)=>this.requestExtensionUi({method:"editor",title:a,...void 0!==b?{prefill:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),notify:(a,b)=>{this.emit({type:"extension_ui_request",id:(0,r.randomUUID)(),method:"notify",message:a,notifyType:b})},onTerminalInput:()=>()=>{},setStatus:(a,b)=>{void 0===b?this.extensionStatuses.delete(a):this.extensionStatuses.set(a,b),this.emit({type:"extension_ui_request",id:(0,r.randomUUID)(),method:"setStatus",statusKey:a,statusText:b})},setWorkingMessage:()=>{},setWorkingVisible:()=>{},setWorkingIndicator:()=>{},setHiddenThinkingLabel:()=>{},setWidget:(a,b,c)=>{(void 0===b||Array.isArray(b))&&(void 0===b?this.extensionWidgets.delete(a):this.extensionWidgets.set(a,{key:a,lines:b,placement:c?.placement??"aboveEditor"}),this.emit({type:"extension_ui_request",id:(0,r.randomUUID)(),method:"setWidget",widgetKey:a,widgetLines:b,widgetPlacement:c?.placement}))},setFooter:()=>{},setHeader:()=>{},setTitle:a=>{this.emit({type:"extension_ui_request",id:(0,r.randomUUID)(),method:"setTitle",title:a})},custom:(a,b)=>this.requestExtensionCustomUi(a,b),pasteToEditor:a=>{this.emit({type:"extension_ui_request",id:(0,r.randomUUID)(),method:"set_editor_text",text:a})},setEditorText:a=>{this.emit({type:"extension_ui_request",id:(0,r.randomUUID)(),method:"set_editor_text",text:a})},getEditorText:()=>"",addAutocompleteProvider:()=>{},setEditorComponent:()=>{},getEditorComponent:()=>void 0,get theme(){return al},getAllThemes:()=>[],getTheme:()=>void 0,setTheme:()=>({success:!1,error:"Theme switching is not supported in CUELO extension UI yet"}),getToolsExpanded:()=>!1,setToolsExpanded:()=>{}}}}function U(){if(!globalThis.__ompSessions){globalThis.__ompSessions=new Map;let a=()=>globalThis.__ompSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__ompSessions}function V(){return globalThis.__ompClosingSessionIds||(globalThis.__ompClosingSessionIds=new Set),globalThis.__ompClosingSessionIds}function W(a,{onlyWhenIdle:b=!1}={}){let c=V();if(c.has(a))return{reserved:!1,release:()=>{}};let d=U().get(a);if(d?!d.beginClose({onlyWhenIdle:b}):b&&ab().includes(a))return{reserved:!1,release:()=>{}};c.add(a);let e=!1;return{reserved:!0,release:()=>{e||(e=!0,c.delete(a),d?.cancelClose())}}}function X(a){let b=(0,t.resolve)(a);try{return(0,s.realpathSync)(b)}catch{return b}}function Y(){return globalThis.__ompStartingSessionCwds||(globalThis.__ompStartingSessionCwds=new Map),globalThis.__ompStartingSessionCwds}function Z(a){return U().get(a)}function $(){let a=[];for(let b of U().values()){if(!b.isAlive())continue;let c=b.inner.sessionManager,d=c.getHeader(),e=c.getEntries(),f=e.filter(a=>"message"===a.type),g=f.find(a=>"user"===a.message.role),h=c.getSessionFile()??b.sessionFile,i=!!(h&&(0,s.existsSync)(h));if(!i&&(!b.isRunning()||!g))continue;let j=d?.timestamp??e[0]?.timestamp??new Date().toISOString(),k=new Date(j).getTime(),l=Number.isNaN(k)?Date.now():k;for(let a of f){let b=function(a){if("user"!==a.message.role&&"assistant"!==a.message.role)return;if("number"==typeof a.message.timestamp)return a.message.timestamp;let b=new Date(a.timestamp).getTime();return Number.isNaN(b)?void 0:b}(a);void 0!==b&&(l=Math.max(l,b))}a.push({path:h??"",id:d?.id??b.sessionId,cwd:d?.cwd??b.cwd,name:c.getSessionName(),created:j,modified:new Date(l).toISOString(),messageCount:f.length,firstMessage:g&&function(a){if("bashExecution"===a.message.role)return"";let b=a.message.content,c="string"==typeof b?b:b.map(a=>"text"===a.type?a.text:"").filter(Boolean).join(" ");return(0,v.we)(c)}(g)||"(no messages)",transient:!i})}return a}function _(a){let b=X(a);return!!Y().has(b)||Array.from(U().values()).some(a=>X(a.cwd)===b&&a.isRunning())}async function aa(a){let b=X(a),c=Array.from(U().values()).filter(a=>X(a.cwd)===b);return await Promise.all(c.map(a=>a.shutdown())),c.length}function ab(){let a=new Set;for(let[b,c]of U())c.isRunning()&&a.add(c.sessionId||b);return[...a]}function ac(){let a=ab();(0,F.p8)(a)}async function ad(a,b,c,d={}){let{toolNames:g,initialModel:h,thinkingLevel:i,accountOauthPosition:j}=d,k=U(),l=(globalThis.__ompStartLocks||(globalThis.__ompStartLocks=new Map),globalThis.__ompStartLocks);if(V().has(a))throw Error("Session is closing");let n=k.get(a);if(n?.isAlive())return{session:n,realSessionId:a};let o=l.get(a);if(o)return o;let p=(async()=>{let d,l;await (0,f.initTheme)(!1);let n=(0,f.getAgentDir)(),o=b?await f.SessionManager.open(b,void 0):(()=>{if(!c)throw Error("cwd is required for a new session");return f.SessionManager.create(c,void 0)})(),p=o.getCwd(),q=(d=Y(),l=X(p),d.set(l,(d.get(l)??0)+1),()=>{let a=(d.get(l)??1)-1;a>0?d.set(l,a):d.delete(l)});try{let b,c=await (0,C.RD)(),d=await (0,C.ZU)(p);void 0!==g&&(b=0===g.length?[]:void 0);let[l,q]=await Promise.all([(0,f.discoverSessionExtensionPaths)({},p,d),(0,m.discoverCustomToolPaths)([],p)]),r=(0,z.qm)(p,n,{extensionPaths:l,customToolPaths:q}),s=await (0,A.D)(p),{modelRegistry:t}=c;await (0,C.Ef)(t,[...(0,B.Ex)(d),...h?[h]:[]]);let u=await (0,x.p)(t,e.cfgEnabledModels.get(d),d),v=(0,B.Ff)(d),w=h?void 0:v?.thinkingLevel,D=i??w,E=o.buildSessionContext().messages.length>0?{scopedModels:[...u.scopedModels],model:void 0,thinkingLevel:void 0}:(0,x.I)(u,{...h?{requestedModel:h}:{},...v?{defaultModel:v}:{},...D?{thinkingLevel:D}:{}}),F={cwd:p,agentDir:n,settings:d,sessionManager:o,modelRegistry:t,hasUI:!0,...E.model?{model:E.model}:{},...E.thinkingLevel?{thinkingLevel:E.thinkingLevel}:{},...E.scopedModels.length>0?{scopedModels:E.scopedModels}:{},...void 0!==b?{toolNames:b,restrictToolNames:!0}:{},...r??{}};(0,f.applyResolvedSystemPromptInputs)(F,s.systemPrompt,s.appendPrompt);let{session:G,eventBus:H,setToolUIContext:I}=await (0,f.createAgentSession)(F);g&&g.length>0&&await G.setActiveToolsByName(R(G,g));let J=new ao(G,H);if(J.bindToolUiContext(I),void 0!==j){let a=G.model?.provider;if(!a)throw J.destroy(),Error("이 세션의 provider를 알 수 없어 OAuth 계정을 지정하지 못했습니다.");let b=await N(G,a,j);if(!b.ok)throw J.destroy(),Error(b.reason)}g?.length===0&&J.setForceEmptySystemPrompt(!0);let K=G.sessionId,L=V();if(L.has(a)||L.has(K))throw J.destroy(),Error("Session is closing");J.start();let M=G.sessionFile;return M&&(0,y.O8)(K,M),J.onDestroy(()=>k.delete(K)),k.set(K,J),J.beginExtensionBinding({forceEmptySystemPrompt:g?.length===0}),{session:J,realSessionId:K}}finally{q()}})().finally(()=>{l.delete(a)});return l.set(a,p),p}d()}catch(a){d(a)}})},71069:(a,b,c)=>{c.d(b,{TQ:()=>e,p1:()=>d});let d=92;function e(a,b=d,c=40){return Object.freeze({terminal:Object.freeze({columns:b,rows:c,kittyProtocolActive:!1}),requestRender:a})}},72498:(a,b,c)=>{c.d(b,{Y1:()=>m,er:()=>n,qm:()=>p});var d=c(29021),e=c(33873),f=c(13229),g=c(8102);let h=[".omp/extensions",".omp/hooks",".omp/tools",".pi/extensions",".pi/hooks",".pi/tools",".claude/extensions",".claude/hooks",".claude/tools",".agents/extensions",".agents/hooks",".agents/tools"],i=[".mcp.json",".omp/.mcp.json",".omp/mcp.json",".claude/.mcp.json",".claude/mcp.json",".cursor/mcp.json"];function j(a){return(0,e.join)(a,"cuelo-trusted-projects.json")}function k(a){let b=(0,e.resolve)(a);try{return(0,d.realpathSync)(b)}catch{return b}}function l(a){try{(0,f.adoptLegacyStateFile)(j(a),"omp-web-trusted-projects.json");let b=JSON.parse((0,d.readFileSync)(j(a),"utf8"));if("object"!=typeof b||null===b||Array.isArray(b))return{};return Object.fromEntries(Object.entries(b).filter(a=>"boolean"==typeof a[1]))}catch{return{}}}function m(a,b){return a&&function(a){if(!a)return!1;for(let b of h)if((0,d.existsSync)((0,e.join)(a,b)))return!0;for(let b of i)if((0,d.existsSync)((0,e.join)(a,b)))return!0;return!1}(a)?{requiresTrust:!0,trusted:!0===l(b)[k(a)]}:{requiresTrust:!1,trusted:!0}}function n(a,b){let c=m(a,b);if(!c.requiresTrust)return c;let e=l(b);return e[k(a)]=!0,(0,d.mkdirSync)(b,{recursive:!0}),(0,g.$)(j(b),`${JSON.stringify(e,null,2)}
7
+ Time spent: ${a=g.timeUsedSeconds,b=Math.max(0,Math.round(a)),c=Math.floor(b/3600),d=Math.floor(b%3600/60),c>0?`${c}h ${d}m`:d>0?`${d}m ${b%60}s`:`${b}s`}`),status:g}}async #v(a){if(!a)return this.#p("Usage: /goal set <objective>");if(!this.enabled&&this.#w())return this.#p("Resume the current goal first, or drop it before setting a new objective.");if(!this.enabled)return await this.#x(a);let b=await this.#a.goalRuntime.replaceGoal({objective:a});return this.#a.setGoalModeState?.(b),this.#g=!1,this.#a.isStreaming&&await this.#a.sendGoalModeContext({deliverAs:"steer"}),{message:"Goal replaced.",prompt:a,status:this.getStatus()}}async #x(a){let b=this.#a.getEnabledToolNames().filter(a=>"goal"!==a),c=await this.#a.goalRuntime.createGoal({objective:a});return this.#c=b,await this.#a.setActiveToolsByName([...new Set([...b,"goal"])]),this.#a.setGoalModeState?.(c),this.#g=!1,this.#a.isStreaming&&await this.#a.sendGoalModeContext({deliverAs:"steer"}),this.#o(),{message:"Goal mode enabled.",prompt:a,status:this.getStatus()}}async #r(){return this.enabled?(await this.#a.goalRuntime.pauseGoal(),await this.#y({reason:"paused"}),{message:"Goal mode paused.",status:this.getStatus()}):this.#p("No active goal to pause.")}async #s(){if(!this.#w())return this.#p("No paused goal to resume.");let a=this.#a.getEnabledToolNames().filter(a=>"goal"!==a),b=await this.#a.goalRuntime.resumeGoal();return this.#c=a,await this.#a.setActiveToolsByName([...new Set([...a,"goal"])]),this.#a.setGoalModeState?.(b),this.#g=!1,this.#o(),this.#z(),{message:"Goal mode resumed.",status:this.getStatus()}}async #t(){return this.enabled||this.#w()?(await this.#a.goalRuntime.dropGoal(),await this.#y({reason:"dropped"}),{message:"Goal dropped.",status:this.getStatus()}):this.#p("No goal to drop.")}async #u(a){let b=this.#a.getGoalModeState?.();if(!this.enabled||!b?.enabled)return this.#p(this.#w()?"Resume the goal before adjusting the budget.":"No active goal.");if("complete"===b.goal.status)return this.#p("Goal is already complete.");if(!a)return this.#p("Usage: /goal budget <N|off>");let{budget:c,error:d}=function(a){let b=a.trim().toLowerCase();if("off"===b)return{};let c=Number.parseInt(b,10);return!Number.isInteger(c)||c<=0||String(c)!==b?{error:"Goal budget must be a positive integer or `off`."}:{budget:c}}(a);return d?this.#p(d):(await this.#a.goalRuntime.onBudgetMutated(c),this.#g=!1,this.#o(),this.#z(),{message:void 0===c?"Goal budget cleared.":`Goal budget set to ${c.toLocaleString()}.`,status:this.getStatus()})}async #y(a){let b=this.#c;if(b&&await this.#a.setActiveToolsByName(b),"completed"===a.reason){let a=this.#a.getGoalModeState?.()?.goal;this.#a.setGoalModeState?.(void 0),this.#a.sessionManager.appendModeChange("none"),this.#a.sessionManager.appendCustomEntry("goal-completed",{objective:a?.objective,tokensUsed:a?.tokensUsed,tokenBudget:a?.tokenBudget,timeUsedSeconds:a?.timeUsedSeconds})}this.#c=void 0,this.#e=!1,this.#j(),this.#o()}async #n(){let a=this.#a.getEnabledToolNames().filter(a=>"goal"!==a);this.#c=a,await this.#a.setActiveToolsByName([...new Set([...a,"goal"])])}#z(){var a;if(this.#j(),this.#h||(a=e.cfgGoalContinuationModes.get(this.#a.settings),!(Array.isArray(a)&&h.some(b=>a.includes(b)))||this.#a.getPlanModeState?.()?.enabled||this.#g))return;let b=this.#a.getGoalModeState?.();!b?.enabled||"active"!==b.goal.status||this.#a.goalRuntime.buildContinuationPrompt()&&(this.#d=setTimeout(()=>{this.#d=void 0,this.#A()},this.#b.continuationDelayMs??800))}async #A(){if(this.#h||this.#g||this.#b.isBusy())return;let a=this.#a.getGoalModeState?.();if(!a?.enabled||"active"!==a.goal.status)return;let b=this.#a.goalRuntime.buildContinuationPrompt();if(b){this.#e=!0;try{await this.#b.runContinuation(b)}catch{this.#e=!1}}}#j(){this.#d&&(clearTimeout(this.#d),this.#d=void 0)}#p(a){return{error:a,status:this.getStatus()}}#m(){return!1!==e.cfgGoalEnabled.get(this.#a.settings)}#w(){let a=this.#a.getGoalModeState?.();if(a?.goal&&!a.enabled&&"paused"===a.goal.status)return a}#l(){let a=this.#a.sessionManager.getEntries();for(let b=a.length-1;b>=0;b-=1)if(a[b]?.type==="mode_change")return a[b]}#o(){this.#b.onStatusChange?.(this.getStatus())}}d()}catch(a){d(a)}})},41761:(a,b,c)=>{c.d(b,{C1:()=>d});let d=["read","bash","edit","write","grep","glob"];Object.fromEntries(d.map(a=>[a,!0]))},53923:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{D:()=>i});var e=c(58505),f=c(4327),g=a([e,f]);function h(a,b){return(0,e.findConfigFile)(a,{user:!1,cwd:b})??(0,e.findConfigFile)(a,{user:!0,cwd:b})}async function i(a){let[b,c]=await Promise.all([(0,f.resolvePromptInput)(h("SYSTEM.md",a),"system prompt"),(0,f.resolvePromptInput)(h("APPEND_SYSTEM.md",a),"append system prompt")]);return{systemPrompt:b,appendPrompt:c}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>_,Bp:()=>aa,HG:()=>ad,KI:()=>K,MT:()=>Y,OF:()=>af,_I:()=>ab,oA:()=>ac});var e=c(63411),f=c(92582),g=c(33594),h=c(94285),i=c(59895),j=c(28315),k=c(25167),l=c(14882),m=c(1740),n=c(9655),o=c(82512),p=c(78310),q=c(43696),r=c(26854),s=c(55511),t=c(29021),u=c(33873),v=c(78970),w=c(36208),x=c(28967),y=c(18904),z=c(40402),A=c(72498),B=c(53923),C=c(25429),D=c(38741),E=c(5908),F=c(41761),G=c(4157),H=c(39873),I=c(71069),J=a([e,f,g,h,i,j,k,l,m,n,o,p,q,r,y,z,B,C,D,H]);function K(a){let b,c=null,d=!1,e=()=>{if(b&&(clearTimeout(b),b=void 0),d||!c)return;let e=c;c=null,a(e)};return{push:f=>{if(!d){if("message_update"===f.type){c=f,b||(b=setTimeout(()=>{b=void 0,e()},33));return}e(),a(f)}},flush:e,close:()=>{d=!0,c=null,clearTimeout(b),b=void 0}}}[e,f,g,h,i,j,k,l,m,n,o,p,q,r,y,z,B,C,D,H]=J.then?(await J)():J;let ag=new Set(["agent_start","agent_end","agent_settled","auto_compaction_start","auto_compaction_end","compaction_start","compaction_end"]),ah=new Set(["agent_end","agent_settled","auto_compaction_end","compaction_end"]),ai={abort:!0,extension_ui_input:!0,extension_ui_response:!0,get_commands:!0,get_last_assistant_text:!0,get_session_stats:!0,get_state:!0,get_subagent_messages:!0,get_subagents:!0,get_tools:!0},aj={bash:!0,compact:!0,follow_up:!0,fork:!0,handoff:!0,prompt:!0,steer:!0},ak={set_model:!0,set_role_model:!0,set_thinking_level:!0};async function L(a,b){let c=a.modelRegistry.authStorage;if(!c?.oauth)return{ok:!1,reason:"이 세션은 OAuth 계정 목록을 읽을 수 없습니다."};try{return await c.reload?.(),{ok:!0,accounts:c.oauth.accounts(b,a.sessionId)}}catch(a){return{ok:!1,reason:`계정 목록을 읽지 못했습니다: ${a instanceof Error?a.message:String(a)}`}}}async function M(a,b){let c=await L(a,b);return c.ok?{ok:!0,snapshot:{provider:b,credentialId:c.accounts.find(a=>a.active)?.credentialId}}:{ok:!1,reason:c.reason}}async function N(a,b){if(!b)return!1;let c=a.modelRegistry.authStorage;if(!c)return!1;try{if(void 0!==b.credentialId)return c.sessions?.pin(b.provider,a.sessionId,b.credentialId)??!1;return c.sessions?.release(b.provider,a.sessionId)??!1}catch{return!1}}async function O(a,b,c){if(!Number.isSafeInteger(c)||c<0)return{ok:!1,reason:`OAuth 저장 위치 ${String(c)}가 올바르지 않습니다.`};if(!a.modelRegistry.authStorage?.sessions)return{ok:!1,reason:"이 세션은 OAuth 계정 pin을 지원하지 않습니다."};let d=await L(a,b);if(!d.ok)return{ok:!1,reason:d.reason};if(0===d.accounts.length)return{ok:!1,reason:"저장된 OAuth 계정이 없습니다."};let e=d.accounts.find((a,b)=>(Number.isInteger(a.position)?a.position:b)===c);if(!e)return{ok:!1,reason:`${b} OAuth 저장 위치 ${c}의 계정이 없습니다.`};let f=!1;try{f=a.modelRegistry.authStorage.sessions.pin(b,a.sessionId,e.credentialId)}catch{f=!1}if(!f)return{ok:!1,reason:`${b} OAuth 저장 위치 ${c} 계정을 이 세션의 선호 계정으로 설정하지 못했습니다.`};let g=await L(a,b),h=g.ok?g.accounts.find((a,b)=>(Number.isInteger(a.position)?a.position:b)===c):void 0;return h?.active!==!0?{ok:!1,reason:`${b} OAuth 저장 위치 ${c}이 이 세션의 선호 계정으로 설정되지 않았습니다.`}:{ok:!0}}async function P(a,b){let c=await R(a,b.previousModel,b.previousRole),d=void 0===b.account||await N(a,b.account),e=!0;if(void 0!==b.previousThinking&&a.configuredThinkingLevel()!==b.previousThinking){try{a.setThinkingLevel(b.previousThinking)}catch{}e=a.configuredThinkingLevel()===b.previousThinking}return{model:c,account:d,thinking:e}}function Q(a){let b=[];return a.model||b.push("모델"),a.account||b.push("계정 선호"),a.thinking||b.push("thinking 강도"),0===b.length?"모델\xb7계정\xb7강도를 되돌렸습니다.":`${b.join("\xb7")} 복원에 실패했습니다 — 이전 상태로 돌아가지 않았습니다.`}async function R(a,b,c){if(!b)return!1;let d=a.model;if(d?.provider===b.provider&&d?.id===b.id)return!0;try{return await a.setModel(b,c),!0}catch{return!1}}let al=Object.fromEntries(F.C1.map(a=>[a,!0]));class am extends f.Theme{constructor(){super({thinkingXhigh:""},{},"truecolor","unicode",{})}fg(...[,a]){return a}bg(...[,a]){return a}bold(a){return a}italic(a){return a}underline(a){return a}inverse(a){return a}strikethrough(a){return a}getFgAnsi(){return""}getBgAnsi(){return""}getThinkingBorderColor(){return a=>a}getBashModeBorderColor(){return a=>a}}let an=new am,ao=new r.KeybindingsManager(r.TUI_KEYBINDINGS);function S(a,b){if(0===b.length)return[];let c=a.getAllToolNames().filter(a=>!0!==al[a]);return[...new Set([...b,...c])]}function T(a,b,c){let d=c.name.trim();!d||b.has(d)||(b.add(d),a.push({...c,name:d}))}let ap=["fork","goal"];async function U(a){let b=[],c=new Set;for(let a of ap){let d=i.BUILTIN_SLASH_COMMAND_DEFS.find(b=>b.name===a);if(!d)continue;let e=d.inlineHint;T(b,c,{name:d.name,aliases:d.aliases,description:d.description,source:"builtin",...e?{input:{hint:e}}:{},...d.subcommands?{subcommands:d.subcommands}:{}})}for(let d of(await (0,g.buildAvailableSlashCommands)(a)))T(b,c,d);for(let d of a.promptTemplates)T(b,c,{name:d.name,description:d.description,source:"prompt",...d.source?{path:d.source}:{}});return b}async function V(a,b){let{promise:c,resolve:d}=Promise.withResolvers(),e=setTimeout(()=>d(!1),Math.max(0,b-Date.now()));try{return await Promise.race([a.then(()=>!0),c])}finally{clearTimeout(e)}}class aq{constructor(a,b){this.inner=a,this.listeners=[],this.pendingUiResponses=new Map,this.keepAliveListeners=new Set,this.pendingUiRequests=new Map,this.activeCustomUis=new Map,this.extensionStatuses=new Map,this.extensionWidgets=new Map,this.promptRunning=!1,this.modelMutations=0,this.presetMutation=!1,this.handoffRunning=!1,this.extensionsBound=!1,this.extensionBindingPromise=null,this.extensionBindingError=null,this.forceEmptySystemPrompt=!1,this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this.shutdownPromise=null,this.subagentHistory=new Map,this.goalModeController=null,this._alive=!0,this.closing=!1,this.subagents=new q.RpcSubagentRegistry(b,a=>{this.rememberSubagentFrame(a),this.emit(a),this.resetIdleTimer(),ae()}),this.subagents.setSubscriptionLevel("progress")}rememberSubagentSnapshot(a){if(this.subagentHistory.set(a.id,a),this.subagentHistory.size<=128)return;let b=[...this.subagentHistory.values()].filter(a=>"pending"!==a.status&&"running"!==a.status).sort((a,b)=>a.lastUpdate-b.lastUpdate);for(;this.subagentHistory.size>128&&b.length>0;){let a=b.shift();a&&this.subagentHistory.delete(a.id)}}rememberSubagentFrame(a){if("subagent_progress"===a.type){let b=a.payload,c=b?.progress?.id;if(!c)return;let d=this.subagents.getSubagents().find(a=>a.id===c);d&&this.rememberSubagentSnapshot(d);return}if("subagent_lifecycle"!==a.type)return;let b=a.payload;if(!b?.id||!b.status)return;let c=this.subagents.getSubagents().find(a=>a.id===b.id);if("started"===b.status){c&&this.rememberSubagentSnapshot(c);return}let d=c??this.subagentHistory.get(b.id),e="failed"===b.status?"failed":"aborted"===b.status?"aborted":"completed";this.rememberSubagentSnapshot({id:b.id,index:b.index??d?.index??0,agent:b.agent??d?.agent??b.id,agentSource:b.agentSource??d?.agentSource??"bundled",description:b.description??d?.description,status:e,task:d?.task,assignment:d?.assignment,sessionFile:b.sessionFile??d?.sessionFile,lastUpdate:Date.now(),parentToolCallId:b.parentToolCallId??d?.parentToolCallId,progress:d?.progress?{...d.progress,status:e}:void 0})}getSubagentSnapshots(){for(let a of this.subagents.getSubagents())this.rememberSubagentSnapshot(a);let a=new Map(this.subagentHistory);for(let b of this.subagents.getSubagents())a.set(b.id,b);return[...a.values()].sort((a,b)=>{let c="pending"===a.status||"running"===a.status,d="pending"===b.status||"running"===b.status;return c!==d?c?-1:1:c?a.index-b.index||a.id.localeCompare(b.id):b.lastUpdate-a.lastUpdate||a.id.localeCompare(b.id)})}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}get cwd(){return this.inner.sessionManager.getCwd()}isAlive(){return this._alive}isRunning(){return this._alive&&(this.promptRunning||this.handoffRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning||this.subagents.getSubagents().length>0)}beginClose({onlyWhenIdle:a=!1}={}){return!this._alive||!(a&&!this.closing&&this.isRunning())&&(this.closing=!0,!0)}cancelClose(){this._alive&&!this.shutdownPromise&&(this.closing=!1)}bindToolUiContext(a){a(this.createExtensionUiContext(),!0)}start(){this.syncPlanModeFromSession(),this.goalMode.restore().catch(a=>{console.error("[cuelo] failed to restore goal mode:",a instanceof Error?a.message:a)}),this.unsubscribe=this.inner.subscribe(a=>{"agent_end"===a.type&&(0,z.mD)(),ah.has(a.type)&&this.resetIdleTimer(),this.emit(a),ag.has(a.type)&&ae(),this.goalMode.handleSessionEvent(a).catch(a=>{console.error("[cuelo] goal mode failed to handle a session event:",a instanceof Error?a.message:a)})}),this.resetIdleTimer(),ae()}setForceEmptySystemPrompt(a){this.forceEmptySystemPrompt=a,this.applyForcedEmptySystemPrompt()}beginExtensionBinding(a={}){this.ensureExtensionsBound(a).catch(a=>{console.error("[cuelo] failed to dispatch session_start to extensions:",a instanceof Error?a.message:a)})}async waitUntilReady(){await this.waitForExtensionsBound()}ensureExtensionsBound(a={}){return(a.forceEmptySystemPrompt&&(this.forceEmptySystemPrompt=!0),this.extensionsBound)?(this.applyForcedEmptySystemPrompt(),Promise.resolve()):(this.extensionBindingPromise||(this.extensionBindingError=null,this.extensionBindingPromise=(async()=>{this._alive&&(await (0,n.initializeExtensions)(this.inner,{uiContext:this.createExtensionUiContext(),reportSendError:(a,b)=>this.emit({type:"extension_error",extensionPath:a,event:"send",error:b.message}),reportRuntimeError:a=>this.emit({type:"extension_error",extensionPath:a.extensionPath,event:a.event,error:a.error}),onShutdown:()=>this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"notify",notifyType:"warning",message:"Extension requested shutdown, but shutdown is not supported in CUELO."})}),this.extensionsBound=!0,this.applyForcedEmptySystemPrompt(),console.log(`[cuelo] session_start dispatched to extensions for session ${this.inner.sessionId}`))})().catch(a=>{throw this.extensionBindingError=a,a})),this.extensionBindingPromise)}async waitForExtensionsBound(){try{this.extensionBindingPromise&&await this.extensionBindingPromise}catch(a){throw a instanceof Error?a:Error(String(a))}if(this.extensionBindingError)throw this.extensionBindingError instanceof Error?this.extensionBindingError:Error(String(this.extensionBindingError))}shouldWaitForExtensions(a){return"prompt"===a||"steer"===a||"follow_up"===a||"handoff"===a||"get_commands"===a||"execute_slash_command"===a||"goal"===a}async withFinalRunningNotification(a){try{return await a()}finally{this.resetIdleTimer(),ae()}}async shutdownAfterCommittedFork(a){try{await this.shutdown()}catch(b){console.error(`[cuelo] fork created session ${a}, but wrapper shutdown failed:`,b instanceof Error?b.message:b)}}applyForcedEmptySystemPrompt(){this.forceEmptySystemPrompt&&this.inner.agent.state&&(this.inner.agent.state.systemPrompt=[])}get goalMode(){return this.goalModeController||(this.goalModeController=new H.zd(this.inner,{isBusy:()=>this.promptRunning||this.handoffRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning,runContinuation:a=>this.runGoalContinuation(a),onStatusChange:a=>this.emit({type:"goal_status",status:a})})),this.goalModeController}async runGoalContinuation(a){this.promptRunning=!0,ae();try{await this.inner.promptCustomMessage({customType:"goal-continuation",content:a,display:!1,attribution:"user"})}catch(a){throw this.emit({type:"prompt_error",errorMessage:a instanceof Error?a.message:String(a)}),a}finally{this.promptRunning=!1,this.resetIdleTimer(),this.emit({type:"prompt_done"}),ae()}}syncPlanModeFromSession(){let a=this.inner.getPlanModeState?.();if(!a){let b,c=this.inner.sessionManager.getEntries();for(let a=c.length-1;a>=0;a-=1)if(c[a]?.type==="mode_change"){b=c[a];break}let d=b?.data?.planFilePath;b?.mode==="plan"&&"string"==typeof d&&d.length>0&&(a={enabled:!0,planFilePath:d,workflow:b.data?.workflow==="sequential"?"sequential":"parallel",reentry:!0},this.inner.setPlanModeState?.(a))}a?.enabled&&this.inner.setPlanProposalHandler?.(a=>this.handlePlanProposal(a))}async handlePlanProposal(a){let b=this.inner.getPlanModeState?.();if(!b?.enabled||!this.inner.preparePlanForReview)throw Error("Plan mode is not active.");let c=await this.inner.preparePlanForReview(a),d=c.details?.planFilePath,e=c.details?.title;if(!d||!e)throw Error("The proposed plan could not be resolved.");let f=await (0,o.readPlanFile)(d,{cwd:this.cwd,localProtocolOptions:{getArtifactsDir:()=>this.inner.sessionManager.getArtifactsDir(),getSessionId:()=>this.inner.sessionManager.getSessionId()}});if(!f?.trim())throw Error(`Plan file not found at ${d}`);let g=await this.requestExtensionUi({method:"plan_review",title:e,planFilePath:d,planContent:f},JSON.stringify({action:"refine"}),a=>"value"in a?a.value:JSON.stringify({action:"refine"})),h={};try{h=JSON.parse(g)}catch{}let i={planFilePath:d,title:e,planExists:!0};if("approve"===h.action)return this.inner.setPlanReferencePath?.(d),this.inner.setPlanProposalHandler?.(null),this.inner.setPlanModeState?.(void 0),this.inner.sessionManager.appendModeChange("none"),{content:[{type:"text",text:`Plan approved at ${d}. Plan mode exited; proceed with the implementation.`}],details:i};b.planFilePath!==d&&(this.inner.setPlanModeState?.({...b,planFilePath:d}),this.inner.sessionManager.appendModeChange("plan",{planFilePath:d}));let j="string"==typeof h.feedback?h.feedback.trim():"";return{content:[{type:"text",text:["Plan refinement requested.",j?`User feedback:
8
+ ${j}`:"",`Update the plan file, then write ${e} to xd://propose again when ready.`].filter(Boolean).join("\n\n")}],details:i}}publishSessionSnapshot(a,b){this.emit({type:"session_snapshot",sessionId:this.sessionId,entryId:a,context:b})}emit(a){for(let b of this.listeners)b(a)}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.keepAliveListeners.size>0||this.isRunning()?this.resetIdleTimer():this.shutdown().catch(a=>{console.error("[pi-web] failed to shut down idle session:",a instanceof Error?a.message:a)})},6e5)}persistBashOnlySession(){let a=this.inner.sessionManager,b=a.getSessionFile();if(!b||(0,t.existsSync)(b))return;let c=a.getHeader();if(!c)return;let d=[c,...a.getEntries()].map(a=>JSON.stringify(a)).join("\n")+"\n";(0,t.writeFileSync)(b,d,{encoding:"utf8",flag:"wx"}),a.flushed=!0,(0,z.O8)(this.inner.sessionId,b)}onEvent(a,b={}){for(let c of(this.listeners.push(a),b.keepAlive&&(this.keepAliveListeners.add(a),this.resetIdleTimer()),this.pendingUiRequests.values()))a(c);return()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1),this.keepAliveListeners.delete(a)&&0===this.keepAliveListeners.size&&this._alive&&this.resetIdleTimer()}}onDestroy(a){this.onDestroyCallback=a}async sendInternalPrompt(a){return this.send({type:"prompt",message:a},!0)}async emitGenuineUserInput(a,b){let c=this.inner.extensionRunner;if(!c?.hasHandlers?.("input"))return{text:a,images:b};let d=await c.emitInput?.(a,b,"rpc");return d?!0===d.handled?(console.log(`[cuelo] input event consumed by an extension for session ${this.inner.sessionId}`),null):{text:void 0!==d.text?d.text.trim():a,images:void 0!==d.images?d.images:b}:{text:a,images:b}}async send(a,b=!1){this.resetIdleTimer();let c=a.type;if(this.shouldWaitForExtensions(c)&&await this.waitForExtensionsBound(),this.closing&&!0===aj[c])throw Error("Session is closing");if(this.handoffRunning&&!0!==ai[c])throw Error("Cannot modify the session while a handoff is in progress");let d="set_model"===c&&(void 0!==a.thinkingLevel||void 0!==a.oauthPosition);if(!0===ak[c]&&(this.presetMutation||d&&this.modelMutations>0))throw Error("Cannot change the model while another model change is in progress");if("prompt"===c&&!b&&this.presetMutation)throw Error("Cannot send a prompt while a Main preset is being applied");if(("prompt"===c||"steer"===c||"follow_up"===c)&&this.syncPlanModeFromSession(),"prompt"===c||"steer"===c||"follow_up"===c){let b=(0,v.kc)(a.images);if(b)throw Error(b)}switch(c){case"prompt":{if(this.inner.isBashRunning)throw Error("Cannot send a prompt while a shell command is running");this.goalMode.onUserPrompt();let c=a.message,d=a.images,e=a.streamingBehavior;if(!b&&void 0===e){let a=await this.emitGenuineUserInput(c,d);if(null===a||(c=a.text,d=a.images,!c&&!d?.length))return null}let f=(0,k.resolveRpcSkillInvocation)(this.inner,c),g=f?(0,j.buildSkillPromptMessage)(f.skill,f,"user").then(a=>this.inner.promptCustomMessage({customType:l.SKILL_PROMPT_MESSAGE_TYPE,content:d?.length?[{type:"text",text:a.message},...d]:a.message,display:!0,details:a.details,attribution:"user"},{...e?{streamingBehavior:e}:{},queueChipText:c})):this.inner.prompt(c,{...d?.length?{images:d}:{},...e?{streamingBehavior:e}:{},userInitiated:!0});return this.promptRunning=!0,ae(),g.then(()=>{this.promptRunning=!1,this.resetIdleTimer(),e||this.emit({type:"prompt_done"}),ae()}).catch(a=>{this.promptRunning=!1,this.resetIdleTimer(),(0,z.mD)(),this.emit({type:"prompt_error",errorMessage:a instanceof Error?a.message:String(a)}),e||this.emit({type:"prompt_done"}),ae()}),null}case"abort":return this.goalMode.onAbort(),await this.withFinalRunningNotification(()=>this.inner.abort()),null;case"get_state":{let a=this.inner.model,b=this.inner.getContextUsage();return{sessionId:this.inner.sessionId,sessionFile:this.inner.sessionFile??"",isStreaming:this.inner.isStreaming,isPromptRunning:this.promptRunning,isBashRunning:this.inner.isBashRunning,isCompacting:this.inner.isCompacting,isHandoffRunning:this.handoffRunning,autoCompactionEnabled:this.inner.autoCompactionEnabled,autoRetryEnabled:this.inner.autoRetryEnabled,model:a?{id:a.id,provider:a.provider}:void 0,messageCount:0,pendingMessageCount:this.inner.queuedMessageCount,queuedMessages:{steering:[...this.inner.getQueuedMessages().steering],followUp:[...this.inner.getQueuedMessages().followUp]},contextUsage:b?{percent:b.percent,contextWindow:b.contextWindow,tokens:b.tokens}:null,systemPrompt:[this.inner.agent.state?.systemPrompt??""].flat().join("\n"),thinkingLevel:this.inner.agent.state?.thinkingLevel??"off",configuredThinkingLevel:this.inner.configuredThinkingLevel()??"off",extensionStatuses:this.getExtensionStatuses(),extensionWidgets:this.getExtensionWidgets(),subagents:this.getSubagentSnapshots(),todoPhases:this.inner.getTodoPhases(),goal:this.goalMode.getStatus()}}case"get_subagents":return{subagents:this.getSubagentSnapshots()};case"get_subagent_messages":{let b=this.subagents.resolveSessionFile(a);return(0,q.readRpcSubagentTranscript)(b,a.fromByte)}case"set_model":{let{provider:b,modelId:c,role:d,oauthPosition:e,thinkingLevel:f}=a,g=void 0!==f||void 0!==e;this.modelMutations+=1,g&&(this.presetMutation=!0);try{let a,g=await (0,D.Ix)(this.inner.modelRegistry,b,c,{forceDiscovery:!0});if(g.miss)throw Error((0,E.zX)(g.miss));let h=g.model,i=this.inner.model,j=void 0!==e||void 0!==f?function(a){try{let b=a.sessionManager.getBranch();if(!Array.isArray(b))return;for(let a=b.length-1;a>=0;a-=1){let c=b[a];if(c?.type==="model_change")return"string"==typeof c.role?c.role:void 0}}catch{}}(this.inner):void 0,k=void 0!==f?this.inner.configuredThinkingLevel():void 0;if(void 0!==e){let b=await M(this.inner,h.provider);if(!b.ok)throw Error(`${b.reason} 계정 변경을 시작하지 않았습니다.`);a=b.snapshot}if(await this.inner.setModel(h,d),void 0!==e){let b=await O(this.inner,h.provider,e);if(!b.ok){let c=await P(this.inner,{previousModel:i,previousRole:j,previousThinking:k,account:a});throw Error(`${b.reason} ${Q(c)}`)}}if(void 0!==f)try{this.inner.setThinkingLevel(f)}catch(d){let b=`thinking level ${f} 적용에 실패했습니다: ${d instanceof Error?d.message:String(d)}`,c=await P(this.inner,{previousModel:i,previousRole:j,previousThinking:k,account:a});throw Error(`${b} ${Q(c)}`)}return(0,x.kn)(),(0,z.mD)(),{id:h.id,provider:h.provider,...d?{role:d}:{}}}finally{g&&(this.presetMutation=!1),this.modelMutations-=1}}case"set_role_model":{let b=a.role;this.modelMutations+=1;try{await (0,D.Ef)(this.inner.modelRegistry,(0,C.Ex)(this.inner.settings));let a=this.inner.resolveRoleModel(b);if(!a)throw Error(`No model configured for role "${b}"`);return await this.inner.setModel(a,b),(0,x.kn)(),(0,z.mD)(),{id:a.id,provider:a.provider,role:b}}finally{this.modelMutations-=1}}case"fork":{let b;if(this.inner.isBashRunning)throw Error("Cannot fork while a shell command is running");let c=this.inner.sessionManager,d=function(a,b){if("string"==typeof b&&b.length>0)return b;for(let b=a.length-1;b>=0;b-=1){let c=a[b];if(c?.type==="message"&&c.message?.role==="user"&&c.id)return c.id}}(c.getBranch(),a.entryId);if(!d)throw Error("No user message to fork from yet");let e=this.inner.sessionFile;if(!e)return{cancelled:!0};let g=c.getEntry(d);if(!g)throw Error("Invalid entry ID for forking");let h=c.getSessionDir();if(g.parentId){let a=(await f.SessionManager.open(e,h)).createBranchedSession(g.parentId);if(!a)throw Error("Failed to create forked session");b=a}else{let a=f.SessionManager.create(c.getCwd(),h);await a.newSession({parentSession:e}),await a.ensureOnDisk(),b=a.getSessionFile()}let i=(await f.SessionManager.open(b,h)).getSessionId();return(0,z.O8)(i,b),(0,z.mD)(),await this.shutdownAfterCommittedFork(i),{cancelled:!1,newSessionId:i}}case"handoff":{if(this.handoffRunning||this.promptRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)throw Error("Cannot hand off while the session is busy");let b=a.customInstructions;this.handoffRunning=!0,ae();try{if(!await this.inner.handoff(b))return{cancelled:!0};return(0,z.mD)(),{cancelled:!1}}finally{this.handoffRunning=!1,ae()}}case"navigate_tree":if(this.inner.isBashRunning)throw Error("Cannot navigate while a shell command is running");return{cancelled:(await this.inner.navigateTree(a.targetId,{})).cancelled};case"set_thinking_level":{let b=a.level;this.modelMutations+=1;try{return this.inner.setThinkingLevel(b),"xhigh"===b&&this.inner.model?.compat?.thinkingFormat==="deepseek"&&this.inner.agent?.state&&(this.inner.agent.state.thinkingLevel="xhigh"),(0,z.mD)(),null}finally{this.modelMutations-=1}}case"compact":try{return await this.withFinalRunningNotification(()=>this.inner.compact(a.customInstructions))}finally{(0,z.mD)()}case"set_session_name":{let b=a.name?.trim();if(!b)throw Error("Session name cannot be empty");return await this.inner.sessionManager.setSessionName(b,"user"),(0,z.mD)(),null}case"get_session_stats":return{...this.inner.getSessionStats(),sessionName:this.inner.sessionManager.getSessionName()};case"get_last_assistant_text":return{text:this.inner.getLastAssistantText()??""};case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;case"clear_queue":return this.inner.clearQueue();case"steer":{let b=a.images;var e,g=this.sessionId,i=a.message;try{(0,t.appendFileSync)((0,u.join)((0,f.getAgentDir)(),"steering-received.jsonl"),`${JSON.stringify({ts:Date.now(),sessionId:g??null,via:"steer",length:"string"==typeof i?i.length:0})}
9
+ `)}catch{}return await this.inner.steer(a.message,b?.length?b:void 0),null}case"follow_up":{let b=a.images;return await this.inner.followUp(a.message,b?.length?b:void 0),null}case"get_tools":{let a=new Set(this.inner.getActiveToolNames());return(e=this.inner).getAllToolNames().map(a=>({name:a,description:e.getToolByName(a)?.description??""})).map(b=>({name:b.name,description:b.description,active:a.has(b.name)}))}case"get_commands":return{commands:await U(this.inner)};case"goal":return await this.goalMode.handleCommand(a.args??"");case"execute_slash_command":{let b=[],c=await (0,h.executeAcpBuiltinSlashCommand)(a.message,{session:this.inner,sessionManager:this.inner.sessionManager,settings:this.inner.settings,cwd:this.cwd,output:a=>{b.push(a)},refreshCommands:()=>{},reloadPlugins:async()=>{await this.waitForExtensionsBound(),this.extensionStatuses.clear(),this.extensionWidgets.clear(),await this.inner.reload(),await this.inner.refreshSkills?.(),this.applyForcedEmptySystemPrompt(),(0,x.kn)()}});if(!1===c)return{handled:!1,output:b};return{handled:!0,output:b,..."prompt"in c?{prompt:c.prompt}:{}}}case"set_tools":{let b=a.toolNames;return this.setForceEmptySystemPrompt(0===b.length),await this.inner.setActiveToolsByName(this.goalMode.reconcileToolNames(S(this.inner,b))),this.applyForcedEmptySystemPrompt(),null}case"reload":return await this.waitForExtensionsBound(),this.extensionStatuses.clear(),this.extensionWidgets.clear(),await this.inner.reload(),await this.inner.refreshSkills?.(),this.applyForcedEmptySystemPrompt(),(0,x.kn)(),{success:!0};case"abort_compaction":return this.inner.abortCompaction(),null;case"extension_ui_response":return this.resolveExtensionUiResponse(a),null;case"extension_ui_input":return this.handleExtensionUiInput(a.id,a.data),null;case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;case"bash":{if(this.promptRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)throw Error("Cannot run a shell command while the session is busy");let b=this.inner.executeBash(a.command,void 0,{excludeFromContext:a.excludeFromContext});ae();try{let a=await b;return this.persistBashOnlySession(),a}finally{this.resetIdleTimer(),(0,z.mD)(),ae()}}case"abort_bash":return this.inner.abortBash(),null;default:throw Error(`Unsupported command: ${c}`)}}destroy(){if(this._alive){for(let a of(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.inner.isBashRunning&&this.inner.abortBash(),this.unsubscribe?.(),this.goalModeController?.dispose(),this.subagents.dispose(),this.subagentHistory.clear(),this.keepAliveListeners.clear(),this.pendingUiResponses.values()))a.cancel();for(let a of Array.from(this.activeCustomUis.keys()))this.closeCustomUi(a,void 0);this.pendingUiResponses.clear(),this.pendingUiRequests.clear();try{this.inner.dispose?.()}finally{try{this.onDestroyCallback?.()}finally{ae()}}}}async shutdown(){return this.shutdownPromise?this.shutdownPromise:this._alive?(this.shutdownPromise=(async()=>{try{try{await this.waitForExtensionsBound()}catch(a){console.error("[pi-web] extension binding failed before session shutdown:",a instanceof Error?a.message:a)}await this.inner.extensionRunner?.emit?.({type:"session_shutdown",reason:"quit"})}finally{this.destroy()}})(),this.shutdownPromise):void 0}async stopBackgroundWorkForDrain(a){let b=Date.now()+a,c=function(a){let b="asyncJobManager"in a?a.asyncJobManager:void 0;if(b&&"object"==typeof b&&"cancelAll"in b&&"waitForAll"in b&&"function"==typeof b.cancelAll&&"function"==typeof b.waitForAll)return b}(this.inner);for(let a of(c?.cancelAll(),this.subagents.getSubagents()))p.AgentRegistry.global().get(a.id)?.session?.abort().catch(()=>{});let d=!c||await V(c.waitForAll(),b);for(;this.subagents.getSubagents().length>0&&Date.now()<b;)await function(){let{promise:a,resolve:b}=Promise.withResolvers();return setTimeout(b,100),a}();return d&&0===this.subagents.getSubagents().length}resolveExtensionUiResponse(a){let b=this.pendingUiResponses.get(a.id);b&&b.resolve(a)}getExtensionStatuses(){return Array.from(this.extensionStatuses,([a,b])=>({key:a,text:b}))}getExtensionWidgets(){return Array.from(this.extensionWidgets.values())}getCustomUiWidth(a){if(!a||"object"!=typeof a)return I.p1;let b=a.overlayOptions,c="function"==typeof b?b():b;if(!c||"object"!=typeof c)return I.p1;let d=c.width;return"number"==typeof d&&Number.isFinite(d)?Math.max(40,Math.min(140,Math.round(d))):92}emitCustomUiRender(a,b){let c;try{c=b.component.render(b.width)}catch(a){c=[`Extension custom UI render failed: ${a instanceof Error?a.message:String(a)}`]}let d={type:"extension_ui_request",id:a,method:"custom",lines:c};this.pendingUiRequests.set(a,d),this.emit(d)}closeCustomUi(a,b){let c=this.activeCustomUis.get(a);if(c&&!c.settled){c.settled=!0,this.activeCustomUis.delete(a),this.pendingUiRequests.delete(a);try{c.component.dispose?.()}catch{}this.emit({type:"extension_ui_request",id:a,method:"custom",lines:[],closed:!0}),c.resolve(b)}}handleExtensionUiInput(a,b){let c=this.activeCustomUis.get(a);if(c&&"string"==typeof b)try{c.component.handleInput?.(b),this.activeCustomUis.has(a)&&this.emitCustomUiRender(a,c)}catch(b){this.closeCustomUi(a,void 0),this.emit({type:"extension_error",extensionPath:`custom-ui:${a}`,event:"custom_ui_input",error:b instanceof Error?b.message:String(b)})}}requestExtensionCustomUi(a,b){if("function"!=typeof a)return Promise.resolve(void 0);let c=(0,s.randomUUID)(),d=this.getCustomUiWidth(b);return new Promise(b=>{let e=!1,f=(0,I.TQ)(()=>{let a=this.activeCustomUis.get(c);a&&this.emitCustomUiRender(c,a)},d),g=a=>{e||(e=!0,b(a))},h=a=>{this.activeCustomUis.has(c)?this.closeCustomUi(c,a):g(a)};Promise.resolve().then(()=>a(f,an,ao,h)).then(a=>{if(e){try{a?.dispose?.()}catch{}return}if(!a||"object"!=typeof a||"function"!=typeof a.render)return void g(void 0);let b={component:a,width:d,resolve:a=>g(a),settled:!1};this.activeCustomUis.set(c,b),this.emitCustomUiRender(c,b)}).catch(a=>{e||(this.emit({type:"extension_error",extensionPath:`custom-ui:${c}`,event:"custom_ui",error:a instanceof Error?a.message:String(a)}),g(void 0))})})}requestExtensionUi(a,b,c,d,e){if(e?.aborted)return Promise.resolve(b);let f=(0,s.randomUUID)(),g={type:"extension_ui_request",id:f,...a,...d?{timeout:d,expiresAt:Date.now()+d}:{}};return new Promise(a=>{let h,i=()=>{h&&clearTimeout(h),e?.removeEventListener("abort",k),this.pendingUiRequests.delete(f),this.pendingUiResponses.delete(f)},j=(b,c=!1)=>{i(),c&&this.emit({...g,closed:!0}),a(b)},k=()=>j(b,!0);d&&(h=setTimeout(()=>j(b),d)),e?.addEventListener("abort",k,{once:!0}),this.pendingUiRequests.set(f,g),this.pendingUiResponses.set(f,{resolve:a=>j(c(a)),cancel:()=>j(b)}),this.emit(g)})}createExtensionUiContext(){return{timeoutStartsOnPresentation:!1,askDialog:(a,b)=>this.requestExtensionUi({method:"ask",questions:a,...b?.timeout?{timeout:b.timeout}:{}},void 0,a=>{if("value"in a)try{return JSON.parse(a.value)}catch{return}},b?.timeout,b?.signal),select:(a,b,c)=>this.requestExtensionUi({method:"select",title:a,options:b,...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),confirm:(a,b,c)=>this.requestExtensionUi({method:"confirm",title:a,message:b,...c?.timeout?{timeout:c.timeout}:{}},!1,a=>"confirmed"in a&&a.confirmed,c?.timeout,c?.signal),input:(a,b,c)=>this.requestExtensionUi({method:"input",title:a,...void 0!==b?{placeholder:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),editor:(a,b,c)=>this.requestExtensionUi({method:"editor",title:a,...void 0!==b?{prefill:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),notify:(a,b)=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"notify",message:a,notifyType:b})},onTerminalInput:()=>()=>{},setStatus:(a,b)=>{void 0===b?this.extensionStatuses.delete(a):this.extensionStatuses.set(a,b),this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"setStatus",statusKey:a,statusText:b})},setWorkingMessage:()=>{},setWorkingVisible:()=>{},setWorkingIndicator:()=>{},setHiddenThinkingLabel:()=>{},setWidget:(a,b,c)=>{(void 0===b||Array.isArray(b))&&(void 0===b?this.extensionWidgets.delete(a):this.extensionWidgets.set(a,{key:a,lines:b,placement:c?.placement??"aboveEditor"}),this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"setWidget",widgetKey:a,widgetLines:b,widgetPlacement:c?.placement}))},setFooter:()=>{},setHeader:()=>{},setTitle:a=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"setTitle",title:a})},custom:(a,b)=>this.requestExtensionCustomUi(a,b),pasteToEditor:a=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"set_editor_text",text:a})},setEditorText:a=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"set_editor_text",text:a})},getEditorText:()=>"",addAutocompleteProvider:()=>{},setEditorComponent:()=>{},getEditorComponent:()=>void 0,get theme(){return an},getAllThemes:()=>[],getTheme:()=>void 0,setTheme:()=>({success:!1,error:"Theme switching is not supported in CUELO extension UI yet"}),getToolsExpanded:()=>!1,setToolsExpanded:()=>{}}}}function W(){if(!globalThis.__ompSessions){globalThis.__ompSessions=new Map;let a=()=>globalThis.__ompSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__ompSessions}function X(){return globalThis.__ompClosingSessionIds||(globalThis.__ompClosingSessionIds=new Set),globalThis.__ompClosingSessionIds}function Y(a,{onlyWhenIdle:b=!1}={}){let c=X();if(c.has(a))return{reserved:!1,release:()=>{}};let d=W().get(a);if(d?!d.beginClose({onlyWhenIdle:b}):b&&ad().includes(a))return{reserved:!1,release:()=>{}};c.add(a);let e=!1;return{reserved:!0,release:()=>{e||(e=!0,c.delete(a),d?.cancelClose())}}}function Z(a){let b=(0,u.resolve)(a);try{return(0,t.realpathSync)(b)}catch{return b}}function $(){return globalThis.__ompStartingSessionCwds||(globalThis.__ompStartingSessionCwds=new Map),globalThis.__ompStartingSessionCwds}function _(a){return W().get(a)}function aa(){let a=[];for(let b of W().values()){if(!b.isAlive())continue;let c=b.inner.sessionManager,d=c.getHeader(),e=c.getEntries(),f=e.filter(a=>"message"===a.type),g=f.find(a=>"user"===a.message.role),h=c.getSessionFile()??b.sessionFile,i=!!(h&&(0,t.existsSync)(h));if(!i&&(!b.isRunning()||!g))continue;let j=d?.timestamp??e[0]?.timestamp??new Date().toISOString(),k=new Date(j).getTime(),l=Number.isNaN(k)?Date.now():k;for(let a of f){let b=function(a){if("user"!==a.message.role&&"assistant"!==a.message.role)return;if("number"==typeof a.message.timestamp)return a.message.timestamp;let b=new Date(a.timestamp).getTime();return Number.isNaN(b)?void 0:b}(a);void 0!==b&&(l=Math.max(l,b))}a.push({path:h??"",id:d?.id??b.sessionId,cwd:d?.cwd??b.cwd,name:c.getSessionName(),created:j,modified:new Date(l).toISOString(),messageCount:f.length,firstMessage:g&&function(a){if("bashExecution"===a.message.role)return"";let b=a.message.content,c="string"==typeof b?b:b.map(a=>"text"===a.type?a.text:"").filter(Boolean).join(" ");return(0,w.we)(c)}(g)||"(no messages)",transient:!i})}return a}function ab(a){let b=Z(a);return!!$().has(b)||Array.from(W().values()).some(a=>Z(a.cwd)===b&&a.isRunning())}async function ac(a){let b=Z(a),c=Array.from(W().values()).filter(a=>Z(a.cwd)===b);return await Promise.all(c.map(a=>a.shutdown())),c.length}function ad(){let a=new Set;for(let[b,c]of W())c.isRunning()&&a.add(c.sessionId||b);return[...a]}function ae(){let a=ad();(0,G.p8)(a)}async function af(a,b,c,d={}){let{toolNames:g,initialModel:h,thinkingLevel:i,accountOauthPosition:j}=d,k=W(),l=(globalThis.__ompStartLocks||(globalThis.__ompStartLocks=new Map),globalThis.__ompStartLocks);if(X().has(a))throw Error("Session is closing");let n=k.get(a);if(n?.isAlive())return{session:n,realSessionId:a};let o=l.get(a);if(o)return o;let p=(async()=>{let d,l;await (0,f.initTheme)(!1);let n=(0,f.getAgentDir)(),o=b?await f.SessionManager.open(b,void 0):(()=>{if(!c)throw Error("cwd is required for a new session");return f.SessionManager.create(c,void 0)})(),p=o.getCwd(),q=(d=$(),l=Z(p),d.set(l,(d.get(l)??0)+1),()=>{let a=(d.get(l)??1)-1;a>0?d.set(l,a):d.delete(l)});try{let b,c=await (0,D.RD)(),d=await (0,D.ZU)(p);void 0!==g&&(b=0===g.length?[]:void 0);let[l,q]=await Promise.all([(0,f.discoverSessionExtensionPaths)({},p,d),(0,m.discoverCustomToolPaths)([],p)]),r=(0,A.qm)(p,n,{extensionPaths:l,customToolPaths:q}),s=await (0,B.D)(p),{modelRegistry:t}=c;await (0,D.Ef)(t,[...(0,C.Ex)(d),...h?[h]:[]]);let u=await (0,y.p)(t,e.cfgEnabledModels.get(d),d),v=(0,C.Ff)(d),w=h?void 0:v?.thinkingLevel,x=i??w,E=o.buildSessionContext().messages.length>0?{scopedModels:[...u.scopedModels],model:void 0,thinkingLevel:void 0}:(0,y.I)(u,{...h?{requestedModel:h}:{},...v?{defaultModel:v}:{},...x?{thinkingLevel:x}:{}}),F={cwd:p,agentDir:n,settings:d,sessionManager:o,modelRegistry:t,hasUI:!0,...E.model?{model:E.model}:{},...E.thinkingLevel?{thinkingLevel:E.thinkingLevel}:{},...E.scopedModels.length>0?{scopedModels:E.scopedModels}:{},...void 0!==b?{toolNames:b,restrictToolNames:!0}:{},...r??{}};(0,f.applyResolvedSystemPromptInputs)(F,s.systemPrompt,s.appendPrompt);let{session:G,eventBus:H,setToolUIContext:I}=await (0,f.createAgentSession)(F);g&&g.length>0&&await G.setActiveToolsByName(S(G,g));let J=new aq(G,H);if(J.bindToolUiContext(I),void 0!==j){let a=G.model?.provider;if(!a)throw J.destroy(),Error("이 세션의 provider를 알 수 없어 OAuth 계정을 지정하지 못했습니다.");let b=await O(G,a,j);if(!b.ok)throw J.destroy(),Error(b.reason)}g?.length===0&&J.setForceEmptySystemPrompt(!0);let K=G.sessionId,L=X();if(L.has(a)||L.has(K))throw J.destroy(),Error("Session is closing");J.start();let M=G.sessionFile;return M&&(0,z.O8)(K,M),J.onDestroy(()=>k.delete(K)),k.set(K,J),J.beginExtensionBinding({forceEmptySystemPrompt:g?.length===0}),{session:J,realSessionId:K}}finally{q()}})().finally(()=>{l.delete(a)});return l.set(a,p),p}d()}catch(a){d(a)}})},71069:(a,b,c)=>{c.d(b,{TQ:()=>e,p1:()=>d});let d=92;function e(a,b=d,c=40){return Object.freeze({terminal:Object.freeze({columns:b,rows:c,kittyProtocolActive:!1}),requestRender:a})}},72498:(a,b,c)=>{c.d(b,{Y1:()=>m,er:()=>n,qm:()=>p});var d=c(29021),e=c(33873),f=c(13229),g=c(8102);let h=[".omp/extensions",".omp/hooks",".omp/tools",".pi/extensions",".pi/hooks",".pi/tools",".claude/extensions",".claude/hooks",".claude/tools",".agents/extensions",".agents/hooks",".agents/tools"],i=[".mcp.json",".omp/.mcp.json",".omp/mcp.json",".claude/.mcp.json",".claude/mcp.json",".cursor/mcp.json"];function j(a){return(0,e.join)(a,"cuelo-trusted-projects.json")}function k(a){let b=(0,e.resolve)(a);try{return(0,d.realpathSync)(b)}catch{return b}}function l(a){try{(0,f.adoptLegacyStateFile)(j(a),"omp-web-trusted-projects.json");let b=JSON.parse((0,d.readFileSync)(j(a),"utf8"));if("object"!=typeof b||null===b||Array.isArray(b))return{};return Object.fromEntries(Object.entries(b).filter(a=>"boolean"==typeof a[1]))}catch{return{}}}function m(a,b){return a&&function(a){if(!a)return!1;for(let b of h)if((0,d.existsSync)((0,e.join)(a,b)))return!0;for(let b of i)if((0,d.existsSync)((0,e.join)(a,b)))return!0;return!1}(a)?{requiresTrust:!0,trusted:!0===l(b)[k(a)]}:{requiresTrust:!1,trusted:!0}}function n(a,b){let c=m(a,b);if(!c.requiresTrust)return c;let e=l(b);return e[k(a)]=!0,(0,d.mkdirSync)(b,{recursive:!0}),(0,g.$)(j(b),`${JSON.stringify(e,null,2)}
10
10
  `),{requiresTrust:!0,trusted:!0}}function o(a,b){let c=(0,e.relative)((0,e.resolve)(b),(0,e.resolve)(a));return""===c||".."!==c&&!c.startsWith(`..${e.sep}`)&&!c.startsWith("../")}function p(a,b,c){let d=m(a,b);if(d.requiresTrust&&!d.trusted)return{preloadedExtensionPaths:c.extensionPaths.filter(b=>!o(b,a)),preloadedCustomToolPaths:c.customToolPaths.filter(b=>b.source?.level!=="project"&&!o(b.path,a)),enableMCP:!1}}},78970:(a,b,c)=>{c.d(b,{kc:()=>d});function d(a){if(void 0===a)return null;if(!Array.isArray(a))return"images must be an array";if(a.length>10)return"A message can include at most 10 images";for(let b of a){if(!b||"object"!=typeof b||"image"!==b.type)return"Each attachment must be an image";if(!function(a){if(!a||"object"!=typeof a||"string"!=typeof a.data||"string"!=typeof a.mimeType||!a.mimeType.startsWith("image/"))return!1;let b=function(a){if(!a||a.length%4!=0)return null;let b=a.endsWith("==")?2:+!!a.endsWith("="),c=a.length-b;for(let b=0;b<c;b+=1){var d;if(!((d=a.charCodeAt(b))>=65&&d<=90||d>=97&&d<=122||d>=48&&d<=57||43===d||47===d))return null}for(let b=c;b<a.length;b+=1)if("="!==a[b])return null;return a.length/4*3-b}(a.data);return null!==b&&b<=0xa00000}(b))return"Each image must be valid base64 image data of 10MB or smaller"}return null}}};
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/Xey7BdddcpqFxM5-ikcal/_buildManifest.js","static/Xey7BdddcpqFxM5-ikcal/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-4094d78ef0b4c382.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-1b03b52e3112452e.js","static/chunks/main-app-fbc4aa3c15d48613.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/NZvNUVntEzl6V9pD45vuq/_buildManifest.js","static/NZvNUVntEzl6V9pD45vuq/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-4094d78ef0b4c382.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-1b03b52e3112452e.js","static/chunks/main-app-fbc4aa3c15d48613.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" translate="no" class="notranslate" data-seed="true"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="stylesheet" href="/_next/static/css/2f46e0db0d4a3aed.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/41958fa4965167ad.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4094d78ef0b4c382.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-1b03b52e3112452e.js" async=""></script><script src="/_next/static/chunks/main-app-fbc4aa3c15d48613.js" async=""></script><script src="/_next/static/chunks/app/layout-61356b8386302172.js" async=""></script><meta name="robots" content="noindex"/><meta name="google" content="notranslate"/><meta name="color-scheme" content="light dark"/><title>404: This page could not be found.</title><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#16171b" media="(prefers-color-scheme: dark)"/><title>CUELO</title><meta name="description" content="Web view for the omp (oh-my-pi) coding agent"/><meta name="application-name" content="CUELO"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CUELO"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><link rel="icon" href="/favicon.ico?8c0caa70b36d2bd8" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/icons/icon-192.png" sizes="192x192" type="image/png"/><link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" sizes="180x180" type="image/png"/><script>(function(){try{var s=localStorage,p=s.getItem("pi-theme");if(p!=="light"&&p!=="dark"&&p!=="auto"){p=s.getItem("omp-theme");if(p!=="light"&&p!=="dark")p="auto"}var m=p==="auto"?(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"):p,r=document.documentElement;r.dataset.ompThemeMode=m;r.setAttribute("data-seed-color-mode",m==="dark"?"dark-only":"light-only");r.classList.toggle("dark",m==="dark");for(var i=r.style.length-1;i>=0;i--){var n=r.style.item(i);if(n.indexOf("--")===0&&n.indexOf("--omp-md-")!==0)r.style.removeProperty(n)}var c=JSON.parse(s.getItem("omp-theme-config")||"null"),v=c&&c.palettes&&c.palettes[m];if(v&&v.variables){Object.keys(v.variables).forEach(function(k){if(k.indexOf("--omp-md-")===0)r.style.setProperty(k,v.variables[k])});r.dataset.ompThemeName=v.name}}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate"><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;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><!--$--><!--/$--><script src="/_next/static/chunks/webpack-4094d78ef0b4c382.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[57788,[\"7177\",\"static/chunks/app/layout-61356b8386302172.js\"],\"PwaRegistration\"]\n5:I[90484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[90484,[],\"ViewportBoundary\"]\nb:I[90484,[],\"MetadataBoundary\"]\nd:I[27123,[],\"default\",1]\n:HL[\"/_next/static/css/2f46e0db0d4a3aed.css\",\"style\"]\n:HL[\"/_next/static/css/41958fa4965167ad.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/2f46e0db0d4a3aed.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/41958fa4965167ad.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"notranslate\",\"data-seed\":true,\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"meta\",null,{\"name\":\"color-scheme\",\"content\":\"light dark\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=localStorage,p=s.getItem(\\\"pi-theme\\\");if(p!==\\\"light\\\"\u0026\u0026p!==\\\"dark\\\"\u0026\u0026p!==\\\"auto\\\"){p=s.getItem(\\\"omp-theme\\\");if(p!==\\\"light\\\"\u0026\u0026p!==\\\"dark\\\")p=\\\"auto\\\"}var m=p===\\\"auto\\\"?(window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches?\\\"dark\\\":\\\"light\\\"):p,r=document.documentElement;r.dataset.ompThemeMode=m;r.setAttribute(\\\"data-seed-color-mode\\\",m===\\\"dark\\\"?\\\"dark-only\\\":\\\"light-only\\\");r.classList.toggle(\\\"dark\\\",m===\\\"dark\\\");for(var i=r.style.length-1;i\u003e=0;i--){var n=r.style.item(i);if(n.indexOf(\\\"--\\\")===0\u0026\u0026n.indexOf(\\\"--omp-md-\\\")!==0)r.style.removeProperty(n)}var c=JSON.parse(s.getItem(\\\"omp-theme-config\\\")||\\\"null\\\"),v=c\u0026\u0026c.palettes\u0026\u0026c.palettes[m];if(v\u0026\u0026v.variables){Object.keys(v.variables).forEach(function(k){if(k.indexOf(\\\"--omp-md-\\\")===0)r.style.setProperty(k,v.variables[k])});r.dataset.ompThemeName=v.name}}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}]]}]]}]]}],{\"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\":[[[\"$\",\"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,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$@8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Xey7BdddcpqFxM5-ikcal\"}\n"])</script><script>self.__next_f.push([1,"e:[]\n8:\"$We\"\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#16171b\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[86869,[],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"CUELO\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Web view for the omp (oh-my-pi) coding agent\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"CUELO\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"5\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CUELO\"}],[\"$\",\"meta\",\"7\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?8c0caa70b36d2bd8\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/icons/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"10\",{\"rel\":\"apple-touch-icon\",\"href\":\"/icons/apple-touch-icon.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Lf\",\"11\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" translate="no" class="notranslate" data-seed="true"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="stylesheet" href="/_next/static/css/2f46e0db0d4a3aed.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/0282259eb1a6b95f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4094d78ef0b4c382.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-1b03b52e3112452e.js" async=""></script><script src="/_next/static/chunks/main-app-fbc4aa3c15d48613.js" async=""></script><script src="/_next/static/chunks/app/layout-6261ac86255ccc75.js" async=""></script><meta name="robots" content="noindex"/><meta name="google" content="notranslate"/><meta name="color-scheme" content="light dark"/><title>404: This page could not be found.</title><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#16171b" media="(prefers-color-scheme: dark)"/><title>CUELO</title><meta name="description" content="Web view for the omp (oh-my-pi) coding agent"/><meta name="application-name" content="CUELO"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CUELO"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><link rel="icon" href="/favicon.ico?bcf2d9369cb3cf33" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/icons/icon-192.png" sizes="192x192" type="image/png"/><link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" sizes="180x180" type="image/png"/><script>(function(){try{var s=localStorage,p=s.getItem("pi-theme");if(p!=="light"&&p!=="dark"&&p!=="auto"){p=s.getItem("omp-theme");if(p!=="light"&&p!=="dark")p="auto"}var m=p==="auto"?(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"):p,r=document.documentElement;r.dataset.ompThemeMode=m;r.setAttribute("data-seed-color-mode",m==="dark"?"dark-only":"light-only");r.classList.toggle("dark",m==="dark");for(var i=r.style.length-1;i>=0;i--){var n=r.style.item(i);if(n.indexOf("--")===0&&n.indexOf("--omp-md-")!==0)r.style.removeProperty(n)}var c=JSON.parse(s.getItem("omp-theme-config")||"null"),v=c&&c.palettes&&c.palettes[m];if(v&&v.variables){Object.keys(v.variables).forEach(function(k){if(k.indexOf("--omp-md-")===0)r.style.setProperty(k,v.variables[k])});r.dataset.ompThemeName=v.name}}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate"><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;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><!--$--><!--/$--><script src="/_next/static/chunks/webpack-4094d78ef0b4c382.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[57788,[\"7177\",\"static/chunks/app/layout-6261ac86255ccc75.js\"],\"PwaRegistration\"]\n5:I[90484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[90484,[],\"ViewportBoundary\"]\nb:I[90484,[],\"MetadataBoundary\"]\nd:I[27123,[],\"default\",1]\n:HL[\"/_next/static/css/2f46e0db0d4a3aed.css\",\"style\"]\n:HL[\"/_next/static/css/0282259eb1a6b95f.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/2f46e0db0d4a3aed.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0282259eb1a6b95f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"notranslate\",\"data-seed\":true,\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"meta\",null,{\"name\":\"color-scheme\",\"content\":\"light dark\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=localStorage,p=s.getItem(\\\"pi-theme\\\");if(p!==\\\"light\\\"\u0026\u0026p!==\\\"dark\\\"\u0026\u0026p!==\\\"auto\\\"){p=s.getItem(\\\"omp-theme\\\");if(p!==\\\"light\\\"\u0026\u0026p!==\\\"dark\\\")p=\\\"auto\\\"}var m=p===\\\"auto\\\"?(window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches?\\\"dark\\\":\\\"light\\\"):p,r=document.documentElement;r.dataset.ompThemeMode=m;r.setAttribute(\\\"data-seed-color-mode\\\",m===\\\"dark\\\"?\\\"dark-only\\\":\\\"light-only\\\");r.classList.toggle(\\\"dark\\\",m===\\\"dark\\\");for(var i=r.style.length-1;i\u003e=0;i--){var n=r.style.item(i);if(n.indexOf(\\\"--\\\")===0\u0026\u0026n.indexOf(\\\"--omp-md-\\\")!==0)r.style.removeProperty(n)}var c=JSON.parse(s.getItem(\\\"omp-theme-config\\\")||\\\"null\\\"),v=c\u0026\u0026c.palettes\u0026\u0026c.palettes[m];if(v\u0026\u0026v.variables){Object.keys(v.variables).forEach(function(k){if(k.indexOf(\\\"--omp-md-\\\")===0)r.style.setProperty(k,v.variables[k])});r.dataset.ompThemeName=v.name}}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}]]}]]}]]}],{\"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\":[[[\"$\",\"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,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$@8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"NZvNUVntEzl6V9pD45vuq\"}\n"])</script><script>self.__next_f.push([1,"e:[]\n8:\"$We\"\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#16171b\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[86869,[],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"CUELO\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Web view for the omp (oh-my-pi) coding agent\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"CUELO\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"5\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CUELO\"}],[\"$\",\"meta\",\"7\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?bcf2d9369cb3cf33\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/icons/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"10\",{\"rel\":\"apple-touch-icon\",\"href\":\"/icons/apple-touch-icon.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Lf\",\"11\",{}]]\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-4094d78ef0b4c382.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-1b03b52e3112452e.js" async=""></script><script src="/_next/static/chunks/main-app-fbc4aa3c15d48613.js" async=""></script><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-4094d78ef0b4c382.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\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Xey7BdddcpqFxM5-ikcal\"}\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-4094d78ef0b4c382.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-1b03b52e3112452e.js" async=""></script><script src="/_next/static/chunks/main-app-fbc4aa3c15d48613.js" async=""></script><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-4094d78ef0b4c382.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\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"NZvNUVntEzl6V9pD45vuq\"}\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":"EvBztiWqo1rTv0qi2v9sthVXavD4nH6AiSHfqi+vhnQ="}
1
+ {"node":{},"edge":{},"encryptionKey":"3BRd5m34Aw8xR9eOLYai6oQZpdzNS7Q42YWPB38FR4c="}
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{17594:(e,r,t)=>{Promise.resolve().then(t.bind(t,57788)),Promise.resolve().then(t.t.bind(t,84559,23)),Promise.resolve().then(t.t.bind(t,66872,23))},57788:(e,r,t)=>{"use strict";t.d(r,{PwaRegistration:()=>o});var n=t(12115);function o(){return(0,n.useEffect)(()=>{if(!("serviceWorker"in navigator))return;let e=()=>{let e=`/sw.js?v=${encodeURIComponent("0.5.4")}`;navigator.serviceWorker.register(e,{scope:"/",updateViaCache:"none"}).catch(e=>{console.error("Failed to register the CUELO service worker:",e)})};return"complete"===document.readyState?void e():(window.addEventListener("load",e,{once:!0}),()=>window.removeEventListener("load",e))},[]),null}},66872:()=>{},84559:()=>{}},e=>{e.O(0,[5846,7513,8441,3794,7358],()=>e(e.s=17594)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{17594:(e,r,t)=>{Promise.resolve().then(t.bind(t,57788)),Promise.resolve().then(t.t.bind(t,84559,23)),Promise.resolve().then(t.t.bind(t,66872,23))},57788:(e,r,t)=>{"use strict";t.d(r,{PwaRegistration:()=>o});var n=t(12115);function o(){return(0,n.useEffect)(()=>{if(!("serviceWorker"in navigator))return;let e=()=>{let e=`/sw.js?v=${encodeURIComponent("0.5.6")}`;navigator.serviceWorker.register(e,{scope:"/",updateViaCache:"none"}).catch(e=>{console.error("Failed to register the CUELO service worker:",e)})};return"complete"===document.readyState?void e():(window.addEventListener("load",e,{once:!0}),()=>window.removeEventListener("load",e))},[]),null}},66872:()=>{},84559:()=>{}},e=>{e.O(0,[5846,7513,8441,3794,7358],()=>e(e.s=17594)),_N_E=e.O()}]);