@kyun.si/codex-hongguo 0.0.22 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex-plugin/plugin.json +1 -1
- package/README.en.md +9 -1
- package/README.md +9 -1
- package/dist/cli/main.mjs +7 -5
- package/dist/server/index.mjs +16 -16
- package/dist/setup/check.mjs +4 -4
- package/dist/ui/player.html +1 -1
- package/package.json +1 -1
package/dist/setup/check.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {createRequire as __cr} from 'node:module';const require=__cr(import.meta.url);
|
|
2
|
-
var Et=Object.create;var OA=Object.defineProperty;var ht=Object.getOwnPropertyDescriptor;var lt=Object.getOwnPropertyNames;var Qt=Object.getPrototypeOf,Bt=Object.prototype.hasOwnProperty;var L=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(A,t)=>(typeof require<"u"?require:A)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,A)=>()=>{try{return A||e((A={exports:{}}).exports,A),A.exports}catch(t){throw A=0,t}};var pt=(e,A,t,r)=>{if(A&&typeof A=="object"||typeof A=="function")for(let i of lt(A))!Bt.call(e,i)&&i!==t&&OA(e,i,{get:()=>A[i],enumerable:!(r=ht(A,i))||r.enumerable});return e};var JA=(e,A,t)=>(t=e!=null?Et(Qt(e)):{},pt(A||!e||!e.__esModule?OA(t,"default",{value:e,enumerable:!0}):t,e));var zA=v((ti,PA)=>{PA.exports=qA;qA.sync=xt;var UA=L("fs");function St(e,A){var t=A.pathExt!==void 0?A.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var r=0;r<t.length;r++){var i=t[r].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}function KA(e,A,t){return!e.isSymbolicLink()&&!e.isFile()?!1:St(A,t)}function qA(e,A,t){UA.stat(e,function(r,i){t(r,r?!1:KA(i,e,A))})}function xt(e,A){return KA(UA.statSync(e),e,A)}});var ZA=v((ri,VA)=>{VA.exports=WA;WA.sync=Tt;var XA=L("fs");function WA(e,A,t){XA.stat(e,function(r,i){t(r,r?!1:jA(i,A))})}function Tt(e,A){return jA(XA.statSync(e),A)}function jA(e,A){return e.isFile()&&Lt(e,A)}function Lt(e,A){var t=e.mode,r=e.uid,i=e.gid,n=A.uid!==void 0?A.uid:process.getuid&&process.getuid(),s=A.gid!==void 0?A.gid:process.getgid&&process.getgid(),a=parseInt("100",8),u=parseInt("010",8),c=parseInt("001",8),C=a|u,o=t&c||t&u&&i===s||t&a&&r===n||t&C&&n===0;return o}});var Ae=v((ni,$A)=>{var ii=L("fs"),Z;process.platform==="win32"||global.TESTING_WINDOWS?Z=zA():Z=ZA();$A.exports=sA;sA.sync=Rt;function sA(e,A,t){if(typeof A=="function"&&(t=A,A={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,i){sA(e,A||{},function(n,s){n?i(n):r(s)})})}Z(e,A||{},function(r,i){r&&(r.code==="EACCES"||A&&A.ignoreErrors)&&(r=null,i=!1),t(r,i)})}function Rt(e,A){try{return Z.sync(e,A||{})}catch(t){if(A&&A.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var oe=v((si,se)=>{var G=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",ee=L("path"),kt=G?";":":",te=Ae(),re=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),ie=(e,A)=>{let t=A.colon||kt,r=e.match(/\//)||G&&e.match(/\\/)?[""]:[...G?[process.cwd()]:[],...(A.path||process.env.PATH||"").split(t)],i=G?A.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=G?i.split(t):[""];return G&&e.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:r,pathExt:n,pathExtExe:i}},ne=(e,A,t)=>{typeof A=="function"&&(t=A,A={}),A||(A={});let{pathEnv:r,pathExt:i,pathExtExe:n}=ie(e,A),s=[],a=c=>new Promise((C,o)=>{if(c===r.length)return A.all&&s.length?C(s):o(re(e));let I=r[c],g=/^".*"$/.test(I)?I.slice(1,-1):I,f=ee.join(g,e),E=!g&&/^\.[\\\/]/.test(e)?e.slice(0,2)+f:f;C(u(E,c,0))}),u=(c,C,o)=>new Promise((I,g)=>{if(o===i.length)return I(a(C+1));let f=i[o];te(c+f,{pathExt:n},(E,l)=>{if(!E&&l)if(A.all)s.push(c+f);else return I(c+f);return I(u(c,C,o+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Ft=(e,A)=>{A=A||{};let{pathEnv:t,pathExt:r,pathExtExe:i}=ie(e,A),n=[];for(let s=0;s<t.length;s++){let a=t[s],u=/^".*"$/.test(a)?a.slice(1,-1):a,c=ee.join(u,e),C=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c;for(let o=0;o<r.length;o++){let I=C+r[o];try{if(te.sync(I,{pathExt:i}))if(A.all)n.push(I);else return I}catch{}}}if(A.all&&n.length)return n;if(A.nothrow)return null;throw re(e)};se.exports=ne;ne.sync=Ft});var ge=v((oi,oA)=>{"use strict";var ae=(e={})=>{let A=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(A).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};oA.exports=ae;oA.exports.default=ae});var ce=v((ai,ue)=>{"use strict";var Ie=L("path"),bt=oe(),Mt=ge();function Ce(e,A){let t=e.options.env||process.env,r=process.cwd(),i=e.options.cwd!=null,n=i&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(e.options.cwd)}catch{}let s;try{s=bt.sync(e.command,{path:t[Mt({env:t})],pathExt:A?Ie.delimiter:void 0})}catch{}finally{n&&process.chdir(r)}return s&&(s=Ie.resolve(i?e.options.cwd:"",s)),s}function Ot(e){return Ce(e)||Ce(e,!0)}ue.exports=Ot});var fe=v((gi,gA)=>{"use strict";var aA=/([()\][%!^"`<>&|;, *?])/g;function Jt(e){return e=e.replace(aA,"^$1"),e}function Yt(e,A){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(aA,"^$1"),A&&(e=e.replace(aA,"^$1")),e}gA.exports.command=Jt;gA.exports.argument=Yt});var he=v((Ii,Ee)=>{"use strict";Ee.exports=/^#!(.*)/});var Qe=v((Ci,le)=>{"use strict";var Gt=he();le.exports=(e="")=>{let A=e.match(Gt);if(!A)return null;let[t,r]=A[0].replace(/#! ?/,"").split(" "),i=t.split("/").pop();return i==="env"?r:r?`${i} ${r}`:i}});var pe=v((ui,Be)=>{"use strict";var IA=L("fs"),_t=Qe();function Ht(e){let t=Buffer.alloc(150),r;try{r=IA.openSync(e,"r"),IA.readSync(r,t,0,150,0),IA.closeSync(r)}catch{}return _t(t.toString())}Be.exports=Ht});var me=v((ci,ve)=>{"use strict";var Ut=L("path"),de=ce(),we=fe(),Kt=pe(),qt=process.platform==="win32",Pt=/\.(?:com|exe)$/i,zt=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Xt(e){e.file=de(e);let A=e.file&&Kt(e.file);return A?(e.args.unshift(e.file),e.command=A,de(e)):e.file}function Wt(e){if(!qt)return e;let A=Xt(e),t=!Pt.test(A);if(e.options.forceShell||t){let r=zt.test(A);e.command=Ut.normalize(e.command),e.command=we.command(e.command),e.args=e.args.map(n=>we.argument(n,r));let i=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${i}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function jt(e,A,t){A&&!Array.isArray(A)&&(t=A,A=null),A=A?A.slice(0):[],t=Object.assign({},t);let r={command:e,args:A,options:t,file:void 0,original:{command:e,args:A}};return t.shell?r:Wt(r)}ve.exports=jt});var De=v((fi,Ne)=>{"use strict";var CA=process.platform==="win32";function uA(e,A){return Object.assign(new Error(`${A} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${A} ${e.command}`,path:e.command,spawnargs:e.args})}function Vt(e,A){if(!CA)return;let t=e.emit;e.emit=function(r,i){if(r==="exit"){let n=ye(i,A);if(n)return t.call(e,"error",n)}return t.apply(e,arguments)}}function ye(e,A){return CA&&e===1&&!A.file?uA(A.original,"spawn"):null}function Zt(e,A){return CA&&e===1&&!A.file?uA(A.original,"spawnSync"):null}Ne.exports={hookChildProcess:Vt,verifyENOENT:ye,verifyENOENTSync:Zt,notFoundError:uA}});var Te=v((Ei,_)=>{"use strict";var Se=L("child_process"),cA=me(),fA=De();function xe(e,A,t){let r=cA(e,A,t),i=Se.spawn(r.command,r.args,r.options);return fA.hookChildProcess(i,r),i}function $t(e,A,t){let r=cA(e,A,t),i=Se.spawnSync(r.command,r.args,r.options);return i.error=i.error||fA.verifyENOENTSync(i.status,r),i}_.exports=xe;_.exports.spawn=xe;_.exports.sync=$t;_.exports._parse=cA;_.exports._enoent=fA});var Je=v((z,dA)=>{(function(A,t){typeof z=="object"&&typeof dA=="object"?dA.exports=t(L("stream/web")):typeof define=="function"&&define.amd?define(["stream/web"],t):typeof z=="object"?z["xz-decompress"]=t(L("stream/web")):A["xz-decompress"]=t(A["stream/web"])})(z,e=>(()=>{"use strict";var A=[,(n=>{n.exports="data:application/wasm;base64,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ACABQX9qIgENAAsgAkJ/hSECCyACC8oQAgx/An4CQAJAIAAoAiRFDQAgACgCACECDAELQQAhAiAAQQA6ACggAEIANwMAIABCADcDGCAAQcgAakEAQeQAEIaAgIAAGiAAQawBakEMNgIACyAAIAEoAgQiAzYCECAAQeAAaiEEIABByABqIQUgAEG2AWohBiAAQbABaiEHIABBqAFqIQggASgCECEJAkACQAJAAkADQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACDgoBAgAEBQYHCAkKDwsgASgCACEKIAAoAqgBIQIgACgCrAEhCyABKAIEIQwgASgCCCENDAILIAcgACgCqAEiDGogASgCACABKAIEIgJqIAEoAgggAmsiAiAAKAKsASAMayIMIAIgDEkbIgIQh4CAgAAaIAEgASgCBCACajYCBEEAIQwgAEEAIAAoAqgBIAJqIgIgAiAAKAKsASILRhs2AqgBIAIgC0cNESAAQQE2AgACQCAHQaiIgIAAQQYQhICAgABFDQBBBSEMDBILIAZBAkEAEI2AgIAAIAAoALgBRw0QQQYhDCAGLQAADREgACAALQC3ASICNgIgIAJBBEsNEUEBIAJ0QRNxRQ0RCyABKAIEIgwgASgCCCINRg0OAkAgASgCACIKIAxqLQAAIgsNACAAIAw2AhAgASAMQQFqNgIEQQYhAgwMC0EAIQIgAEEANgKoASAAQQI2AgAgACALQQJ0QQRqIgs2AqwBIAAgCzYCQAsgByACaiAKIAxqIA0gDGsiDCALIAJrIgIgDCACSRsiAhCHgICAABogASABKAIEIAJqNgIEQQAhDCAAQQAgACgCqAEgAmoiAiACIAAoAqwBIgtGGzYCqAEgAiALRw0PIAAgAkF8aiICNgKsAUEHIQwgByACQQAQjYCAgAAgByAAKAKsASICaigAAEcNDyAAQQI2AqgBIAAtALEBIgtBP3ENDAJAAkAgC0HAAHFFDQAgACAHIAggAhCRgICAAEEBRw0RIAAgACkDCDcDMCAAKAKsASECIAAtALEBIQsMAQsgAEJ/NwMwC0J/IQ4CQCALwEF/Sg0AIAAgByAIIAIQkYCAgABBAUcNECAAKAKsASECIAApAwghDgsgACAONwM4IAIgACgCqAEiC2tBAkkNDyAAIAtBAWoiCjYCqAEgCCALakEI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AA8LIAEgA0EBaiIFNgIEAkAgASgCACADai0AACAAKQMYIAAoAgQiA62Ip0H/AXFGDQBBBw8LIAAgA0EIaiIGNgIEIAUhAyAGIAJJDQALIABBADYCBCAAQgA3AxhBAQtvAQF/QQchAQJAIABBugFqLwAAQdm0AUcNACAAQbQBakEGQQAQjYCAgAAgAEGwAWooAABHDQAgAEGAAWopAwBCAoggADUAtAFSDQAgAEG4AWotAAANAEEBQQcgACgCICAAQbkBai0AAEYbIQELIAELwAIBA38CQAJAAkAgACgCJA0AIABBADoAKCAAQQA2AgBBASECDAELAkAgACgCAEEKRw0AQQAhAwwCC0ECIQMMAQtBASEDCwJAAkADQAJAAkACQAJAIAMOAwABAwMLIAEoAgQiAyABKAIIIgRGDQQgASgCACEFAkADQCAFIANqLQAADQEgASADQQFqIgM2AgQgACAAKAIEQQFqQQNxNgIEIAQgA0YNBgwACwsCQCAAKAIERQ0AQQcPCyAAKAIkRQ0BIABBADoAKCAAQQA2AgBBASEDDAMLIABCADcDGCAAQQA2AgQgAEHIAGpBAEHkABCGgICAABogAEGsAWpBDDYCAAtBAiEDDAELIAAgARCQgICAACIDQQFHDQIgAEEKNgIAQQAhAwwACwsCQCACDQBBAA8LQQdBASAAKAIEGyEDCyADC3UBAX8CQEG4CRCAgICAACICRQ0AIAIgADYCJCACIAAgARCbgICAACIANgKwCQJAIABFDQAgAkEAOgAoIAJCADcDACACQgA3AxggAkHIAGpBAEHkABCGgICAABogAkGsAWpBDDYCACACDwsgAhCCgICAAAtBAAseAAJAIABFDQAgACgCsAkQnYCAgAAgABCCgICAAAsL3RABCn8gAEHo3QFqIQIgAEHUAGohAyAAQRxqIgRBCGohBQJAAkADQCAAKAJAIQYCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCBCIHIAEoAghJDQAgBkEHRg0BDBELIAYOCQECAwQFBgcACQ4LIAAoAkwhBgwHC0EBIQYgASAHQQFqNgIEIAEoAgAgB2otAAAiB0UNCAJAAkAgB0HfAUsNACAHQQFHDQELIABBgAI7AVACQCAAKAI8DQAgACABKAIMIAEoAhAiBmo2AhggACABKAIUIAZr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"}),(n=>{n.exports=e})],t={};function r(n){var s=t[n];if(s!==void 0)return s.exports;var a=t[n]={exports:{}};return A[n](a,a.exports,r),a.exports}r.d=(n,s)=>{for(var a in s)r.o(s,a)&&!r.o(n,a)&&Object.defineProperty(n,a,{enumerable:!0,get:s[a]})},r.o=(n,s)=>Object.prototype.hasOwnProperty.call(n,s),r.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var i={};return(()=>{r.r(i),r.d(i,{XzReadableStream:()=>o});var n=r(1);let s=globalThis.ReadableStream||r(2).ReadableStream,a=0,u=1;class c{constructor(g){this.exports=g.exports,this.memory=this.exports.memory,this.ptr=this.exports.create_context(),this._refresh(),this.bufSize=this.mem32[0],this.inStart=this.mem32[1]-this.ptr,this.inEnd=this.inStart+this.bufSize,this.outStart=this.mem32[4]-this.ptr}supplyInput(g){this._refresh(),this.mem8.subarray(this.inStart,this.inEnd).set(g,0),this.exports.supply_input(this.ptr,g.byteLength),this._refresh()}getNextOutput(){let g=this.exports.get_next_output(this.ptr);if(this._refresh(),g!==a&&g!==u)throw new Error(`get_next_output failed with error code ${g}`);return{outChunk:this.mem8.slice(this.outStart,this.outStart+this.mem32[5]),finished:g===u}}needsMoreInput(){return this.mem32[2]===this.mem32[3]}outputBufferIsFull(){return this.mem32[5]===this.bufSize}resetOutputBuffer(){this.outPos=this.mem32[5]=0}dispose(){this.exports.destroy_context(this.ptr),this.exports=null}_refresh(){this.memory.buffer!==this.mem8?.buffer&&(this.mem8=new Uint8Array(this.memory.buffer,this.ptr),this.mem32=new Uint32Array(this.memory.buffer,this.ptr))}}class C{constructor(){this.locked=!1,this.waitQueue=[]}async acquire(){if(!this.locked){this.locked=!0;return}return new Promise(g=>{this.waitQueue.push(g)})}release(){this.waitQueue.length>0?this.waitQueue.shift()():this.locked=!1}}class o extends s{static _moduleInstancePromise;static _moduleInstance;static _contextMutex=new C;static async _getModuleInstance(){let g=n.replace("data:application/wasm;base64,",""),f=Uint8Array.from(atob(g),B=>B.charCodeAt(0)).buffer,E={},l=await WebAssembly.instantiate(f,E);o._moduleInstance=l.instance}constructor(g){let f,E=null,l=g.getReader();super({async start(B){await o._contextMutex.acquire();try{o._moduleInstance||await(o._moduleInstancePromise||(o._moduleInstancePromise=o._getModuleInstance())),f=new c(o._moduleInstance)}catch(w){throw o._contextMutex.release(),w}},async pull(B){try{if(f.needsMoreInput()){if(E===null||E.byteLength===0){let{done:F,value:b}=await l.read();F||(E=b)}let Q=Math.min(f.bufSize,E.byteLength);f.supplyInput(E.subarray(0,Q)),E=E.subarray(Q)}let w=f.getNextOutput();B.enqueue(w.outChunk),f.resetOutputBuffer(),w.finished&&(f.dispose(),o._contextMutex.release(),B.close())}catch(w){throw f&&f.dispose(),o._contextMutex.release(),w}},cancel(){try{return f&&f.dispose(),l.cancel()}finally{o._contextMutex.release()}}})}}})(),i})())});import{DatabaseSync as yt}from"node:sqlite";import{mkdirSync as Nt}from"node:fs";import{join as Dt}from"node:path";import{homedir as dt}from"node:os";import{posix as wt,win32 as vt}from"node:path";import{fileURLToPath as mt}from"node:url";var YA=mt(new URL("../../",import.meta.url));function GA({env:e=process.env,home:A=dt(),platform:t=process.platform}={}){let{join:r}=t==="win32"?vt:wt;return e.HONGGUO_DATA_DIR?e.HONGGUO_DATA_DIR:t==="darwin"?r(A,"Library","Application Support","CodexHongguo"):t==="win32"?r(e.LOCALAPPDATA||r(A,"AppData","Local"),"CodexHongguo"):r(e.XDG_DATA_HOME||r(A,".local","share"),"codex-hongguo")}function _A(e){return typeof e=="string"&&/^[A-Za-z0-9_-]{1,128}$/.test(e)}function HA(e){let A=new Map;for(let{id:t,title:r}of e)if(/^hg-\d{1,32}$/.test(t)&&typeof r=="string"&&r.trim()&&!A.has(t)&&A.set(t,{id:t,title:r}),A.size===48)break;return[...A.values()]}var V=class{constructor(A=GA(),t=!1){t||Nt(A,{recursive:!0,mode:448}),this.persistent=!t,this.root=A,this.db=new yt(t?":memory:":Dt(A,"player.sqlite")),this.db.exec(`PRAGMA busy_timeout=250; PRAGMA journal_mode=WAL;
|
|
2
|
+
var Et=Object.create;var OA=Object.defineProperty;var ht=Object.getOwnPropertyDescriptor;var lt=Object.getOwnPropertyNames;var Qt=Object.getPrototypeOf,Bt=Object.prototype.hasOwnProperty;var L=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(A,t)=>(typeof require<"u"?require:A)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,A)=>()=>{try{return A||e((A={exports:{}}).exports,A),A.exports}catch(t){throw A=0,t}};var pt=(e,A,t,r)=>{if(A&&typeof A=="object"||typeof A=="function")for(let i of lt(A))!Bt.call(e,i)&&i!==t&&OA(e,i,{get:()=>A[i],enumerable:!(r=ht(A,i))||r.enumerable});return e};var JA=(e,A,t)=>(t=e!=null?Et(Qt(e)):{},pt(A||!e||!e.__esModule?OA(t,"default",{value:e,enumerable:!0}):t,e));var zA=v((ii,PA)=>{PA.exports=qA;qA.sync=xt;var UA=L("fs");function St(e,A){var t=A.pathExt!==void 0?A.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var r=0;r<t.length;r++){var i=t[r].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}function KA(e,A,t){return!e.isSymbolicLink()&&!e.isFile()?!1:St(A,t)}function qA(e,A,t){UA.stat(e,function(r,i){t(r,r?!1:KA(i,e,A))})}function xt(e,A){return KA(UA.statSync(e),e,A)}});var ZA=v((ni,VA)=>{VA.exports=WA;WA.sync=Tt;var XA=L("fs");function WA(e,A,t){XA.stat(e,function(r,i){t(r,r?!1:jA(i,A))})}function Tt(e,A){return jA(XA.statSync(e),A)}function jA(e,A){return e.isFile()&&Lt(e,A)}function Lt(e,A){var t=e.mode,r=e.uid,i=e.gid,n=A.uid!==void 0?A.uid:process.getuid&&process.getuid(),s=A.gid!==void 0?A.gid:process.getgid&&process.getgid(),a=parseInt("100",8),u=parseInt("010",8),c=parseInt("001",8),C=a|u,o=t&c||t&u&&i===s||t&a&&r===n||t&C&&n===0;return o}});var Ae=v((oi,$A)=>{var si=L("fs"),Z;process.platform==="win32"||global.TESTING_WINDOWS?Z=zA():Z=ZA();$A.exports=sA;sA.sync=Rt;function sA(e,A,t){if(typeof A=="function"&&(t=A,A={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,i){sA(e,A||{},function(n,s){n?i(n):r(s)})})}Z(e,A||{},function(r,i){r&&(r.code==="EACCES"||A&&A.ignoreErrors)&&(r=null,i=!1),t(r,i)})}function Rt(e,A){try{return Z.sync(e,A||{})}catch(t){if(A&&A.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var oe=v((ai,se)=>{var G=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",ee=L("path"),kt=G?";":":",te=Ae(),re=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),ie=(e,A)=>{let t=A.colon||kt,r=e.match(/\//)||G&&e.match(/\\/)?[""]:[...G?[process.cwd()]:[],...(A.path||process.env.PATH||"").split(t)],i=G?A.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=G?i.split(t):[""];return G&&e.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:r,pathExt:n,pathExtExe:i}},ne=(e,A,t)=>{typeof A=="function"&&(t=A,A={}),A||(A={});let{pathEnv:r,pathExt:i,pathExtExe:n}=ie(e,A),s=[],a=c=>new Promise((C,o)=>{if(c===r.length)return A.all&&s.length?C(s):o(re(e));let I=r[c],g=/^".*"$/.test(I)?I.slice(1,-1):I,f=ee.join(g,e),E=!g&&/^\.[\\\/]/.test(e)?e.slice(0,2)+f:f;C(u(E,c,0))}),u=(c,C,o)=>new Promise((I,g)=>{if(o===i.length)return I(a(C+1));let f=i[o];te(c+f,{pathExt:n},(E,l)=>{if(!E&&l)if(A.all)s.push(c+f);else return I(c+f);return I(u(c,C,o+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Ft=(e,A)=>{A=A||{};let{pathEnv:t,pathExt:r,pathExtExe:i}=ie(e,A),n=[];for(let s=0;s<t.length;s++){let a=t[s],u=/^".*"$/.test(a)?a.slice(1,-1):a,c=ee.join(u,e),C=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c;for(let o=0;o<r.length;o++){let I=C+r[o];try{if(te.sync(I,{pathExt:i}))if(A.all)n.push(I);else return I}catch{}}}if(A.all&&n.length)return n;if(A.nothrow)return null;throw re(e)};se.exports=ne;ne.sync=Ft});var ge=v((gi,oA)=>{"use strict";var ae=(e={})=>{let A=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(A).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};oA.exports=ae;oA.exports.default=ae});var ce=v((Ii,ue)=>{"use strict";var Ie=L("path"),bt=oe(),Mt=ge();function Ce(e,A){let t=e.options.env||process.env,r=process.cwd(),i=e.options.cwd!=null,n=i&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(e.options.cwd)}catch{}let s;try{s=bt.sync(e.command,{path:t[Mt({env:t})],pathExt:A?Ie.delimiter:void 0})}catch{}finally{n&&process.chdir(r)}return s&&(s=Ie.resolve(i?e.options.cwd:"",s)),s}function Ot(e){return Ce(e)||Ce(e,!0)}ue.exports=Ot});var fe=v((Ci,gA)=>{"use strict";var aA=/([()\][%!^"`<>&|;, *?])/g;function Jt(e){return e=e.replace(aA,"^$1"),e}function Yt(e,A){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(aA,"^$1"),A&&(e=e.replace(aA,"^$1")),e}gA.exports.command=Jt;gA.exports.argument=Yt});var he=v((ui,Ee)=>{"use strict";Ee.exports=/^#!(.*)/});var Qe=v((ci,le)=>{"use strict";var Gt=he();le.exports=(e="")=>{let A=e.match(Gt);if(!A)return null;let[t,r]=A[0].replace(/#! ?/,"").split(" "),i=t.split("/").pop();return i==="env"?r:r?`${i} ${r}`:i}});var pe=v((fi,Be)=>{"use strict";var IA=L("fs"),_t=Qe();function Ht(e){let t=Buffer.alloc(150),r;try{r=IA.openSync(e,"r"),IA.readSync(r,t,0,150,0),IA.closeSync(r)}catch{}return _t(t.toString())}Be.exports=Ht});var me=v((Ei,ve)=>{"use strict";var Ut=L("path"),de=ce(),we=fe(),Kt=pe(),qt=process.platform==="win32",Pt=/\.(?:com|exe)$/i,zt=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Xt(e){e.file=de(e);let A=e.file&&Kt(e.file);return A?(e.args.unshift(e.file),e.command=A,de(e)):e.file}function Wt(e){if(!qt)return e;let A=Xt(e),t=!Pt.test(A);if(e.options.forceShell||t){let r=zt.test(A);e.command=Ut.normalize(e.command),e.command=we.command(e.command),e.args=e.args.map(n=>we.argument(n,r));let i=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${i}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function jt(e,A,t){A&&!Array.isArray(A)&&(t=A,A=null),A=A?A.slice(0):[],t=Object.assign({},t);let r={command:e,args:A,options:t,file:void 0,original:{command:e,args:A}};return t.shell?r:Wt(r)}ve.exports=jt});var Ne=v((hi,De)=>{"use strict";var CA=process.platform==="win32";function uA(e,A){return Object.assign(new Error(`${A} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${A} ${e.command}`,path:e.command,spawnargs:e.args})}function Vt(e,A){if(!CA)return;let t=e.emit;e.emit=function(r,i){if(r==="exit"){let n=ye(i,A);if(n)return t.call(e,"error",n)}return t.apply(e,arguments)}}function ye(e,A){return CA&&e===1&&!A.file?uA(A.original,"spawn"):null}function Zt(e,A){return CA&&e===1&&!A.file?uA(A.original,"spawnSync"):null}De.exports={hookChildProcess:Vt,verifyENOENT:ye,verifyENOENTSync:Zt,notFoundError:uA}});var Te=v((li,_)=>{"use strict";var Se=L("child_process"),cA=me(),fA=Ne();function xe(e,A,t){let r=cA(e,A,t),i=Se.spawn(r.command,r.args,r.options);return fA.hookChildProcess(i,r),i}function $t(e,A,t){let r=cA(e,A,t),i=Se.spawnSync(r.command,r.args,r.options);return i.error=i.error||fA.verifyENOENTSync(i.status,r),i}_.exports=xe;_.exports.spawn=xe;_.exports.sync=$t;_.exports._parse=cA;_.exports._enoent=fA});var Je=v((z,dA)=>{(function(A,t){typeof z=="object"&&typeof dA=="object"?dA.exports=t(L("stream/web")):typeof define=="function"&&define.amd?define(["stream/web"],t):typeof z=="object"?z["xz-decompress"]=t(L("stream/web")):A["xz-decompress"]=t(A["stream/web"])})(z,e=>(()=>{"use strict";var A=[,(n=>{n.exports="data:application/wasm;base64,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ACABQX9qIgENAAsgAkJ/hSECCyACC8oQAgx/An4CQAJAIAAoAiRFDQAgACgCACECDAELQQAhAiAAQQA6ACggAEIANwMAIABCADcDGCAAQcgAakEAQeQAEIaAgIAAGiAAQawBakEMNgIACyAAIAEoAgQiAzYCECAAQeAAaiEEIABByABqIQUgAEG2AWohBiAAQbABaiEHIABBqAFqIQggASgCECEJAkACQAJAAkADQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACDgoBAgAEBQYHCAkKDwsgASgCACEKIAAoAqgBIQIgACgCrAEhCyABKAIEIQwgASgCCCENDAILIAcgACgCqAEiDGogASgCACABKAIEIgJqIAEoAgggAmsiAiAAKAKsASAMayIMIAIgDEkbIgIQh4CAgAAaIAEgASgCBCACajYCBEEAIQwgAEEAIAAoAqgBIAJqIgIgAiAAKAKsASILRhs2AqgBIAIgC0cNESAAQQE2AgACQCAHQaiIgIAAQQYQhICAgABFDQBBBSEMDBILIAZBAkEAEI2AgIAAIAAoALgBRw0QQQYhDCAGLQAADREgACAALQC3ASICNgIgIAJBBEsNEUEBIAJ0QRNxRQ0RCyABKAIEIgwgASgCCCINRg0OAkAgASgCACIKIAxqLQAAIgsNACAAIAw2AhAgASAMQQFqNgIEQQYhAgwMC0EAIQIgAEEANgKoASAAQQI2AgAgACALQQJ0QQRqIgs2AqwBIAAgCzYCQAsgByACaiAKIAxqIA0gDGsiDCALIAJrIgIgDCACSRsiAhCHgICAABogASABKAIEIAJqNgIEQQAhDCAAQQAgACgCqAEgAmoiAiACIAAoAqwBIgtGGzYCqAEgAiALRw0PIAAgAkF8aiICNgKsAUEHIQwgByACQQAQjYCAgAAgByAAKAKsASICaigAAEcNDyAAQQI2AqgBIAAtALEBIgtBP3ENDAJAAkAgC0HAAHFFDQAgACAHIAggAhCRgICAAEEBRw0RIAAgACkDCDcDMCAAKAKsASECIAAtALEBIQsMAQsgAEJ/NwMwC0J/IQ4CQCALwEF/Sg0AIAAgByAIIAIQkYCAgABBAUcNECAAKAKsASECIAApAwghDgsgACAONwM4IAIgACgCqAEiC2tBAkkNDyAAIAtBAWoiCjYCqAEgCCALakEI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AA8LIAEgA0EBaiIFNgIEAkAgASgCACADai0AACAAKQMYIAAoAgQiA62Ip0H/AXFGDQBBBw8LIAAgA0EIaiIGNgIEIAUhAyAGIAJJDQALIABBADYCBCAAQgA3AxhBAQtvAQF/QQchAQJAIABBugFqLwAAQdm0AUcNACAAQbQBakEGQQAQjYCAgAAgAEGwAWooAABHDQAgAEGAAWopAwBCAoggADUAtAFSDQAgAEG4AWotAAANAEEBQQcgACgCICAAQbkBai0AAEYbIQELIAELwAIBA38CQAJAAkAgACgCJA0AIABBADoAKCAAQQA2AgBBASECDAELAkAgACgCAEEKRw0AQQAhAwwCC0ECIQMMAQtBASEDCwJAAkADQAJAAkACQAJAIAMOAwABAwMLIAEoAgQiAyABKAIIIgRGDQQgASgCACEFAkADQCAFIANqLQAADQEgASADQQFqIgM2AgQgACAAKAIEQQFqQQNxNgIEIAQgA0YNBgwACwsCQCAAKAIERQ0AQQcPCyAAKAIkRQ0BIABBADoAKCAAQQA2AgBBASEDDAMLIABCADcDGCAAQQA2AgQgAEHIAGpBAEHkABCGgICAABogAEGsAWpBDDYCAAtBAiEDDAELIAAgARCQgICAACIDQQFHDQIgAEEKNgIAQQAhAwwACwsCQCACDQBBAA8LQQdBASAAKAIEGyEDCyADC3UBAX8CQEG4CRCAgICAACICRQ0AIAIgADYCJCACIAAgARCbgICAACIANgKwCQJAIABFDQAgAkEAOgAoIAJCADcDACACQgA3AxggAkHIAGpBAEHkABCGgICAABogAkGsAWpBDDYCACACDwsgAhCCgICAAAtBAAseAAJAIABFDQAgACgCsAkQnYCAgAAgABCCgICAAAsL3RABCn8gAEHo3QFqIQIgAEHUAGohAyAAQRxqIgRBCGohBQJAAkADQCAAKAJAIQYCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCBCIHIAEoAghJDQAgBkEHRg0BDBELIAYOCQECAwQFBgcACQ4LIAAoAkwhBgwHC0EBIQYgASAHQQFqNgIEIAEoAgAgB2otAAAiB0UNCAJAAkAgB0HfAUsNACAHQQFHDQELIABBgAI7AVACQCAAKAI8DQAgACABKAIMIAEoAhAiBmo2AhggACABKAIUIAZr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"}),(n=>{n.exports=e})],t={};function r(n){var s=t[n];if(s!==void 0)return s.exports;var a=t[n]={exports:{}};return A[n](a,a.exports,r),a.exports}r.d=(n,s)=>{for(var a in s)r.o(s,a)&&!r.o(n,a)&&Object.defineProperty(n,a,{enumerable:!0,get:s[a]})},r.o=(n,s)=>Object.prototype.hasOwnProperty.call(n,s),r.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var i={};return(()=>{r.r(i),r.d(i,{XzReadableStream:()=>o});var n=r(1);let s=globalThis.ReadableStream||r(2).ReadableStream,a=0,u=1;class c{constructor(g){this.exports=g.exports,this.memory=this.exports.memory,this.ptr=this.exports.create_context(),this._refresh(),this.bufSize=this.mem32[0],this.inStart=this.mem32[1]-this.ptr,this.inEnd=this.inStart+this.bufSize,this.outStart=this.mem32[4]-this.ptr}supplyInput(g){this._refresh(),this.mem8.subarray(this.inStart,this.inEnd).set(g,0),this.exports.supply_input(this.ptr,g.byteLength),this._refresh()}getNextOutput(){let g=this.exports.get_next_output(this.ptr);if(this._refresh(),g!==a&&g!==u)throw new Error(`get_next_output failed with error code ${g}`);return{outChunk:this.mem8.slice(this.outStart,this.outStart+this.mem32[5]),finished:g===u}}needsMoreInput(){return this.mem32[2]===this.mem32[3]}outputBufferIsFull(){return this.mem32[5]===this.bufSize}resetOutputBuffer(){this.outPos=this.mem32[5]=0}dispose(){this.exports.destroy_context(this.ptr),this.exports=null}_refresh(){this.memory.buffer!==this.mem8?.buffer&&(this.mem8=new Uint8Array(this.memory.buffer,this.ptr),this.mem32=new Uint32Array(this.memory.buffer,this.ptr))}}class C{constructor(){this.locked=!1,this.waitQueue=[]}async acquire(){if(!this.locked){this.locked=!0;return}return new Promise(g=>{this.waitQueue.push(g)})}release(){this.waitQueue.length>0?this.waitQueue.shift()():this.locked=!1}}class o extends s{static _moduleInstancePromise;static _moduleInstance;static _contextMutex=new C;static async _getModuleInstance(){let g=n.replace("data:application/wasm;base64,",""),f=Uint8Array.from(atob(g),B=>B.charCodeAt(0)).buffer,E={},l=await WebAssembly.instantiate(f,E);o._moduleInstance=l.instance}constructor(g){let f,E=null,l=g.getReader();super({async start(B){await o._contextMutex.acquire();try{o._moduleInstance||await(o._moduleInstancePromise||(o._moduleInstancePromise=o._getModuleInstance())),f=new c(o._moduleInstance)}catch(w){throw o._contextMutex.release(),w}},async pull(B){try{if(f.needsMoreInput()){if(E===null||E.byteLength===0){let{done:F,value:b}=await l.read();F||(E=b)}let Q=Math.min(f.bufSize,E.byteLength);f.supplyInput(E.subarray(0,Q)),E=E.subarray(Q)}let w=f.getNextOutput();B.enqueue(w.outChunk),f.resetOutputBuffer(),w.finished&&(f.dispose(),o._contextMutex.release(),B.close())}catch(w){throw f&&f.dispose(),o._contextMutex.release(),w}},cancel(){try{return f&&f.dispose(),l.cancel()}finally{o._contextMutex.release()}}})}}})(),i})())});import{DatabaseSync as yt}from"node:sqlite";import{mkdirSync as Dt}from"node:fs";import{join as Nt}from"node:path";import{homedir as dt}from"node:os";import{posix as wt,win32 as vt}from"node:path";import{fileURLToPath as mt}from"node:url";var YA=mt(new URL("../../",import.meta.url));function GA({env:e=process.env,home:A=dt(),platform:t=process.platform}={}){let{join:r}=t==="win32"?vt:wt;return e.HONGGUO_DATA_DIR?e.HONGGUO_DATA_DIR:t==="darwin"?r(A,"Library","Application Support","CodexHongguo"):t==="win32"?r(e.LOCALAPPDATA||r(A,"AppData","Local"),"CodexHongguo"):r(e.XDG_DATA_HOME||r(A,".local","share"),"codex-hongguo")}function _A(e){return typeof e=="string"&&/^[A-Za-z0-9_-]{1,128}$/.test(e)}function HA(e){let A=new Map;for(let{id:t,title:r}of e)if(/^hg-\d{1,32}$/.test(t)&&typeof r=="string"&&r.trim()&&!A.has(t)&&A.set(t,{id:t,title:r}),A.size===48)break;return[...A.values()]}var V=class{constructor(A=GA(),t=!1){t||Dt(A,{recursive:!0,mode:448}),this.persistent=!t,this.root=A,this.db=new yt(t?":memory:":Nt(A,"player.sqlite")),this.db.exec(`PRAGMA busy_timeout=250; PRAGMA journal_mode=WAL;
|
|
3
3
|
CREATE TABLE IF NOT EXISTS turn_state (
|
|
4
4
|
session_id TEXT NOT NULL, turn_id TEXT NOT NULL, submitted_at INTEGER,
|
|
5
5
|
stop_kind TEXT, interrupted INTEGER NOT NULL DEFAULT 0, stopped INTEGER NOT NULL DEFAULT 0,
|
|
@@ -42,10 +42,10 @@ var Et=Object.create;var OA=Object.defineProperty;var ht=Object.getOwnPropertyDe
|
|
|
42
42
|
ORDER BY e.last_shown, c.key`).all(JSON.stringify(HA(i))).map(({id:I,title:g})=>({id:I,title:g}));C.sort((I,g)=>Number(u.has(I.id))-Number(u.has(g.id)));let o=r?[r,...C.filter(I=>I.id!==r.id).slice(0,2)]:C.slice(0,3);return o.length&&this.db.prepare("INSERT INTO turn_picks(session_id,turn_id,items,reserved_at) VALUES(?,?,?,?)").run(A,t,JSON.stringify(o),n?Date.now():null),o})}markPicksShown(A,t,r){return this.transaction(()=>{let i=r()&&this.db.prepare("UPDATE turn_picks SET shown=1 WHERE session_id=? AND turn_id=? AND shown=0 RETURNING items").get(A,t);if(i){let n=this.db.prepare("SELECT coalesce(max(last_shown),0)+1 AS n FROM pick_exposure").get().n,s=this.db.prepare("INSERT OR REPLACE INTO pick_exposure(series_id,last_shown) VALUES(?,?)");for(let a of JSON.parse(i.items))a.episodeId||s.run(a.id,n)}return{recorded:!!i}})}state(A,t){let r=A&&(t?this.db.prepare("SELECT * FROM turn_state WHERE session_id=? AND turn_id=?").get(A,t):this.db.prepare("SELECT * FROM turn_state WHERE session_id=? ORDER BY (submitted_at IS NOT NULL) DESC,coalesce(submitted_at,observed_at) DESC,rowid DESC LIMIT 1").get(A));if(!r)return{sessionId:null,turnId:null,state:"unknown",revision:0,observedAt:null};let i=r.interrupted?"interrupted":r.stopped?"stopped":"submitted";return{sessionId:r.session_id,turnId:r.turn_id,state:i,revision:r.revision,observedAt:r.observed_at}}candidates(){return this.db.prepare("SELECT session_id, max(observed_at) AS at FROM turn_state GROUP BY session_id ORDER BY at DESC LIMIT 8").all()}save({seriesId:A,episodeId:t,title:r,label:i,positionMs:n,durationMs:s,reset:a=!1}){return n<=0&&!a?{saved:!1}:this.transaction(()=>(n===0?this.db.prepare("INSERT OR IGNORE INTO watch_restart VALUES(?,?)").run(A,t):this.db.prepare("DELETE FROM watch_restart WHERE series_id=? AND episode_id=?").run(A,t),this.db.prepare(`INSERT INTO watch_progress VALUES(?,?,?,?,?,?,max(?,coalesce((SELECT max(updated_at)+1 FROM watch_progress),0))) ON CONFLICT(series_id,episode_id) DO UPDATE SET
|
|
43
43
|
title=excluded.title,label=excluded.label,position_ms=excluded.position_ms,duration_ms=excluded.duration_ms,updated_at=excluded.updated_at`).run(A,t,r,i,Math.min(n,s),s,Date.now()),{saved:!0}))}history(A,t,r=30){let i="series_id AS seriesId,episode_id AS episodeId,title,label,position_ms AS positionMs,duration_ms AS durationMs,updated_at AS updatedAt",n="(position_ms>0 OR (series_id,episode_id) IN (SELECT series_id,episode_id FROM watch_restart))";return A&&t?this.db.prepare("SELECT "+i+" FROM watch_progress WHERE series_id=? AND episode_id=? AND "+n).all(A,t):A?this.db.prepare("SELECT "+i+" FROM watch_progress WHERE series_id=? AND "+n+" ORDER BY updated_at DESC,rowid DESC LIMIT 1").all(A):this.db.prepare("SELECT "+i+` FROM (SELECT *, row_number() OVER(PARTITION BY series_id ORDER BY updated_at DESC,rowid DESC) AS rank
|
|
44
44
|
FROM watch_progress WHERE ${n} AND series_id GLOB 'hg-*' AND episode_id GLOB 'hg-*')
|
|
45
|
-
WHERE rank=1 ORDER BY updated_at DESC LIMIT ?`).all(r)}removeHistory(A){return this.transaction(()=>(this.db.prepare("DELETE FROM watch_progress WHERE series_id=?").run(A),this.db.prepare("DELETE FROM watch_restart WHERE series_id=?").run(A),{removed:!0}))}writable(){if(!this.persistent)return!1;try{return this.db.exec("UPDATE watch_progress SET updated_at=updated_at WHERE 0"),!0}catch{return!1}}close(){this.db.close()}};import{realpathSync as Gr}from"node:fs";import{relative as _r,resolve as Hr,isAbsolute as Ur}from"node:path";var mA=JA(Te(),1);import{accessSync as br,constants as At,statSync as Mr}from"node:fs";import{homedir as Or}from"node:os";import{posix as Jr,win32 as et}from"node:path";import{createHash as He,randomUUID as wr}from"node:crypto";import{createReadStream as Ue}from"node:fs";import{mkdir as Ge,lstat as vr,open as Ke,readFile as qe,writeFile as mr,rename as yr,rm as X,chmod as Nr,stat as _e}from"node:fs/promises";import{lstatSync as Dr}from"node:fs";import{homedir as Sr}from"node:os";import{posix as Pe,win32 as ze}from"node:path";import{spawnSync as xr}from"node:child_process";import{createRequire as Ar}from"module";var er=Ar("/"),U,tr,rr;try{U=er("worker_threads"),tr=U.Worker,rr=U.isMarkedAsUntransferable}catch{}var N=Uint8Array,H=Uint16Array,ir=Int32Array,Le=new N([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Re=new N([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),nr=new N([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ke=function(e,A){for(var t=new H(31),r=0;r<31;++r)t[r]=A+=1<<e[r-1];for(var i=new ir(t[30]),r=1;r<30;++r)for(var n=t[r];n<t[r+1];++n)i[n]=n-t[r]<<5|r;return{b:t,r:i}},U=ke(Le,2),Fe=U.b,sr=U.r;Fe[28]=258,sr[258]=28;var be=ke(Re,0),or=be.b,li=be.r,QA=new H(32768);for(h=0;h<32768;++h)k=(h&43690)>>1|(h&21845)<<1,k=(k&52428)>>2|(k&13107)<<2,k=(k&61680)>>4|(k&3855)<<4,QA[h]=((k&65280)>>8|(k&255)<<8)>>1;var k,h,q=(function(e,A,t){for(var r=e.length,i=0,n=new H(A);i<r;++i)e[i]&&++n[e[i]-1];var s=new H(A);for(i=1;i<A;++i)s[i]=s[i-1]+n[i-1]<<1;var a;if(t){a=new H(1<<A);var u=15-A;for(i=0;i<r;++i)if(e[i])for(var c=i<<4|e[i],C=A-e[i],o=s[e[i]-1]++<<C,I=o|(1<<C)-1;o<=I;++o)a[QA[o]>>u]=c}else for(a=new H(r),i=0;i<r;++i)e[i]&&(a[i]=QA[s[e[i]-1]++]>>15-e[i]);return a}),P=new N(288);for(h=0;h<144;++h)P[h]=8;var h;for(h=144;h<256;++h)P[h]=9;var h;for(h=256;h<280;++h)P[h]=7;var h;for(h=280;h<288;++h)P[h]=8;var h,Me=new N(32);for(h=0;h<32;++h)Me[h]=5;var h;var ar=q(P,9,1);var gr=q(Me,5,1),EA=function(e){for(var A=e[0],t=1;t<e.length;++t)e[t]>A&&(A=e[t]);return A},T=function(e,A,t){var r=A/8|0;return(e[r]|e[r+1]<<8)>>(A&7)&t},hA=function(e,A){var t=A/8|0;return(e[t]|e[t+1]<<8|e[t+2]<<16)>>(A&7)},Ir=function(e){return(e+7)/8|0},pA=function(e,A,t){return(A==null||A<0)&&(A=0),(t==null||t>e.length)&&(t=e.length),new N(e.subarray(A,t))};var Cr=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],y=function(e,A,t){var r=new Error(A||Cr[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,y),!t)throw r;return r},ur=function(e,A,t,r){var i=e.length,n=r?r.length:0;if(!i||A.f&&!A.l)return t||new N(0);var s=!t,a=s||A.i!=2,u=A.i;s&&(t=new N(i*3));var c=function(FA){var bA=t.length;if(FA>bA){var MA=new N(Math.max(bA*2,FA));MA.set(t),t=MA}},C=A.f||0,o=A.p||0,I=A.b||0,g=A.l,f=A.d,E=A.m,l=A.n,B=i*8;do{if(!g){C=T(e,o,1);var w=T(e,o+1,3);if(o+=3,w)if(w==1)g=ar,f=gr,E=9,l=5;else if(w==2){var p=T(e,o,31)+257,x=T(e,o+10,15)+4,W=p+T(e,o+5,31)+1;o+=14;for(var m=new N(W),tA=new N(19),D=0;D<x;++D)tA[nr[D]]=T(e,o+D*3,7);o+=x*3;for(var SA=EA(tA),It=(1<<SA)-1,Ct=q(tA,SA,1),D=0;D<W;){var xA=Ct[T(e,o,It)];o+=xA&15;var Q=xA>>4;if(Q<16)m[D++]=Q;else{var J=0,j=0;for(Q==16?(j=3+T(e,o,3),o+=2,J=m[D-1]):Q==17?(j=3+T(e,o,7),o+=3):Q==18&&(j=11+T(e,o,127),o+=7);j--;)m[D++]=J}}var TA=m.subarray(0,p),M=m.subarray(p);E=EA(TA),l=EA(M),g=q(TA,E,1),f=q(M,l,1)}else y(1);else{var Q=Ir(o)+4,F=e[Q-4]|e[Q-3]<<8,b=Q+F;if(b>i){u&&y(0);break}a&&c(I+F),t.set(e.subarray(Q,b),I),A.b=I+=F,A.p=o=b*8,A.f=C;continue}if(o>B){u&&y(0);break}}a&&c(I+131072);for(var ut=(1<<E)-1,ct=(1<<l)-1,rA=o;;rA=o){var J=g[hA(e,o)&ut],Y=J>>4;if(o+=J&15,o>B){u&&y(0);break}if(J||y(2),Y<256)t[I++]=Y;else if(Y==256){rA=o,g=null;break}else{var LA=Y-254;if(Y>264){var D=Y-257,K=Le[D];LA=T(e,o,(1<<K)-1)+Fe[D],o+=K}var iA=f[hA(e,o)&ct],nA=iA>>4;iA||y(3),o+=iA&15;var M=or[nA];if(nA>3){var K=Re[nA];M+=hA(e,o)&(1<<K)-1,o+=K}if(o>B){u&&y(0);break}a&&c(I+131072);var RA=I+LA;if(I<M){var kA=n-M,ft=Math.min(M,RA);for(kA+I<0&&y(3);I<ft;++I)t[I]=r[kA+I]}for(;I<RA;++I)t[I]=t[I-M]}}A.l=g,A.p=rA,A.b=I,A.f=C,g&&(C=1,A.m=E,A.d=f,A.n=l)}while(!C);return I!=t.length&&s?pA(t,0,I):t.subarray(0,I)};var cr=new N(0);var R=function(e,A){return e[A]|e[A+1]<<8},S=function(e,A){return(e[A]|e[A+1]<<8|e[A+2]<<16|e[A+3]<<24)>>>0},lA=function(e,A){return S(e,A)+S(e,A+4)*4294967296};function fr(e,A){return ur(e,{i:2},A&&A.out,A&&A.dictionary)}var BA=typeof TextDecoder<"u"&&new TextDecoder,Er=0;try{BA.decode(cr,{stream:!0}),Er=1}catch{}var hr=function(e){for(var A="",t=0;;){var r=e[t++],i=(r>127)+(r>223)+(r>239);if(t+i>e.length)return{s:A,r:pA(e,t-1)};i?i==3?(r=((r&15)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,A+=String.fromCharCode(55296|r>>10,56320|r&1023)):i&1?A+=String.fromCharCode((r&31)<<6|e[t++]&63):A+=String.fromCharCode((r&15)<<12|(e[t++]&63)<<6|e[t++]&63):A+=String.fromCharCode(r)}};function lr(e,A){if(A){for(var t="",r=0;r<e.length;r+=16384)t+=String.fromCharCode.apply(null,e.subarray(r,r+16384));return t}else{if(BA)return BA.decode(e);var i=hr(e),n=i.s,t=i.r;return t.length&&y(8),n}}var Qr=function(e,A){return A+30+R(e,A+26)+R(e,A+28)},Br=function(e,A,t){var r=R(e,A+28),i=R(e,A+30),n=lr(e.subarray(A+46,A+46+r),!(R(e,A+8)&2048)),s=A+46+r,a=pr(e,s,i,t,S(e,A+20),S(e,A+24),S(e,A+42)),u=a[0],c=a[1],C=a[2];return[R(e,A+10),u,c,n,s+i+R(e,A+32),C]},pr=function(e,A,t,r,i,n,s){var a=i==4294967295,u=n==4294967295,c=s==4294967295,C=A+t,o=a+u+c;if(r&&o){for(;A+4<C;A+=4+R(e,A+2))if(R(e,A)==1)return[a?lA(e,A+4+8*u):i,u?lA(e,A+4):n,c?lA(e,A+4+8*(u+a)):s,1];r<2&&y(13)}return[i,n,s,0]};function Oe(e,A){for(var t={},r=e.length-22;S(e,r)!=101010256;--r)(!r||e.length-r>65558)&&y(13);var i=R(e,r+8);if(!i)return{};var n=S(e,r+16),s=S(e,r-20)==117853008;if(s){var a=S(e,r-12);s=S(e,a)==101075792,s&&(i=S(e,a+32),n=S(e,a+48))}for(var u=A&&A.filter,c=0;c<i;++c){var C=Br(e,n,s),o=C[0],I=C[1],g=C[2],f=C[3],E=C[4],l=C[5],B=Qr(e,l);n=E,(!u||u({name:f,size:I,originalSize:g,compression:o}))&&(o?o==8?t[f]=fr(e.subarray(B,B+I),{out:new N(g)}):y(14,"unknown compression type "+o):t[f]=pA(e,B,B+I))}return t}var Xe=JA(Je(),1);var Ye={"darwin-arm64":{version:"9.0.2",url:"https://www.osxexperts.net/ffmpeg902arm.zip",format:"zip",entry:"ffmpeg",archiveBytes:22665869,archiveSha256:"07e00300593799005b060c03a99fe648b1edda0f30c36b0c1adafe8e3247e586",binaryBytes:52160568,binarySha256:"762f16b2913b8d3b8fdb8092df12b691053b035b13ae9b88205513c55cb8e71e"},"darwin-x64":{version:"9.0.2",url:"https://evermeet.cx/ffmpeg/ffmpeg-9.0.2.zip",format:"zip",entry:"ffmpeg",archiveBytes:26198325,archiveSha256:"4acc0be580f9b2788029eb7bd4d645ff87968911b0a62aeeb3940d42d54558d5",binaryBytes:80827688,binarySha256:"a45b462cf91ed89148ae218c4577e30896485d7a6792c3673bcf5f823fa01b63"},"linux-x64":{version:"9.0.2-20261031",url:"https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-10-31-12-59/ffmpeg-n9.0.2-39-g7adfbe40dc-linux64-gpl-9.0.tar.xz",format:"tar.xz",entry:"ffmpeg-n9.0.2-39-g7adfbe40dc-linux64-gpl-9.0/bin/ffmpeg",archiveBytes:153175100,archiveSha256:"73e29a56974ae5a651133a04584c7483b21afe941e17dc91d79814a758b608d3"},"linux-arm64":{version:"9.0.2-20261031",url:"https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-10-31-12-59/ffmpeg-n9.0.2-39-g7adfbe40dc-linuxarm64-gpl-9.0.tar.xz",format:"tar.xz",entry:"ffmpeg-n9.0.2-39-g7adfbe40dc-linuxarm64-gpl-9.0/bin/ffmpeg",archiveBytes:128664064,archiveSha256:"6cad88ae5bcec356cfc5d7979a036cc4007128201928a0cf243df3db483276cc"},"win32-x64":{version:"9.0.2-20261031",url:"https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-10-31-12-59/ffmpeg-n9.0.2-39-g7adfbe40dc-win64-gpl-9.0.zip",format:"zip",entry:"ffmpeg-n9.0.2-39-g7adfbe40dc-win64-gpl-9.0/bin/ffmpeg.exe",archiveBytes:195110184,archiveSha256:"693f3e224bc184b40524a62ca47526cfebaf2504414021b92fe75f677ad868b9"}};var AA=new Map,$=new Map,d=()=>Error("\u64AD\u653E\u7EC4\u4EF6\u81EA\u52A8\u51C6\u5907\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u548C\u7F13\u5B58\u76EE\u5F55\u6743\u9650\u540E\u91CD\u8BD5\u5B89\u88C5\u3002"),Tr=e=>new Promise(A=>setTimeout(A,e));function We(e={}){let{env:A=process.env,home:t=Sr(),platform:r=process.platform,arch:i=process.arch}=e,n=r==="win32"?ze:Pe;if(A.HONGGUO_FFMPEG){if(!n.isAbsolute(A.HONGGUO_FFMPEG))throw d();return{...e,env:A,platform:r,target:A.HONGGUO_FFMPEG,override:!0}}let s=(e.artifacts||Ye)[r+"-"+i];if(!s)throw Error("\u5F53\u524D\u7CFB\u7EDF\u67B6\u6784\u6682\u4E0D\u652F\u6301\u81EA\u52A8\u51C6\u5907\u64AD\u653E\u7EC4\u4EF6\u3002");let a=A.HONGGUO_RUNTIME_DIR||(r==="darwin"?n.join(t,"Library","Caches","CodexHongguo"):r==="win32"?n.join(A.LOCALAPPDATA||n.join(t,"AppData","Local"),"CodexHongguo","Cache"):n.join(A.XDG_CACHE_HOME||n.join(t,".cache"),"codex-hongguo")),u=n.join(a,"runtime","ffmpeg",s.archiveSha256.slice(0,16),r+"-"+i);return{...e,env:A,platform:r,artifact:s,directory:u,target:n.join(u,r==="win32"?"ffmpeg.exe":"ffmpeg")}}function je(e){return We(e).target}function wA(e){try{let A=Dr(e);return A.isFile()&&!A.isSymbolicLink()?`${A.size}:${A.mtimeMs}:${A.ctimeMs}`:null}catch{return null}}async function Ve(e){let A=He("sha256");for await(let t of Ue(e))A.update(t);return A.digest("hex")}function Ze(e,A){return A.probe?A.probe(e):xr(e,["-version"],{stdio:"ignore",timeout:5e3,windowsHide:!0}).status===0}async function vA(e){let{target:A,artifact:t}=e;if(AA.get(A)&&AA.get(A)===wA(A))return!0;try{let r=await vr(A);if(!r.isFile()||r.isSymbolicLink())return!1;if(t){let i=JSON.parse(await qe(A+".json","utf8"));if(i.archiveSha256!==t.archiveSha256||!/^[a-f0-9]{64}$/.test(i.binarySha256)||r.size!==(t.binaryBytes||i.binaryBytes)||await Ve(A)!==(t.binarySha256||i.binarySha256))return!1}return Ze(A,e)?(AA.set(A,wA(A)),!0):!1}catch{return!1}}async function Lr(e,A,t){let r=new Set(["github.com","release-assets.githubusercontent.com","objects.githubusercontent.com","evermeet.cx","www.osxexperts.net"]),i=AbortSignal.timeout(3e5),n=new URL(e.url),s;for(let C=0;C<=6;C++){if(n.protocol!=="https:"||n.username||n.password||n.port||!r.has(n.hostname))throw d();if(s=await t(n,{redirect:"manual",signal:i}),![301,302,303,307,308].includes(s.status))break;let o=s.headers.get("location");if(await s.body?.cancel(),!o||C===6)throw d();n=new URL(o,n)}if(!s.ok||!s.body||Number(s.headers.get("content-length"))>e.archiveBytes)throw await s.body?.cancel(),d();let a=await Ke(A,"wx",384),u=He("sha256"),c=0;try{for await(let C of s.body){if(c+=C.length,c>e.archiveBytes)throw d();u.update(C),await a.writeFile(C)}if(c!==e.archiveBytes||u.digest("hex")!==e.archiveSha256)throw d()}finally{await a.close()}}async function Rr(e,A,t){let r=await Ke(t,"wx",384);try{if(e.format==="zip"){let I=Oe(await qe(A),{filter:g=>g.name===e.entry&&g.originalSize<=(e.binaryBytes||268435456)})[e.entry];if(!I||e.binaryBytes&&I.length!==e.binaryBytes)throw d();await r.writeFile(I);return}let i=new Xe.default.XzReadableStream(kr(A)),n=i.getReader(),s=Buffer.alloc(0),a=0,u=0,c=!1,C=0;try{for(;;){let{value:o,done:I}=await n.read();if(I)break;if(C+=o.length,C>1024*1024*1024)throw d();for(s=Buffer.concat([s,o]);s.length;)if(a){let g=Math.min(a,s.length);if(c&&await r.writeFile(s.subarray(0,g)),s=s.subarray(g),a-=g,!a&&c)return}else if(u){let g=Math.min(u,s.length);s=s.subarray(g),u-=g}else{if(s.length<512)break;let g=s.subarray(0,512);s=s.subarray(512);let f=(B,w)=>g.subarray(B,w).toString("utf8").split("\0")[0],E=[f(345,500),f(0,100)].filter(Boolean).join("/"),l=parseInt(f(124,136).trim()||"0",8);if(!Number.isSafeInteger(l)||l<0||l>512*1024*1024||(c=E===e.entry,c&&(e.binaryBytes&&l!==e.binaryBytes||l>256*1024*1024||![0,48].includes(g[156]))))throw d();a=l,u=(512-l%512)%512}}throw d()}finally{await n.cancel().catch(()=>{})}}finally{await r.close()}}function kr(e){let A=Ue(e)[Symbol.asyncIterator]();return new ReadableStream({async pull(t){let{value:r,done:i}=await A.next();i?t.close():t.enqueue(r)},async cancel(){await A.return?.()}})}async function $e(e={}){let A=We(e);if(await vA(A))return A.target;if(A.override)throw d();if($.has(A.target))return $.get(A.target);let t=Fr(A).finally(()=>$.delete(A.target));return $.set(A.target,t),t}async function Fr(e){let{directory:A,target:t,artifact:r}=e,i=A+".lock",n=Date.now()+42e4;await Ge(A,{recursive:!0,mode:448});let s=!1;for(;!s;)try{await Ge(i,{mode:448}),s=!0}catch(o){if(o.code!=="EEXIST"||Date.now()>n)throw d();if(await vA(e))return t;try{Date.now()-(await _e(i)).mtimeMs>6e5&&await X(i,{recursive:!0,force:!0})}catch{}await Tr(200)}let a=e.platform==="win32"?ze:Pe,u=a.basename(t)+"."+wr(),c=a.join(A,u+".archive"),C=a.join(A,u+".part");try{if(await vA(e))return t;await Lr(r,c,e.fetchImpl||fetch),await Rr(r,c,C);let o=await Ve(C);if(r.binarySha256&&o!==r.binarySha256||(await Nr(C,493),!Ze(C,e)))throw d();return e.platform==="win32"&&await X(t,{force:!0}),await yr(C,t),await mr(t+".json",JSON.stringify({archiveSha256:r.archiveSha256,binarySha256:o,binaryBytes:(await _e(t)).size,version:r.version})+`
|
|
46
|
-
`,{mode:384}),AA.set(t,wA(t)),t}catch{throw d()}finally{await Promise.all([X(c,{force:!0}),X(C,{force:!0}),X(i,{recursive:!0,force:!0})])}}var tt=mA.default,
|
|
45
|
+
WHERE rank=1 ORDER BY updated_at DESC LIMIT ?`).all(r)}removeHistory(A){return this.transaction(()=>(this.db.prepare("DELETE FROM watch_progress WHERE series_id=?").run(A),this.db.prepare("DELETE FROM watch_restart WHERE series_id=?").run(A),{removed:!0}))}writable(){if(!this.persistent)return!1;try{return this.db.exec("UPDATE watch_progress SET updated_at=updated_at WHERE 0"),!0}catch{return!1}}close(){this.db.close()}};import{realpathSync as Hr}from"node:fs";import{relative as Ur,resolve as Kr,isAbsolute as qr}from"node:path";var mA=JA(Te(),1);import{accessSync as Or,constants as At,statSync as Jr}from"node:fs";import{homedir as Yr}from"node:os";import{posix as Gr,win32 as et}from"node:path";import{createHash as He,randomUUID as wr}from"node:crypto";import{createReadStream as Ue}from"node:fs";import{mkdir as Ge,lstat as vr,open as Ke,readFile as qe,writeFile as mr,rename as yr,rm as X,chmod as Dr,stat as _e,unlink as yi,rmdir as Di}from"node:fs/promises";import{lstatSync as Nr}from"node:fs";import{homedir as Sr}from"node:os";import{posix as Pe,win32 as ze}from"node:path";import{spawnSync as xr}from"node:child_process";import{createRequire as Ar}from"module";var er=Ar("/"),U,tr,rr;try{U=er("worker_threads"),tr=U.Worker,rr=U.isMarkedAsUntransferable}catch{}var D=Uint8Array,H=Uint16Array,ir=Int32Array,Le=new D([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Re=new D([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),nr=new D([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ke=function(e,A){for(var t=new H(31),r=0;r<31;++r)t[r]=A+=1<<e[r-1];for(var i=new ir(t[30]),r=1;r<30;++r)for(var n=t[r];n<t[r+1];++n)i[n]=n-t[r]<<5|r;return{b:t,r:i}},U=ke(Le,2),Fe=U.b,sr=U.r;Fe[28]=258,sr[258]=28;var be=ke(Re,0),or=be.b,Bi=be.r,QA=new H(32768);for(h=0;h<32768;++h)k=(h&43690)>>1|(h&21845)<<1,k=(k&52428)>>2|(k&13107)<<2,k=(k&61680)>>4|(k&3855)<<4,QA[h]=((k&65280)>>8|(k&255)<<8)>>1;var k,h,q=(function(e,A,t){for(var r=e.length,i=0,n=new H(A);i<r;++i)e[i]&&++n[e[i]-1];var s=new H(A);for(i=1;i<A;++i)s[i]=s[i-1]+n[i-1]<<1;var a;if(t){a=new H(1<<A);var u=15-A;for(i=0;i<r;++i)if(e[i])for(var c=i<<4|e[i],C=A-e[i],o=s[e[i]-1]++<<C,I=o|(1<<C)-1;o<=I;++o)a[QA[o]>>u]=c}else for(a=new H(r),i=0;i<r;++i)e[i]&&(a[i]=QA[s[e[i]-1]++]>>15-e[i]);return a}),P=new D(288);for(h=0;h<144;++h)P[h]=8;var h;for(h=144;h<256;++h)P[h]=9;var h;for(h=256;h<280;++h)P[h]=7;var h;for(h=280;h<288;++h)P[h]=8;var h,Me=new D(32);for(h=0;h<32;++h)Me[h]=5;var h;var ar=q(P,9,1);var gr=q(Me,5,1),EA=function(e){for(var A=e[0],t=1;t<e.length;++t)e[t]>A&&(A=e[t]);return A},T=function(e,A,t){var r=A/8|0;return(e[r]|e[r+1]<<8)>>(A&7)&t},hA=function(e,A){var t=A/8|0;return(e[t]|e[t+1]<<8|e[t+2]<<16)>>(A&7)},Ir=function(e){return(e+7)/8|0},pA=function(e,A,t){return(A==null||A<0)&&(A=0),(t==null||t>e.length)&&(t=e.length),new D(e.subarray(A,t))};var Cr=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],y=function(e,A,t){var r=new Error(A||Cr[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,y),!t)throw r;return r},ur=function(e,A,t,r){var i=e.length,n=r?r.length:0;if(!i||A.f&&!A.l)return t||new D(0);var s=!t,a=s||A.i!=2,u=A.i;s&&(t=new D(i*3));var c=function(FA){var bA=t.length;if(FA>bA){var MA=new D(Math.max(bA*2,FA));MA.set(t),t=MA}},C=A.f||0,o=A.p||0,I=A.b||0,g=A.l,f=A.d,E=A.m,l=A.n,B=i*8;do{if(!g){C=T(e,o,1);var w=T(e,o+1,3);if(o+=3,w)if(w==1)g=ar,f=gr,E=9,l=5;else if(w==2){var p=T(e,o,31)+257,x=T(e,o+10,15)+4,W=p+T(e,o+5,31)+1;o+=14;for(var m=new D(W),tA=new D(19),N=0;N<x;++N)tA[nr[N]]=T(e,o+N*3,7);o+=x*3;for(var SA=EA(tA),It=(1<<SA)-1,Ct=q(tA,SA,1),N=0;N<W;){var xA=Ct[T(e,o,It)];o+=xA&15;var Q=xA>>4;if(Q<16)m[N++]=Q;else{var J=0,j=0;for(Q==16?(j=3+T(e,o,3),o+=2,J=m[N-1]):Q==17?(j=3+T(e,o,7),o+=3):Q==18&&(j=11+T(e,o,127),o+=7);j--;)m[N++]=J}}var TA=m.subarray(0,p),M=m.subarray(p);E=EA(TA),l=EA(M),g=q(TA,E,1),f=q(M,l,1)}else y(1);else{var Q=Ir(o)+4,F=e[Q-4]|e[Q-3]<<8,b=Q+F;if(b>i){u&&y(0);break}a&&c(I+F),t.set(e.subarray(Q,b),I),A.b=I+=F,A.p=o=b*8,A.f=C;continue}if(o>B){u&&y(0);break}}a&&c(I+131072);for(var ut=(1<<E)-1,ct=(1<<l)-1,rA=o;;rA=o){var J=g[hA(e,o)&ut],Y=J>>4;if(o+=J&15,o>B){u&&y(0);break}if(J||y(2),Y<256)t[I++]=Y;else if(Y==256){rA=o,g=null;break}else{var LA=Y-254;if(Y>264){var N=Y-257,K=Le[N];LA=T(e,o,(1<<K)-1)+Fe[N],o+=K}var iA=f[hA(e,o)&ct],nA=iA>>4;iA||y(3),o+=iA&15;var M=or[nA];if(nA>3){var K=Re[nA];M+=hA(e,o)&(1<<K)-1,o+=K}if(o>B){u&&y(0);break}a&&c(I+131072);var RA=I+LA;if(I<M){var kA=n-M,ft=Math.min(M,RA);for(kA+I<0&&y(3);I<ft;++I)t[I]=r[kA+I]}for(;I<RA;++I)t[I]=t[I-M]}}A.l=g,A.p=rA,A.b=I,A.f=C,g&&(C=1,A.m=E,A.d=f,A.n=l)}while(!C);return I!=t.length&&s?pA(t,0,I):t.subarray(0,I)};var cr=new D(0);var R=function(e,A){return e[A]|e[A+1]<<8},S=function(e,A){return(e[A]|e[A+1]<<8|e[A+2]<<16|e[A+3]<<24)>>>0},lA=function(e,A){return S(e,A)+S(e,A+4)*4294967296};function fr(e,A){return ur(e,{i:2},A&&A.out,A&&A.dictionary)}var BA=typeof TextDecoder<"u"&&new TextDecoder,Er=0;try{BA.decode(cr,{stream:!0}),Er=1}catch{}var hr=function(e){for(var A="",t=0;;){var r=e[t++],i=(r>127)+(r>223)+(r>239);if(t+i>e.length)return{s:A,r:pA(e,t-1)};i?i==3?(r=((r&15)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,A+=String.fromCharCode(55296|r>>10,56320|r&1023)):i&1?A+=String.fromCharCode((r&31)<<6|e[t++]&63):A+=String.fromCharCode((r&15)<<12|(e[t++]&63)<<6|e[t++]&63):A+=String.fromCharCode(r)}};function lr(e,A){if(A){for(var t="",r=0;r<e.length;r+=16384)t+=String.fromCharCode.apply(null,e.subarray(r,r+16384));return t}else{if(BA)return BA.decode(e);var i=hr(e),n=i.s,t=i.r;return t.length&&y(8),n}}var Qr=function(e,A){return A+30+R(e,A+26)+R(e,A+28)},Br=function(e,A,t){var r=R(e,A+28),i=R(e,A+30),n=lr(e.subarray(A+46,A+46+r),!(R(e,A+8)&2048)),s=A+46+r,a=pr(e,s,i,t,S(e,A+20),S(e,A+24),S(e,A+42)),u=a[0],c=a[1],C=a[2];return[R(e,A+10),u,c,n,s+i+R(e,A+32),C]},pr=function(e,A,t,r,i,n,s){var a=i==4294967295,u=n==4294967295,c=s==4294967295,C=A+t,o=a+u+c;if(r&&o){for(;A+4<C;A+=4+R(e,A+2))if(R(e,A)==1)return[a?lA(e,A+4+8*u):i,u?lA(e,A+4):n,c?lA(e,A+4+8*(u+a)):s,1];r<2&&y(13)}return[i,n,s,0]};function Oe(e,A){for(var t={},r=e.length-22;S(e,r)!=101010256;--r)(!r||e.length-r>65558)&&y(13);var i=R(e,r+8);if(!i)return{};var n=S(e,r+16),s=S(e,r-20)==117853008;if(s){var a=S(e,r-12);s=S(e,a)==101075792,s&&(i=S(e,a+32),n=S(e,a+48))}for(var u=A&&A.filter,c=0;c<i;++c){var C=Br(e,n,s),o=C[0],I=C[1],g=C[2],f=C[3],E=C[4],l=C[5],B=Qr(e,l);n=E,(!u||u({name:f,size:I,originalSize:g,compression:o}))&&(o?o==8?t[f]=fr(e.subarray(B,B+I),{out:new D(g)}):y(14,"unknown compression type "+o):t[f]=pA(e,B,B+I))}return t}var Xe=JA(Je(),1);var Ye={"darwin-arm64":{version:"9.0.2",url:"https://www.osxexperts.net/ffmpeg902arm.zip",format:"zip",entry:"ffmpeg",archiveBytes:22665869,archiveSha256:"07e00300593799005b060c03a99fe648b1edda0f30c36b0c1adafe8e3247e586",binaryBytes:52160568,binarySha256:"762f16b2913b8d3b8fdb8092df12b691053b035b13ae9b88205513c55cb8e71e"},"darwin-x64":{version:"9.0.2",url:"https://evermeet.cx/ffmpeg/ffmpeg-9.0.2.zip",format:"zip",entry:"ffmpeg",archiveBytes:26198325,archiveSha256:"4acc0be580f9b2788029eb7bd4d645ff87968911b0a62aeeb3940d42d54558d5",binaryBytes:80827688,binarySha256:"a45b462cf91ed89148ae218c4577e30896485d7a6792c3673bcf5f823fa01b63"},"linux-x64":{version:"9.0.2-20261031",url:"https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-10-31-12-59/ffmpeg-n9.0.2-39-g7adfbe40dc-linux64-gpl-9.0.tar.xz",format:"tar.xz",entry:"ffmpeg-n9.0.2-39-g7adfbe40dc-linux64-gpl-9.0/bin/ffmpeg",archiveBytes:153175100,archiveSha256:"73e29a56974ae5a651133a04584c7483b21afe941e17dc91d79814a758b608d3"},"linux-arm64":{version:"9.0.2-20261031",url:"https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-10-31-12-59/ffmpeg-n9.0.2-39-g7adfbe40dc-linuxarm64-gpl-9.0.tar.xz",format:"tar.xz",entry:"ffmpeg-n9.0.2-39-g7adfbe40dc-linuxarm64-gpl-9.0/bin/ffmpeg",archiveBytes:128664064,archiveSha256:"6cad88ae5bcec356cfc5d7979a036cc4007128201928a0cf243df3db483276cc"},"win32-x64":{version:"9.0.2-20261031",url:"https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-10-31-12-59/ffmpeg-n9.0.2-39-g7adfbe40dc-win64-gpl-9.0.zip",format:"zip",entry:"ffmpeg-n9.0.2-39-g7adfbe40dc-win64-gpl-9.0/bin/ffmpeg.exe",archiveBytes:195110184,archiveSha256:"693f3e224bc184b40524a62ca47526cfebaf2504414021b92fe75f677ad868b9"}};var AA=new Map,$=new Map,Tr="@kyun.si/codex-hongguo",d=()=>Error("\u64AD\u653E\u7EC4\u4EF6\u81EA\u52A8\u51C6\u5907\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u548C\u7F13\u5B58\u76EE\u5F55\u6743\u9650\u540E\u91CD\u8BD5\u5B89\u88C5\u3002"),Lr=e=>new Promise(A=>setTimeout(A,e));function We(e={}){let{env:A=process.env,home:t=Sr(),platform:r=process.platform,arch:i=process.arch}=e,n=r==="win32"?ze:Pe;if(A.HONGGUO_FFMPEG){if(!n.isAbsolute(A.HONGGUO_FFMPEG))throw d();return{...e,env:A,platform:r,target:A.HONGGUO_FFMPEG,override:!0}}let s=(e.artifacts||Ye)[r+"-"+i];if(!s)throw Error("\u5F53\u524D\u7CFB\u7EDF\u67B6\u6784\u6682\u4E0D\u652F\u6301\u81EA\u52A8\u51C6\u5907\u64AD\u653E\u7EC4\u4EF6\u3002");let a=Rr({env:A,home:t,platform:r,paths:n}),u=n.join(a,"runtime","ffmpeg",s.archiveSha256.slice(0,16),r+"-"+i);return{...e,env:A,platform:r,artifact:s,directory:u,target:n.join(u,r==="win32"?"ffmpeg.exe":"ffmpeg")}}function Rr({env:e,home:A,platform:t,paths:r}){return e.HONGGUO_RUNTIME_DIR?r.join(e.HONGGUO_RUNTIME_DIR,"codex-hongguo"):t==="darwin"?r.join(A,"Library","Caches","CodexHongguo"):t==="win32"?r.join(e.LOCALAPPDATA||r.join(A,"AppData","Local"),"CodexHongguo","Cache"):r.join(e.XDG_CACHE_HOME||r.join(A,".cache"),"codex-hongguo")}function je(e){return We(e).target}function wA(e){try{let A=Nr(e);return A.isFile()&&!A.isSymbolicLink()?`${A.size}:${A.mtimeMs}:${A.ctimeMs}`:null}catch{return null}}async function Ve(e){let A=He("sha256");for await(let t of Ue(e))A.update(t);return A.digest("hex")}function Ze(e,A){return A.probe?A.probe(e):xr(e,["-version"],{stdio:"ignore",timeout:5e3,windowsHide:!0}).status===0}async function vA(e){let{target:A,artifact:t}=e;if(AA.get(A)&&AA.get(A)===wA(A))return!0;try{let r=await vr(A);if(!r.isFile()||r.isSymbolicLink())return!1;if(t){let i=JSON.parse(await qe(A+".json","utf8"));if(i.archiveSha256!==t.archiveSha256||!/^[a-f0-9]{64}$/.test(i.binarySha256)||r.size!==(t.binaryBytes||i.binaryBytes)||await Ve(A)!==(t.binarySha256||i.binarySha256))return!1}return Ze(A,e)?(AA.set(A,wA(A)),!0):!1}catch{return!1}}async function kr(e,A,t){let r=new Set(["github.com","release-assets.githubusercontent.com","objects.githubusercontent.com","evermeet.cx","www.osxexperts.net"]),i=AbortSignal.timeout(3e5),n=new URL(e.url),s;for(let C=0;C<=6;C++){if(n.protocol!=="https:"||n.username||n.password||n.port||!r.has(n.hostname))throw d();if(s=await t(n,{redirect:"manual",signal:i}),![301,302,303,307,308].includes(s.status))break;let o=s.headers.get("location");if(await s.body?.cancel(),!o||C===6)throw d();n=new URL(o,n)}if(!s.ok||!s.body||Number(s.headers.get("content-length"))>e.archiveBytes)throw await s.body?.cancel(),d();let a=await Ke(A,"wx",384),u=He("sha256"),c=0;try{for await(let C of s.body){if(c+=C.length,c>e.archiveBytes)throw d();u.update(C),await a.writeFile(C)}if(c!==e.archiveBytes||u.digest("hex")!==e.archiveSha256)throw d()}finally{await a.close()}}async function Fr(e,A,t){let r=await Ke(t,"wx",384);try{if(e.format==="zip"){let I=Oe(await qe(A),{filter:g=>g.name===e.entry&&g.originalSize<=(e.binaryBytes||268435456)})[e.entry];if(!I||e.binaryBytes&&I.length!==e.binaryBytes)throw d();await r.writeFile(I);return}let i=new Xe.default.XzReadableStream(br(A)),n=i.getReader(),s=Buffer.alloc(0),a=0,u=0,c=!1,C=0;try{for(;;){let{value:o,done:I}=await n.read();if(I)break;if(C+=o.length,C>1024*1024*1024)throw d();for(s=Buffer.concat([s,o]);s.length;)if(a){let g=Math.min(a,s.length);if(c&&await r.writeFile(s.subarray(0,g)),s=s.subarray(g),a-=g,!a&&c)return}else if(u){let g=Math.min(u,s.length);s=s.subarray(g),u-=g}else{if(s.length<512)break;let g=s.subarray(0,512);s=s.subarray(512);let f=(B,w)=>g.subarray(B,w).toString("utf8").split("\0")[0],E=[f(345,500),f(0,100)].filter(Boolean).join("/"),l=parseInt(f(124,136).trim()||"0",8);if(!Number.isSafeInteger(l)||l<0||l>512*1024*1024||(c=E===e.entry,c&&(e.binaryBytes&&l!==e.binaryBytes||l>256*1024*1024||![0,48].includes(g[156]))))throw d();a=l,u=(512-l%512)%512}}throw d()}finally{await n.cancel().catch(()=>{})}}finally{await r.close()}}function br(e){let A=Ue(e)[Symbol.asyncIterator]();return new ReadableStream({async pull(t){let{value:r,done:i}=await A.next();i?t.close():t.enqueue(r)},async cancel(){await A.return?.()}})}async function $e(e={}){let A=We(e);if(await vA(A))return A.target;if(A.override)throw d();if($.has(A.target))return $.get(A.target);let t=Mr(A).finally(()=>$.delete(A.target));return $.set(A.target,t),t}async function Mr(e){let{directory:A,target:t,artifact:r}=e,i=A+".lock",n=Date.now()+42e4;await Ge(A,{recursive:!0,mode:448});let s=!1;for(;!s;)try{await Ge(i,{mode:448}),s=!0}catch(o){if(o.code!=="EEXIST"||Date.now()>n)throw d();if(await vA(e))return t;try{Date.now()-(await _e(i)).mtimeMs>6e5&&await X(i,{recursive:!0,force:!0})}catch{}await Lr(200)}let a=e.platform==="win32"?ze:Pe,u=a.basename(t)+"."+wr(),c=a.join(A,u+".archive"),C=a.join(A,u+".part");try{if(await vA(e))return t;await kr(r,c,e.fetchImpl||fetch),await Fr(r,c,C);let o=await Ve(C);if(r.binarySha256&&o!==r.binarySha256||(await Dr(C,493),!Ze(C,e)))throw d();return e.platform==="win32"&&await X(t,{force:!0}),await yr(C,t),await mr(t+".json",JSON.stringify({owner:Tr,schema:1,archiveSha256:r.archiveSha256,binarySha256:o,binaryBytes:(await _e(t)).size,version:r.version})+`
|
|
46
|
+
`,{mode:384}),AA.set(t,wA(t)),t}catch{throw d()}finally{await Promise.all([X(c,{force:!0}),X(C,{force:!0}),X(i,{recursive:!0,force:!0})])}}var tt=mA.default,_r=mA.default.sync;function rt(e){if(!(!e?.pid||e.exitCode!==null||e.signalCode!==null))if(e.stdin?.destroy(),process.platform==="win32"){let A=et.join(process.env.SystemRoot||"C:\\Windows","System32","taskkill.exe");_r(A,["/pid",String(e.pid),"/t","/f"],{stdio:"ignore",timeout:3e3,windowsHide:!0})}else e.kill()}function eA(e,A,{env:t=process.env,home:r=Yr(),platform:i=process.platform,arch:n=process.arch}={}){if(A)return A;if(e==="ffmpeg")return je({env:t,home:r,platform:i,arch:n});let{delimiter:s,dirname:a,join:u,isAbsolute:c,extname:C}=i==="win32"?et:Gr,o=Object.keys(t).find(E=>E.toUpperCase()==="PATH")||"PATH",I=[a(process.execPath),...(t[o]||"").split(s).filter(Boolean).map(E=>E.replace(/^"(.*)"$/,"$1"))];i!=="win32"?I.push("/opt/homebrew/bin","/usr/local/bin","/usr/bin","/bin",u(r,".volta/bin"),u(r,".local/bin")):I.push(u(t.APPDATA||u(r,"AppData","Roaming"),"npm"),u(r,".volta","bin"));let g=i!=="win32"||C(e)?[""]:[".exe",".com",".cmd",".bat"],f=I.filter(c).flatMap(E=>g.map(l=>u(E,e+l)));e==="codex"&&i==="darwin"&&f.push("/Applications/Codex.app/Contents/Resources/codex");for(let E of f)try{if(Or(E,i==="win32"?At.F_OK:At.X_OK),Jr(E).isFile())return E}catch{}return e}var it=["userPromptSubmit","stop","interrupt"],O=()=>({status:"unknown",events:it.map(e=>({event:e,status:"unknown"}))});function nt({command:e=eA("codex",process.env.HONGGUO_CODEX),args:A=["app-server"],cwd:t=process.cwd(),timeoutMs:r=8e3,pluginRoot:i=YA,installedId:n}={}){let s=u=>{try{return Hr(u)}catch{return Kr(u)}},a=s(i);return new Promise(u=>{let c,C=!1,o="",I=0,g=E=>{C||(C=!0,clearTimeout(f),rt(c),u(E))},f=setTimeout(()=>g(O()),r);try{c=tt(e,A,{cwd:t,stdio:["pipe","pipe","ignore"],windowsHide:!0}),c.on("error",()=>g(O())),c.on("exit",()=>g(O())),c.stdin.on("error",()=>g(O())),c.stdout.setEncoding("utf8");let E=l=>c.stdin.write(JSON.stringify(l)+`
|
|
47
47
|
`);c.stdout.on("data",l=>{if(C)return;if(I+=Buffer.byteLength(l),I>2*1024*1024)return g(O());o+=l;let B;for(;!C&&(B=o.indexOf(`
|
|
48
|
-
`))>=0;){let w=o.slice(0,B);o=o.slice(B+1);let Q;try{Q=JSON.parse(w)}catch{continue}if(Q.error&&[1,2].includes(Q.id))return g(O());if(Q.id===1&&Q.result&&(E({jsonrpc:"2.0",method:"initialized"}),E({jsonrpc:"2.0",id:2,method:"hooks/list",params:{cwds:[t]}})),Q.id===2&&Array.isArray(Q.result?.data)){let F=Q.result.data.flatMap(p=>Array.isArray(p?.hooks)?p.hooks:[]).filter(p=>typeof p?.pluginId=="string"&&p.pluginId.split("@")[0]==="codex-hongguo").filter(p=>{if(typeof p.sourcePath!="string")return!1;if(n)return p.pluginId===n;let x=
|
|
48
|
+
`))>=0;){let w=o.slice(0,B);o=o.slice(B+1);let Q;try{Q=JSON.parse(w)}catch{continue}if(Q.error&&[1,2].includes(Q.id))return g(O());if(Q.id===1&&Q.result&&(E({jsonrpc:"2.0",method:"initialized"}),E({jsonrpc:"2.0",id:2,method:"hooks/list",params:{cwds:[t]}})),Q.id===2&&Array.isArray(Q.result?.data)){let F=Q.result.data.flatMap(p=>Array.isArray(p?.hooks)?p.hooks:[]).filter(p=>typeof p?.pluginId=="string"&&p.pluginId.split("@")[0]==="codex-hongguo").filter(p=>{if(typeof p.sourcePath!="string")return!1;if(n)return p.pluginId===n;let x=Ur(a,s(p.sourcePath));return x&&!x.startsWith("..")&&!qr(x)});if(!F.length)return g(O());let b=it.map(p=>{let x=F.filter(m=>m.eventName===p),W=x.length?x.some(m=>!m.enabled)?"disabled":x.every(m=>["trusted","managed"].includes(m.trustStatus))?"ready":x.some(m=>["untrusted","modified"].includes(m.trustStatus))?"needs_review":"unknown":"missing";return{event:p,status:W}});g({status:b.every(p=>p.status==="ready")?"ready":"needs_attention",events:b})}}}),E({jsonrpc:"2.0",id:1,method:"initialize",params:{clientInfo:{name:"hongguo-setup",version:"1"},capabilities:{experimentalApi:!0}}})}catch{g(O())}})}var Pr=eA("codex",process.env.HONGGUO_CODEX),DA=!1,yA;try{yA=new V,DA=yA.writable()}catch{}finally{yA?.close()}var[st,zr]=process.versions.node.split(".").map(Number),gt={version:process.version,ready:st>22||st===22&&zr>=16},NA=!1;try{await $e(),NA=!0}catch{}var ot=await nt({command:Pr}),at=gt.ready&&DA&&NA;console.log(JSON.stringify({runtime:gt,database:DA,ffmpeg:NA,hooks:ot,manualReady:at,followReady:at&&ot.status==="ready"},null,2));
|
|
49
49
|
/*! Bundled license information:
|
|
50
50
|
|
|
51
51
|
xz-decompress/dist/package/xz-decompress.js:
|
package/dist/ui/player.html
CHANGED
|
@@ -2060,7 +2060,7 @@ Boolean requesting whether a visible border and background is provided by the ho
|
|
|
2060
2060
|
- omitted: host decides border`)}),a3=E.object({method:E.literal("ui/request-display-mode"),params:E.object({mode:ul.describe("The display mode being requested.")})}),jF=E.object({mode:ul.describe("The display mode that was actually set. May differ from requested if not supported.")}).passthrough(),VF=E.union([E.literal("model"),E.literal("app")]).describe("Tool visibility scope - who can access the tool."),l3=E.object({resourceUri:E.string().optional(),visibility:E.array(VF).optional().describe(`Who can access this tool. Default: ["model", "app"]
|
|
2061
2061
|
- "model": Tool visible to and callable by the agent
|
|
2062
2062
|
- "app": Tool callable by the app from this server only`),csp:E.never().optional(),permissions:E.never().optional()}),c3=E.object({mimeTypes:E.array(E.string()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')}),u3=E.object({method:E.literal("ui/download-file"),params:E.object({contents:E.array(E.union([lS,cS])).describe("Resource contents to download \u2014 embedded (inline data) or linked (host fetches). Uses standard MCP resource types.")})}),d3=E.object({method:E.literal("ui/message"),params:E.object({role:E.literal("user").describe('Message role, currently only "user" is supported.'),content:E.array(Js).describe("Message content blocks (text, image, etc.).")})}),f3=E.object({method:E.literal("ui/notifications/sandbox-resource-ready"),params:E.object({html:E.string().describe("HTML content to load into the inner iframe."),sandbox:E.string().optional().describe("Optional override for the inner iframe's sandbox attribute."),csp:yS.optional().describe("CSP configuration from resource metadata."),permissions:bS.optional().describe("Sandbox permissions from resource metadata.")})}),GF=E.object({method:E.literal("ui/notifications/tool-result"),params:Xs.describe("Standard MCP tool execution result.")}),kA=E.object({toolInfo:E.object({id:qs.optional().describe("JSON-RPC id of the tools/call request."),tool:Af.describe("Tool definition including name, inputSchema, etc.")}).optional().describe("Metadata of the tool call that instantiated this App."),theme:AF.optional().describe("Current color theme preference."),styles:UF.optional().describe("Style configuration for theming the app."),displayMode:ul.optional().describe("How the UI is currently displayed."),availableDisplayModes:E.array(ul).optional().describe("Display modes the host supports."),containerDimensions:E.union([E.object({height:E.number().describe("Fixed container height in pixels.")}),E.object({maxHeight:E.union([E.number(),E.undefined()]).optional().describe("Maximum container height in pixels.")})]).and(E.union([E.object({width:E.number().describe("Fixed container width in pixels.")}),E.object({maxWidth:E.union([E.number(),E.undefined()]).optional().describe("Maximum container width in pixels.")})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other
|
|
2063
|
-
container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:E.string().optional().describe("User's language and region preference in BCP 47 format."),timeZone:E.string().optional().describe("User's timezone in IANA format."),userAgent:E.string().optional().describe("Host application identifier."),platform:E.union([E.literal("web"),E.literal("desktop"),E.literal("mobile")]).optional().describe("Platform type for responsive design decisions."),deviceCapabilities:E.object({touch:E.boolean().optional().describe("Whether the device supports touch input."),hover:E.boolean().optional().describe("Whether the device supports hover interactions.")}).optional().describe("Device input capabilities."),safeAreaInsets:E.object({top:E.number().describe("Top safe area inset in pixels."),right:E.number().describe("Right safe area inset in pixels."),bottom:E.number().describe("Bottom safe area inset in pixels."),left:E.number().describe("Left safe area inset in pixels.")}).optional().describe("Mobile safe area boundaries in pixels.")}).passthrough(),KF=E.object({method:E.literal("ui/notifications/host-context-changed"),params:kA.describe("Partial context update containing only changed fields.")}),h3=E.object({method:E.literal("ui/update-model-context"),params:E.object({content:E.array(Js).optional().describe("Context content blocks (text, image, etc.)."),structuredContent:E.record(E.string(),E.unknown().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.")})}),m3=E.object({method:E.literal("ui/initialize"),params:E.object({appInfo:rl.describe("App identification (name and version)."),appCapabilities:BF.describe("Features and capabilities this app provides."),protocolVersion:E.string().describe("Protocol version this app supports.")})}),HF=E.object({protocolVersion:E.string().describe('Negotiated protocol version string (e.g., "2025-11-21").'),hostInfo:rl.describe("Host application identification and version."),hostCapabilities:zF.describe("Features and capabilities provided by the host."),hostContext:kA.describe("Rich context about the host environment.")}).passthrough(),ZF={target:"draft-2020-12"};async function IA(n,e){let t=n["~standard"];if(t.jsonSchema)return t.jsonSchema[e](ZF);if(t.vendor==="zod"){let{z:i}=await Promise.resolve().then(()=>(Qa(),Wb));return i.toJSONSchema(n,{io:e})}throw Error(`Schema (vendor: ${t.vendor}) does not implement Standard JSON Schema (~standard.jsonSchema). Use a library that does (zod v4, ArkType, Valibot) or wrap your schema accordingly.`)}async function TA(n,e,t=""){let i=await n["~standard"].validate(e);if(i.issues){let r=i.issues.map(s=>{let o=s.path?.map(a=>typeof a=="object"?a.key:a).join(".");return o?`${o}: ${s.message}`:s.message}).join("; ");throw Error(t+r)}return i.value}function $A(n){let e=document.documentElement;e.setAttribute("data-theme",n),e.style.colorScheme=n}function AA(n,e=document.documentElement){for(let[t,i]of Object.entries(n))i!==void 0&&e.style.setProperty(t,i)}var Pf=class n extends gS{_appInfo;_capabilities;options;_hostCapabilities;_hostInfo;_hostContext;_registeredTools={};_initializedSent=!1;_assertInitialized(e){if(this._initializedSent)return;let t=`[ext-apps] App.${e}() called before connect() completed the ui/initialize handshake. Await app.connect() before calling this method, or move data loading to an ontoolresult handler.`;if(this.options?.strict)throw Error(t);console.warn(`${t}. This will throw in a future release.`)}eventSchemas={toolinput:CF,toolinputpartial:OF,toolresult:GF,toolcancelled:NF,hostcontextchanged:KF};static ONE_SHOT_EVENTS=new Set(["toolinput","toolinputpartial","toolresult","toolcancelled"]);_everHadListener=new Set;_assertHandlerTiming(e){if(!n.ONE_SHOT_EVENTS.has(e)||this._everHadListener.has(e)||(this._everHadListener.add(e),!this._initializedSent))return;let t=`[ext-apps] "${String(e)}" handler registered after connect() completed the ui/initialize handshake. The host may have already sent this notification. Register handlers before calling app.connect().`;if(this.options?.strict)throw Error(t);console.warn(t)}setEventHandler(e,t){t&&this._assertHandlerTiming(e),super.setEventHandler(e,t)}addEventListener(e,t){this._assertHandlerTiming(e),super.addEventListener(e,t)}onEventDispatch(e,t){e==="hostcontextchanged"&&(this._hostContext={...this._hostContext,...t})}constructor(e,t={},i={autoResize:!0}){super(i),this._appInfo=e,this._capabilities=t,this.options=i,i.allowUnsafeEval||E.config({jitless:!0}),this.setRequestHandler(Ws,r=>(console.log("Received ping:",r.params),{})),this.setEventHandler("hostcontextchanged",void 0)}registerCapabilities(e){if(this.transport)throw Error("Cannot register capabilities after transport is established");this._capabilities=_A(this._capabilities,e)}registerTool(e,t,i){if(this._registeredTools[e])throw Error(`Tool ${e} is already registered`);let r=this,s=()=>{r._initializedSent&&r._capabilities.tools?.listChanged&&r.sendToolListChanged()},o=t.inputSchema!==void 0,a={title:t.title,description:t.description,inputSchema:t.inputSchema,outputSchema:t.outputSchema,annotations:t.annotations,_meta:t._meta,enabled:!0,enable(){this.enabled=!0,s()},disable(){this.enabled=!1,s()},update(l){Object.assign(this,l),s()},remove(){r._registeredTools[e]===a&&(delete r._registeredTools[e],s())},handler:async(l,c)=>{if(!a.enabled)throw Error(`Tool ${e} is disabled`);let u;if(o){let d=a.inputSchema,f=d?await TA(d,l??{},`Invalid input for tool ${e}: `):l??{};u=await i(f,c)}else u=await i(c);return a.outputSchema&&!u.isError&&(u.structuredContent=await TA(a.outputSchema,u.structuredContent,`Invalid output for tool ${e}: `)),u}};return this._registeredTools[e]=a,!this._capabilities.tools&&!this.transport&&this.registerCapabilities({tools:{listChanged:!0}}),this.ensureToolHandlersInitialized(),s(),a}_toolHandlersInitialized=!1;ensureToolHandlersInitialized(){this._toolHandlersInitialized||(this._toolHandlersInitialized=!0,this.oncalltool=async(e,t)=>{let i=this._registeredTools[e.name];if(!i)throw Error(`Tool ${e.name} not found`);return i.handler(e.arguments,t)},this.onlisttools=async(e,t)=>({tools:await Promise.all(Object.entries(this._registeredTools).filter(([i,r])=>r.enabled).map(async([i,r])=>{let s={name:i,title:r.title,description:r.description,inputSchema:r.inputSchema?await IA(r.inputSchema,"input"):{type:"object",properties:{}}};return r.outputSchema&&(s.outputSchema=await IA(r.outputSchema,"output")),r.annotations&&(s.annotations=r.annotations),r._meta&&(s._meta=r._meta),s}))}))}async sendToolListChanged(e={}){this._assertInitialized("sendToolListChanged"),await this.notification({method:"notifications/tools/list_changed",params:e})}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}get ontoolinput(){return this.getEventHandler("toolinput")}set ontoolinput(e){this.setEventHandler("toolinput",e)}get ontoolinputpartial(){return this.getEventHandler("toolinputpartial")}set ontoolinputpartial(e){this.setEventHandler("toolinputpartial",e)}get ontoolresult(){return this.getEventHandler("toolresult")}set ontoolresult(e){this.setEventHandler("toolresult",e)}get ontoolcancelled(){return this.getEventHandler("toolcancelled")}set ontoolcancelled(e){this.setEventHandler("toolcancelled",e)}get onhostcontextchanged(){return this.getEventHandler("hostcontextchanged")}set onhostcontextchanged(e){this.setEventHandler("hostcontextchanged",e)}_onteardown;get onteardown(){return this._onteardown}set onteardown(e){this.warnIfRequestHandlerReplaced("onteardown",this._onteardown,e),this._onteardown=e,this.replaceRequestHandler(FF,(t,i)=>{if(!this._onteardown)throw Error("No onteardown handler set");return this._onteardown(t.params,i)})}_oncalltool;get oncalltool(){return this._oncalltool}set oncalltool(e){this.warnIfRequestHandlerReplaced("oncalltool",this._oncalltool,e),this._oncalltool=e,this.replaceRequestHandler(dS,(t,i)=>{if(!this._oncalltool)throw Error("No oncalltool handler set");return this._oncalltool(t.params,i)})}_onlisttools;get onlisttools(){return this._onlisttools}set onlisttools(e){this.warnIfRequestHandlerReplaced("onlisttools",this._onlisttools,e),this._onlisttools=e,this.replaceRequestHandler(uS,(t,i)=>{if(!this._onlisttools)throw Error("No onlisttools handler set");return this._onlisttools(t.params,i)})}assertCapabilityForMethod(e){switch(e){case"sampling/createMessage":if(!this._hostCapabilities?.sampling)throw Error(`Host does not support sampling (required for ${e})`);break}}assertRequestHandlerCapability(e){switch(e){case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${e})`);return;case"ping":case"ui/resource-teardown":return;default:throw Error(`No handler for method ${e} registered`)}}assertNotificationCapability(e){}assertTaskCapability(e){throw Error("Tasks are not supported in MCP Apps")}assertTaskHandlerCapability(e){throw Error("Task handlers are not supported in MCP Apps")}async callServerTool(e,t){if(this._assertInitialized("callServerTool"),typeof e=="string")throw Error(`callServerTool() expects an object as its first argument, but received a string ("${e}"). Did you mean: callServerTool({ name: "${e}", arguments: { ... } })?`);return await this.request({method:"tools/call",params:e},Xs,{onprogress:()=>{},resetTimeoutOnProgress:!0,...t})}async readServerResource(e,t){return this._assertInitialized("readServerResource"),await this.request({method:"resources/read",params:e},iS,t)}async listServerResources(e,t){return this._assertInitialized("listServerResources"),await this.request({method:"resources/list",params:e},nS,t)}async createSamplingMessage(e,t){this._assertInitialized("createSamplingMessage");let i=e.tools?hS:fS;return await this.request({method:"sampling/createMessage",params:e},i,t)}sendMessage(e,t){return this._assertInitialized("sendMessage"),this.request({method:"ui/message",params:e},DF,t)}sendLog(e){return this.notification({method:"notifications/message",params:e})}updateModelContext(e,t){return this._assertInitialized("updateModelContext"),this.request({method:"ui/update-model-context",params:e},yf,t)}openLink(e,t){return this._assertInitialized("openLink"),this.request({method:"ui/open-link",params:e},RF,t)}sendOpenLink=this.openLink;downloadFile(e,t){return this._assertInitialized("downloadFile"),this.request({method:"ui/download-file",params:e},LF,t)}requestTeardown(e={}){return this.notification({method:"ui/notifications/request-teardown",params:e})}requestDisplayMode(e,t){return this._assertInitialized("requestDisplayMode"),this.request({method:"ui/request-display-mode",params:e},jF,t)}sendSizeChanged(e){return this.notification({method:"ui/notifications/size-changed",params:e})}setupSizeChangedNotifications(){let e=!1,t=0,i=0,r=()=>{e||(e=!0,requestAnimationFrame(()=>{e=!1;let o=document.documentElement,a=o.style.height;o.style.height="max-content";let l=Math.ceil(o.getBoundingClientRect().height);o.style.height=a;let c=Math.ceil(window.innerWidth);(c!==t||l!==i)&&(t=c,i=l,this.sendSizeChanged({width:c,height:l}))}))};r();let s=new ResizeObserver(r);return s.observe(document.documentElement),s.observe(document.body),()=>s.disconnect()}async connect(e=new vS(window.parent,window.parent),t){if(this.transport)throw Error("App is already connected. Call close() before connecting again.");this._initializedSent=!1,await super.connect(e);try{let i=await this.request({method:"ui/initialize",params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:kF}},HF,t);if(i===void 0)throw Error(`Server sent invalid initialize result: ${i}`);this._hostCapabilities=i.hostCapabilities,this._hostInfo=i.hostInfo,this._hostContext=i.hostContext,await this.notification({method:"ui/notifications/initialized"}),this._initializedSent=!0,this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(i){throw this.close(),i}}};function wA(n,e,t){let i,r=!1,s=()=>{r||i!==void 0||(i=requestAnimationFrame(()=>{i=void 0,!(r||!e())&&t(n.hidden?1:Math.max(1,Math.ceil(n.getBoundingClientRect().height)))}))},o=new ResizeObserver(s);return o.observe(n),s(),{refresh:s,dispose(){r=!0,o.disconnect(),i!==void 0&&cancelAnimationFrame(i)}}}var PA={name:"@kyun.si/codex-hongguo",version:"0.0.22",private:!0,license:"MIT",type:"module",engines:{node:">=22.16"},scripts:{"version:patch":"npm version patch --no-git-tag-version",preversion:"node scripts/version.mjs --next",version:"node scripts/version.mjs --sync",prebuild:"node scripts/version.mjs",build:"node scripts/build.mjs",test:"npm run build && node scripts/prepare-media.mjs && node --test test/*.test.mjs",package:"npm run build && node scripts/package.mjs","verify:install":"node scripts/verify-install.mjs","release:publish":"node scripts/publish.mjs"},dependencies:{"@modelcontextprotocol/ext-apps":"1.7.5","@modelcontextprotocol/sdk":"1.32.2","cross-spawn":"7.0.6",fflate:"0.8.3","hls.js":"1.7.4","m3u8-parser":"7.2.1","mpd-parser":"1.4.1",openhongguo:"0.2.0","xz-decompress":"0.2.3",zod:"4.6.7"},devDependencies:{"@types/node":"22.20.5",esbuild:"0.28.2",typescript:"5.9.3"}};var zn=document.documentElement.dataset.host==="browser",LA=document.documentElement.dataset.surface==="waiting",xS="",Jn=zn?null:new Pf({name:"\u7EA2\u679C\u77ED\u5267",version:PA.version},{},{autoResize:!LA}),SS,DA=()=>Jn?.getHostContext()?.locale||navigator.language,Rf=()=>Jn?.getHostContext()?.displayMode;async function CA(){if((await Jn?.requestDisplayMode({mode:"fullscreen"},{timeout:5e3}))?.mode!=="fullscreen")throw Error("\u5F53\u524D Codex \u65E0\u6CD5\u5728\u4F1A\u8BDD\u4E2D\u6253\u5F00\u64AD\u653E\u5668")}function RA(n){n&&(n.theme&&$A(n.theme),n.styles?.variables&&AA(n.styles.variables))}async function OA(n,e,t){if(zn){let i=await fetch("context",{signal:AbortSignal.timeout(4e3)});if(!i.ok)throw Error("\u5206\u5C4F\u5DF2\u5931\u6548\uFF0C\u8BF7\u4ECE\u9762\u677F\u91CD\u65B0\u6253\u5F00");n(await i.json());return}Jn.ontoolresult=i=>{if(typeof i._meta?.panel!="string")return;xS=i._meta.panel;let r=typeof i._meta.waitingTurn=="string"?i._meta.waitingTurn:void 0;n({identified:!!i.structuredContent?.identified||!!r,waitingTurn:r})},Jn.onteardown=async()=>(SS?.dispose(),await e(),{}),Jn.onhostcontextchanged=i=>{RA(i),i.displayMode!==void 0&&(t(),SS?.refresh())},await Jn.connect(),RA(Jn.getHostContext()),LA&&(SS=wA(document.getElementById("waitingCard"),()=>(Rf()||"inline")==="inline",i=>{Jn.sendSizeChanged({height:i}).catch(()=>{})})),t()}async function Ie(n,e={},t=15e3){if(zn){let r=await fetch("api/"+n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),keepalive:n==="save_progress",signal:AbortSignal.timeout(t)}),s=await r.json();if(!r.ok)throw Error(s.error||"\u5206\u5C4F\u8FDE\u63A5\u5DF2\u4E2D\u65AD");return s}if(!xS)throw Error("\u7B49\u5F85\u4F1A\u8BDD\u9762\u677F\u8FDE\u63A5");let i=await Jn.callServerTool({name:n,arguments:{...e,panel:xS}},{timeout:t});if(i.isError)throw Error(i.content?.[0]?.type==="text"?i.content[0].text:"\u672C\u673A\u670D\u52A1\u4E0D\u53EF\u8FBE");return i._meta?.data}var _S="https://hongguo.invalid/";function NA(n,e,t,i,r,s){if(!sr.isSupported())throw Error("\u5F53\u524D\u9762\u677F\u4E0D\u652F\u6301\u5206\u6BB5\u89E3\u7801\uFF0C\u53EF\u4F7F\u7528\u540C\u7A97\u5206\u5C4F");class o{context=null;stats=new ai;abort(){this.stats.aborted=!0}destroy(){this.abort()}load(d,f,h){this.context=d,this.stats.loading.start=performance.now(),(async()=>{let p=d.url.slice(_S.length);if(!d.url.startsWith(_S))throw Error("\u65E0\u6548\u5A92\u4F53\u6765\u6E90");if(p==="index.m3u8")return i;let g=0,y;do{let b=await Ie("read_panel_chunk",{episodeId:e,stream:t,asset:p,offset:g},8e3);if(this.stats.aborted)return;if(!Number.isSafeInteger(b.size)||b.size<1||b.size>32*1024*1024)throw Error("\u5206\u6BB5\u957F\u5EA6\u65E0\u6548");y??=new Uint8Array(b.size);let S=atob(b.bytes);if(b.size!==y.length||!S.length||g+S.length>b.size)throw Error("\u5206\u6BB5\u4E0D\u5B8C\u6574");for(let x=0;x<S.length;x++)y[g+x]=S.charCodeAt(x);g+=S.length}while(g<y.length);return y.buffer})().then(p=>{this.stats.aborted||p===void 0||(this.stats.loading.first=this.stats.loading.end=performance.now(),this.stats.loaded=this.stats.total=typeof p=="string"?p.length:p.byteLength,h.onSuccess({url:d.url,data:p},this.stats,d,null))}).catch(()=>{this.stats.aborted||h.onError({code:0,text:"\u4FA7\u680F\u5206\u6BB5\u8BFB\u53D6\u5931\u8D25"},d,null,this.stats)})}}let a=new sr({loader:o,enableWorker:!1,maxBufferLength:16,maxMaxBufferLength:24,backBufferLength:12});a.on(sr.Events.MEDIA_ENDED,s),a.on(sr.Events.ERROR,(u,d)=>{d.fatal&&(d.type===sr.ErrorTypes.NETWORK_ERROR?r("\u4FA7\u680F\u5206\u6BB5\u8BFB\u53D6\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u70B9\u64AD"):r("\u4FA7\u680F\u65E0\u6CD5\u5904\u7406\u89C6\u9891\u5206\u6BB5\uFF0C\u53EF\u4F7F\u7528\u540C\u7A97\u5206\u5C4F"))});let l=u=>{u.disposition==="enforce"&&u.effectiveDirective==="media-src"&&(u.blockedURI==="blob"||u.blockedURI.startsWith("blob:"))&&r("\u684C\u9762\u5B89\u5168\u7B56\u7565\u963B\u6B62\u4E86\u4FA7\u680F\u8F7D\u5165\u672C\u5730\u89C6\u9891")},c=()=>{document.removeEventListener("securitypolicyviolation",l),a.destroy()};document.addEventListener("securitypolicyviolation",l);try{a.loadSource(_S+"index.m3u8"),a.attachMedia(n)}catch(u){throw c(),u}return c}function ES(n){switch(n){case 1:return"\u89C6\u9891\u52A0\u8F7D\u5DF2\u4E2D\u6B62\uFF0C\u53EF\u4EE5\u91CD\u65B0\u70B9\u64AD";case 2:return"\u8BFB\u53D6\u89C6\u9891\u6570\u636E\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u70B9\u64AD";case 3:return"\u64AD\u653E\u5668\u89E3\u7801\u89C6\u9891\u6570\u636E\u5931\u8D25\uFF0C\u53EF\u4F7F\u7528\u540C\u7A97\u5206\u5C4F";case 4:return"\u64AD\u653E\u5668\u65E0\u6CD5\u6253\u5F00\u89C6\u9891\u6765\u6E90\uFF0C\u53EF\u91CD\u65B0\u70B9\u64AD\u6216\u4F7F\u7528\u540C\u7A97\u5206\u5C4F";default:return"\u89C6\u9891\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u70B9\u64AD"}}function MA(n,e){return new Promise((t,i)=>{let r=()=>l(),s=()=>l(Error(ES(n.error?.code))),o=()=>l(e.reason),a=setTimeout(()=>l(Error("\u7B49\u5F85\u89C6\u9891\u5143\u6570\u636E\u8D85\u65F6\uFF0C\u8BF7\u91CD\u65B0\u70B9\u64AD")),3e4);function l(c){clearTimeout(a),n.removeEventListener("loadedmetadata",r),n.removeEventListener("error",s),e.removeEventListener("abort",o),c!==void 0?i(c):t()}n.addEventListener("loadedmetadata",r),n.addEventListener("error",s),e.addEventListener("abort",o),e.aborted&&o()})}function UA(n,e){return!!n&&!!e.turnId&&e.state==="submitted"&&n.turnId!==e.turnId}function FA(n,e){return!n||!e.turnId||e.state!=="stopped"&&e.state!=="interrupted"||n.turnId===e.turnId&&n.state!=="submitted"?null:e.state==="interrupted"?"\u672C\u8F6E\u5DF2\u4E2D\u65AD\uFF0C\u5DF2\u4E3A\u4F60\u6682\u505C":"\u672C\u8F6E\u5DF2\u505C\u6B62\uFF0C\u5DF2\u4E3A\u4F60\u6682\u505C"}var yt=n=>document.getElementById(n),dl=0;function WF(n){let e=n.hooks.status==="ready",t=n.hooks.events.some(s=>s.status==="needs_review");yt("setupTitle").textContent=Ce(t?"\u8BF7\u5BA1\u67E5\u7EA2\u679C\u7684\u56DE\u5408 Hooks":"\u5F00\u59CB\u4F7F\u7528\u7EA2\u679C");let i=[["Node",n.runtime,!0],["\u8FDB\u5EA6\u5E93",n.database?"\u53EF\u5199":"\u4E0D\u53EF\u7528",n.database],["\u64AD\u653E\u7EC4\u4EF6",n.ffmpeg?"\u5C31\u7EEA":"\u51C6\u5907\u4E2D",n.ffmpeg],["\u56DE\u5408\u8054\u52A8",e?"\u5DF2\u914D\u7F6E":n.hooks.status==="unknown"?"\u5F85\u786E\u8BA4":"\u5F85\u914D\u7F6E",e]];yt("setupRows").replaceChildren(...i.map(([s,o,a])=>{let l=document.createElement("div"),c=document.createElement("span"),u=document.createElement("span");return l.className="healthRow "+(a?"ok":"bad"),c.textContent=Ce(s),u.textContent=Ce(o),l.append(tr(a?"check":"alert"),c,u),l}));let r=n.database?n.ffmpeg?e?"\u56DE\u5408\u8054\u52A8\u5DF2\u5C31\u7EEA\u3002\u53EF\u5728\u8BBE\u7F6E\u4E2D\u914D\u7F6E\u4EFB\u52A1\u5F00\u59CB\u81EA\u52A8\u64AD\u653E\u548C\u4EFB\u52A1\u7ED3\u675F\u81EA\u52A8\u6682\u505C\u3002":n.hooks.status==="unknown"?"\u6682\u65F6\u65E0\u6CD5\u8BFB\u53D6 Hooks \u72B6\u6001\uFF0C\u8BF7\u5728\u5BBF\u4E3B\u8BBE\u7F6E\u4E2D\u6838\u5BF9\u3002\u73B0\u5728\u53EF\u4EE5\u5148\u624B\u52A8\u89C2\u770B\u3002":n.hooks.events.some(s=>s.status==="missing")?"\u5C1A\u672A\u53D1\u73B0\u5B8C\u6574\u7684\u56DE\u5408\u4E8B\u4EF6\u3002\u8BF7\u68C0\u67E5\u63D2\u4EF6\u5DF2\u542F\u7528\uFF0C\u5E76\u5728\u65B0\u7684\u672C\u5730\u5BF9\u8BDD\u4E2D\u91CD\u8BD5\u3002":"\u56DE\u5408\u8054\u52A8\u5C1A\u672A\u914D\u7F6E\u3002\u5B8C\u6210\u4E0B\u65B9\u64CD\u4F5C\u540E\u91CD\u65B0\u68C0\u67E5\uFF0C\u4E5F\u53EF\u4EE5\u5148\u624B\u52A8\u89C2\u770B\u3002":"\u64AD\u653E\u7EC4\u4EF6\u5C1A\u672A\u5C31\u7EEA\u3002\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u70B9\u51FB\u300C\u91CD\u65B0\u68C0\u67E5\u300D\uFF0C\u63D2\u4EF6\u4F1A\u81EA\u52A8\u51C6\u5907\u3002":"\u8FDB\u5EA6\u6682\u65F6\u65E0\u6CD5\u4FDD\u5B58\uFF0C\u8BF7\u68C0\u67E5\u7EA2\u679C\u7684\u6570\u636E\u76EE\u5F55\u6743\u9650\u3002";yt("setupHelp").textContent=Ce(r),yt("setupGuide").querySelector(".setupHooks").hidden=e}async function Lf(n=!0){if(zn)return;let e=++dl,t=yt("setupCheck");t.disabled=!0,n&&(yt("setupGuide").hidden=!1,yt("setupRows").replaceChildren(),yt("setupHelp").textContent=Ce("\u6B63\u5728\u68C0\u67E5\u2026"));try{let i=await Ie("get_setup_status");if(e!==dl)return;WF(i);let r=!i.database||!i.ffmpeg||i.hooks.status==="needs_attention";yt("setupGuide").hidden=!(n||r)}catch{if(e!==dl)return;yt("setupGuide").hidden=!n,yt("setupRows").replaceChildren(),yt("setupHelp").textContent=Ce("\u68C0\u67E5\u672A\u5B8C\u6210\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u6216\u5728 Codex \u8BBE\u7F6E \u2192 Hooks \u6838\u5BF9\u56DE\u5408\u8054\u52A8\u3002"),yt("setupGuide").querySelector(".setupHooks").hidden=!1}finally{e===dl&&(t.disabled=!1)}}function zA(n){yt("setupOpen").hidden=zn,yt("setupCheck").onclick=()=>{Lf()},yt("setupDone").onclick=async()=>{++dl;let e=yt("setupDone");e.disabled=!0;try{await Ie("set_setup_dismissed",{dismissed:!0})}catch{n("\u672C\u6B21\u5DF2\u6536\u8D77\u6307\u5357\uFF0C\u6682\u65F6\u65E0\u6CD5\u4FDD\u5B58\u6B64\u8BBE\u7F6E\u3002")}finally{yt("setupGuide").hidden=!0,e.disabled=!1,yt("setupCheck").disabled=!1}},Lf(!1)}function TS(n){return n.episodeId?Ce(n.kind==="next"?"\u770B\u4E0B\u4E00\u96C6":"\u7EE7\u7EED\u89C2\u770B")+" \xB7 "+n.title:n.title}function IS(n,e){return e.aborted?Promise.resolve(!1):new Promise(t=>{let i=new IntersectionObserver(a=>{let l=a[a.length-1];!document.hidden&&l.isIntersecting&&l.intersectionRect.width>0&&l.intersectionRect.height>0&&r(!0)},{threshold:[0,.01]}),r=a=>{i.disconnect(),document.removeEventListener("visibilitychange",o),e.removeEventListener("abort",s),t(a)},s=()=>r(!1),o=()=>{document.hidden||(i.unobserve(n),i.observe(n))};e.addEventListener("abort",s),document.addEventListener("visibilitychange",o),i.observe(n)})}async function kS(n,e,t,i,r,s=!1){let o=i?{turnId:i}:{};if(e.replaceChildren(),n.hidden=!1,!await IS(n,t))return;let{items:a}=await Ie("get_waiting_picks",{...o,inView:!0},9e4);if(!t.aborted){if(!a.length){s?r([]):n.hidden=!0;return}if(r(a),!!await IS(e,t))try{await Ie("mark_waiting_picks_shown",o)}catch{await IS(e,t)&&await Ie("mark_waiting_picks_shown",o).catch(()=>{})}}}function BA(n,e){let t=document.getElementById("waitingCard"),i=document.getElementById("waitingTitles"),r=document.getElementById("waitingMessage"),s=document.getElementById("waitingDismiss"),o=!1,a=!1,l=!1,c=!1,u=!0,d=!1,f=0,h,m,p,g;function y(){++f,m?.abort(),m=void 0,t.hidden=!0,i.replaceChildren(),r.textContent=""}s.onclick=()=>{c=!0,y(),Ie("dismiss_waiting_picks").catch(()=>{})};function b($){!o||c||!u||a||(r.textContent=Ce($ instanceof Error?$.message:"\u5F53\u524D Codex \u65E0\u6CD5\u5728\u4F1A\u8BDD\u4E2D\u6253\u5F00\u64AD\u653E\u5668"),t.hidden=!1)}async function S($=!1){if(!o)return;let P=Rf()||"inline";if(!$&&P===h)return;h=P;let k=++f;m?.abort();let D=m=new AbortController;if(P==="fullscreen"){if(a)return;let V=await(p??=Ie("activate_waiting_player"));if(k!==f)return;a=!0,t.hidden=!0,document.documentElement.dataset.surface="player",n(V);return}else p=void 0,a&&(a=!1,e(),document.documentElement.dataset.surface="waiting");if(c){y();return}let U=await Ie("get_waiting_status");if(k===f){if(u=U.visible,!u){y();return}r.textContent="",await kS(t,i,D.signal,void 0,V=>{let X=V.map(z=>{let B=document.createElement("button");return B.type="button",B.textContent=TS(z),B.onclick=()=>{x(z)},B}),q=document.createElement("button");q.type="button",q.textContent=Ce("\u66F4\u591A\u2026"),q.onclick=()=>{x()},i.replaceChildren(...X,q)},!0).catch(V=>{D.signal.aborted||b(V)})}}async function x($){if(!l){l=!0,r.textContent="";try{$?await Ie("select_waiting_pick",{seriesId:$.id}):await Ie("browse_waiting_catalog"),Rf()==="fullscreen"?await S(!0):(await CA(),t.hidden=!0)}catch(P){b(P),P instanceof Error&&P.message==="\u8FD9\u6761\u63A8\u8350\u5DF2\u7ED3\u675F"&&y()}finally{l=!1}}}async function _(){if(!(!o||a||l||c||document.hidden||d)){d=!0;try{let $=await Ie("get_waiting_status");if(!o||a||l||c)return;$.visible!==u&&(u=$.visible,u?await S(!0):y())}catch{!a&&!l&&(u=!1,y())}finally{d=!1}}}let I=()=>{S().catch(b)},T=()=>{!document.hidden&&o&&!a&&!c&&S(!0).catch(b)};return{connected(){o||(o=!0,g=setInterval(()=>{_()},1e3),document.addEventListener("visibilitychange",T),I())},modeChanged:I,dispose(){o=!1,clearInterval(g),document.removeEventListener("visibilitychange",T),y()}}}var F=n=>document.getElementById(n),ee=document.querySelector("video"),Wr=F("seek"),AS=F("play"),Cf=F("center"),Hi=F("autonext"),Bn=(n,e)=>{F(n).textContent=n==="title"?e:Ce(e)},Ye=n=>Bn("notice",n),$t=n=>n instanceof Error?n.message:"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5",to=n=>Math.floor(n/60)+":"+String(Math.floor(n%60)).padStart(2,"0"),YF=n=>new Promise(e=>setTimeout(e,n));function An(n,e){let t=document.createElement("button");return t.textContent=Ce(n),t.onclick=()=>{Promise.resolve(e()).catch(i=>Ye($t(i)))},t}var gr={identified:!1},qt=null,ct=null,nt=null,qe=[],kt,pl="",kn,bt=[],$n=!1,lt=0,Xn=0,Gi=0,Qn=!1,Ot=!1,$S,wS=0,qr=Promise.resolve(),Wt={autoPrompt:!0,autoplayNext:!0,autoPauseOnFinish:!0,autoPlayOnStart:!0,searchTerms:["\u603B\u88C1","\u91CD\u751F","\u9006\u88AD"]},dn="idle",Yr,PS,fl,eo=0,hl=0,vr=[],Of=null,KA=document.documentElement.dataset.surface==="waiting",HA=Array.from(crypto.getRandomValues(new Uint32Array(4)),n=>n.toString(16).padStart(8,"0")).join(""),ml=!1,ZA,jA=null,VA,RS;function Mf(){let n=RS;RS=void 0,n&&Ie("confirm_waiting_playback",{playbackId:n},1800).catch(()=>{})}function Zi(){AS.disabled=Cf.disabled=!nt?.playable,F("pair").disabled=!nt;let n=Ce(Qn?"\u53D6\u6D88\u51C6\u5907":ee.paused?"\u64AD\u653E":"\u6682\u505C"),e=Qn?"x":ee.paused?"play":"pause";io(AS,e,n),io(Cf,e,n),F("stage").classList.toggle("playing",!ee.paused),F("stage").classList.toggle("busy",Qn),F("prev").disabled=!nt||!qe.slice(0,qe.indexOf(nt)).some(t=>t.playable),F("next").disabled=!nt||!kt&&!qe.slice(qe.indexOf(nt)+1).some(t=>t.playable),Cf.hidden=Qn,document.querySelectorAll("#episodes button").forEach(t=>t.setAttribute("aria-pressed",String(t.dataset.id===nt?.id)))}function Wi(n=!1){if(!$n||!ct||!nt||!Number.isFinite(ee.duration)||!ee.duration||!ee.currentTime&&!n)return qr;let e={seriesId:ct.id,episodeId:nt.id,title:ct.title,label:nt.label,positionMs:Math.round((dn==="finished"||ee.ended?ee.duration:ee.currentTime)*1e3),durationMs:Math.round(ee.duration*1e3)};return qr=qr.then(()=>Ie("save_progress",{...e,...n&&e.positionMs===0?{reset:!0}:{}},1800)).then(()=>{}).catch(()=>Ye("\u89C2\u770B\u8FDB\u5EA6\u6682\u672A\u5199\u5165\uFF0C\u8BF7\u68C0\u67E5\u672C\u673A\u670D\u52A1")),qr}function un(n=""){n==="\u5DF2\u624B\u52A8\u6682\u505C"&&Mf(),lt++,Yr=void 0,Qn=!1,dn!=="finished"&&(dn="idle"),ee.pause(),Zi();let e=!!ct&&/本轮已停止|本轮已中断/.test(n);return n&&Ye(e?"":n),F("stopped").hidden=!e,e&&Bn("whyStopped",n),Wi()}function Jr(){$n=!1,dn="idle",fl?.abort(),fl=void 0,F("stopped").hidden=!0,F("resumed").hidden=!0,PS?.(),PS=void 0,ee.removeAttribute("src"),ee.load()}function qA(n){un(),Jr(),F("link").hidden=!0,F("linkValue").value="",nt=n,eo=Math.floor(Math.max(0,qe.indexOf(n))/50),Ye("");let e="\u7B2C "+n.number+" \u96C6",t=n.label.replace(/\s/g,"")!=="\u7B2C"+n.number+"\u96C6";Bn("subtitle",[e,t?n.label:"",n.codec].filter(Boolean).join(" \xB7 ")),Bn("time","0:00"),Wr.value="0",Yi(Wr),Zi(),n.playable||Ye("\u8BE5\u96C6\u5F53\u524D\u4E0D\u53EF\u64AD\u653E\uFF0C\u8BF7\u68C0\u67E5\u7247\u6E90\u8BB8\u53EF\u6216 FFmpeg \u81EA\u68C0\u7ED3\u679C")}function gl(){let n=Math.ceil(qe.length/50);F("groups").replaceChildren(...Array.from({length:n>1?n:0},(e,t)=>{let i=An(qe[t*50].number+"\u2013"+qe[Math.min(qe.length,(t+1)*50)-1].number,()=>{eo=t,gl()});return i.setAttribute("aria-pressed",String(t===eo)),i})),F("episodes").replaceChildren(...qe.slice(eo*50,(eo+1)*50).map(e=>{let t=An(String(e.number),()=>Uf(e));return t.disabled=!e.playable,t.title=e.label,t.dataset.id=e.id,t})),F("moreEpisodes").hidden=!kt,F("episodeCount").textContent=qe.length?Ce(qe.length+(kt?"+":"")+" \u96C6"):"",Zi()}async function no(n,e,t=!1,i){let r=i&&e;F("home").hidden=!0,F("watch").hidden=!1,F("back").focus({preventScroll:!0}),window.scrollTo(0,0),eo=0;let s=++Xn;un();let o=lt;Jr(),nt=null,qe=[],kt=void 0,ct=n,qi(),ee.poster=n.cover||"",Bn("title",n.title),Bn("subtitle","\u6B63\u5728\u8BFB\u53D6\u5206\u96C6\u2026"),gl(),JA(),await qr;let[a,l]=await Promise.all([Ie("get_episodes",{seriesId:n.id}),Ie("get_history",{seriesId:n.id})]);e??=l.items[0]?.episodeId;let c=a;if(s!==Xn)return;qe=c.items||[],kt=c.cursor;let u=new Set;for(;e&&!qe.some(h=>h.id===e)&&kt&&!u.has(kt);){if(u.add(kt),c=await Ie("get_episodes",{seriesId:n.id,cursor:kt}),s!==Xn)return;qe.push(...c.items),kt=c.cursor}let d=e&&qe.find(h=>h.id===e&&(!t||h.playable))||!r&&(t&&qe.find(h=>h.playable)||qe[0]),f=t&<===o&&Ot;d?qA(d):Bn("subtitle","\u6682\u65E0\u53EF\u7528\u5206\u96C6"),gl(),f&&d&&s===Xn&&await vl(i)}async function Uf(n){qA(n),gl(),await vl()}async function WA(){if(!ct||!kt)return;let n=Xn,e=kt;try{let t=await Ie("get_episodes",{seriesId:ct.id,cursor:e});if(n!==Xn||e!==kt)return;qe.push(...t.items),kt=t.cursor===e?void 0:t.cursor,gl()}catch(t){Ye($t(t))}}F("moreEpisodes").onclick=WA;async function YA(n=!1){if(!nt)return;let e=nt.id,t=Xn,i=lt,r=qe.slice(qe.indexOf(nt)+1).find(o=>o.playable),s=new Set;for(;!r&&kt&&!s.has(kt);){if(s.add(kt),await WA(),Xn!==t||nt?.id!==e||lt!==i)return;r=qe.slice(qe.indexOf(nt)+1).find(o=>o.playable)}!Ot||n&&!Hi.checked||(r?await Uf(r):n&&un("\u672C\u96C6\u5DF2\u64AD\u5B8C"))}F("prev").onclick=()=>{let n=qe.slice(0,qe.indexOf(nt)).reverse().find(e=>e.playable);n&&Uf(n)};F("next").onclick=()=>{YA()};F("random").onclick=()=>{let n=qe.filter(r=>r.playable),e=vr.find(r=>r.seriesId===ct?.id),t=e?n.findIndex(r=>r.id===e.episodeId):-1,i=t<0?n.slice(0,1):n.slice(Math.min(t+1,n.length-1));i.length&&Uf(i[Math.floor(Math.random()*i.length)])};async function JF(){Mf(),document.fullscreenElement&&await document.exitFullscreen(),F("stage").classList.remove("expanded"),Nf(),Ye(""),++Xn;let n=un();Jr(),nt=null,ct=null,qe=[],kt=void 0,F("home").hidden=!1,F("watch").hidden=!0,F("link").hidden=!0,bt.length?Ki():Xr(),await n,await Ff(),!ct&&bt.length&&Ki()}F("back").onclick=()=>{JF().catch(n=>Ye($t(n)))};function JA(){document.querySelectorAll(".card").forEach(n=>n.setAttribute("aria-pressed",String(n.dataset.id===ct?.id)))}function Ki(){let n=[],e=new Set(vr.map(o=>o.seriesId)),t=pl?void 0:bt.find(o=>!e.has(o.id))||bt[0],i=bt.filter(o=>o!==t),r=ew();if(r&&n.push(r),F("featured").replaceChildren(),t){let o=An("",()=>no(t,void 0,!0)),a=bl(t.title,t.episodes?Ce(t.episodes+" \u96C6"):""),l=document.createElement("span"),c=document.createElement("small"),u=document.createElement("strong"),d=document.createElement("span");if(o.className="feature",o.dataset.id=t.id,o.setAttribute("aria-label",Ce("\u64AD\u653E")+" \xB7 "+t.title),l.className="featureText",c.className="eyebrow",c.textContent=Ce(e.has(t.id)?"\u770B\u8FC7":"\u63A8\u8350"),u.textContent=t.title,l.append(c,u),t.description){let f=document.createElement("span");f.className="desc",f.textContent=t.description,l.append(f)}d.className="playPill",d.append(tr("play"),Ce("\u64AD\u653E")),l.append(d),o.append(a,l),F("featured").append(o),n.push({span:a,s:t})}qi(),F("cards").replaceChildren(...i.slice(hl*12,(hl+1)*12).map(o=>{let a=An("",()=>no(o,void 0,!0));a.className="card",a.dataset.id=o.id,a.title=o.title;let l=bl(o.title,o.episodes?Ce(o.episodes+" \u96C6"):""),c=document.createElement("span");return c.className="cardTitle",c.textContent=o.title,a.append(l,c),n.push({span:l,s:o}),a})),JA();let s=Gi;(async()=>{for(let{span:o,s:a}of n){if(s!==Gi)return;if(!a.cover&&(a.hasCover||a.lookupCover))try{a.cover=(await Ie("get_cover",{seriesId:a.id},9e3)).cover}catch{}a.cover&&(FS(o,a.cover),ct?.id===a.id&&(ee.poster=a.cover))}})()}function qi(){let e=Wt.autoPrompt&&!!qt?.turnId&&qt.state==="submitted"&&!ct&&!pl&&bt.length>0&&Of!==qt.turnId?qt.turnId:null;if(e===jA)return;jA=e,VA?.abort();let t=F("prompt"),i=F("picks");if(!e){t.hidden=!0;return}let r=VA=new AbortController;kS(t,i,r.signal,e,s=>{i.replaceChildren(...s.map(o=>An(TS(o),()=>(Ie("mark_waiting_picks_shown",{turnId:e}).catch(()=>{}),no(bt.find(a=>a.id===o.id)??o,o.episodeId,!0,e)))),An("\u66F4\u591A\u2026",()=>{XA(),F("query").focus()}))}).catch(()=>{r.signal.aborted||(t.hidden=!0)})}function XA(){Of=qt?.turnId||null,Of&&Ie("dismiss_waiting_picks",{turnId:Of}).catch(()=>{}),qi()}F("dismiss").onclick=XA;function Qs(n,e=""){let t=F("catalogStatus"),i=F("cards"),r=F("query");if(t.dataset.state=n==="loading"&&bt.length?"busy":n,t.replaceChildren(),e){let s=document.createElement("span");s.textContent=Ce(e),t.append(s)}t.dataset.state==="busy"&&t.prepend(tr("spin")),n==="error"&&t.append(An("\u91CD\u8BD5",()=>Xr())),n==="empty"&&pl&&t.append(An("\u6E05\u9664\u641C\u7D22",()=>(r.value="",Xr(!1,"")))),t.querySelectorAll("button").forEach(s=>s.className="btn"),n==="loading"&&!bt.length?i.replaceChildren(...Array.from({length:6},()=>{let s=document.createElement("div"),o=document.createElement("span"),a=document.createElement("span");return s.className="skel",s.setAttribute("aria-hidden","true"),o.className="skelArt",a.className="skelLine",s.append(o,a),s})):i.querySelector(".skel")&&i.replaceChildren()}async function Xr(n=!1,e=pl){let t=++Gi;n||(pl=e,bt=[],kn=void 0,hl=0,Ki());let i=n?hl+1:0;F("more").hidden=!0,Qs("loading","\u6B63\u5728\u8BFB\u53D6\u7247\u5E93\u2026");let r=n?[...bt]:[],s=!1;!n&&!e&&Ie("list_series",{preview:!0},9e4).then(o=>{t!==Gi||s||!o.items.length||(bt=o.items,Ki(),F("catalogStatus").dataset.state!=="error"&&Qs(""),F("more").hidden=bt.length<=13)}).catch(()=>{});try{let o=new Set,a=(i+1)*12+(e?0:1),l=!n;for(;l||r.length<a&&kn&&!o.has(kn);){l=!1,kn&&o.add(kn);let u=await Ie("list_series",{query:e,cursor:kn},9e4);if(t!==Gi)return;let d=new Set(r.map(f=>f.id));for(let f of u.items)d.has(f.id)||(d.add(f.id),r.push(f));kn=u.cursor,kn&&o.has(kn)&&(kn=void 0)}s=r.length>0,s&&(bt=r);let c=Math.max(1,Math.ceil((bt.length-(e?0:1))/12));if(n&&i>=c&&!kn&&!e){await Xr();return}hl=i%c,Ki(),bt.length?Qs(""):e?Qs("empty","\u6CA1\u6709\u627E\u5230\u76F8\u7B26\u7684\u5267\u76EE"):Qs("error","\u7EA2\u679C\u6682\u65F6\u6CA1\u6709\u8FD4\u56DE\u63A8\u8350\u5267\u76EE"),F("more").hidden=c<=1&&!kn}catch(o){t===Gi&&(Qs("error",$t(o)),F("more").hidden=!n)}}async function Ff(){vr=(await Ie("get_history")).items,ew(),F("history").replaceChildren(...vr.map(n=>{let e=document.createElement("div"),t=document.createElement("strong"),i=document.createElement("small");e.className="historyRow";let r=An("",()=>QA(n));r.className="historyItem",t.textContent=n.title,i.textContent=n.label+" \xB7 "+to(n.positionMs/1e3),r.append(t,i);let s=An("",async()=>{await qr,await Ie("remove_history",{seriesId:n.seriesId}),await Ff(),Ki()}),o=Ce("\u79FB\u9664 "+n.title+" \u7684\u89C2\u770B\u5386\u53F2");return s.className="icon sm",s.setAttribute("aria-label",o),s.title=o,s.append(tr("x")),e.append(r,s),e})),F("historyCount").textContent=vr.length?String(vr.length):"",F("resume").hidden=!vr.length}function QA(n){return no(bt.find(e=>e.id===n.seriesId)||{id:n.seriesId,title:n.title},n.episodeId,!0)}function ew(){let n=vr[0];if(!n){F("continue").replaceChildren();return}let e=bt.find(f=>f.id===n.seriesId)||{id:n.seriesId,title:n.title},t=An("",()=>QA(n)),i=bl(n.title),r=document.createElement("span"),s=document.createElement("small"),o=document.createElement("strong"),a=document.createElement("span"),l=document.createElement("span"),c=document.createElement("i"),u=document.createElement("span"),d=n.durationMs?Math.min(1,n.positionMs/n.durationMs):0;return t.className="resumeCard",t.setAttribute("aria-label",Ce("\u7EE7\u7EED\u89C2\u770B \xB7 "+n.title+" \xB7 "+n.label)),r.className="resumeText",s.className="eyebrow",s.textContent=Ce("\u7EE7\u7EED\u89C2\u770B"),o.textContent=n.title,a.className="meta",a.textContent=n.label+" \xB7 "+to(n.positionMs/1e3)+(n.durationMs?" / "+to(n.durationMs/1e3):""),l.className="bar",c.style.setProperty("--p",(d*100).toFixed(1)+"%"),l.append(c),r.append(s,o,a,l),u.className="resumePlay",u.append(tr("play")),t.append(i,r,u),F("continue").replaceChildren(t),{span:i,s:e}}function tw(){let n=qt?.state==="submitted";F("lamp").classList.toggle("on",n),Bn("state",!gr.identified&&zn?"\u672A\u5173\u8054\u5BF9\u8BDD":!qt||qt.state==="unknown"?"\u7B49\u5F85\u56DE\u5408\u5F00\u59CB":n?"\u5F53\u524D\u56DE\u5408\u8FDB\u884C\u4E2D":qt.state==="interrupted"?"\u56DE\u5408\u5DF2\u4E2D\u65AD":"\u56DE\u5408\u5DF2\u505C\u6B62")}function zf(){return Ot?($S??=XF().finally(()=>{$S=void 0}),$S):Promise.resolve()}async function XF(){try{let n=await Ie("get_run_state",{observeSession:!0,playerInstance:document.hidden?void 0:HA},1800);if(!Ot)return;if(n.preferences){let r=Wt.autoPrompt!==n.preferences.autoPrompt;Wt=n.preferences,Hi.checked=Wt.autoplayNext,r&&qi()}let e=FA(qt,n),t=UA(qt,n),i=qt?.state!==n.state||qt?.turnId!==n.turnId;qt=n,i&&qi(),tw(),e&&ct&&Wt.autoPauseOnFinish?un(e):t&&Wt.autoPlayOnStart&&ct&&nt?.playable&&ee.paused&&!Qn&&vl(n.turnId,!0)}catch{if(!Ot)return;F("lamp").classList.remove("on"),Bn("state","\u672C\u673A\u72B6\u6001\u4E0D\u53EF\u8FBE")}}function QF(){let n=ee.duration;!Number.isFinite(n)||!$n||(Wr.value=String(Math.round(ee.currentTime/n*1e3)),Yi(Wr),Bn("time",to(ee.currentTime)+" / "+to(n)))}async function vl(n,e=!1){if(!nt?.playable||!ct||!Ot)return;let t=++lt,i=nt,r=ct;Qn=!0,Zi(),F("stopped").hidden=!0;try{if(!$n){Ye("\u6B63\u5728\u51C6\u5907\u64AD\u653E\u2026");let s=await Ie("prepare_playback",{episodeId:i.id,retry:!0}),o=Date.now()+24e4;for(;s.status==="preparing"&&t===lt&&Date.now()<o;){if(Ye("\u6B63\u5728\u672C\u673A\u51C6\u5907\u6574\u96C6\u2026"),await YF(700),t!==lt)return;s=await Ie("prepare_playback",{episodeId:i.id})}if(t!==lt)return;if(s.status!=="ready")throw Error(s.reason||"\u51C6\u5907\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5");let a=s;if(zn!=="src"in a)throw Error("\u672C\u96C6\u64AD\u653E\u5730\u5740\u5DF2\u5931\u6548\uFF0C\u8BF7\u91CD\u8BD5");await qr;let l=await Ie("get_history",{seriesId:r.id,episodeId:i.id});if(t!==lt)return;Jr();let c=new AbortController;fl=c;let u=MA(ee,c.signal),d=m=>{fl===c&&(c.abort(Error(m)),$n&&(un(m),Jr()))};try{"stream"in a?PS=NA(ee,i.id,a.stream,a.manifest,d,()=>{fl===c&&nw()}):(ee.src=a.src,ee.load())}catch(m){d($t(m))}if(await u,t!==lt)return;let f=l.items[0],h=f&&f.positionMs<f.durationMs?f.positionMs/1e3:0;ee.currentTime=h>0&&h<ee.duration-5?h:0,ee.currentTime>0&&(Bn("resumeTime","\u5DF2\u4ECE "+to(h)+" \u7EE7\u7EED"),F("resumed").hidden=!1),$n=!0}if(n){let s=await Ie("get_run_state",{observeSession:!0},1800);if(t!==lt)return;if(s.turnId!==n||s.state!=="submitted"||e&&!s.preferences?.autoPlayOnStart){un(e?"":"\u8FD9\u6761\u63A8\u8350\u5DF2\u7ED3\u675F");return}}if(t!==lt||!Ot)return;Qn=!1,dn==="finished"&&(ee.currentTime=0),dn="playing",ee.playbackRate=parseFloat(F("speed").value);try{await ee.play()}catch(s){if(t!==lt||!Ot)return;if(!(s instanceof DOMException&&["AbortError","NotAllowedError"].includes(s.name))||!document.hidden&&document.hasFocus()&&Yr?.action!==t)throw s;jf();return}t===lt&&(Mf(),Ye("\u6B63\u5728\u64AD\u653E"),wS=Date.now(),Zi())}catch(s){t===lt&&($n||Jr(),un($t(s)))}}function ez(){!ee.paused||Qn?un("\u5DF2\u624B\u52A8\u6682\u505C"):vl()}for(let n of[ee,Cf,AS,F("resumePlayback")])n.addEventListener("click",ez);function nw(){!$n||dn!=="playing"||!Number.isFinite(ee.duration)||ee.currentTime<ee.duration-1||(dn="finished",Wi(),Hi.checked&&Ot?YA(!0).catch(n=>Ye($t(n))):un("\u672C\u96C6\u5DF2\u64AD\u5B8C"),qr.then(Ff).catch(()=>{}))}ee.onended=nw;Hi.onchange=()=>{Ie("set_preferences",{autoplayNext:Hi.checked}).then(n=>{Wt=n}).catch(n=>Ye($t(n)))};ee.ontimeupdate=()=>{QF(),!ee.paused&&Date.now()-wS>=5e3&&(wS=Date.now(),Wi())};ee.onpause=()=>{Zi(),$n&&Wi(),(document.hidden||!document.hasFocus()||Yr?.action===lt)&&jf()};ee.onplay=Zi;ee.onplaying=Mf;ee.onerror=()=>{$n&&(un(ES(ee.error?.code)),Jr())};Wr.oninput=()=>{Yi(Wr),$n&&Number.isFinite(ee.duration)&&(dn==="finished"&&(dn="idle"),ee.currentTime=Number(Wr.value)*ee.duration/1e3)};Wr.onchange=()=>{Wi(ee.currentTime===0)};ee.onloadedmetadata=()=>{ee.videoWidth&&ee.videoHeight&&(F("stage").style.aspectRatio=ee.videoWidth+"/"+ee.videoHeight)};F("restart").onclick=()=>{dn==="finished"&&(dn="idle"),ee.currentTime=0,F("resumed").hidden=!0,Wi(!0)};F("mute").onclick=()=>{ee.volume===0?(ee.volume=.7,ee.muted=!1):ee.muted=!ee.muted};async function rw(){let n=F("stage");if(document.fullscreenElement){await document.exitFullscreen();return}if(n.classList.contains("expanded")){n.classList.remove("expanded"),Nf();return}try{await n.requestFullscreen()}catch{n.classList.add("expanded"),Nf()}}F("fullscreen").onclick=()=>{rw().catch(n=>Ye($t(n)))};document.addEventListener("fullscreenchange",Nf);function Nf(){let n=F("stage"),e=!!document.fullscreenElement||n.classList.contains("expanded");n.classList.toggle("isFull",e),io(F("fullscreen"),e?"collapse":"expand",Ce(e?"\u9000\u51FA\u5168\u5C4F":"\u5168\u5C4F"))}var GA;F("stage").addEventListener("pointermove",()=>{let n=F("stage");n.classList.add("awake"),clearTimeout(GA),GA=setTimeout(()=>n.classList.remove("awake"),2400)});F("stage").addEventListener("pointerleave",()=>F("stage").classList.remove("awake"));document.addEventListener("keydown",n=>{n.key==="Escape"&&F("stage").classList.contains("expanded")&&rw()});var ro=F("volume");ee.onvolumechange=()=>{let n=ee.muted||ee.volume===0;io(F("mute"),n?"mute":"volume",Ce(n?"\u53D6\u6D88\u9759\u97F3":"\u9759\u97F3")),F("mute").setAttribute("aria-pressed",String(n)),ro.value=String(Math.round(ee.volume*100)),Yi(ro)};ee.volume=Number(ro.value)/100;Yi(ro);ro.oninput=()=>{ee.volume=Number(ro.value)/100,ee.muted=ee.volume===0};F("speed").onchange=n=>ee.playbackRate=parseFloat(n.target.value);var yl=F("query"),LS,Bf=!1;function DS(){clearTimeout(LS),Bf||Xr(!1,yl.value.trim())}function CS(){clearTimeout(LS),++Gi,!Bf&&(yl.value.trim()?LS=setTimeout(DS,400):DS())}yl.addEventListener("input",CS);yl.addEventListener("compositionstart",()=>{Bf=!0,CS()});yl.addEventListener("compositionend",()=>{Bf=!1,CS()});F("search").onsubmit=n=>{n.preventDefault(),DS()};F("more").onclick=()=>{Xr(!0)};async function tz(){let n=ct,e=nt;if(!(!n||!e))try{await un();let t=await Ie("create_browser_pairing",{seriesId:n.id,episodeId:e.id,title:n.title});if(ct!==n||nt!==e)return;F("linkValue").value=t.url,F("link").hidden=!1,F("link").scrollIntoView({block:"nearest"}),setTimeout(()=>{F("linkValue").value===t.url&&(F("link").hidden=!0,F("linkValue").value="")},6e4)}catch(t){Ye($t(t))}}F("pair").onclick=tz;F("copy").onclick=async()=>{let n=F("linkValue");try{await navigator.clipboard.writeText(n.value),Ye("\u5DF2\u590D\u5236\uFF0C\u8BF7\u5728 Codex \u5185\u7F6E\u6D4F\u89C8\u5668\u6253\u5F00")}catch{n.select(),Ye("\u94FE\u63A5\u5DF2\u9009\u4E2D\uFF0C\u8BF7\u590D\u5236\u5E76\u5728 Codex \u5185\u7F6E\u6D4F\u89C8\u5668\u6253\u5F00")}};F("settingsCancel").onclick=()=>F("prefs").click();F("setupOpen").onclick=()=>{F("settings").hidden=!0,F("prefs").setAttribute("aria-expanded","false"),Lf()};F("prefs").onclick=()=>{F("settings").hidden=!F("settings").hidden,F("prefs").setAttribute("aria-expanded",String(!F("settings").hidden)),F("autoPrompt").checked=Wt.autoPrompt,F("autoPauseOnFinish").checked=Wt.autoPauseOnFinish,F("autoPlayOnStart").checked=Wt.autoPlayOnStart,F("terms").value=Wt.searchTerms.join("\uFF0C")};F("settings").onsubmit=n=>{n.preventDefault();let e=F("terms").value.split(/[,,]/).map(t=>t.trim()).filter(Boolean);Ie("set_preferences",{autoPrompt:F("autoPrompt").checked,autoPauseOnFinish:F("autoPauseOnFinish").checked,autoPlayOnStart:F("autoPlayOnStart").checked,searchTerms:e}).then(async t=>{Wt=t,Hi.checked=Wt.autoplayNext,F("settings").hidden=!0,F("prefs").setAttribute("aria-expanded","false"),qi(),ct||await Xr()}).catch(t=>Ye($t(t)))};F("health").onclick=async()=>{let n=F("healthInfo");if(n.hidden=!n.hidden,F("health").setAttribute("aria-expanded",String(!n.hidden)),!n.hidden){n.textContent=Ce("\u6B63\u5728\u68C0\u67E5\u2026");try{let e=await Ie("get_health"),t=[["Node",e.runtime,!0],["\u8FDB\u5EA6\u5E93",e.database?"\u53EF\u5199":"\u4E0D\u53EF\u7528",e.database],["\u64AD\u653E\u7EC4\u4EF6",e.ffmpeg?"\u5C31\u7EEA":"\u51C6\u5907\u4E2D",e.ffmpeg]];n.replaceChildren(...t.map(([i,r,s])=>{let o=document.createElement("div"),a=document.createElement("span"),l=document.createElement("span");return o.className="healthRow "+(s?"ok":"bad"),a.textContent=Ce(i),l.textContent=Ce(r),o.append(tr(s?"check":"alert"),a,l),o}))}catch(e){n.textContent=$t(e)}}};F("choose").onclick=async()=>{try{let n=await Ie("list_sessions");F("choices").replaceChildren(...n.items.map(e=>An("\u2026"+e.suffix+" \xB7 "+new Date(e.at).toLocaleString(),async()=>{await Ie("select_session",{choice:e.choice}),gr.identified=!0,OS(Ot&&!document.hidden),F("choose").hidden=!0,F("choices").replaceChildren(),await zf()}))),n.items.length||Ye("\u8FD8\u6CA1\u6709\u672C\u673A\u56DE\u5408\u8BB0\u5F55\uFF0C\u53EF\u5148\u624B\u52A8\u89C2\u770B")}catch(n){Ye($t(n))}};function OS(n){return gr.identified?Ie("set_player_visible",{instance:HA,visible:n},1800).catch(()=>{}):Promise.resolve()}async function iw(){Ot&&(Ot=!1,await Promise.all([un("\u5DF2\u6682\u505C\uFF0C\u70B9\u51FB\u64AD\u653E\u7EE7\u7EED"),OS(!1)]))}function sw(n){if(n.action!==lt||!Ot||!$n||dn!=="playing"||!ee.paused||ee.ended||ee.error)return;let e=ee.currentTime;n.lastPosition!==void 0&&Math.abs(e-n.lastPosition)<.25||(n.lastPosition=e,ee.play().then(()=>{n.action===lt&&!ee.paused&&Ye("\u6B63\u5728\u64AD\u653E")}).catch(()=>{}))}function jf(){!Ot||dn!=="playing"||(Yr?.action!==lt&&(Yr={action:lt}),sw(Yr))}function ow(){let n=Yr;n&&(Yr=void 0,zf().then(()=>sw({action:n.action})))}function aw(){Ot&&(OS(!document.hidden),document.hidden?(jf(),Wi()):ow(),zf())}function lw(){!ml||Ot||(Ot=!0,aw())}document.addEventListener("visibilitychange",aw);window.addEventListener("blur",jf);window.addEventListener("focus",ow);window.addEventListener("pagehide",()=>{iw()});window.addEventListener("pageshow",lw);async function cw(n){if(ml)return;if(ml=!0,RS=n?.play?n.playbackId:void 0,navigator.mediaSession&&(navigator.mediaSession.setActionHandler("pause",()=>{un("\u5DF2\u624B\u52A8\u6682\u505C")}),navigator.mediaSession.setActionHandler("play",()=>{ee.paused&&!Qn&&vl()})),ZA=window.setInterval(()=>{zf()},1e3),F("pair").hidden=zn||KA,F("choose").hidden=zn||gr.identified,qt=null,tw(),lw(),zA(Ye),Ie("get_preferences").then(t=>{ml&&(Wt=t,Hi.checked=Wt.autoplayNext??!0,qi())}).catch(t=>Ye($t(t))),n?.pick){let t=n.pick;await no(t,t.episodeId,n.play,n.turnId);return}F("home").hidden=!1,F("watch").hidden=!0;let e=Xr();Ff().then(()=>{!ct&&vr.length&&bt.length&&Ki()}).catch(t=>Ye($t(t))),gr.selection&&await no({id:gr.selection.seriesId,title:gr.selection.title||"\u7EA2\u679C\u77ED\u5267"},gr.selection.episodeId),await e}function uw(){let n=iw();return ml=!1,navigator.mediaSession&&(navigator.mediaSession.setActionHandler("pause",null),navigator.mediaSession.setActionHandler("play",null)),window.clearInterval(ZA),++Xn,Jr(),n}var Df=KA?BA(n=>{cw(n).catch(e=>Ye($t(e)))},uw):null;OA(n=>{MS(DA()),gr=n,Df?n.waitingTurn&&Df.connected():cw().catch(e=>Ye($t(e)))},async()=>{Df?.dispose(),await uw()},()=>Df?.modeChanged()).catch(n=>Ye($t(n)));})();
|
|
2063
|
+
container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:E.string().optional().describe("User's language and region preference in BCP 47 format."),timeZone:E.string().optional().describe("User's timezone in IANA format."),userAgent:E.string().optional().describe("Host application identifier."),platform:E.union([E.literal("web"),E.literal("desktop"),E.literal("mobile")]).optional().describe("Platform type for responsive design decisions."),deviceCapabilities:E.object({touch:E.boolean().optional().describe("Whether the device supports touch input."),hover:E.boolean().optional().describe("Whether the device supports hover interactions.")}).optional().describe("Device input capabilities."),safeAreaInsets:E.object({top:E.number().describe("Top safe area inset in pixels."),right:E.number().describe("Right safe area inset in pixels."),bottom:E.number().describe("Bottom safe area inset in pixels."),left:E.number().describe("Left safe area inset in pixels.")}).optional().describe("Mobile safe area boundaries in pixels.")}).passthrough(),KF=E.object({method:E.literal("ui/notifications/host-context-changed"),params:kA.describe("Partial context update containing only changed fields.")}),h3=E.object({method:E.literal("ui/update-model-context"),params:E.object({content:E.array(Js).optional().describe("Context content blocks (text, image, etc.)."),structuredContent:E.record(E.string(),E.unknown().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.")})}),m3=E.object({method:E.literal("ui/initialize"),params:E.object({appInfo:rl.describe("App identification (name and version)."),appCapabilities:BF.describe("Features and capabilities this app provides."),protocolVersion:E.string().describe("Protocol version this app supports.")})}),HF=E.object({protocolVersion:E.string().describe('Negotiated protocol version string (e.g., "2025-11-21").'),hostInfo:rl.describe("Host application identification and version."),hostCapabilities:zF.describe("Features and capabilities provided by the host."),hostContext:kA.describe("Rich context about the host environment.")}).passthrough(),ZF={target:"draft-2020-12"};async function IA(n,e){let t=n["~standard"];if(t.jsonSchema)return t.jsonSchema[e](ZF);if(t.vendor==="zod"){let{z:i}=await Promise.resolve().then(()=>(Qa(),Wb));return i.toJSONSchema(n,{io:e})}throw Error(`Schema (vendor: ${t.vendor}) does not implement Standard JSON Schema (~standard.jsonSchema). Use a library that does (zod v4, ArkType, Valibot) or wrap your schema accordingly.`)}async function TA(n,e,t=""){let i=await n["~standard"].validate(e);if(i.issues){let r=i.issues.map(s=>{let o=s.path?.map(a=>typeof a=="object"?a.key:a).join(".");return o?`${o}: ${s.message}`:s.message}).join("; ");throw Error(t+r)}return i.value}function $A(n){let e=document.documentElement;e.setAttribute("data-theme",n),e.style.colorScheme=n}function AA(n,e=document.documentElement){for(let[t,i]of Object.entries(n))i!==void 0&&e.style.setProperty(t,i)}var Pf=class n extends gS{_appInfo;_capabilities;options;_hostCapabilities;_hostInfo;_hostContext;_registeredTools={};_initializedSent=!1;_assertInitialized(e){if(this._initializedSent)return;let t=`[ext-apps] App.${e}() called before connect() completed the ui/initialize handshake. Await app.connect() before calling this method, or move data loading to an ontoolresult handler.`;if(this.options?.strict)throw Error(t);console.warn(`${t}. This will throw in a future release.`)}eventSchemas={toolinput:CF,toolinputpartial:OF,toolresult:GF,toolcancelled:NF,hostcontextchanged:KF};static ONE_SHOT_EVENTS=new Set(["toolinput","toolinputpartial","toolresult","toolcancelled"]);_everHadListener=new Set;_assertHandlerTiming(e){if(!n.ONE_SHOT_EVENTS.has(e)||this._everHadListener.has(e)||(this._everHadListener.add(e),!this._initializedSent))return;let t=`[ext-apps] "${String(e)}" handler registered after connect() completed the ui/initialize handshake. The host may have already sent this notification. Register handlers before calling app.connect().`;if(this.options?.strict)throw Error(t);console.warn(t)}setEventHandler(e,t){t&&this._assertHandlerTiming(e),super.setEventHandler(e,t)}addEventListener(e,t){this._assertHandlerTiming(e),super.addEventListener(e,t)}onEventDispatch(e,t){e==="hostcontextchanged"&&(this._hostContext={...this._hostContext,...t})}constructor(e,t={},i={autoResize:!0}){super(i),this._appInfo=e,this._capabilities=t,this.options=i,i.allowUnsafeEval||E.config({jitless:!0}),this.setRequestHandler(Ws,r=>(console.log("Received ping:",r.params),{})),this.setEventHandler("hostcontextchanged",void 0)}registerCapabilities(e){if(this.transport)throw Error("Cannot register capabilities after transport is established");this._capabilities=_A(this._capabilities,e)}registerTool(e,t,i){if(this._registeredTools[e])throw Error(`Tool ${e} is already registered`);let r=this,s=()=>{r._initializedSent&&r._capabilities.tools?.listChanged&&r.sendToolListChanged()},o=t.inputSchema!==void 0,a={title:t.title,description:t.description,inputSchema:t.inputSchema,outputSchema:t.outputSchema,annotations:t.annotations,_meta:t._meta,enabled:!0,enable(){this.enabled=!0,s()},disable(){this.enabled=!1,s()},update(l){Object.assign(this,l),s()},remove(){r._registeredTools[e]===a&&(delete r._registeredTools[e],s())},handler:async(l,c)=>{if(!a.enabled)throw Error(`Tool ${e} is disabled`);let u;if(o){let d=a.inputSchema,f=d?await TA(d,l??{},`Invalid input for tool ${e}: `):l??{};u=await i(f,c)}else u=await i(c);return a.outputSchema&&!u.isError&&(u.structuredContent=await TA(a.outputSchema,u.structuredContent,`Invalid output for tool ${e}: `)),u}};return this._registeredTools[e]=a,!this._capabilities.tools&&!this.transport&&this.registerCapabilities({tools:{listChanged:!0}}),this.ensureToolHandlersInitialized(),s(),a}_toolHandlersInitialized=!1;ensureToolHandlersInitialized(){this._toolHandlersInitialized||(this._toolHandlersInitialized=!0,this.oncalltool=async(e,t)=>{let i=this._registeredTools[e.name];if(!i)throw Error(`Tool ${e.name} not found`);return i.handler(e.arguments,t)},this.onlisttools=async(e,t)=>({tools:await Promise.all(Object.entries(this._registeredTools).filter(([i,r])=>r.enabled).map(async([i,r])=>{let s={name:i,title:r.title,description:r.description,inputSchema:r.inputSchema?await IA(r.inputSchema,"input"):{type:"object",properties:{}}};return r.outputSchema&&(s.outputSchema=await IA(r.outputSchema,"output")),r.annotations&&(s.annotations=r.annotations),r._meta&&(s._meta=r._meta),s}))}))}async sendToolListChanged(e={}){this._assertInitialized("sendToolListChanged"),await this.notification({method:"notifications/tools/list_changed",params:e})}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}get ontoolinput(){return this.getEventHandler("toolinput")}set ontoolinput(e){this.setEventHandler("toolinput",e)}get ontoolinputpartial(){return this.getEventHandler("toolinputpartial")}set ontoolinputpartial(e){this.setEventHandler("toolinputpartial",e)}get ontoolresult(){return this.getEventHandler("toolresult")}set ontoolresult(e){this.setEventHandler("toolresult",e)}get ontoolcancelled(){return this.getEventHandler("toolcancelled")}set ontoolcancelled(e){this.setEventHandler("toolcancelled",e)}get onhostcontextchanged(){return this.getEventHandler("hostcontextchanged")}set onhostcontextchanged(e){this.setEventHandler("hostcontextchanged",e)}_onteardown;get onteardown(){return this._onteardown}set onteardown(e){this.warnIfRequestHandlerReplaced("onteardown",this._onteardown,e),this._onteardown=e,this.replaceRequestHandler(FF,(t,i)=>{if(!this._onteardown)throw Error("No onteardown handler set");return this._onteardown(t.params,i)})}_oncalltool;get oncalltool(){return this._oncalltool}set oncalltool(e){this.warnIfRequestHandlerReplaced("oncalltool",this._oncalltool,e),this._oncalltool=e,this.replaceRequestHandler(dS,(t,i)=>{if(!this._oncalltool)throw Error("No oncalltool handler set");return this._oncalltool(t.params,i)})}_onlisttools;get onlisttools(){return this._onlisttools}set onlisttools(e){this.warnIfRequestHandlerReplaced("onlisttools",this._onlisttools,e),this._onlisttools=e,this.replaceRequestHandler(uS,(t,i)=>{if(!this._onlisttools)throw Error("No onlisttools handler set");return this._onlisttools(t.params,i)})}assertCapabilityForMethod(e){switch(e){case"sampling/createMessage":if(!this._hostCapabilities?.sampling)throw Error(`Host does not support sampling (required for ${e})`);break}}assertRequestHandlerCapability(e){switch(e){case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${e})`);return;case"ping":case"ui/resource-teardown":return;default:throw Error(`No handler for method ${e} registered`)}}assertNotificationCapability(e){}assertTaskCapability(e){throw Error("Tasks are not supported in MCP Apps")}assertTaskHandlerCapability(e){throw Error("Task handlers are not supported in MCP Apps")}async callServerTool(e,t){if(this._assertInitialized("callServerTool"),typeof e=="string")throw Error(`callServerTool() expects an object as its first argument, but received a string ("${e}"). Did you mean: callServerTool({ name: "${e}", arguments: { ... } })?`);return await this.request({method:"tools/call",params:e},Xs,{onprogress:()=>{},resetTimeoutOnProgress:!0,...t})}async readServerResource(e,t){return this._assertInitialized("readServerResource"),await this.request({method:"resources/read",params:e},iS,t)}async listServerResources(e,t){return this._assertInitialized("listServerResources"),await this.request({method:"resources/list",params:e},nS,t)}async createSamplingMessage(e,t){this._assertInitialized("createSamplingMessage");let i=e.tools?hS:fS;return await this.request({method:"sampling/createMessage",params:e},i,t)}sendMessage(e,t){return this._assertInitialized("sendMessage"),this.request({method:"ui/message",params:e},DF,t)}sendLog(e){return this.notification({method:"notifications/message",params:e})}updateModelContext(e,t){return this._assertInitialized("updateModelContext"),this.request({method:"ui/update-model-context",params:e},yf,t)}openLink(e,t){return this._assertInitialized("openLink"),this.request({method:"ui/open-link",params:e},RF,t)}sendOpenLink=this.openLink;downloadFile(e,t){return this._assertInitialized("downloadFile"),this.request({method:"ui/download-file",params:e},LF,t)}requestTeardown(e={}){return this.notification({method:"ui/notifications/request-teardown",params:e})}requestDisplayMode(e,t){return this._assertInitialized("requestDisplayMode"),this.request({method:"ui/request-display-mode",params:e},jF,t)}sendSizeChanged(e){return this.notification({method:"ui/notifications/size-changed",params:e})}setupSizeChangedNotifications(){let e=!1,t=0,i=0,r=()=>{e||(e=!0,requestAnimationFrame(()=>{e=!1;let o=document.documentElement,a=o.style.height;o.style.height="max-content";let l=Math.ceil(o.getBoundingClientRect().height);o.style.height=a;let c=Math.ceil(window.innerWidth);(c!==t||l!==i)&&(t=c,i=l,this.sendSizeChanged({width:c,height:l}))}))};r();let s=new ResizeObserver(r);return s.observe(document.documentElement),s.observe(document.body),()=>s.disconnect()}async connect(e=new vS(window.parent,window.parent),t){if(this.transport)throw Error("App is already connected. Call close() before connecting again.");this._initializedSent=!1,await super.connect(e);try{let i=await this.request({method:"ui/initialize",params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:kF}},HF,t);if(i===void 0)throw Error(`Server sent invalid initialize result: ${i}`);this._hostCapabilities=i.hostCapabilities,this._hostInfo=i.hostInfo,this._hostContext=i.hostContext,await this.notification({method:"ui/notifications/initialized"}),this._initializedSent=!0,this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(i){throw this.close(),i}}};function wA(n,e,t){let i,r=!1,s=()=>{r||i!==void 0||(i=requestAnimationFrame(()=>{i=void 0,!(r||!e())&&t(n.hidden?1:Math.max(1,Math.ceil(n.getBoundingClientRect().height)))}))},o=new ResizeObserver(s);return o.observe(n),s(),{refresh:s,dispose(){r=!0,o.disconnect(),i!==void 0&&cancelAnimationFrame(i)}}}var PA={name:"@kyun.si/codex-hongguo",version:"0.0.24",private:!0,license:"MIT",type:"module",engines:{node:">=22.16"},scripts:{"version:patch":"npm version patch --no-git-tag-version",preversion:"node scripts/version.mjs --next",version:"node scripts/version.mjs --sync",prebuild:"node scripts/version.mjs",build:"node scripts/build.mjs",test:"npm run build && node scripts/prepare-media.mjs && node --test test/*.test.mjs",package:"npm run build && node scripts/package.mjs","verify:install":"node scripts/verify-install.mjs","release:publish":"node scripts/publish.mjs"},dependencies:{"@modelcontextprotocol/ext-apps":"1.7.5","@modelcontextprotocol/sdk":"1.32.2","cross-spawn":"7.0.6",fflate:"0.8.3","hls.js":"1.7.4","m3u8-parser":"7.2.1","mpd-parser":"1.4.1",openhongguo:"0.2.0","xz-decompress":"0.2.3",zod:"4.6.7"},devDependencies:{"@types/node":"22.20.5",esbuild:"0.28.2",typescript:"5.9.3"}};var zn=document.documentElement.dataset.host==="browser",LA=document.documentElement.dataset.surface==="waiting",xS="",Jn=zn?null:new Pf({name:"\u7EA2\u679C\u77ED\u5267",version:PA.version},{},{autoResize:!LA}),SS,DA=()=>Jn?.getHostContext()?.locale||navigator.language,Rf=()=>Jn?.getHostContext()?.displayMode;async function CA(){if((await Jn?.requestDisplayMode({mode:"fullscreen"},{timeout:5e3}))?.mode!=="fullscreen")throw Error("\u5F53\u524D Codex \u65E0\u6CD5\u5728\u4F1A\u8BDD\u4E2D\u6253\u5F00\u64AD\u653E\u5668")}function RA(n){n&&(n.theme&&$A(n.theme),n.styles?.variables&&AA(n.styles.variables))}async function OA(n,e,t){if(zn){let i=await fetch("context",{signal:AbortSignal.timeout(4e3)});if(!i.ok)throw Error("\u5206\u5C4F\u5DF2\u5931\u6548\uFF0C\u8BF7\u4ECE\u9762\u677F\u91CD\u65B0\u6253\u5F00");n(await i.json());return}Jn.ontoolresult=i=>{if(typeof i._meta?.panel!="string")return;xS=i._meta.panel;let r=typeof i._meta.waitingTurn=="string"?i._meta.waitingTurn:void 0;n({identified:!!i.structuredContent?.identified||!!r,waitingTurn:r})},Jn.onteardown=async()=>(SS?.dispose(),await e(),{}),Jn.onhostcontextchanged=i=>{RA(i),i.displayMode!==void 0&&(t(),SS?.refresh())},await Jn.connect(),RA(Jn.getHostContext()),LA&&(SS=wA(document.getElementById("waitingCard"),()=>(Rf()||"inline")==="inline",i=>{Jn.sendSizeChanged({height:i}).catch(()=>{})})),t()}async function Ie(n,e={},t=15e3){if(zn){let r=await fetch("api/"+n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),keepalive:n==="save_progress",signal:AbortSignal.timeout(t)}),s=await r.json();if(!r.ok)throw Error(s.error||"\u5206\u5C4F\u8FDE\u63A5\u5DF2\u4E2D\u65AD");return s}if(!xS)throw Error("\u7B49\u5F85\u4F1A\u8BDD\u9762\u677F\u8FDE\u63A5");let i=await Jn.callServerTool({name:n,arguments:{...e,panel:xS}},{timeout:t});if(i.isError)throw Error(i.content?.[0]?.type==="text"?i.content[0].text:"\u672C\u673A\u670D\u52A1\u4E0D\u53EF\u8FBE");return i._meta?.data}var _S="https://hongguo.invalid/";function NA(n,e,t,i,r,s){if(!sr.isSupported())throw Error("\u5F53\u524D\u9762\u677F\u4E0D\u652F\u6301\u5206\u6BB5\u89E3\u7801\uFF0C\u53EF\u4F7F\u7528\u540C\u7A97\u5206\u5C4F");class o{context=null;stats=new ai;abort(){this.stats.aborted=!0}destroy(){this.abort()}load(d,f,h){this.context=d,this.stats.loading.start=performance.now(),(async()=>{let p=d.url.slice(_S.length);if(!d.url.startsWith(_S))throw Error("\u65E0\u6548\u5A92\u4F53\u6765\u6E90");if(p==="index.m3u8")return i;let g=0,y;do{let b=await Ie("read_panel_chunk",{episodeId:e,stream:t,asset:p,offset:g},8e3);if(this.stats.aborted)return;if(!Number.isSafeInteger(b.size)||b.size<1||b.size>32*1024*1024)throw Error("\u5206\u6BB5\u957F\u5EA6\u65E0\u6548");y??=new Uint8Array(b.size);let S=atob(b.bytes);if(b.size!==y.length||!S.length||g+S.length>b.size)throw Error("\u5206\u6BB5\u4E0D\u5B8C\u6574");for(let x=0;x<S.length;x++)y[g+x]=S.charCodeAt(x);g+=S.length}while(g<y.length);return y.buffer})().then(p=>{this.stats.aborted||p===void 0||(this.stats.loading.first=this.stats.loading.end=performance.now(),this.stats.loaded=this.stats.total=typeof p=="string"?p.length:p.byteLength,h.onSuccess({url:d.url,data:p},this.stats,d,null))}).catch(()=>{this.stats.aborted||h.onError({code:0,text:"\u4FA7\u680F\u5206\u6BB5\u8BFB\u53D6\u5931\u8D25"},d,null,this.stats)})}}let a=new sr({loader:o,enableWorker:!1,maxBufferLength:16,maxMaxBufferLength:24,backBufferLength:12});a.on(sr.Events.MEDIA_ENDED,s),a.on(sr.Events.ERROR,(u,d)=>{d.fatal&&(d.type===sr.ErrorTypes.NETWORK_ERROR?r("\u4FA7\u680F\u5206\u6BB5\u8BFB\u53D6\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u70B9\u64AD"):r("\u4FA7\u680F\u65E0\u6CD5\u5904\u7406\u89C6\u9891\u5206\u6BB5\uFF0C\u53EF\u4F7F\u7528\u540C\u7A97\u5206\u5C4F"))});let l=u=>{u.disposition==="enforce"&&u.effectiveDirective==="media-src"&&(u.blockedURI==="blob"||u.blockedURI.startsWith("blob:"))&&r("\u684C\u9762\u5B89\u5168\u7B56\u7565\u963B\u6B62\u4E86\u4FA7\u680F\u8F7D\u5165\u672C\u5730\u89C6\u9891")},c=()=>{document.removeEventListener("securitypolicyviolation",l),a.destroy()};document.addEventListener("securitypolicyviolation",l);try{a.loadSource(_S+"index.m3u8"),a.attachMedia(n)}catch(u){throw c(),u}return c}function ES(n){switch(n){case 1:return"\u89C6\u9891\u52A0\u8F7D\u5DF2\u4E2D\u6B62\uFF0C\u53EF\u4EE5\u91CD\u65B0\u70B9\u64AD";case 2:return"\u8BFB\u53D6\u89C6\u9891\u6570\u636E\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u70B9\u64AD";case 3:return"\u64AD\u653E\u5668\u89E3\u7801\u89C6\u9891\u6570\u636E\u5931\u8D25\uFF0C\u53EF\u4F7F\u7528\u540C\u7A97\u5206\u5C4F";case 4:return"\u64AD\u653E\u5668\u65E0\u6CD5\u6253\u5F00\u89C6\u9891\u6765\u6E90\uFF0C\u53EF\u91CD\u65B0\u70B9\u64AD\u6216\u4F7F\u7528\u540C\u7A97\u5206\u5C4F";default:return"\u89C6\u9891\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u70B9\u64AD"}}function MA(n,e){return new Promise((t,i)=>{let r=()=>l(),s=()=>l(Error(ES(n.error?.code))),o=()=>l(e.reason),a=setTimeout(()=>l(Error("\u7B49\u5F85\u89C6\u9891\u5143\u6570\u636E\u8D85\u65F6\uFF0C\u8BF7\u91CD\u65B0\u70B9\u64AD")),3e4);function l(c){clearTimeout(a),n.removeEventListener("loadedmetadata",r),n.removeEventListener("error",s),e.removeEventListener("abort",o),c!==void 0?i(c):t()}n.addEventListener("loadedmetadata",r),n.addEventListener("error",s),e.addEventListener("abort",o),e.aborted&&o()})}function UA(n,e){return!!n&&!!e.turnId&&e.state==="submitted"&&n.turnId!==e.turnId}function FA(n,e){return!n||!e.turnId||e.state!=="stopped"&&e.state!=="interrupted"||n.turnId===e.turnId&&n.state!=="submitted"?null:e.state==="interrupted"?"\u672C\u8F6E\u5DF2\u4E2D\u65AD\uFF0C\u5DF2\u4E3A\u4F60\u6682\u505C":"\u672C\u8F6E\u5DF2\u505C\u6B62\uFF0C\u5DF2\u4E3A\u4F60\u6682\u505C"}var yt=n=>document.getElementById(n),dl=0;function WF(n){let e=n.hooks.status==="ready",t=n.hooks.events.some(s=>s.status==="needs_review");yt("setupTitle").textContent=Ce(t?"\u8BF7\u5BA1\u67E5\u7EA2\u679C\u7684\u56DE\u5408 Hooks":"\u5F00\u59CB\u4F7F\u7528\u7EA2\u679C");let i=[["Node",n.runtime,!0],["\u8FDB\u5EA6\u5E93",n.database?"\u53EF\u5199":"\u4E0D\u53EF\u7528",n.database],["\u64AD\u653E\u7EC4\u4EF6",n.ffmpeg?"\u5C31\u7EEA":"\u51C6\u5907\u4E2D",n.ffmpeg],["\u56DE\u5408\u8054\u52A8",e?"\u5DF2\u914D\u7F6E":n.hooks.status==="unknown"?"\u5F85\u786E\u8BA4":"\u5F85\u914D\u7F6E",e]];yt("setupRows").replaceChildren(...i.map(([s,o,a])=>{let l=document.createElement("div"),c=document.createElement("span"),u=document.createElement("span");return l.className="healthRow "+(a?"ok":"bad"),c.textContent=Ce(s),u.textContent=Ce(o),l.append(tr(a?"check":"alert"),c,u),l}));let r=n.database?n.ffmpeg?e?"\u56DE\u5408\u8054\u52A8\u5DF2\u5C31\u7EEA\u3002\u53EF\u5728\u8BBE\u7F6E\u4E2D\u914D\u7F6E\u4EFB\u52A1\u5F00\u59CB\u81EA\u52A8\u64AD\u653E\u548C\u4EFB\u52A1\u7ED3\u675F\u81EA\u52A8\u6682\u505C\u3002":n.hooks.status==="unknown"?"\u6682\u65F6\u65E0\u6CD5\u8BFB\u53D6 Hooks \u72B6\u6001\uFF0C\u8BF7\u5728\u5BBF\u4E3B\u8BBE\u7F6E\u4E2D\u6838\u5BF9\u3002\u73B0\u5728\u53EF\u4EE5\u5148\u624B\u52A8\u89C2\u770B\u3002":n.hooks.events.some(s=>s.status==="missing")?"\u5C1A\u672A\u53D1\u73B0\u5B8C\u6574\u7684\u56DE\u5408\u4E8B\u4EF6\u3002\u8BF7\u68C0\u67E5\u63D2\u4EF6\u5DF2\u542F\u7528\uFF0C\u5E76\u5728\u65B0\u7684\u672C\u5730\u5BF9\u8BDD\u4E2D\u91CD\u8BD5\u3002":"\u56DE\u5408\u8054\u52A8\u5C1A\u672A\u914D\u7F6E\u3002\u5B8C\u6210\u4E0B\u65B9\u64CD\u4F5C\u540E\u91CD\u65B0\u68C0\u67E5\uFF0C\u4E5F\u53EF\u4EE5\u5148\u624B\u52A8\u89C2\u770B\u3002":"\u64AD\u653E\u7EC4\u4EF6\u5C1A\u672A\u5C31\u7EEA\u3002\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u70B9\u51FB\u300C\u91CD\u65B0\u68C0\u67E5\u300D\uFF0C\u63D2\u4EF6\u4F1A\u81EA\u52A8\u51C6\u5907\u3002":"\u8FDB\u5EA6\u6682\u65F6\u65E0\u6CD5\u4FDD\u5B58\uFF0C\u8BF7\u68C0\u67E5\u7EA2\u679C\u7684\u6570\u636E\u76EE\u5F55\u6743\u9650\u3002";yt("setupHelp").textContent=Ce(r),yt("setupGuide").querySelector(".setupHooks").hidden=e}async function Lf(n=!0){if(zn)return;let e=++dl,t=yt("setupCheck");t.disabled=!0,n&&(yt("setupGuide").hidden=!1,yt("setupRows").replaceChildren(),yt("setupHelp").textContent=Ce("\u6B63\u5728\u68C0\u67E5\u2026"));try{let i=await Ie("get_setup_status");if(e!==dl)return;WF(i);let r=!i.database||!i.ffmpeg||i.hooks.status==="needs_attention";yt("setupGuide").hidden=!(n||r)}catch{if(e!==dl)return;yt("setupGuide").hidden=!n,yt("setupRows").replaceChildren(),yt("setupHelp").textContent=Ce("\u68C0\u67E5\u672A\u5B8C\u6210\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u6216\u5728 Codex \u8BBE\u7F6E \u2192 Hooks \u6838\u5BF9\u56DE\u5408\u8054\u52A8\u3002"),yt("setupGuide").querySelector(".setupHooks").hidden=!1}finally{e===dl&&(t.disabled=!1)}}function zA(n){yt("setupOpen").hidden=zn,yt("setupCheck").onclick=()=>{Lf()},yt("setupDone").onclick=async()=>{++dl;let e=yt("setupDone");e.disabled=!0;try{await Ie("set_setup_dismissed",{dismissed:!0})}catch{n("\u672C\u6B21\u5DF2\u6536\u8D77\u6307\u5357\uFF0C\u6682\u65F6\u65E0\u6CD5\u4FDD\u5B58\u6B64\u8BBE\u7F6E\u3002")}finally{yt("setupGuide").hidden=!0,e.disabled=!1,yt("setupCheck").disabled=!1}},Lf(!1)}function TS(n){return n.episodeId?Ce(n.kind==="next"?"\u770B\u4E0B\u4E00\u96C6":"\u7EE7\u7EED\u89C2\u770B")+" \xB7 "+n.title:n.title}function IS(n,e){return e.aborted?Promise.resolve(!1):new Promise(t=>{let i=new IntersectionObserver(a=>{let l=a[a.length-1];!document.hidden&&l.isIntersecting&&l.intersectionRect.width>0&&l.intersectionRect.height>0&&r(!0)},{threshold:[0,.01]}),r=a=>{i.disconnect(),document.removeEventListener("visibilitychange",o),e.removeEventListener("abort",s),t(a)},s=()=>r(!1),o=()=>{document.hidden||(i.unobserve(n),i.observe(n))};e.addEventListener("abort",s),document.addEventListener("visibilitychange",o),i.observe(n)})}async function kS(n,e,t,i,r,s=!1){let o=i?{turnId:i}:{};if(e.replaceChildren(),n.hidden=!1,!await IS(n,t))return;let{items:a}=await Ie("get_waiting_picks",{...o,inView:!0},9e4);if(!t.aborted){if(!a.length){s?r([]):n.hidden=!0;return}if(r(a),!!await IS(e,t))try{await Ie("mark_waiting_picks_shown",o)}catch{await IS(e,t)&&await Ie("mark_waiting_picks_shown",o).catch(()=>{})}}}function BA(n,e){let t=document.getElementById("waitingCard"),i=document.getElementById("waitingTitles"),r=document.getElementById("waitingMessage"),s=document.getElementById("waitingDismiss"),o=!1,a=!1,l=!1,c=!1,u=!0,d=!1,f=0,h,m,p,g;function y(){++f,m?.abort(),m=void 0,t.hidden=!0,i.replaceChildren(),r.textContent=""}s.onclick=()=>{c=!0,y(),Ie("dismiss_waiting_picks").catch(()=>{})};function b($){!o||c||!u||a||(r.textContent=Ce($ instanceof Error?$.message:"\u5F53\u524D Codex \u65E0\u6CD5\u5728\u4F1A\u8BDD\u4E2D\u6253\u5F00\u64AD\u653E\u5668"),t.hidden=!1)}async function S($=!1){if(!o)return;let P=Rf()||"inline";if(!$&&P===h)return;h=P;let k=++f;m?.abort();let D=m=new AbortController;if(P==="fullscreen"){if(a)return;let V=await(p??=Ie("activate_waiting_player"));if(k!==f)return;a=!0,t.hidden=!0,document.documentElement.dataset.surface="player",n(V);return}else p=void 0,a&&(a=!1,e(),document.documentElement.dataset.surface="waiting");if(c){y();return}let U=await Ie("get_waiting_status");if(k===f){if(u=U.visible,!u){y();return}r.textContent="",await kS(t,i,D.signal,void 0,V=>{let X=V.map(z=>{let B=document.createElement("button");return B.type="button",B.textContent=TS(z),B.onclick=()=>{x(z)},B}),q=document.createElement("button");q.type="button",q.textContent=Ce("\u66F4\u591A\u2026"),q.onclick=()=>{x()},i.replaceChildren(...X,q)},!0).catch(V=>{D.signal.aborted||b(V)})}}async function x($){if(!l){l=!0,r.textContent="";try{$?await Ie("select_waiting_pick",{seriesId:$.id}):await Ie("browse_waiting_catalog"),Rf()==="fullscreen"?await S(!0):(await CA(),t.hidden=!0)}catch(P){b(P),P instanceof Error&&P.message==="\u8FD9\u6761\u63A8\u8350\u5DF2\u7ED3\u675F"&&y()}finally{l=!1}}}async function _(){if(!(!o||a||l||c||document.hidden||d)){d=!0;try{let $=await Ie("get_waiting_status");if(!o||a||l||c)return;$.visible!==u&&(u=$.visible,u?await S(!0):y())}catch{!a&&!l&&(u=!1,y())}finally{d=!1}}}let I=()=>{S().catch(b)},T=()=>{!document.hidden&&o&&!a&&!c&&S(!0).catch(b)};return{connected(){o||(o=!0,g=setInterval(()=>{_()},1e3),document.addEventListener("visibilitychange",T),I())},modeChanged:I,dispose(){o=!1,clearInterval(g),document.removeEventListener("visibilitychange",T),y()}}}var F=n=>document.getElementById(n),ee=document.querySelector("video"),Wr=F("seek"),AS=F("play"),Cf=F("center"),Hi=F("autonext"),Bn=(n,e)=>{F(n).textContent=n==="title"?e:Ce(e)},Ye=n=>Bn("notice",n),$t=n=>n instanceof Error?n.message:"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5",to=n=>Math.floor(n/60)+":"+String(Math.floor(n%60)).padStart(2,"0"),YF=n=>new Promise(e=>setTimeout(e,n));function An(n,e){let t=document.createElement("button");return t.textContent=Ce(n),t.onclick=()=>{Promise.resolve(e()).catch(i=>Ye($t(i)))},t}var gr={identified:!1},qt=null,ct=null,nt=null,qe=[],kt,pl="",kn,bt=[],$n=!1,lt=0,Xn=0,Gi=0,Qn=!1,Ot=!1,$S,wS=0,qr=Promise.resolve(),Wt={autoPrompt:!0,autoplayNext:!0,autoPauseOnFinish:!0,autoPlayOnStart:!0,searchTerms:["\u603B\u88C1","\u91CD\u751F","\u9006\u88AD"]},dn="idle",Yr,PS,fl,eo=0,hl=0,vr=[],Of=null,KA=document.documentElement.dataset.surface==="waiting",HA=Array.from(crypto.getRandomValues(new Uint32Array(4)),n=>n.toString(16).padStart(8,"0")).join(""),ml=!1,ZA,jA=null,VA,RS;function Mf(){let n=RS;RS=void 0,n&&Ie("confirm_waiting_playback",{playbackId:n},1800).catch(()=>{})}function Zi(){AS.disabled=Cf.disabled=!nt?.playable,F("pair").disabled=!nt;let n=Ce(Qn?"\u53D6\u6D88\u51C6\u5907":ee.paused?"\u64AD\u653E":"\u6682\u505C"),e=Qn?"x":ee.paused?"play":"pause";io(AS,e,n),io(Cf,e,n),F("stage").classList.toggle("playing",!ee.paused),F("stage").classList.toggle("busy",Qn),F("prev").disabled=!nt||!qe.slice(0,qe.indexOf(nt)).some(t=>t.playable),F("next").disabled=!nt||!kt&&!qe.slice(qe.indexOf(nt)+1).some(t=>t.playable),Cf.hidden=Qn,document.querySelectorAll("#episodes button").forEach(t=>t.setAttribute("aria-pressed",String(t.dataset.id===nt?.id)))}function Wi(n=!1){if(!$n||!ct||!nt||!Number.isFinite(ee.duration)||!ee.duration||!ee.currentTime&&!n)return qr;let e={seriesId:ct.id,episodeId:nt.id,title:ct.title,label:nt.label,positionMs:Math.round((dn==="finished"||ee.ended?ee.duration:ee.currentTime)*1e3),durationMs:Math.round(ee.duration*1e3)};return qr=qr.then(()=>Ie("save_progress",{...e,...n&&e.positionMs===0?{reset:!0}:{}},1800)).then(()=>{}).catch(()=>Ye("\u89C2\u770B\u8FDB\u5EA6\u6682\u672A\u5199\u5165\uFF0C\u8BF7\u68C0\u67E5\u672C\u673A\u670D\u52A1")),qr}function un(n=""){n==="\u5DF2\u624B\u52A8\u6682\u505C"&&Mf(),lt++,Yr=void 0,Qn=!1,dn!=="finished"&&(dn="idle"),ee.pause(),Zi();let e=!!ct&&/本轮已停止|本轮已中断/.test(n);return n&&Ye(e?"":n),F("stopped").hidden=!e,e&&Bn("whyStopped",n),Wi()}function Jr(){$n=!1,dn="idle",fl?.abort(),fl=void 0,F("stopped").hidden=!0,F("resumed").hidden=!0,PS?.(),PS=void 0,ee.removeAttribute("src"),ee.load()}function qA(n){un(),Jr(),F("link").hidden=!0,F("linkValue").value="",nt=n,eo=Math.floor(Math.max(0,qe.indexOf(n))/50),Ye("");let e="\u7B2C "+n.number+" \u96C6",t=n.label.replace(/\s/g,"")!=="\u7B2C"+n.number+"\u96C6";Bn("subtitle",[e,t?n.label:"",n.codec].filter(Boolean).join(" \xB7 ")),Bn("time","0:00"),Wr.value="0",Yi(Wr),Zi(),n.playable||Ye("\u8BE5\u96C6\u5F53\u524D\u4E0D\u53EF\u64AD\u653E\uFF0C\u8BF7\u68C0\u67E5\u7247\u6E90\u8BB8\u53EF\u6216 FFmpeg \u81EA\u68C0\u7ED3\u679C")}function gl(){let n=Math.ceil(qe.length/50);F("groups").replaceChildren(...Array.from({length:n>1?n:0},(e,t)=>{let i=An(qe[t*50].number+"\u2013"+qe[Math.min(qe.length,(t+1)*50)-1].number,()=>{eo=t,gl()});return i.setAttribute("aria-pressed",String(t===eo)),i})),F("episodes").replaceChildren(...qe.slice(eo*50,(eo+1)*50).map(e=>{let t=An(String(e.number),()=>Uf(e));return t.disabled=!e.playable,t.title=e.label,t.dataset.id=e.id,t})),F("moreEpisodes").hidden=!kt,F("episodeCount").textContent=qe.length?Ce(qe.length+(kt?"+":"")+" \u96C6"):"",Zi()}async function no(n,e,t=!1,i){let r=i&&e;F("home").hidden=!0,F("watch").hidden=!1,F("back").focus({preventScroll:!0}),window.scrollTo(0,0),eo=0;let s=++Xn;un();let o=lt;Jr(),nt=null,qe=[],kt=void 0,ct=n,qi(),ee.poster=n.cover||"",Bn("title",n.title),Bn("subtitle","\u6B63\u5728\u8BFB\u53D6\u5206\u96C6\u2026"),gl(),JA(),await qr;let[a,l]=await Promise.all([Ie("get_episodes",{seriesId:n.id}),Ie("get_history",{seriesId:n.id})]);e??=l.items[0]?.episodeId;let c=a;if(s!==Xn)return;qe=c.items||[],kt=c.cursor;let u=new Set;for(;e&&!qe.some(h=>h.id===e)&&kt&&!u.has(kt);){if(u.add(kt),c=await Ie("get_episodes",{seriesId:n.id,cursor:kt}),s!==Xn)return;qe.push(...c.items),kt=c.cursor}let d=e&&qe.find(h=>h.id===e&&(!t||h.playable))||!r&&(t&&qe.find(h=>h.playable)||qe[0]),f=t&<===o&&Ot;d?qA(d):Bn("subtitle","\u6682\u65E0\u53EF\u7528\u5206\u96C6"),gl(),f&&d&&s===Xn&&await vl(i)}async function Uf(n){qA(n),gl(),await vl()}async function WA(){if(!ct||!kt)return;let n=Xn,e=kt;try{let t=await Ie("get_episodes",{seriesId:ct.id,cursor:e});if(n!==Xn||e!==kt)return;qe.push(...t.items),kt=t.cursor===e?void 0:t.cursor,gl()}catch(t){Ye($t(t))}}F("moreEpisodes").onclick=WA;async function YA(n=!1){if(!nt)return;let e=nt.id,t=Xn,i=lt,r=qe.slice(qe.indexOf(nt)+1).find(o=>o.playable),s=new Set;for(;!r&&kt&&!s.has(kt);){if(s.add(kt),await WA(),Xn!==t||nt?.id!==e||lt!==i)return;r=qe.slice(qe.indexOf(nt)+1).find(o=>o.playable)}!Ot||n&&!Hi.checked||(r?await Uf(r):n&&un("\u672C\u96C6\u5DF2\u64AD\u5B8C"))}F("prev").onclick=()=>{let n=qe.slice(0,qe.indexOf(nt)).reverse().find(e=>e.playable);n&&Uf(n)};F("next").onclick=()=>{YA()};F("random").onclick=()=>{let n=qe.filter(r=>r.playable),e=vr.find(r=>r.seriesId===ct?.id),t=e?n.findIndex(r=>r.id===e.episodeId):-1,i=t<0?n.slice(0,1):n.slice(Math.min(t+1,n.length-1));i.length&&Uf(i[Math.floor(Math.random()*i.length)])};async function JF(){Mf(),document.fullscreenElement&&await document.exitFullscreen(),F("stage").classList.remove("expanded"),Nf(),Ye(""),++Xn;let n=un();Jr(),nt=null,ct=null,qe=[],kt=void 0,F("home").hidden=!1,F("watch").hidden=!0,F("link").hidden=!0,bt.length?Ki():Xr(),await n,await Ff(),!ct&&bt.length&&Ki()}F("back").onclick=()=>{JF().catch(n=>Ye($t(n)))};function JA(){document.querySelectorAll(".card").forEach(n=>n.setAttribute("aria-pressed",String(n.dataset.id===ct?.id)))}function Ki(){let n=[],e=new Set(vr.map(o=>o.seriesId)),t=pl?void 0:bt.find(o=>!e.has(o.id))||bt[0],i=bt.filter(o=>o!==t),r=ew();if(r&&n.push(r),F("featured").replaceChildren(),t){let o=An("",()=>no(t,void 0,!0)),a=bl(t.title,t.episodes?Ce(t.episodes+" \u96C6"):""),l=document.createElement("span"),c=document.createElement("small"),u=document.createElement("strong"),d=document.createElement("span");if(o.className="feature",o.dataset.id=t.id,o.setAttribute("aria-label",Ce("\u64AD\u653E")+" \xB7 "+t.title),l.className="featureText",c.className="eyebrow",c.textContent=Ce(e.has(t.id)?"\u770B\u8FC7":"\u63A8\u8350"),u.textContent=t.title,l.append(c,u),t.description){let f=document.createElement("span");f.className="desc",f.textContent=t.description,l.append(f)}d.className="playPill",d.append(tr("play"),Ce("\u64AD\u653E")),l.append(d),o.append(a,l),F("featured").append(o),n.push({span:a,s:t})}qi(),F("cards").replaceChildren(...i.slice(hl*12,(hl+1)*12).map(o=>{let a=An("",()=>no(o,void 0,!0));a.className="card",a.dataset.id=o.id,a.title=o.title;let l=bl(o.title,o.episodes?Ce(o.episodes+" \u96C6"):""),c=document.createElement("span");return c.className="cardTitle",c.textContent=o.title,a.append(l,c),n.push({span:l,s:o}),a})),JA();let s=Gi;(async()=>{for(let{span:o,s:a}of n){if(s!==Gi)return;if(!a.cover&&(a.hasCover||a.lookupCover))try{a.cover=(await Ie("get_cover",{seriesId:a.id},9e3)).cover}catch{}a.cover&&(FS(o,a.cover),ct?.id===a.id&&(ee.poster=a.cover))}})()}function qi(){let e=Wt.autoPrompt&&!!qt?.turnId&&qt.state==="submitted"&&!ct&&!pl&&bt.length>0&&Of!==qt.turnId?qt.turnId:null;if(e===jA)return;jA=e,VA?.abort();let t=F("prompt"),i=F("picks");if(!e){t.hidden=!0;return}let r=VA=new AbortController;kS(t,i,r.signal,e,s=>{i.replaceChildren(...s.map(o=>An(TS(o),()=>(Ie("mark_waiting_picks_shown",{turnId:e}).catch(()=>{}),no(bt.find(a=>a.id===o.id)??o,o.episodeId,!0,e)))),An("\u66F4\u591A\u2026",()=>{XA(),F("query").focus()}))}).catch(()=>{r.signal.aborted||(t.hidden=!0)})}function XA(){Of=qt?.turnId||null,Of&&Ie("dismiss_waiting_picks",{turnId:Of}).catch(()=>{}),qi()}F("dismiss").onclick=XA;function Qs(n,e=""){let t=F("catalogStatus"),i=F("cards"),r=F("query");if(t.dataset.state=n==="loading"&&bt.length?"busy":n,t.replaceChildren(),e){let s=document.createElement("span");s.textContent=Ce(e),t.append(s)}t.dataset.state==="busy"&&t.prepend(tr("spin")),n==="error"&&t.append(An("\u91CD\u8BD5",()=>Xr())),n==="empty"&&pl&&t.append(An("\u6E05\u9664\u641C\u7D22",()=>(r.value="",Xr(!1,"")))),t.querySelectorAll("button").forEach(s=>s.className="btn"),n==="loading"&&!bt.length?i.replaceChildren(...Array.from({length:6},()=>{let s=document.createElement("div"),o=document.createElement("span"),a=document.createElement("span");return s.className="skel",s.setAttribute("aria-hidden","true"),o.className="skelArt",a.className="skelLine",s.append(o,a),s})):i.querySelector(".skel")&&i.replaceChildren()}async function Xr(n=!1,e=pl){let t=++Gi;n||(pl=e,bt=[],kn=void 0,hl=0,Ki());let i=n?hl+1:0;F("more").hidden=!0,Qs("loading","\u6B63\u5728\u8BFB\u53D6\u7247\u5E93\u2026");let r=n?[...bt]:[],s=!1;!n&&!e&&Ie("list_series",{preview:!0},9e4).then(o=>{t!==Gi||s||!o.items.length||(bt=o.items,Ki(),F("catalogStatus").dataset.state!=="error"&&Qs(""),F("more").hidden=bt.length<=13)}).catch(()=>{});try{let o=new Set,a=(i+1)*12+(e?0:1),l=!n;for(;l||r.length<a&&kn&&!o.has(kn);){l=!1,kn&&o.add(kn);let u=await Ie("list_series",{query:e,cursor:kn},9e4);if(t!==Gi)return;let d=new Set(r.map(f=>f.id));for(let f of u.items)d.has(f.id)||(d.add(f.id),r.push(f));kn=u.cursor,kn&&o.has(kn)&&(kn=void 0)}s=r.length>0,s&&(bt=r);let c=Math.max(1,Math.ceil((bt.length-(e?0:1))/12));if(n&&i>=c&&!kn&&!e){await Xr();return}hl=i%c,Ki(),bt.length?Qs(""):e?Qs("empty","\u6CA1\u6709\u627E\u5230\u76F8\u7B26\u7684\u5267\u76EE"):Qs("error","\u7EA2\u679C\u6682\u65F6\u6CA1\u6709\u8FD4\u56DE\u63A8\u8350\u5267\u76EE"),F("more").hidden=c<=1&&!kn}catch(o){t===Gi&&(Qs("error",$t(o)),F("more").hidden=!n)}}async function Ff(){vr=(await Ie("get_history")).items,ew(),F("history").replaceChildren(...vr.map(n=>{let e=document.createElement("div"),t=document.createElement("strong"),i=document.createElement("small");e.className="historyRow";let r=An("",()=>QA(n));r.className="historyItem",t.textContent=n.title,i.textContent=n.label+" \xB7 "+to(n.positionMs/1e3),r.append(t,i);let s=An("",async()=>{await qr,await Ie("remove_history",{seriesId:n.seriesId}),await Ff(),Ki()}),o=Ce("\u79FB\u9664 "+n.title+" \u7684\u89C2\u770B\u5386\u53F2");return s.className="icon sm",s.setAttribute("aria-label",o),s.title=o,s.append(tr("x")),e.append(r,s),e})),F("historyCount").textContent=vr.length?String(vr.length):"",F("resume").hidden=!vr.length}function QA(n){return no(bt.find(e=>e.id===n.seriesId)||{id:n.seriesId,title:n.title},n.episodeId,!0)}function ew(){let n=vr[0];if(!n){F("continue").replaceChildren();return}let e=bt.find(f=>f.id===n.seriesId)||{id:n.seriesId,title:n.title},t=An("",()=>QA(n)),i=bl(n.title),r=document.createElement("span"),s=document.createElement("small"),o=document.createElement("strong"),a=document.createElement("span"),l=document.createElement("span"),c=document.createElement("i"),u=document.createElement("span"),d=n.durationMs?Math.min(1,n.positionMs/n.durationMs):0;return t.className="resumeCard",t.setAttribute("aria-label",Ce("\u7EE7\u7EED\u89C2\u770B \xB7 "+n.title+" \xB7 "+n.label)),r.className="resumeText",s.className="eyebrow",s.textContent=Ce("\u7EE7\u7EED\u89C2\u770B"),o.textContent=n.title,a.className="meta",a.textContent=n.label+" \xB7 "+to(n.positionMs/1e3)+(n.durationMs?" / "+to(n.durationMs/1e3):""),l.className="bar",c.style.setProperty("--p",(d*100).toFixed(1)+"%"),l.append(c),r.append(s,o,a,l),u.className="resumePlay",u.append(tr("play")),t.append(i,r,u),F("continue").replaceChildren(t),{span:i,s:e}}function tw(){let n=qt?.state==="submitted";F("lamp").classList.toggle("on",n),Bn("state",!gr.identified&&zn?"\u672A\u5173\u8054\u5BF9\u8BDD":!qt||qt.state==="unknown"?"\u7B49\u5F85\u56DE\u5408\u5F00\u59CB":n?"\u5F53\u524D\u56DE\u5408\u8FDB\u884C\u4E2D":qt.state==="interrupted"?"\u56DE\u5408\u5DF2\u4E2D\u65AD":"\u56DE\u5408\u5DF2\u505C\u6B62")}function zf(){return Ot?($S??=XF().finally(()=>{$S=void 0}),$S):Promise.resolve()}async function XF(){try{let n=await Ie("get_run_state",{observeSession:!0,playerInstance:document.hidden?void 0:HA},1800);if(!Ot)return;if(n.preferences){let r=Wt.autoPrompt!==n.preferences.autoPrompt;Wt=n.preferences,Hi.checked=Wt.autoplayNext,r&&qi()}let e=FA(qt,n),t=UA(qt,n),i=qt?.state!==n.state||qt?.turnId!==n.turnId;qt=n,i&&qi(),tw(),e&&ct&&Wt.autoPauseOnFinish?un(e):t&&Wt.autoPlayOnStart&&ct&&nt?.playable&&ee.paused&&!Qn&&vl(n.turnId,!0)}catch{if(!Ot)return;F("lamp").classList.remove("on"),Bn("state","\u672C\u673A\u72B6\u6001\u4E0D\u53EF\u8FBE")}}function QF(){let n=ee.duration;!Number.isFinite(n)||!$n||(Wr.value=String(Math.round(ee.currentTime/n*1e3)),Yi(Wr),Bn("time",to(ee.currentTime)+" / "+to(n)))}async function vl(n,e=!1){if(!nt?.playable||!ct||!Ot)return;let t=++lt,i=nt,r=ct;Qn=!0,Zi(),F("stopped").hidden=!0;try{if(!$n){Ye("\u6B63\u5728\u51C6\u5907\u64AD\u653E\u2026");let s=await Ie("prepare_playback",{episodeId:i.id,retry:!0}),o=Date.now()+24e4;for(;s.status==="preparing"&&t===lt&&Date.now()<o;){if(Ye("\u6B63\u5728\u672C\u673A\u51C6\u5907\u6574\u96C6\u2026"),await YF(700),t!==lt)return;s=await Ie("prepare_playback",{episodeId:i.id})}if(t!==lt)return;if(s.status!=="ready")throw Error(s.reason||"\u51C6\u5907\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5");let a=s;if(zn!=="src"in a)throw Error("\u672C\u96C6\u64AD\u653E\u5730\u5740\u5DF2\u5931\u6548\uFF0C\u8BF7\u91CD\u8BD5");await qr;let l=await Ie("get_history",{seriesId:r.id,episodeId:i.id});if(t!==lt)return;Jr();let c=new AbortController;fl=c;let u=MA(ee,c.signal),d=m=>{fl===c&&(c.abort(Error(m)),$n&&(un(m),Jr()))};try{"stream"in a?PS=NA(ee,i.id,a.stream,a.manifest,d,()=>{fl===c&&nw()}):(ee.src=a.src,ee.load())}catch(m){d($t(m))}if(await u,t!==lt)return;let f=l.items[0],h=f&&f.positionMs<f.durationMs?f.positionMs/1e3:0;ee.currentTime=h>0&&h<ee.duration-5?h:0,ee.currentTime>0&&(Bn("resumeTime","\u5DF2\u4ECE "+to(h)+" \u7EE7\u7EED"),F("resumed").hidden=!1),$n=!0}if(n){let s=await Ie("get_run_state",{observeSession:!0},1800);if(t!==lt)return;if(s.turnId!==n||s.state!=="submitted"||e&&!s.preferences?.autoPlayOnStart){un(e?"":"\u8FD9\u6761\u63A8\u8350\u5DF2\u7ED3\u675F");return}}if(t!==lt||!Ot)return;Qn=!1,dn==="finished"&&(ee.currentTime=0),dn="playing",ee.playbackRate=parseFloat(F("speed").value);try{await ee.play()}catch(s){if(t!==lt||!Ot)return;if(!(s instanceof DOMException&&["AbortError","NotAllowedError"].includes(s.name))||!document.hidden&&document.hasFocus()&&Yr?.action!==t)throw s;jf();return}t===lt&&(Mf(),Ye("\u6B63\u5728\u64AD\u653E"),wS=Date.now(),Zi())}catch(s){t===lt&&($n||Jr(),un($t(s)))}}function ez(){!ee.paused||Qn?un("\u5DF2\u624B\u52A8\u6682\u505C"):vl()}for(let n of[ee,Cf,AS,F("resumePlayback")])n.addEventListener("click",ez);function nw(){!$n||dn!=="playing"||!Number.isFinite(ee.duration)||ee.currentTime<ee.duration-1||(dn="finished",Wi(),Hi.checked&&Ot?YA(!0).catch(n=>Ye($t(n))):un("\u672C\u96C6\u5DF2\u64AD\u5B8C"),qr.then(Ff).catch(()=>{}))}ee.onended=nw;Hi.onchange=()=>{Ie("set_preferences",{autoplayNext:Hi.checked}).then(n=>{Wt=n}).catch(n=>Ye($t(n)))};ee.ontimeupdate=()=>{QF(),!ee.paused&&Date.now()-wS>=5e3&&(wS=Date.now(),Wi())};ee.onpause=()=>{Zi(),$n&&Wi(),(document.hidden||!document.hasFocus()||Yr?.action===lt)&&jf()};ee.onplay=Zi;ee.onplaying=Mf;ee.onerror=()=>{$n&&(un(ES(ee.error?.code)),Jr())};Wr.oninput=()=>{Yi(Wr),$n&&Number.isFinite(ee.duration)&&(dn==="finished"&&(dn="idle"),ee.currentTime=Number(Wr.value)*ee.duration/1e3)};Wr.onchange=()=>{Wi(ee.currentTime===0)};ee.onloadedmetadata=()=>{ee.videoWidth&&ee.videoHeight&&(F("stage").style.aspectRatio=ee.videoWidth+"/"+ee.videoHeight)};F("restart").onclick=()=>{dn==="finished"&&(dn="idle"),ee.currentTime=0,F("resumed").hidden=!0,Wi(!0)};F("mute").onclick=()=>{ee.volume===0?(ee.volume=.7,ee.muted=!1):ee.muted=!ee.muted};async function rw(){let n=F("stage");if(document.fullscreenElement){await document.exitFullscreen();return}if(n.classList.contains("expanded")){n.classList.remove("expanded"),Nf();return}try{await n.requestFullscreen()}catch{n.classList.add("expanded"),Nf()}}F("fullscreen").onclick=()=>{rw().catch(n=>Ye($t(n)))};document.addEventListener("fullscreenchange",Nf);function Nf(){let n=F("stage"),e=!!document.fullscreenElement||n.classList.contains("expanded");n.classList.toggle("isFull",e),io(F("fullscreen"),e?"collapse":"expand",Ce(e?"\u9000\u51FA\u5168\u5C4F":"\u5168\u5C4F"))}var GA;F("stage").addEventListener("pointermove",()=>{let n=F("stage");n.classList.add("awake"),clearTimeout(GA),GA=setTimeout(()=>n.classList.remove("awake"),2400)});F("stage").addEventListener("pointerleave",()=>F("stage").classList.remove("awake"));document.addEventListener("keydown",n=>{n.key==="Escape"&&F("stage").classList.contains("expanded")&&rw()});var ro=F("volume");ee.onvolumechange=()=>{let n=ee.muted||ee.volume===0;io(F("mute"),n?"mute":"volume",Ce(n?"\u53D6\u6D88\u9759\u97F3":"\u9759\u97F3")),F("mute").setAttribute("aria-pressed",String(n)),ro.value=String(Math.round(ee.volume*100)),Yi(ro)};ee.volume=Number(ro.value)/100;Yi(ro);ro.oninput=()=>{ee.volume=Number(ro.value)/100,ee.muted=ee.volume===0};F("speed").onchange=n=>ee.playbackRate=parseFloat(n.target.value);var yl=F("query"),LS,Bf=!1;function DS(){clearTimeout(LS),Bf||Xr(!1,yl.value.trim())}function CS(){clearTimeout(LS),++Gi,!Bf&&(yl.value.trim()?LS=setTimeout(DS,400):DS())}yl.addEventListener("input",CS);yl.addEventListener("compositionstart",()=>{Bf=!0,CS()});yl.addEventListener("compositionend",()=>{Bf=!1,CS()});F("search").onsubmit=n=>{n.preventDefault(),DS()};F("more").onclick=()=>{Xr(!0)};async function tz(){let n=ct,e=nt;if(!(!n||!e))try{await un();let t=await Ie("create_browser_pairing",{seriesId:n.id,episodeId:e.id,title:n.title});if(ct!==n||nt!==e)return;F("linkValue").value=t.url,F("link").hidden=!1,F("link").scrollIntoView({block:"nearest"}),setTimeout(()=>{F("linkValue").value===t.url&&(F("link").hidden=!0,F("linkValue").value="")},6e4)}catch(t){Ye($t(t))}}F("pair").onclick=tz;F("copy").onclick=async()=>{let n=F("linkValue");try{await navigator.clipboard.writeText(n.value),Ye("\u5DF2\u590D\u5236\uFF0C\u8BF7\u5728 Codex \u5185\u7F6E\u6D4F\u89C8\u5668\u6253\u5F00")}catch{n.select(),Ye("\u94FE\u63A5\u5DF2\u9009\u4E2D\uFF0C\u8BF7\u590D\u5236\u5E76\u5728 Codex \u5185\u7F6E\u6D4F\u89C8\u5668\u6253\u5F00")}};F("settingsCancel").onclick=()=>F("prefs").click();F("setupOpen").onclick=()=>{F("settings").hidden=!0,F("prefs").setAttribute("aria-expanded","false"),Lf()};F("prefs").onclick=()=>{F("settings").hidden=!F("settings").hidden,F("prefs").setAttribute("aria-expanded",String(!F("settings").hidden)),F("autoPrompt").checked=Wt.autoPrompt,F("autoPauseOnFinish").checked=Wt.autoPauseOnFinish,F("autoPlayOnStart").checked=Wt.autoPlayOnStart,F("terms").value=Wt.searchTerms.join("\uFF0C")};F("settings").onsubmit=n=>{n.preventDefault();let e=F("terms").value.split(/[,,]/).map(t=>t.trim()).filter(Boolean);Ie("set_preferences",{autoPrompt:F("autoPrompt").checked,autoPauseOnFinish:F("autoPauseOnFinish").checked,autoPlayOnStart:F("autoPlayOnStart").checked,searchTerms:e}).then(async t=>{Wt=t,Hi.checked=Wt.autoplayNext,F("settings").hidden=!0,F("prefs").setAttribute("aria-expanded","false"),qi(),ct||await Xr()}).catch(t=>Ye($t(t)))};F("health").onclick=async()=>{let n=F("healthInfo");if(n.hidden=!n.hidden,F("health").setAttribute("aria-expanded",String(!n.hidden)),!n.hidden){n.textContent=Ce("\u6B63\u5728\u68C0\u67E5\u2026");try{let e=await Ie("get_health"),t=[["Node",e.runtime,!0],["\u8FDB\u5EA6\u5E93",e.database?"\u53EF\u5199":"\u4E0D\u53EF\u7528",e.database],["\u64AD\u653E\u7EC4\u4EF6",e.ffmpeg?"\u5C31\u7EEA":"\u51C6\u5907\u4E2D",e.ffmpeg]];n.replaceChildren(...t.map(([i,r,s])=>{let o=document.createElement("div"),a=document.createElement("span"),l=document.createElement("span");return o.className="healthRow "+(s?"ok":"bad"),a.textContent=Ce(i),l.textContent=Ce(r),o.append(tr(s?"check":"alert"),a,l),o}))}catch(e){n.textContent=$t(e)}}};F("choose").onclick=async()=>{try{let n=await Ie("list_sessions");F("choices").replaceChildren(...n.items.map(e=>An("\u2026"+e.suffix+" \xB7 "+new Date(e.at).toLocaleString(),async()=>{await Ie("select_session",{choice:e.choice}),gr.identified=!0,OS(Ot&&!document.hidden),F("choose").hidden=!0,F("choices").replaceChildren(),await zf()}))),n.items.length||Ye("\u8FD8\u6CA1\u6709\u672C\u673A\u56DE\u5408\u8BB0\u5F55\uFF0C\u53EF\u5148\u624B\u52A8\u89C2\u770B")}catch(n){Ye($t(n))}};function OS(n){return gr.identified?Ie("set_player_visible",{instance:HA,visible:n},1800).catch(()=>{}):Promise.resolve()}async function iw(){Ot&&(Ot=!1,await Promise.all([un("\u5DF2\u6682\u505C\uFF0C\u70B9\u51FB\u64AD\u653E\u7EE7\u7EED"),OS(!1)]))}function sw(n){if(n.action!==lt||!Ot||!$n||dn!=="playing"||!ee.paused||ee.ended||ee.error)return;let e=ee.currentTime;n.lastPosition!==void 0&&Math.abs(e-n.lastPosition)<.25||(n.lastPosition=e,ee.play().then(()=>{n.action===lt&&!ee.paused&&Ye("\u6B63\u5728\u64AD\u653E")}).catch(()=>{}))}function jf(){!Ot||dn!=="playing"||(Yr?.action!==lt&&(Yr={action:lt}),sw(Yr))}function ow(){let n=Yr;n&&(Yr=void 0,zf().then(()=>sw({action:n.action})))}function aw(){Ot&&(OS(!document.hidden),document.hidden?(jf(),Wi()):ow(),zf())}function lw(){!ml||Ot||(Ot=!0,aw())}document.addEventListener("visibilitychange",aw);window.addEventListener("blur",jf);window.addEventListener("focus",ow);window.addEventListener("pagehide",()=>{iw()});window.addEventListener("pageshow",lw);async function cw(n){if(ml)return;if(ml=!0,RS=n?.play?n.playbackId:void 0,navigator.mediaSession&&(navigator.mediaSession.setActionHandler("pause",()=>{un("\u5DF2\u624B\u52A8\u6682\u505C")}),navigator.mediaSession.setActionHandler("play",()=>{ee.paused&&!Qn&&vl()})),ZA=window.setInterval(()=>{zf()},1e3),F("pair").hidden=zn||KA,F("choose").hidden=zn||gr.identified,qt=null,tw(),lw(),zA(Ye),Ie("get_preferences").then(t=>{ml&&(Wt=t,Hi.checked=Wt.autoplayNext??!0,qi())}).catch(t=>Ye($t(t))),n?.pick){let t=n.pick;await no(t,t.episodeId,n.play,n.turnId);return}F("home").hidden=!1,F("watch").hidden=!0;let e=Xr();Ff().then(()=>{!ct&&vr.length&&bt.length&&Ki()}).catch(t=>Ye($t(t))),gr.selection&&await no({id:gr.selection.seriesId,title:gr.selection.title||"\u7EA2\u679C\u77ED\u5267"},gr.selection.episodeId),await e}function uw(){let n=iw();return ml=!1,navigator.mediaSession&&(navigator.mediaSession.setActionHandler("pause",null),navigator.mediaSession.setActionHandler("play",null)),window.clearInterval(ZA),++Xn,Jr(),n}var Df=KA?BA(n=>{cw(n).catch(e=>Ye($t(e)))},uw):null;OA(n=>{MS(DA()),gr=n,Df?n.waitingTurn&&Df.connected():cw().catch(e=>Ye($t(e)))},async()=>{Df?.dispose(),await uw()},()=>Df?.modeChanged()).catch(n=>Ye($t(n)));})();
|
|
2064
2064
|
|
|
2065
2065
|
</script>
|
|
2066
2066
|
</body>
|