@kyun.si/codex-hongguo 0.0.34 → 0.0.35-beta.2
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 +14 -1
- package/README.md +14 -1
- package/dist/cli/main.mjs +7 -7
- package/dist/hooks/write.mjs +7 -2
- package/dist/server/index.mjs +13 -8
- package/dist/setup/check.mjs +8 -3
- package/dist/ui/player.html +189 -62
- package/package.json +1 -1
package/README.en.md
CHANGED
|
@@ -37,6 +37,16 @@ Keep the package name quoted so PowerShell treats the leading `@` literally. `np
|
|
|
37
37
|
|
|
38
38
|
Default installation and updates do not require Git. The command checks Node, npm and the Codex CLI, prepares the playback component, then uses a local marketplace index to install the plugin from npm. The first installation requires a network connection; later runs reuse the local cache. The installer tells you to review, trust and enable `UserPromptSubmit`, `Stop` and `Interrupt` in Codex **Settings → Hooks**. Then open a new local chat to use the plugin.
|
|
39
39
|
|
|
40
|
+
### Beta testing channel
|
|
41
|
+
|
|
42
|
+
Test devices can use beta while stable users stay on `@latest`:
|
|
43
|
+
|
|
44
|
+
```powershell
|
|
45
|
+
npx.cmd "@kyun.si/codex-hongguo@beta" setup
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Update with `npx.cmd "@kyun.si/codex-hongguo@beta" update`. On macOS / Linux, use `npx` instead of `npx.cmd`. Use `@latest setup` to return to stable. Switching channels replaces the current plugin and preserves preferences and progress. Close the previous player first and restart Codex afterward; review Hooks when prompted.
|
|
49
|
+
|
|
40
50
|
### Post-Install Setup
|
|
41
51
|
|
|
42
52
|
- **Run the Setup guide**: Run **Setup** from the plugin details view (which invokes `hongguo-setup`), or say `配置红果短剧` in a local conversation. Setup checks Node, the progress database and the playback component, then shows a fixed reminder to check Hook authorization manually in Codex Settings → Hooks.
|
|
@@ -70,13 +80,16 @@ Default installation and updates do not require Git. The command checks Node, np
|
|
|
70
80
|
|
|
71
81
|
### Global playback settings
|
|
72
82
|
|
|
73
|
-
Open **Settings** at the top right of the player
|
|
83
|
+
Open **Settings** at the top right of the player. Switches save automatically; recommendation keywords save on Enter or when leaving the field. **Close** waits for saving to finish. If saving fails, the panel stays open with a retry message.
|
|
74
84
|
|
|
75
85
|
| Setting | Default | Behavior |
|
|
76
86
|
| --- | --- | --- |
|
|
77
87
|
| Pause automatically when a task ends | On | Pause and save your position when a task in this chat finishes or is interrupted. Turn it off for continuous playback. |
|
|
78
88
|
| Play automatically when a task starts | On | Play the selected episode from its current position when a new task starts in the same chat. |
|
|
79
89
|
| Mute by default | On | Set the initial mute state for new players. Changes immediately update the current player and sync to other open players. |
|
|
90
|
+
| Show player on hover | Off | Leaving the player panel shows a cover page and pauses playback. Returning resumes from that position; manual pauses are preserved. |
|
|
91
|
+
|
|
92
|
+
Hover mode follows the player panel boundary: moving to the chat, another panel, or another window conceals the show title, artwork and controls. The loaded video is retained, and task-end automatic pausing still applies while covered. The cover is generated offline from built-in project tasks, technical notes, test reports and meeting notes, with varied layouts and content. Each mounted panel keeps the same page until closed. “Change page” in Settings finishes pending saves, replaces the current cover, and closes Settings. Covers follow the interface language and theme. Codex manages native tab titles and suggestion cards already present in the chat; covering the panel does not replace those.
|
|
80
93
|
|
|
81
94
|
Settings are independent, saved across restarts, and shared by all chats. Task playback switches and default mute sync to open players. The speaker button changes only the current player, leaving the default unchanged; repeated snapshots preserve that manual choice until the default changes. New players restore the remembered volume. Autoplay requires an open player with an episode selected; it does not choose a show or reopen a closed player. Manual pausing lasts for the current task; the autoplay switch determines whether the next task resumes playback. Updates preserve saved choices.
|
|
82
95
|
|
package/README.md
CHANGED
|
@@ -37,6 +37,16 @@ npx.cmd "@kyun.si/codex-hongguo@latest" setup
|
|
|
37
37
|
|
|
38
38
|
默认安装和更新不需要 Git。命令会检查 Node、npm 和 Codex CLI,自动准备播放组件,再通过本机市场索引从 npm 安装插件。首次安装需要联网,之后复用本机缓存。安装完成时会提示你到 Codex「设置 → Hooks」审查、信任并启用 `UserPromptSubmit`、`Stop`、`Interrupt`。然后打开新的本地聊天使用。
|
|
39
39
|
|
|
40
|
+
### Beta 测试渠道
|
|
41
|
+
|
|
42
|
+
测试设备可安装 beta;正式用户继续使用 `@latest`。Windows PowerShell:
|
|
43
|
+
|
|
44
|
+
```powershell
|
|
45
|
+
npx.cmd "@kyun.si/codex-hongguo@beta" setup
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
后续更新固定使用 `npx.cmd "@kyun.si/codex-hongguo@beta" update`;macOS / Linux 将 `npx.cmd` 换为 `npx`。切回正式版使用 `@latest setup`。切换渠道替换当前插件,保留设置与观看进度;操作前关闭旧播放器,完成后重启 Codex。首次安装或更新后按提示核对 Hooks。
|
|
49
|
+
|
|
40
50
|
### 安装后配置
|
|
41
51
|
|
|
42
52
|
- **运行设置引导(Setup)**:安装后可在插件详情页运行 **Setup**(调用 `hongguo-setup`),或在本地对话中直接说“配置红果短剧”。引导会检查 Node、进度库和播放组件,并固定提示你到 Codex「设置 → Hooks」人工核对三个 Hooks 的授权。
|
|
@@ -70,13 +80,16 @@ npx.cmd "@kyun.si/codex-hongguo@latest" setup
|
|
|
70
80
|
|
|
71
81
|
### 全局播放设置
|
|
72
82
|
|
|
73
|
-
|
|
83
|
+
在播放器右上角打开「设置」。开关修改后自动保存;推荐关键词按 Enter 或离开输入框时保存。底部「关闭」会等待保存完成,失败时保留面板并提示重试。
|
|
74
84
|
|
|
75
85
|
| 设置 | 默认 | 行为 |
|
|
76
86
|
| --- | --- | --- |
|
|
77
87
|
| 任务结束自动暂停 | 开启 | 当前聊天的任务结束或中断时暂停并保存进度;关闭后持续播放。 |
|
|
78
88
|
| 任务开始自动播放 | 开启 | 同一聊天的新任务开始时,从原位置播放已选中的剧集。 |
|
|
79
89
|
| 默认静音 | 开启 | 新打开播放器时按此设置决定是否静音;修改后立即同步当前播放器,其他已打开的播放器也会自动同步。 |
|
|
90
|
+
| 悬停时显示播放器 | 关闭 | 鼠标移出红果面板时显示替身并暂停,移回后从原处继续;手动暂停保持不变。 |
|
|
91
|
+
|
|
92
|
+
悬停模式按红果播放面板的范围触发:移到聊天区、其他面板或其他窗口都会遮盖。剧名、封面和播放控件一起隐藏,已加载的视频保持原位;遮盖期间任务结束的自动暂停仍然生效。替身由内置的项目待办、技术文档、测试报告和会议纪要模板随机生成,布局与内容有小幅变化,无需联网。每次打开面板生成一页,本次打开期间保持不变;设置中的「换一页」会先完成当前保存,再更换当前替身并关闭设置。替身沿用界面语言和明暗主题。此功能替换面板内容,Codex 原生标签名称及聊天里已有的推荐卡片仍由宿主管理。
|
|
80
93
|
|
|
81
94
|
设置独立保存,所有聊天共用。任务播放开关和默认静音会同步到已打开的播放器。扬声器按钮只改变当前播放器的静音状态,不修改默认值;未修改默认静音时,同步不会覆盖手动选择。新打开播放器时恢复记住的音量。自动播放需要播放器保持打开且已有选中的剧集;它不会自动选剧或重新打开已关闭的播放器。手动暂停在当前任务内保持有效,下一轮是否续播取决于自动播放开关。升级会保留已保存的选择。
|
|
82
95
|
|
package/dist/cli/main.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {createRequire as __cr} from 'node:module';const require=__cr(import.meta.url);
|
|
2
|
-
var Rt=Object.create;var XA=Object.defineProperty;var Ht=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Yt=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty;var k=(A=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(A,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):A)(function(A){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+A+'" is not supported')});var p=(A,e)=>()=>{try{return e||A((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}};var Ut=(A,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Gt(e))!qt.call(A,n)&&n!==t&&XA(A,n,{get:()=>e[n],enumerable:!(r=Ht(e,n))||r.enumerable});return A};var IA=(A,e,t)=>(t=A!=null?Rt(Yt(A)):{},Ut(e||!A||!A.__esModule?XA(t,"default",{value:A,enumerable:!0}):t,A));var Ae=p((bn,ZA)=>{ZA.exports=VA;VA.sync=Ot;var _A=k("fs");function Kt(A,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var r=0;r<t.length;r++){var n=t[r].toLowerCase();if(n&&A.substr(-n.length).toLowerCase()===n)return!0}return!1}function $A(A,e,t){return!A.isSymbolicLink()&&!A.isFile()?!1:Kt(e,t)}function VA(A,e,t){_A.stat(A,function(r,n){t(r,r?!1:$A(n,A,e))})}function Ot(A,e){return $A(_A.statSync(A),A,e)}});var ie=p((Mn,ne)=>{ne.exports=te;te.sync=zt;var ee=k("fs");function te(A,e,t){ee.stat(A,function(r,n){t(r,r?!1:re(n,e))})}function zt(A,e){return re(ee.statSync(A),e)}function re(A,e){return A.isFile()&&Tt(A,e)}function Tt(A,e){var t=A.mode,r=A.uid,n=A.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),s=parseInt("100",8),C=parseInt("010",8),g=parseInt("001",8),c=s|C,a=t&g||t&C&&n===o||t&s&&r===i||t&c&&i===0;return a}});var ae=p((Jn,oe)=>{var Ln=k("fs"),eA;process.platform==="win32"||global.TESTING_WINDOWS?eA=Ae():eA=ie();oe.exports=CA;CA.sync=Pt;function CA(A,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,n){CA(A,e||{},function(i,o){i?n(i):r(o)})})}eA(A,e||{},function(r,n){r&&(r.code==="EACCES"||e&&e.ignoreErrors)&&(r=null,n=!1),t(r,n)})}function Pt(A,e){try{return eA.sync(A,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var ue=p((Rn,fe)=>{var Y=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",se=k("path"),jt=Y?";":":",ge=ae(),ce=A=>Object.assign(new Error(`not found: ${A}`),{code:"ENOENT"}),Ie=(A,e)=>{let t=e.colon||jt,r=A.match(/\//)||Y&&A.match(/\\/)?[""]:[...Y?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Y?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Y?n.split(t):[""];return Y&&A.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:r,pathExt:i,pathExtExe:n}},Ce=(A,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:r,pathExt:n,pathExtExe:i}=Ie(A,e),o=[],s=g=>new Promise((c,a)=>{if(g===r.length)return e.all&&o.length?c(o):a(ce(A));let I=r[g],f=/^".*"$/.test(I)?I.slice(1,-1):I,u=se.join(f,A),h=!f&&/^\.[\\\/]/.test(A)?A.slice(0,2)+u:u;c(C(h,g,0))}),C=(g,c,a)=>new Promise((I,f)=>{if(a===n.length)return I(s(c+1));let u=n[a];ge(g+u,{pathExt:i},(h,Q)=>{if(!h&&Q)if(e.all)o.push(g+u);else return I(g+u);return I(C(g,c,a+1))})});return t?s(0).then(g=>t(null,g),t):s(0)},Wt=(A,e)=>{e=e||{};let{pathEnv:t,pathExt:r,pathExtExe:n}=Ie(A,e),i=[];for(let o=0;o<t.length;o++){let s=t[o],C=/^".*"$/.test(s)?s.slice(1,-1):s,g=se.join(C,A),c=!C&&/^\.[\\\/]/.test(A)?A.slice(0,2)+g:g;for(let a=0;a<r.length;a++){let I=c+r[a];try{if(ge.sync(I,{pathExt:n}))if(e.all)i.push(I);else return I}catch{}}}if(e.all&&i.length)return i;if(e.nothrow)return null;throw ce(A)};fe.exports=Ce;Ce.sync=Wt});var le=p((Hn,fA)=>{"use strict";var he=(A={})=>{let e=A.env||process.env;return(A.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};fA.exports=he;fA.exports.default=he});var pe=p((Gn,Be)=>{"use strict";var Qe=k("path"),Xt=ue(),_t=le();function Ee(A,e){let t=A.options.env||process.env,r=process.cwd(),n=A.options.cwd!=null,i=n&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(A.options.cwd)}catch{}let o;try{o=Xt.sync(A.command,{path:t[_t({env:t})],pathExt:e?Qe.delimiter:void 0})}catch{}finally{i&&process.chdir(r)}return o&&(o=Qe.resolve(n?A.options.cwd:"",o)),o}function $t(A){return Ee(A)||Ee(A,!0)}Be.exports=$t});var lA=p((Yn,hA)=>{"use strict";var uA=/([()\][%!^"`<>&|;, *?])/g;function Vt(A){return A=A.replace(uA,"^$1"),A}function Zt(A,e){return A=`${A}`,A=A.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),A=A.replace(/(?=(\\+?)?)\1$/,"$1$1"),A=`"${A}"`,A=A.replace(uA,"^$1"),e&&(A=A.replace(uA,"^$1")),A}hA.exports.command=Vt;hA.exports.argument=Zt});var me=p((qn,we)=>{"use strict";we.exports=/^#!(.*)/});var ye=p((Un,ve)=>{"use strict";var Ar=me();ve.exports=(A="")=>{let e=A.match(Ar);if(!e)return null;let[t,r]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?r:r?`${n} ${r}`:n}});var De=p((Kn,de)=>{"use strict";var QA=k("fs"),er=ye();function tr(A){let t=Buffer.alloc(150),r;try{r=QA.openSync(A,"r"),QA.readSync(r,t,0,150,0),QA.closeSync(r)}catch{}return er(t.toString())}de.exports=tr});var Se=p((On,ke)=>{"use strict";var rr=k("path"),Ne=pe(),xe=lA(),nr=De(),ir=process.platform==="win32",or=/\.(?:com|exe)$/i,ar=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function sr(A){A.file=Ne(A);let e=A.file&&nr(A.file);return e?(A.args.unshift(A.file),A.command=e,Ne(A)):A.file}function gr(A){if(!ir)return A;let e=sr(A),t=!or.test(e);if(A.options.forceShell||t){let r=ar.test(e);A.command=rr.normalize(A.command),A.command=xe.command(A.command),A.args=A.args.map(i=>xe.argument(i,r));let n=[A.command].concat(A.args).join(" ");A.args=["/d","/s","/c",`"${n}"`],A.command=process.env.comspec||"cmd.exe",A.options.windowsVerbatimArguments=!0}return A}function cr(A,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let r={command:A,args:e,options:t,file:void 0,original:{command:A,args:e}};return t.shell?r:gr(r)}ke.exports=cr});var Me=p((zn,be)=>{"use strict";var EA=process.platform==="win32";function BA(A,e){return Object.assign(new Error(`${e} ${A.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${A.command}`,path:A.command,spawnargs:A.args})}function Ir(A,e){if(!EA)return;let t=A.emit;A.emit=function(r,n){if(r==="exit"){let i=Fe(n,e);if(i)return t.call(A,"error",i)}return t.apply(A,arguments)}}function Fe(A,e){return EA&&A===1&&!e.file?BA(e.original,"spawn"):null}function Cr(A,e){return EA&&A===1&&!e.file?BA(e.original,"spawnSync"):null}be.exports={hookChildProcess:Ir,verifyENOENT:Fe,verifyENOENTSync:Cr,notFoundError:BA}});var Re=p((Tn,q)=>{"use strict";var Le=k("child_process"),pA=Se(),wA=Me();function Je(A,e,t){let r=pA(A,e,t),n=Le.spawn(r.command,r.args,r.options);return wA.hookChildProcess(n,r),n}function fr(A,e,t){let r=pA(A,e,t),n=Le.spawnSync(r.command,r.args,r.options);return n.error=n.error||wA.verifyENOENTSync(n.status,r),n}q.exports=Je;q.exports.spawn=Je;q.exports.sync=fr;q.exports._parse=pA;q.exports._enoent=wA});var ze=p((V,xA)=>{(function(e,t){typeof V=="object"&&typeof xA=="object"?xA.exports=t(k("stream/web")):typeof define=="function"&&define.amd?define(["stream/web"],t):typeof V=="object"?V["xz-decompress"]=t(k("stream/web")):e["xz-decompress"]=t(e["stream/web"])})(V,A=>(()=>{"use strict";var e=[,(i=>{i.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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"}),(i=>{i.exports=A})],t={};function r(i){var o=t[i];if(o!==void 0)return o.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,r),s.exports}r.d=(i,o)=>{for(var s in o)r.o(o,s)&&!r.o(i,s)&&Object.defineProperty(i,s,{enumerable:!0,get:o[s]})},r.o=(i,o)=>Object.prototype.hasOwnProperty.call(i,o),r.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};return(()=>{r.r(n),r.d(n,{XzReadableStream:()=>a});var i=r(1);let o=globalThis.ReadableStream||r(2).ReadableStream,s=0,C=1;class g{constructor(f){this.exports=f.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(f){this._refresh(),this.mem8.subarray(this.inStart,this.inEnd).set(f,0),this.exports.supply_input(this.ptr,f.byteLength),this._refresh()}getNextOutput(){let f=this.exports.get_next_output(this.ptr);if(this._refresh(),f!==s&&f!==C)throw new Error(`get_next_output failed with error code ${f}`);return{outChunk:this.mem8.slice(this.outStart,this.outStart+this.mem32[5]),finished:f===C}}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(f=>{this.waitQueue.push(f)})}release(){this.waitQueue.length>0?this.waitQueue.shift()():this.locked=!1}}class a extends o{static _moduleInstancePromise;static _moduleInstance;static _contextMutex=new c;static async _getModuleInstance(){let f=i.replace("data:application/wasm;base64,",""),u=Uint8Array.from(atob(f),B=>B.charCodeAt(0)).buffer,h={},Q=await WebAssembly.instantiate(u,h);a._moduleInstance=Q.instance}constructor(f){let u,h=null,Q=f.getReader();super({async start(B){await a._contextMutex.acquire();try{a._moduleInstance||await(a._moduleInstancePromise||(a._moduleInstancePromise=a._getModuleInstance())),u=new g(a._moduleInstance)}catch(y){throw a._contextMutex.release(),y}},async pull(B){try{if(u.needsMoreInput()){if(h===null||h.byteLength===0){let{done:P,value:j}=await Q.read();P||(h=j)}let w=Math.min(u.bufSize,h.byteLength);u.supplyInput(h.subarray(0,w)),h=h.subarray(w)}let y=u.getNextOutput();B.enqueue(y.outChunk),u.resetOutputBuffer(),y.finished&&(u.dispose(),a._contextMutex.release(),B.close())}catch(y){throw u&&u.dispose(),a._contextMutex.release(),y}},cancel(){try{return u&&u.dispose(),Q.cancel()}finally{a._contextMutex.release()}}})}}})(),n})())});import{readFileSync as dn,existsSync as Dn}from"node:fs";import{fileURLToPath as Nn}from"node:url";var Ct=IA(Re(),1),LA=IA(lA(),1);import{accessSync as Vr,constants as ct,statSync as Zr}from"node:fs";import{homedir as An}from"node:os";import{posix as It,win32 as rA}from"node:path";import{spawn as ci,spawnSync as en}from"node:child_process";import{createHash as Xe,randomUUID as Rr}from"node:crypto";import{createReadStream as _e}from"node:fs";import{mkdir as Pe,lstat as FA,open as $e,readFile as Ve,writeFile as Hr,rename as Gr,rm as J,chmod as Yr,stat as je,unlink as qr,rmdir as We}from"node:fs/promises";import{lstatSync as Ur}from"node:fs";import{homedir as Ze}from"node:os";import{posix as bA,win32 as MA}from"node:path";import{spawnSync as Kr}from"node:child_process";import{createRequire as ur}from"module";var hr=ur("/"),K,lr,Qr;try{K=hr("worker_threads"),lr=K.Worker,Qr=K.isMarkedAsUntransferable}catch{}var v=Uint8Array,U=Uint16Array,Er=Int32Array,He=new v([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]),Ge=new v([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]),Br=new v([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ye=function(A,e){for(var t=new U(31),r=0;r<31;++r)t[r]=e+=1<<A[r-1];for(var n=new Er(t[30]),r=1;r<30;++r)for(var i=t[r];i<t[r+1];++i)n[i]=i-t[r]<<5|r;return{b:t,r:n}},K=Ye(He,2),qe=K.b,pr=K.r;qe[28]=258,pr[258]=28;var Ue=Ye(Ge,0),wr=Ue.b,jn=Ue.r,dA=new U(32768);for(l=0;l<32768;++l)M=(l&43690)>>1|(l&21845)<<1,M=(M&52428)>>2|(M&13107)<<2,M=(M&61680)>>4|(M&3855)<<4,dA[l]=((M&65280)>>8|(M&255)<<8)>>1;var M,l,_=(function(A,e,t){for(var r=A.length,n=0,i=new U(e);n<r;++n)A[n]&&++i[A[n]-1];var o=new U(e);for(n=1;n<e;++n)o[n]=o[n-1]+i[n-1]<<1;var s;if(t){s=new U(1<<e);var C=15-e;for(n=0;n<r;++n)if(A[n])for(var g=n<<4|A[n],c=e-A[n],a=o[A[n]-1]++<<c,I=a|(1<<c)-1;a<=I;++a)s[dA[a]>>C]=g}else for(s=new U(r),n=0;n<r;++n)A[n]&&(s[n]=dA[o[A[n]-1]++]>>15-A[n]);return s}),$=new v(288);for(l=0;l<144;++l)$[l]=8;var l;for(l=144;l<256;++l)$[l]=9;var l;for(l=256;l<280;++l)$[l]=7;var l;for(l=280;l<288;++l)$[l]=8;var l,Ke=new v(32);for(l=0;l<32;++l)Ke[l]=5;var l;var mr=_($,9,1);var vr=_(Ke,5,1),mA=function(A){for(var e=A[0],t=1;t<A.length;++t)A[t]>e&&(e=A[t]);return e},N=function(A,e,t){var r=e/8|0;return(A[r]|A[r+1]<<8)>>(e&7)&t},vA=function(A,e){var t=e/8|0;return(A[t]|A[t+1]<<8|A[t+2]<<16)>>(e&7)},yr=function(A){return(A+7)/8|0},NA=function(A,e,t){return(e==null||e<0)&&(e=0),(t==null||t>A.length)&&(t=A.length),new v(A.subarray(e,t))};var dr=["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"],m=function(A,e,t){var r=new Error(e||dr[A]);if(r.code=A,Error.captureStackTrace&&Error.captureStackTrace(r,m),!t)throw r;return r},Dr=function(A,e,t,r){var n=A.length,i=r?r.length:0;if(!n||e.f&&!e.l)return t||new v(0);var o=!t,s=o||e.i!=2,C=e.i;o&&(t=new v(n*3));var g=function(PA){var jA=t.length;if(PA>jA){var WA=new v(Math.max(jA*2,PA));WA.set(t),t=WA}},c=e.f||0,a=e.p||0,I=e.b||0,f=e.l,u=e.d,h=e.m,Q=e.n,B=n*8;do{if(!f){c=N(A,a,1);var y=N(A,a+1,3);if(a+=3,y)if(y==1)f=mr,u=vr,h=9,Q=5;else if(y==2){var oA=N(A,a,31)+257,GA=N(A,a+10,15)+4,YA=oA+N(A,a+5,31)+1;a+=14;for(var W=new v(YA),aA=new v(19),d=0;d<GA;++d)aA[Br[d]]=N(A,a+d*3,7);a+=GA*3;for(var qA=mA(aA),Ft=(1<<qA)-1,bt=_(aA,qA,1),d=0;d<YA;){var UA=bt[N(A,a,Ft)];a+=UA&15;var w=UA>>4;if(w<16)W[d++]=w;else{var H=0,AA=0;for(w==16?(AA=3+N(A,a,3),a+=2,H=W[d-1]):w==17?(AA=3+N(A,a,7),a+=3):w==18&&(AA=11+N(A,a,127),a+=7);AA--;)W[d++]=H}}var KA=W.subarray(0,oA),L=W.subarray(oA);h=mA(KA),Q=mA(L),f=_(KA,h,1),u=_(L,Q,1)}else m(1);else{var w=yr(a)+4,P=A[w-4]|A[w-3]<<8,j=w+P;if(j>n){C&&m(0);break}s&&g(I+P),t.set(A.subarray(w,j),I),e.b=I+=P,e.p=a=j*8,e.f=c;continue}if(a>B){C&&m(0);break}}s&&g(I+131072);for(var Mt=(1<<h)-1,Lt=(1<<Q)-1,sA=a;;sA=a){var H=f[vA(A,a)&Mt],G=H>>4;if(a+=H&15,a>B){C&&m(0);break}if(H||m(2),G<256)t[I++]=G;else if(G==256){sA=a,f=null;break}else{var OA=G-254;if(G>264){var d=G-257,X=He[d];OA=N(A,a,(1<<X)-1)+qe[d],a+=X}var gA=u[vA(A,a)&Lt],cA=gA>>4;gA||m(3),a+=gA&15;var L=wr[cA];if(cA>3){var X=Ge[cA];L+=vA(A,a)&(1<<X)-1,a+=X}if(a>B){C&&m(0);break}s&&g(I+131072);var zA=I+OA;if(I<L){var TA=i-L,Jt=Math.min(L,zA);for(TA+I<0&&m(3);I<Jt;++I)t[I]=r[TA+I]}for(;I<zA;++I)t[I]=t[I-L]}}e.l=f,e.p=sA,e.b=I,e.f=c,f&&(c=1,e.m=h,e.d=u,e.n=Q)}while(!c);return I!=t.length&&o?NA(t,0,I):t.subarray(0,I)};var Nr=new v(0);var S=function(A,e){return A[e]|A[e+1]<<8},D=function(A,e){return(A[e]|A[e+1]<<8|A[e+2]<<16|A[e+3]<<24)>>>0},yA=function(A,e){return D(A,e)+D(A,e+4)*4294967296};function xr(A,e){return Dr(A,{i:2},e&&e.out,e&&e.dictionary)}var DA=typeof TextDecoder<"u"&&new TextDecoder,kr=0;try{DA.decode(Nr,{stream:!0}),kr=1}catch{}var Sr=function(A){for(var e="",t=0;;){var r=A[t++],n=(r>127)+(r>223)+(r>239);if(t+n>A.length)return{s:e,r:NA(A,t-1)};n?n==3?(r=((r&15)<<18|(A[t++]&63)<<12|(A[t++]&63)<<6|A[t++]&63)-65536,e+=String.fromCharCode(55296|r>>10,56320|r&1023)):n&1?e+=String.fromCharCode((r&31)<<6|A[t++]&63):e+=String.fromCharCode((r&15)<<12|(A[t++]&63)<<6|A[t++]&63):e+=String.fromCharCode(r)}};function Fr(A,e){if(e){for(var t="",r=0;r<A.length;r+=16384)t+=String.fromCharCode.apply(null,A.subarray(r,r+16384));return t}else{if(DA)return DA.decode(A);var n=Sr(A),i=n.s,t=n.r;return t.length&&m(8),i}}var br=function(A,e){return e+30+S(A,e+26)+S(A,e+28)},Mr=function(A,e,t){var r=S(A,e+28),n=S(A,e+30),i=Fr(A.subarray(e+46,e+46+r),!(S(A,e+8)&2048)),o=e+46+r,s=Lr(A,o,n,t,D(A,e+20),D(A,e+24),D(A,e+42)),C=s[0],g=s[1],c=s[2];return[S(A,e+10),C,g,i,o+n+S(A,e+32),c]},Lr=function(A,e,t,r,n,i,o){var s=n==4294967295,C=i==4294967295,g=o==4294967295,c=e+t,a=s+C+g;if(r&&a){for(;e+4<c;e+=4+S(A,e+2))if(S(A,e)==1)return[s?yA(A,e+4+8*C):n,C?yA(A,e+4):i,g?yA(A,e+4+8*(C+s)):o,1];r<2&&m(13)}return[n,i,o,0]};function Oe(A,e){for(var t={},r=A.length-22;D(A,r)!=101010256;--r)(!r||A.length-r>65558)&&m(13);var n=S(A,r+8);if(!n)return{};var i=D(A,r+16),o=D(A,r-20)==117853008;if(o){var s=D(A,r-12);o=D(A,s)==101075792,o&&(n=D(A,s+32),i=D(A,s+48))}for(var C=e&&e.filter,g=0;g<n;++g){var c=Mr(A,i,o),a=c[0],I=c[1],f=c[2],u=c[3],h=c[4],Q=c[5],B=br(A,Q);i=h,(!C||C({name:u,size:I,originalSize:f,compression:a}))&&(a?a==8?t[u]=xr(A.subarray(B,B+I),{out:new v(f)}):m(14,"unknown compression type "+a):t[u]=NA(A,B,B+I))}return t}var At=IA(ze(),1);var Te={"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"},"win32-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-winarm64-gpl-9.0.zip",format:"zip",entry:"ffmpeg-n9.0.2-39-g7adfbe40dc-winarm64-gpl-9.0/bin/ffmpeg.exe",archiveBytes:136603040,archiveSha256:"8b3c394762f26716ccef03ac1b7ac76430759080e1255aa9bc01d74db590bcb5",binaryBytes:95170560,binarySha256:"e2248aa5ecd155814e951fd0606df71589699a2fd4db14a9323a0b400a6c9b06"}};var O=new Map,tA=new Map,Or="@kyun.si/codex-hongguo",et=new Set(["prepare","download","download-url","download-http","download-network","archive-size","archive-hash","extract","binary-hash","probe","publish"]),zr=new Set(["UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_SOCKET","ECONNRESET","ECONNREFUSED","ETIMEDOUT","EAI_AGAIN","ENETUNREACH","EHOSTUNREACH"]),Tr=new Set([408,429,500,502,503,504]),E=(A="prepare",e)=>Object.assign(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"),{code:A,...Number.isInteger(e)&&e>=400&&e<=599?{httpStatus:e}:{}}),tt=A=>new Promise(e=>setTimeout(e,A));function rt(A={}){let{env:e=process.env,home:t=Ze(),platform:r=process.platform,arch:n=process.arch}=A,i=r==="win32"?MA:bA;if(e.HONGGUO_FFMPEG){if(!i.isAbsolute(e.HONGGUO_FFMPEG))throw E();return{...A,env:e,platform:r,target:e.HONGGUO_FFMPEG,override:!0}}let o=(A.artifacts||Te)[r+"-"+n];if(!o)throw Error("\u5F53\u524D\u7CFB\u7EDF\u67B6\u6784\u6682\u4E0D\u652F\u6301\u81EA\u52A8\u51C6\u5907\u64AD\u653E\u7EC4\u4EF6\u3002");let s=nt({env:e,home:t,platform:r,paths:i}),C=i.join(s,"runtime","ffmpeg",o.archiveSha256.slice(0,16),r+"-"+n);return{...A,env:e,platform:r,artifact:o,directory:C,target:i.join(C,r==="win32"?"ffmpeg.exe":"ffmpeg")}}function nt({env:A,home:e,platform:t,paths:r}){return A.HONGGUO_RUNTIME_DIR?r.join(A.HONGGUO_RUNTIME_DIR,"codex-hongguo"):t==="darwin"?r.join(e,"Library","Caches","CodexHongguo"):t==="win32"?r.join(A.LOCALAPPDATA||r.join(e,"AppData","Local"),"CodexHongguo","Cache"):r.join(A.XDG_CACHE_HOME||r.join(e,".cache"),"codex-hongguo")}function it(A){return rt(A).target}function kA(A){try{let e=Ur(A);return e.isFile()&&!e.isSymbolicLink()?`${e.size}:${e.mtimeMs}:${e.ctimeMs}`:null}catch{return null}}async function ot(A){let e=Xe("sha256");for await(let t of _e(A))e.update(t);return e.digest("hex")}function at(A,e){return e.probe?e.probe(A):Kr(A,["-version"],{stdio:"ignore",timeout:5e3,windowsHide:!0}).status===0}async function SA(A){let{target:e,artifact:t}=A;if(O.get(e)&&O.get(e)===kA(e))return!0;try{let r=await FA(e);if(!r.isFile()||r.isSymbolicLink())return!1;if(t){let n=JSON.parse(await Ve(e+".json","utf8"));if(n.archiveSha256!==t.archiveSha256||!/^[a-f0-9]{64}$/.test(n.binarySha256)||r.size!==(t.binaryBytes||n.binaryBytes)||await ot(e)!==(t.binarySha256||n.binarySha256))return!1}return at(e,A)?(O.set(e,kA(e)),!0):!1}catch{return!1}}async function Pr(A,e,t){let r=AbortSignal.timeout(3e5);for(let n=0;;n++)try{return await jr(A,e,t,r)}catch(i){await J(e,{force:!0});let o=zr.has(i?.cause?.code||i?.code);if(!(o||i?.code==="download-http"&&Tr.has(i.httpStatus))||n>=2||r.aborted)throw E(o?"download-network":et.has(i?.code)?i.code:"download",i?.httpStatus);await tt((n+1)*1e3)}}async function jr(A,e,t,r){let n=new Set(["github.com","release-assets.githubusercontent.com","objects.githubusercontent.com","evermeet.cx","www.osxexperts.net"]),i=new URL(A.url),o;for(let c=0;c<=6;c++){if(i.protocol!=="https:"||i.username||i.password||i.port||!n.has(i.hostname))throw E("download-url");if(o=await t(i,{redirect:"manual",signal:r}),![301,302,303,307,308].includes(o.status))break;let a=o.headers.get("location");if(await o.body?.cancel(),!a||c===6)throw E("download-url");i=new URL(a,i)}if(!o.ok||!o.body)throw await o.body?.cancel(),E("download-http",o.status);if(Number(o.headers.get("content-length"))>A.archiveBytes)throw await o.body.cancel(),E("archive-size");let s=await $e(e,"wx",384),C=Xe("sha256"),g=0;try{for await(let c of o.body){if(g+=c.length,g>A.archiveBytes)throw E("archive-size");C.update(c),await s.writeFile(c)}if(g!==A.archiveBytes)throw E("archive-size");if(C.digest("hex")!==A.archiveSha256)throw E("archive-hash")}finally{await s.close()}}async function Wr(A,e,t){let r=await $e(t,"wx",384);try{if(A.format==="zip"){let I=Oe(await Ve(e),{filter:f=>f.name===A.entry&&f.originalSize<=(A.binaryBytes||268435456)})[A.entry];if(!I||A.binaryBytes&&I.length!==A.binaryBytes)throw E();await r.writeFile(I);return}let n=new At.default.XzReadableStream(Xr(e)),i=n.getReader(),o=Buffer.alloc(0),s=0,C=0,g=!1,c=0;try{for(;;){let{value:a,done:I}=await i.read();if(I)break;if(c+=a.length,c>1024*1024*1024)throw E();for(o=Buffer.concat([o,a]);o.length;)if(s){let f=Math.min(s,o.length);if(g&&await r.writeFile(o.subarray(0,f)),o=o.subarray(f),s-=f,!s&&g)return}else if(C){let f=Math.min(C,o.length);o=o.subarray(f),C-=f}else{if(o.length<512)break;let f=o.subarray(0,512);o=o.subarray(512);let u=(B,y)=>f.subarray(B,y).toString("utf8").split("\0")[0],h=[u(345,500),u(0,100)].filter(Boolean).join("/"),Q=parseInt(u(124,136).trim()||"0",8);if(!Number.isSafeInteger(Q)||Q<0||Q>512*1024*1024||(g=h===A.entry,g&&(A.binaryBytes&&Q!==A.binaryBytes||Q>256*1024*1024||![0,48].includes(f[156]))))throw E();s=Q,C=(512-Q%512)%512}}throw E()}finally{await i.cancel().catch(()=>{})}}finally{await r.close()}}function Xr(A){let e=_e(A)[Symbol.asyncIterator]();return new ReadableStream({async pull(t){let{value:r,done:n}=await e.next();n?t.close():t.enqueue(r)},async cancel(){await e.return?.()}})}async function st(A={}){let e=rt(A);if(await SA(e))return e.target;if(e.override)throw E();if(tA.has(e.target))return tA.get(e.target);let t=$r(e).finally(()=>tA.delete(e.target));return tA.set(e.target,t),t}async function _r(A,e){for(let t=A;;t=e.dirname(t)){let r=await FA(t);if(!r.isDirectory()||r.isSymbolicLink())return!1;if(e.dirname(t)===t)return!0}}async function gt(A={}){let{env:e=process.env,home:t=Ze(),platform:r=process.platform}=A,n=r==="win32"?MA:bA,i=nt({env:e,home:t,platform:r,paths:n}),o=n.join(i,"runtime","ffmpeg"),s=n.dirname(o),C=()=>Error("\u63D2\u4EF6\u5DF2\u5378\u8F7D\uFF0C\u4F46\u64AD\u653E\u7EC4\u4EF6\u6E05\u7406\u5931\u8D25\u3002\u8BF7\u5173\u95ED\u64AD\u653E\u5668\u5E76\u68C0\u67E5\u7F13\u5B58\u76EE\u5F55\u6743\u9650\u540E\uFF0C\u91CD\u65B0\u8FD0\u884C uninstall\u3002");if(!n.isAbsolute(i))throw C();try{if(!await _r(s,n))throw C();let g=await FA(o);g.isDirectory()&&!g.isSymbolicLink()?await J(o,{recursive:!0,force:!0,maxRetries:10,retryDelay:100}):await qr(o);for(let c of O.keys()){let a=n.relative(o,c);a&&!a.startsWith(".."+n.sep)&&!n.isAbsolute(a)&&O.delete(c)}}catch(g){if(g.code==="ENOENT")return{removed:0};throw C()}return await We(s).catch(()=>{}),await We(i).catch(()=>{}),{removed:1}}async function $r(A){let{directory:e,target:t,artifact:r}=A,n=e+".lock",i=Date.now()+42e4;await Pe(e,{recursive:!0,mode:448});let o=!1;for(;!o;)try{await Pe(n,{mode:448}),o=!0}catch(I){if(I.code!=="EEXIST"||Date.now()>i)throw E();if(await SA(A))return t;try{Date.now()-(await je(n)).mtimeMs>6e5&&await J(n,{recursive:!0,force:!0})}catch{}await tt(200)}let s=A.platform==="win32"?MA:bA,C=s.basename(t)+"."+Rr(),g=s.join(e,C+".archive"),c=s.join(e,C+".part"),a="download";try{if(await SA(A))return t;await Pr(r,g,A.fetchImpl||fetch),a="extract",await Wr(r,g,c);let I=await ot(c);if(r.binarySha256&&I!==r.binarySha256)throw E("binary-hash");if(await Yr(c,493),!at(c,A))throw E("probe");return a="publish",A.platform==="win32"&&await J(t,{force:!0}),await Gr(c,t),await Hr(t+".json",JSON.stringify({owner:Or,schema:1,archiveSha256:r.archiveSha256,binarySha256:I,binaryBytes:(await je(t)).size,version:r.version})+`
|
|
3
|
-
`,{mode:384}),O.set(t,kA(t)),t}catch(I){throw E(
|
|
2
|
+
var Ht=Object.create;var _A=Object.defineProperty;var Gt=Object.getOwnPropertyDescriptor;var Yt=Object.getOwnPropertyNames;var qt=Object.getPrototypeOf,Ut=Object.prototype.hasOwnProperty;var k=(A=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(A,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):A)(function(A){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+A+'" is not supported')});var B=(A,e)=>()=>{try{return e||A((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}};var Kt=(A,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Yt(e))!Ut.call(A,n)&&n!==t&&_A(A,n,{get:()=>e[n],enumerable:!(r=Gt(e,n))||r.enumerable});return A};var IA=(A,e,t)=>(t=A!=null?Ht(qt(A)):{},Kt(e||!A||!A.__esModule?_A(t,"default",{value:A,enumerable:!0}):t,A));var ee=B((Jn,Ae)=>{Ae.exports=ZA;ZA.sync=zt;var $A=k("fs");function Ot(A,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var r=0;r<t.length;r++){var n=t[r].toLowerCase();if(n&&A.substr(-n.length).toLowerCase()===n)return!0}return!1}function VA(A,e,t){return!A.isSymbolicLink()&&!A.isFile()?!1:Ot(e,t)}function ZA(A,e,t){$A.stat(A,function(r,n){t(r,r?!1:VA(n,A,e))})}function zt(A,e){return VA($A.statSync(A),A,e)}});var oe=B((Rn,ie)=>{ie.exports=re;re.sync=Tt;var te=k("fs");function re(A,e,t){te.stat(A,function(r,n){t(r,r?!1:ne(n,e))})}function Tt(A,e){return ne(te.statSync(A),e)}function ne(A,e){return A.isFile()&&Pt(A,e)}function Pt(A,e){var t=A.mode,r=A.uid,n=A.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),s=parseInt("100",8),C=parseInt("010",8),g=parseInt("001",8),c=s|C,a=t&g||t&C&&n===o||t&s&&r===i||t&c&&i===0;return a}});var se=B((Gn,ae)=>{var Hn=k("fs"),eA;process.platform==="win32"||global.TESTING_WINDOWS?eA=ee():eA=oe();ae.exports=CA;CA.sync=jt;function CA(A,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,n){CA(A,e||{},function(i,o){i?n(i):r(o)})})}eA(A,e||{},function(r,n){r&&(r.code==="EACCES"||e&&e.ignoreErrors)&&(r=null,n=!1),t(r,n)})}function jt(A,e){try{return eA.sync(A,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var he=B((Yn,ue)=>{var Y=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",ge=k("path"),Wt=Y?";":":",ce=se(),Ie=A=>Object.assign(new Error(`not found: ${A}`),{code:"ENOENT"}),Ce=(A,e)=>{let t=e.colon||Wt,r=A.match(/\//)||Y&&A.match(/\\/)?[""]:[...Y?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Y?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Y?n.split(t):[""];return Y&&A.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:r,pathExt:i,pathExtExe:n}},fe=(A,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:r,pathExt:n,pathExtExe:i}=Ce(A,e),o=[],s=g=>new Promise((c,a)=>{if(g===r.length)return e.all&&o.length?c(o):a(Ie(A));let I=r[g],f=/^".*"$/.test(I)?I.slice(1,-1):I,u=ge.join(f,A),h=!f&&/^\.[\\\/]/.test(A)?A.slice(0,2)+u:u;c(C(h,g,0))}),C=(g,c,a)=>new Promise((I,f)=>{if(a===n.length)return I(s(c+1));let u=n[a];ce(g+u,{pathExt:i},(h,Q)=>{if(!h&&Q)if(e.all)o.push(g+u);else return I(g+u);return I(C(g,c,a+1))})});return t?s(0).then(g=>t(null,g),t):s(0)},Xt=(A,e)=>{e=e||{};let{pathEnv:t,pathExt:r,pathExtExe:n}=Ce(A,e),i=[];for(let o=0;o<t.length;o++){let s=t[o],C=/^".*"$/.test(s)?s.slice(1,-1):s,g=ge.join(C,A),c=!C&&/^\.[\\\/]/.test(A)?A.slice(0,2)+g:g;for(let a=0;a<r.length;a++){let I=c+r[a];try{if(ce.sync(I,{pathExt:n}))if(e.all)i.push(I);else return I}catch{}}}if(e.all&&i.length)return i;if(e.nothrow)return null;throw Ie(A)};ue.exports=fe;fe.sync=Xt});var Qe=B((qn,fA)=>{"use strict";var le=(A={})=>{let e=A.env||process.env;return(A.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};fA.exports=le;fA.exports.default=le});var we=B((Un,Be)=>{"use strict";var Ee=k("path"),_t=he(),$t=Qe();function pe(A,e){let t=A.options.env||process.env,r=process.cwd(),n=A.options.cwd!=null,i=n&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(A.options.cwd)}catch{}let o;try{o=_t.sync(A.command,{path:t[$t({env:t})],pathExt:e?Ee.delimiter:void 0})}catch{}finally{i&&process.chdir(r)}return o&&(o=Ee.resolve(n?A.options.cwd:"",o)),o}function Vt(A){return pe(A)||pe(A,!0)}Be.exports=Vt});var lA=B((Kn,hA)=>{"use strict";var uA=/([()\][%!^"`<>&|;, *?])/g;function Zt(A){return A=A.replace(uA,"^$1"),A}function Ar(A,e){return A=`${A}`,A=A.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),A=A.replace(/(?=(\\+?)?)\1$/,"$1$1"),A=`"${A}"`,A=A.replace(uA,"^$1"),e&&(A=A.replace(uA,"^$1")),A}hA.exports.command=Zt;hA.exports.argument=Ar});var ve=B((On,me)=>{"use strict";me.exports=/^#!(.*)/});var ye=B((zn,de)=>{"use strict";var er=ve();de.exports=(A="")=>{let e=A.match(er);if(!e)return null;let[t,r]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?r:r?`${n} ${r}`:n}});var xe=B((Tn,De)=>{"use strict";var QA=k("fs"),tr=ye();function rr(A){let t=Buffer.alloc(150),r;try{r=QA.openSync(A,"r"),QA.readSync(r,t,0,150,0),QA.closeSync(r)}catch{}return tr(t.toString())}De.exports=rr});var be=B((Pn,Se)=>{"use strict";var nr=k("path"),Ne=we(),ke=lA(),ir=xe(),or=process.platform==="win32",ar=/\.(?:com|exe)$/i,sr=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function gr(A){A.file=Ne(A);let e=A.file&&ir(A.file);return e?(A.args.unshift(A.file),A.command=e,Ne(A)):A.file}function cr(A){if(!or)return A;let e=gr(A),t=!ar.test(e);if(A.options.forceShell||t){let r=sr.test(e);A.command=nr.normalize(A.command),A.command=ke.command(A.command),A.args=A.args.map(i=>ke.argument(i,r));let n=[A.command].concat(A.args).join(" ");A.args=["/d","/s","/c",`"${n}"`],A.command=process.env.comspec||"cmd.exe",A.options.windowsVerbatimArguments=!0}return A}function Ir(A,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let r={command:A,args:e,options:t,file:void 0,original:{command:A,args:e}};return t.shell?r:cr(r)}Se.exports=Ir});var Le=B((jn,Me)=>{"use strict";var EA=process.platform==="win32";function pA(A,e){return Object.assign(new Error(`${e} ${A.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${A.command}`,path:A.command,spawnargs:A.args})}function Cr(A,e){if(!EA)return;let t=A.emit;A.emit=function(r,n){if(r==="exit"){let i=Fe(n,e);if(i)return t.call(A,"error",i)}return t.apply(A,arguments)}}function Fe(A,e){return EA&&A===1&&!e.file?pA(e.original,"spawn"):null}function fr(A,e){return EA&&A===1&&!e.file?pA(e.original,"spawnSync"):null}Me.exports={hookChildProcess:Cr,verifyENOENT:Fe,verifyENOENTSync:fr,notFoundError:pA}});var He=B((Wn,q)=>{"use strict";var Je=k("child_process"),BA=be(),wA=Le();function Re(A,e,t){let r=BA(A,e,t),n=Je.spawn(r.command,r.args,r.options);return wA.hookChildProcess(n,r),n}function ur(A,e,t){let r=BA(A,e,t),n=Je.spawnSync(r.command,r.args,r.options);return n.error=n.error||wA.verifyENOENTSync(n.status,r),n}q.exports=Re;q.exports.spawn=Re;q.exports.sync=ur;q.exports._parse=BA;q.exports._enoent=wA});var Te=B((V,NA)=>{(function(e,t){typeof V=="object"&&typeof NA=="object"?NA.exports=t(k("stream/web")):typeof define=="function"&&define.amd?define(["stream/web"],t):typeof V=="object"?V["xz-decompress"]=t(k("stream/web")):e["xz-decompress"]=t(e["stream/web"])})(V,A=>(()=>{"use strict";var e=[,(i=>{i.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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"}),(i=>{i.exports=A})],t={};function r(i){var o=t[i];if(o!==void 0)return o.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,r),s.exports}r.d=(i,o)=>{for(var s in o)r.o(o,s)&&!r.o(i,s)&&Object.defineProperty(i,s,{enumerable:!0,get:o[s]})},r.o=(i,o)=>Object.prototype.hasOwnProperty.call(i,o),r.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};return(()=>{r.r(n),r.d(n,{XzReadableStream:()=>a});var i=r(1);let o=globalThis.ReadableStream||r(2).ReadableStream,s=0,C=1;class g{constructor(f){this.exports=f.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(f){this._refresh(),this.mem8.subarray(this.inStart,this.inEnd).set(f,0),this.exports.supply_input(this.ptr,f.byteLength),this._refresh()}getNextOutput(){let f=this.exports.get_next_output(this.ptr);if(this._refresh(),f!==s&&f!==C)throw new Error(`get_next_output failed with error code ${f}`);return{outChunk:this.mem8.slice(this.outStart,this.outStart+this.mem32[5]),finished:f===C}}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(f=>{this.waitQueue.push(f)})}release(){this.waitQueue.length>0?this.waitQueue.shift()():this.locked=!1}}class a extends o{static _moduleInstancePromise;static _moduleInstance;static _contextMutex=new c;static async _getModuleInstance(){let f=i.replace("data:application/wasm;base64,",""),u=Uint8Array.from(atob(f),p=>p.charCodeAt(0)).buffer,h={},Q=await WebAssembly.instantiate(u,h);a._moduleInstance=Q.instance}constructor(f){let u,h=null,Q=f.getReader();super({async start(p){await a._contextMutex.acquire();try{a._moduleInstance||await(a._moduleInstancePromise||(a._moduleInstancePromise=a._getModuleInstance())),u=new g(a._moduleInstance)}catch(d){throw a._contextMutex.release(),d}},async pull(p){try{if(u.needsMoreInput()){if(h===null||h.byteLength===0){let{done:P,value:j}=await Q.read();P||(h=j)}let w=Math.min(u.bufSize,h.byteLength);u.supplyInput(h.subarray(0,w)),h=h.subarray(w)}let d=u.getNextOutput();p.enqueue(d.outChunk),u.resetOutputBuffer(),d.finished&&(u.dispose(),a._contextMutex.release(),p.close())}catch(d){throw u&&u.dispose(),a._contextMutex.release(),d}},cancel(){try{return u&&u.dispose(),Q.cancel()}finally{a._contextMutex.release()}}})}}})(),n})())});import{readFileSync as Nn,existsSync as kn}from"node:fs";import{fileURLToPath as Sn}from"node:url";var ft=IA(He(),1),LA=IA(lA(),1);import{accessSync as Zr,constants as It,statSync as An}from"node:fs";import{homedir as en}from"node:os";import{posix as Ct,win32 as rA}from"node:path";import{spawn as fi,spawnSync as tn}from"node:child_process";import{createHash as _e,randomUUID as Hr}from"node:crypto";import{createReadStream as $e}from"node:fs";import{mkdir as je,lstat as bA,open as Ve,readFile as Ze,writeFile as Gr,rename as Yr,rm as J,chmod as qr,stat as We,unlink as Ur,rmdir as Xe}from"node:fs/promises";import{lstatSync as Kr}from"node:fs";import{homedir as At}from"node:os";import{posix as FA,win32 as MA}from"node:path";import{spawnSync as Or}from"node:child_process";import{createRequire as hr}from"module";var lr=hr("/"),K,Qr,Er;try{K=lr("worker_threads"),Qr=K.Worker,Er=K.isMarkedAsUntransferable}catch{}var v=Uint8Array,U=Uint16Array,pr=Int32Array,Ge=new v([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]),Ye=new v([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]),Br=new v([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),qe=function(A,e){for(var t=new U(31),r=0;r<31;++r)t[r]=e+=1<<A[r-1];for(var n=new pr(t[30]),r=1;r<30;++r)for(var i=t[r];i<t[r+1];++i)n[i]=i-t[r]<<5|r;return{b:t,r:n}},K=qe(Ge,2),Ue=K.b,wr=K.r;Ue[28]=258,wr[258]=28;var Ke=qe(Ye,0),mr=Ke.b,_n=Ke.r,yA=new U(32768);for(l=0;l<32768;++l)M=(l&43690)>>1|(l&21845)<<1,M=(M&52428)>>2|(M&13107)<<2,M=(M&61680)>>4|(M&3855)<<4,yA[l]=((M&65280)>>8|(M&255)<<8)>>1;var M,l,_=(function(A,e,t){for(var r=A.length,n=0,i=new U(e);n<r;++n)A[n]&&++i[A[n]-1];var o=new U(e);for(n=1;n<e;++n)o[n]=o[n-1]+i[n-1]<<1;var s;if(t){s=new U(1<<e);var C=15-e;for(n=0;n<r;++n)if(A[n])for(var g=n<<4|A[n],c=e-A[n],a=o[A[n]-1]++<<c,I=a|(1<<c)-1;a<=I;++a)s[yA[a]>>C]=g}else for(s=new U(r),n=0;n<r;++n)A[n]&&(s[n]=yA[o[A[n]-1]++]>>15-A[n]);return s}),$=new v(288);for(l=0;l<144;++l)$[l]=8;var l;for(l=144;l<256;++l)$[l]=9;var l;for(l=256;l<280;++l)$[l]=7;var l;for(l=280;l<288;++l)$[l]=8;var l,Oe=new v(32);for(l=0;l<32;++l)Oe[l]=5;var l;var vr=_($,9,1);var dr=_(Oe,5,1),mA=function(A){for(var e=A[0],t=1;t<A.length;++t)A[t]>e&&(e=A[t]);return e},x=function(A,e,t){var r=e/8|0;return(A[r]|A[r+1]<<8)>>(e&7)&t},vA=function(A,e){var t=e/8|0;return(A[t]|A[t+1]<<8|A[t+2]<<16)>>(e&7)},yr=function(A){return(A+7)/8|0},xA=function(A,e,t){return(e==null||e<0)&&(e=0),(t==null||t>A.length)&&(t=A.length),new v(A.subarray(e,t))};var Dr=["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"],m=function(A,e,t){var r=new Error(e||Dr[A]);if(r.code=A,Error.captureStackTrace&&Error.captureStackTrace(r,m),!t)throw r;return r},xr=function(A,e,t,r){var n=A.length,i=r?r.length:0;if(!n||e.f&&!e.l)return t||new v(0);var o=!t,s=o||e.i!=2,C=e.i;o&&(t=new v(n*3));var g=function(jA){var WA=t.length;if(jA>WA){var XA=new v(Math.max(WA*2,jA));XA.set(t),t=XA}},c=e.f||0,a=e.p||0,I=e.b||0,f=e.l,u=e.d,h=e.m,Q=e.n,p=n*8;do{if(!f){c=x(A,a,1);var d=x(A,a+1,3);if(a+=3,d)if(d==1)f=vr,u=dr,h=9,Q=5;else if(d==2){var oA=x(A,a,31)+257,YA=x(A,a+10,15)+4,qA=oA+x(A,a+5,31)+1;a+=14;for(var W=new v(qA),aA=new v(19),y=0;y<YA;++y)aA[Br[y]]=x(A,a+y*3,7);a+=YA*3;for(var UA=mA(aA),Ft=(1<<UA)-1,Mt=_(aA,UA,1),y=0;y<qA;){var KA=Mt[x(A,a,Ft)];a+=KA&15;var w=KA>>4;if(w<16)W[y++]=w;else{var H=0,AA=0;for(w==16?(AA=3+x(A,a,3),a+=2,H=W[y-1]):w==17?(AA=3+x(A,a,7),a+=3):w==18&&(AA=11+x(A,a,127),a+=7);AA--;)W[y++]=H}}var OA=W.subarray(0,oA),L=W.subarray(oA);h=mA(OA),Q=mA(L),f=_(OA,h,1),u=_(L,Q,1)}else m(1);else{var w=yr(a)+4,P=A[w-4]|A[w-3]<<8,j=w+P;if(j>n){C&&m(0);break}s&&g(I+P),t.set(A.subarray(w,j),I),e.b=I+=P,e.p=a=j*8,e.f=c;continue}if(a>p){C&&m(0);break}}s&&g(I+131072);for(var Lt=(1<<h)-1,Jt=(1<<Q)-1,sA=a;;sA=a){var H=f[vA(A,a)&Lt],G=H>>4;if(a+=H&15,a>p){C&&m(0);break}if(H||m(2),G<256)t[I++]=G;else if(G==256){sA=a,f=null;break}else{var zA=G-254;if(G>264){var y=G-257,X=Ge[y];zA=x(A,a,(1<<X)-1)+Ue[y],a+=X}var gA=u[vA(A,a)&Jt],cA=gA>>4;gA||m(3),a+=gA&15;var L=mr[cA];if(cA>3){var X=Ye[cA];L+=vA(A,a)&(1<<X)-1,a+=X}if(a>p){C&&m(0);break}s&&g(I+131072);var TA=I+zA;if(I<L){var PA=i-L,Rt=Math.min(L,TA);for(PA+I<0&&m(3);I<Rt;++I)t[I]=r[PA+I]}for(;I<TA;++I)t[I]=t[I-L]}}e.l=f,e.p=sA,e.b=I,e.f=c,f&&(c=1,e.m=h,e.d=u,e.n=Q)}while(!c);return I!=t.length&&o?xA(t,0,I):t.subarray(0,I)};var Nr=new v(0);var S=function(A,e){return A[e]|A[e+1]<<8},D=function(A,e){return(A[e]|A[e+1]<<8|A[e+2]<<16|A[e+3]<<24)>>>0},dA=function(A,e){return D(A,e)+D(A,e+4)*4294967296};function kr(A,e){return xr(A,{i:2},e&&e.out,e&&e.dictionary)}var DA=typeof TextDecoder<"u"&&new TextDecoder,Sr=0;try{DA.decode(Nr,{stream:!0}),Sr=1}catch{}var br=function(A){for(var e="",t=0;;){var r=A[t++],n=(r>127)+(r>223)+(r>239);if(t+n>A.length)return{s:e,r:xA(A,t-1)};n?n==3?(r=((r&15)<<18|(A[t++]&63)<<12|(A[t++]&63)<<6|A[t++]&63)-65536,e+=String.fromCharCode(55296|r>>10,56320|r&1023)):n&1?e+=String.fromCharCode((r&31)<<6|A[t++]&63):e+=String.fromCharCode((r&15)<<12|(A[t++]&63)<<6|A[t++]&63):e+=String.fromCharCode(r)}};function Fr(A,e){if(e){for(var t="",r=0;r<A.length;r+=16384)t+=String.fromCharCode.apply(null,A.subarray(r,r+16384));return t}else{if(DA)return DA.decode(A);var n=br(A),i=n.s,t=n.r;return t.length&&m(8),i}}var Mr=function(A,e){return e+30+S(A,e+26)+S(A,e+28)},Lr=function(A,e,t){var r=S(A,e+28),n=S(A,e+30),i=Fr(A.subarray(e+46,e+46+r),!(S(A,e+8)&2048)),o=e+46+r,s=Jr(A,o,n,t,D(A,e+20),D(A,e+24),D(A,e+42)),C=s[0],g=s[1],c=s[2];return[S(A,e+10),C,g,i,o+n+S(A,e+32),c]},Jr=function(A,e,t,r,n,i,o){var s=n==4294967295,C=i==4294967295,g=o==4294967295,c=e+t,a=s+C+g;if(r&&a){for(;e+4<c;e+=4+S(A,e+2))if(S(A,e)==1)return[s?dA(A,e+4+8*C):n,C?dA(A,e+4):i,g?dA(A,e+4+8*(C+s)):o,1];r<2&&m(13)}return[n,i,o,0]};function ze(A,e){for(var t={},r=A.length-22;D(A,r)!=101010256;--r)(!r||A.length-r>65558)&&m(13);var n=S(A,r+8);if(!n)return{};var i=D(A,r+16),o=D(A,r-20)==117853008;if(o){var s=D(A,r-12);o=D(A,s)==101075792,o&&(n=D(A,s+32),i=D(A,s+48))}for(var C=e&&e.filter,g=0;g<n;++g){var c=Lr(A,i,o),a=c[0],I=c[1],f=c[2],u=c[3],h=c[4],Q=c[5],p=Mr(A,Q);i=h,(!C||C({name:u,size:I,originalSize:f,compression:a}))&&(a?a==8?t[u]=kr(A.subarray(p,p+I),{out:new v(f)}):m(14,"unknown compression type "+a):t[u]=xA(A,p,p+I))}return t}var et=IA(Te(),1);var Pe={"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"},"win32-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-winarm64-gpl-9.0.zip",format:"zip",entry:"ffmpeg-n9.0.2-39-g7adfbe40dc-winarm64-gpl-9.0/bin/ffmpeg.exe",archiveBytes:136603040,archiveSha256:"8b3c394762f26716ccef03ac1b7ac76430759080e1255aa9bc01d74db590bcb5",binaryBytes:95170560,binarySha256:"e2248aa5ecd155814e951fd0606df71589699a2fd4db14a9323a0b400a6c9b06"}};var O=new Map,tA=new Map,zr="@kyun.si/codex-hongguo",tt=new Set(["prepare","download","download-url","download-http","download-network","archive-size","archive-hash","extract","binary-hash","probe","publish"]),Tr=new Set(["UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_SOCKET","ECONNRESET","ECONNREFUSED","ETIMEDOUT","EAI_AGAIN","ENETUNREACH","EHOSTUNREACH"]),Pr=new Set([408,429,500,502,503,504]),E=(A="prepare",e)=>Object.assign(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"),{code:A,...Number.isInteger(e)&&e>=400&&e<=599?{httpStatus:e}:{}}),rt=A=>new Promise(e=>setTimeout(e,A));function nt(A={}){let{env:e=process.env,home:t=At(),platform:r=process.platform,arch:n=process.arch}=A,i=r==="win32"?MA:FA;if(e.HONGGUO_FFMPEG){if(!i.isAbsolute(e.HONGGUO_FFMPEG))throw E();return{...A,env:e,platform:r,target:e.HONGGUO_FFMPEG,override:!0}}let o=(A.artifacts||Pe)[r+"-"+n];if(!o)throw Error("\u5F53\u524D\u7CFB\u7EDF\u67B6\u6784\u6682\u4E0D\u652F\u6301\u81EA\u52A8\u51C6\u5907\u64AD\u653E\u7EC4\u4EF6\u3002");let s=it({env:e,home:t,platform:r,paths:i}),C=i.join(s,"runtime","ffmpeg",o.archiveSha256.slice(0,16),r+"-"+n);return{...A,env:e,platform:r,artifact:o,directory:C,target:i.join(C,r==="win32"?"ffmpeg.exe":"ffmpeg")}}function it({env:A,home:e,platform:t,paths:r}){return A.HONGGUO_RUNTIME_DIR?r.join(A.HONGGUO_RUNTIME_DIR,"codex-hongguo"):t==="darwin"?r.join(e,"Library","Caches","CodexHongguo"):t==="win32"?r.join(A.LOCALAPPDATA||r.join(e,"AppData","Local"),"CodexHongguo","Cache"):r.join(A.XDG_CACHE_HOME||r.join(e,".cache"),"codex-hongguo")}function ot(A){return nt(A).target}function kA(A){try{let e=Kr(A);return e.isFile()&&!e.isSymbolicLink()?`${e.size}:${e.mtimeMs}:${e.ctimeMs}`:null}catch{return null}}async function at(A){let e=_e("sha256");for await(let t of $e(A))e.update(t);return e.digest("hex")}function st(A,e){return e.probe?e.probe(A):Or(A,["-version"],{stdio:"ignore",timeout:5e3,windowsHide:!0}).status===0}async function SA(A){let{target:e,artifact:t}=A;if(O.get(e)&&O.get(e)===kA(e))return!0;try{let r=await bA(e);if(!r.isFile()||r.isSymbolicLink())return!1;if(t){let n=JSON.parse(await Ze(e+".json","utf8"));if(n.archiveSha256!==t.archiveSha256||!/^[a-f0-9]{64}$/.test(n.binarySha256)||r.size!==(t.binaryBytes||n.binaryBytes)||await at(e)!==(t.binarySha256||n.binarySha256))return!1}return st(e,A)?(O.set(e,kA(e)),!0):!1}catch{return!1}}async function jr(A,e,t){let r=AbortSignal.timeout(3e5);for(let n=0;;n++)try{return await Wr(A,e,t,r)}catch(i){await J(e,{force:!0});let o=Tr.has(i?.cause?.code||i?.code);if(!(o||i?.code==="download-http"&&Pr.has(i.httpStatus))||n>=2||r.aborted)throw E(o?"download-network":tt.has(i?.code)?i.code:"download",i?.httpStatus);await rt((n+1)*1e3)}}async function Wr(A,e,t,r){let n=new Set(["github.com","release-assets.githubusercontent.com","objects.githubusercontent.com","evermeet.cx","www.osxexperts.net"]),i=new URL(A.url),o;for(let c=0;c<=6;c++){if(i.protocol!=="https:"||i.username||i.password||i.port||!n.has(i.hostname))throw E("download-url");if(o=await t(i,{redirect:"manual",signal:r}),![301,302,303,307,308].includes(o.status))break;let a=o.headers.get("location");if(await o.body?.cancel(),!a||c===6)throw E("download-url");i=new URL(a,i)}if(!o.ok||!o.body)throw await o.body?.cancel(),E("download-http",o.status);if(Number(o.headers.get("content-length"))>A.archiveBytes)throw await o.body.cancel(),E("archive-size");let s=await Ve(e,"wx",384),C=_e("sha256"),g=0;try{for await(let c of o.body){if(g+=c.length,g>A.archiveBytes)throw E("archive-size");C.update(c),await s.writeFile(c)}if(g!==A.archiveBytes)throw E("archive-size");if(C.digest("hex")!==A.archiveSha256)throw E("archive-hash")}finally{await s.close()}}async function Xr(A,e,t){let r=await Ve(t,"wx",384);try{if(A.format==="zip"){let I=ze(await Ze(e),{filter:f=>f.name===A.entry&&f.originalSize<=(A.binaryBytes||268435456)})[A.entry];if(!I||A.binaryBytes&&I.length!==A.binaryBytes)throw E();await r.writeFile(I);return}let n=new et.default.XzReadableStream(_r(e)),i=n.getReader(),o=Buffer.alloc(0),s=0,C=0,g=!1,c=0;try{for(;;){let{value:a,done:I}=await i.read();if(I)break;if(c+=a.length,c>1024*1024*1024)throw E();for(o=Buffer.concat([o,a]);o.length;)if(s){let f=Math.min(s,o.length);if(g&&await r.writeFile(o.subarray(0,f)),o=o.subarray(f),s-=f,!s&&g)return}else if(C){let f=Math.min(C,o.length);o=o.subarray(f),C-=f}else{if(o.length<512)break;let f=o.subarray(0,512);o=o.subarray(512);let u=(p,d)=>f.subarray(p,d).toString("utf8").split("\0")[0],h=[u(345,500),u(0,100)].filter(Boolean).join("/"),Q=parseInt(u(124,136).trim()||"0",8);if(!Number.isSafeInteger(Q)||Q<0||Q>512*1024*1024||(g=h===A.entry,g&&(A.binaryBytes&&Q!==A.binaryBytes||Q>256*1024*1024||![0,48].includes(f[156]))))throw E();s=Q,C=(512-Q%512)%512}}throw E()}finally{await i.cancel().catch(()=>{})}}finally{await r.close()}}function _r(A){let e=$e(A)[Symbol.asyncIterator]();return new ReadableStream({async pull(t){let{value:r,done:n}=await e.next();n?t.close():t.enqueue(r)},async cancel(){await e.return?.()}})}async function gt(A={}){let e=nt(A);if(await SA(e))return e.target;if(e.override)throw E();if(tA.has(e.target))return tA.get(e.target);let t=Vr(e).finally(()=>tA.delete(e.target));return tA.set(e.target,t),t}async function $r(A,e){for(let t=A;;t=e.dirname(t)){let r=await bA(t);if(!r.isDirectory()||r.isSymbolicLink())return!1;if(e.dirname(t)===t)return!0}}async function ct(A={}){let{env:e=process.env,home:t=At(),platform:r=process.platform}=A,n=r==="win32"?MA:FA,i=it({env:e,home:t,platform:r,paths:n}),o=n.join(i,"runtime","ffmpeg"),s=n.dirname(o),C=()=>Error("\u63D2\u4EF6\u5DF2\u5378\u8F7D\uFF0C\u4F46\u64AD\u653E\u7EC4\u4EF6\u6E05\u7406\u5931\u8D25\u3002\u8BF7\u5173\u95ED\u64AD\u653E\u5668\u5E76\u68C0\u67E5\u7F13\u5B58\u76EE\u5F55\u6743\u9650\u540E\uFF0C\u91CD\u65B0\u8FD0\u884C uninstall\u3002");if(!n.isAbsolute(i))throw C();try{if(!await $r(s,n))throw C();let g=await bA(o);g.isDirectory()&&!g.isSymbolicLink()?await J(o,{recursive:!0,force:!0,maxRetries:10,retryDelay:100}):await Ur(o);for(let c of O.keys()){let a=n.relative(o,c);a&&!a.startsWith(".."+n.sep)&&!n.isAbsolute(a)&&O.delete(c)}}catch(g){if(g.code==="ENOENT")return{removed:0};throw C()}return await Xe(s).catch(()=>{}),await Xe(i).catch(()=>{}),{removed:1}}async function Vr(A){let{directory:e,target:t,artifact:r}=A,n=e+".lock",i=Date.now()+42e4;await je(e,{recursive:!0,mode:448});let o=!1;for(;!o;)try{await je(n,{mode:448}),o=!0}catch(I){if(I.code!=="EEXIST"||Date.now()>i)throw E();if(await SA(A))return t;try{Date.now()-(await We(n)).mtimeMs>6e5&&await J(n,{recursive:!0,force:!0})}catch{}await rt(200)}let s=A.platform==="win32"?MA:FA,C=s.basename(t)+"."+Hr(),g=s.join(e,C+".archive"),c=s.join(e,C+".part"),a="download";try{if(await SA(A))return t;await jr(r,g,A.fetchImpl||fetch),a="extract",await Xr(r,g,c);let I=await at(c);if(r.binarySha256&&I!==r.binarySha256)throw E("binary-hash");if(await qr(c,493),!st(c,A))throw E("probe");return a="publish",A.platform==="win32"&&await J(t,{force:!0}),await Yr(c,t),await Gr(t+".json",JSON.stringify({owner:zr,schema:1,archiveSha256:r.archiveSha256,binarySha256:I,binaryBytes:(await We(t)).size,version:r.version})+`
|
|
3
|
+
`,{mode:384}),O.set(t,kA(t)),t}catch(I){throw E(tt.has(I?.code)&&I.code!=="prepare"?I.code:a,I?.httpStatus)}finally{await Promise.all([J(g,{force:!0}),J(c,{force:!0}),J(n,{recursive:!0,force:!0})])}}function rn(A,e,t={}){if(process.platform!=="win32"||!/\.(?:cmd|bat)$/i.test(A))return null;let r=rA.join(t.env?.SystemRoot||process.env.SystemRoot||"C:\\Windows","System32","cmd.exe"),n=[LA.default.command(rA.normalize(A)),...e.map(i=>LA.default.argument(i,!0))].join(" ");return{shell:r,args:["/d","/s","/v:off","/c",'"'+n+'"'],options:{...t,windowsVerbatimArguments:!0}}}function z(A,e=[],t){let r=rn(A,e,t);return r?tn(r.shell,r.args,r.options):ft.default.sync(A,e,t)}function nA(A,e,{env:t=process.env,home:r=en(),platform:n=process.platform,arch:i=process.arch}={}){if(e)return e;if(A==="ffmpeg")return ot({env:t,home:r,platform:n,arch:i});let{delimiter:o,dirname:s,join:C,isAbsolute:g,extname:c}=n==="win32"?rA:Ct,a=Object.keys(t).find(h=>h.toUpperCase()==="PATH")||"PATH",I=[s(process.execPath),...(t[a]||"").split(o).filter(Boolean).map(h=>h.replace(/^"(.*)"$/,"$1"))];n!=="win32"?I.push("/opt/homebrew/bin","/usr/local/bin","/usr/bin","/bin",C(r,".volta/bin"),C(r,".local/bin")):I.push(C(t.APPDATA||C(r,"AppData","Roaming"),"npm"),C(r,".volta","bin"));let f=n!=="win32"||c(A)?[""]:[".exe",".com",".cmd",".bat"],u=I.filter(g).flatMap(h=>f.map(Q=>C(h,A+Q)));A==="codex"&&n==="darwin"&&u.push("/Applications/Codex.app/Contents/Resources/codex");for(let h of u)try{if(Zr(h,n==="win32"?It.F_OK:It.X_OK),An(h).isFile())return h}catch{}return A}function ut(){let{delimiter:A,dirname:e}=process.platform==="win32"?rA:Ct,t=Object.keys(process.env).find(r=>r.toUpperCase()==="PATH")||"PATH";process.env[t]=[...new Set([e(process.execPath),...(process.env[t]||"").split(A).filter(Boolean)])].join(A),process.env.HONGGUO_CODEX=nA("codex",process.env.HONGGUO_CODEX)}var ht="\u8BF7\u5728 Codex \u8BBE\u7F6E \u2192 Hooks \u2192 \u7EA2\u679C\u77ED\u5267\u4E2D\u68C0\u67E5\u6388\u6743\uFF0C\u5BA1\u67E5\u3001\u4FE1\u4EFB\u5E76\u542F\u7528 UserPromptSubmit\u3001Stop\u3001Interrupt\u3002";import{lstat as lt,rm as gn,unlink as cn}from"node:fs/promises";import{homedir as In}from"node:os";import{posix as Cn,win32 as fn}from"node:path";import{homedir as nn}from"node:os";import{posix as on,win32 as an}from"node:path";import{fileURLToPath as sn}from"node:url";var Bi=sn(new URL("../../",import.meta.url));function Z({env:A=process.env,home:e=nn(),platform:t=process.platform}={}){let{join:r}=t==="win32"?an:on;return A.HONGGUO_DATA_DIR?A.HONGGUO_DATA_DIR:t==="darwin"?r(e,"Library","Application Support","CodexHongguo"):t==="win32"?r(A.LOCALAPPDATA||r(e,"AppData","Local"),"CodexHongguo"):r(A.XDG_DATA_HOME||r(e,".local","share"),"codex-hongguo")}async function Qt(A={}){let{env:e=process.env,home:t=In(),platform:r=process.platform}=A,n=r==="win32"?fn:Cn,i=n.resolve(Z({env:e,home:t,platform:r})),o=n.resolve(Z({env:{...e,HONGGUO_DATA_DIR:void 0},home:t,platform:r})),s=i===o?[i]:["player.sqlite","player.sqlite-wal","player.sqlite-shm","player.sqlite-journal","media","panel-media","device","managed-marketplace"].map(g=>n.join(i,g)),C=!1;for(let g of s)try{for(let a=n.dirname(g);;a=n.dirname(a)){let I=await lt(a);if(!I.isDirectory()||I.isSymbolicLink())throw Error("Substituted data ancestor");if(n.dirname(a)===a)break}let c=await lt(g);c.isDirectory()&&!c.isSymbolicLink()?await gn(g,{recursive:!0,force:!0,maxRetries:10,retryDelay:100}):await cn(g)}catch(c){c.code!=="ENOENT"&&(C=!0)}if(C)throw Error("\u63D2\u4EF6\u5DF2\u5378\u8F7D\uFF0C\u4F46\u672C\u5730\u6570\u636E\u6E05\u7406\u5931\u8D25\u3002\u8BF7\u5173\u95ED\u64AD\u653E\u5668\u5E76\u68C0\u67E5\u6570\u636E\u76EE\u5F55\u6743\u9650\u540E\uFF0C\u91CD\u65B0\u8FD0\u884C uninstall\u3002")}import{lstat as Et,readdir as un,realpath as JA}from"node:fs/promises";import{homedir as Bt}from"node:os";import{win32 as b}from"node:path";var hn=`$ErrorActionPreference = 'Stop'
|
|
4
4
|
$result = @{ processes = @(); unreadable = 0 }
|
|
5
5
|
$query = "SELECT ProcessId, ExecutablePath FROM Win32_Process WHERE Name = 'run-node.exe' OR Name = 'run-node-arm64.exe'"
|
|
6
6
|
foreach ($candidate in @(Get-CimInstance -Query $query)) {
|
|
@@ -11,16 +11,16 @@ $json = ConvertTo-Json -InputObject $result -Compress -Depth 4
|
|
|
11
11
|
$bytes = [Text.Encoding]::UTF8.GetBytes($json)
|
|
12
12
|
$output = [Console]::OpenStandardOutput()
|
|
13
13
|
$output.Write($bytes, 0, $bytes.Length)
|
|
14
|
-
$output.Flush()`,R=()=>Object.assign(Error("\u65E0\u6CD5\u786E\u8BA4\u7EA2\u679C\u540E\u53F0\u662F\u5426\u5DF2\u9000\u51FA\uFF0C\u5378\u8F7D\u5DF2\u505C\u6B62\u4E14\u672A\u4FEE\u6539\u6587\u4EF6\u6216\u914D\u7F6E\u3002\u8BF7\u5148\u5173\u95ED\u7EA2\u679C\u64AD\u653E\u5668\u53CA\u4F7F\u7528\u8BE5\u63D2\u4EF6\u7684 Codex \u4F1A\u8BDD\uFF0C\u518D\u91CD\u65B0\u8FD0\u884C uninstall\u3002"),{code:"PLUGIN_PROCESS_CHECK_FAILED"}),
|
|
15
|
-
`,r=iA(A,".marketplace-"+
|
|
14
|
+
$output.Flush()`,R=()=>Object.assign(Error("\u65E0\u6CD5\u786E\u8BA4\u7EA2\u679C\u540E\u53F0\u662F\u5426\u5DF2\u9000\u51FA\uFF0C\u5378\u8F7D\u5DF2\u505C\u6B62\u4E14\u672A\u4FEE\u6539\u6587\u4EF6\u6216\u914D\u7F6E\u3002\u8BF7\u5148\u5173\u95ED\u7EA2\u679C\u64AD\u653E\u5668\u53CA\u4F7F\u7528\u8BE5\u63D2\u4EF6\u7684 Codex \u4F1A\u8BDD\uFF0C\u518D\u91CD\u65B0\u8FD0\u884C uninstall\u3002"),{code:"PLUGIN_PROCESS_CHECK_FAILED"}),pt=A=>b.normalize(A.replace(/^\\\\\?\\UNC\\/i,"\\\\").replace(/^\\\\\?\\/,"")).toLowerCase();async function ln({env:A=process.env,home:e=Bt()}={}){let t=A.CODEX_HOME||b.join(e,".codex");if(!b.isAbsolute(t))throw R();let r=b.join(t,"plugins","cache","hongguo-local","codex-hongguo"),n;try{n=await un(r,{withFileTypes:!0})}catch(o){if(o.code==="ENOENT")return[];throw R()}let i=[];for(let o of n){if(!o.isDirectory()||o.isSymbolicLink())continue;let s=b.join(r,o.name),C=b.join(s,"bin");try{let g=await Et(C);if(!g.isDirectory()||g.isSymbolicLink())continue;let c=await JA(s);for(let a of["run-node.exe","run-node-arm64.exe"]){let I=b.join(C,a);try{let f=await Et(I);if(!f.isFile()||f.isSymbolicLink())continue;let u=await JA(I);b.relative(c,u).toLowerCase()==="bin\\"+a&&i.push(u)}catch(f){if(f.code!=="ENOENT")throw f}}}catch(g){if(g.code!=="ENOENT")throw R()}}return i}async function Qn(A,e,t=JA){let r=new Set(e.map(pt)),n=[];for(let i of A){if(!Number.isInteger(i?.pid)||i.pid<=0||i.pid===process.pid||typeof i.executable!="string"||!b.isAbsolute(i.executable))continue;let o;try{o=await t(i.executable)}catch{continue}r.has(pt(o))&&n.push({pid:i.pid,executable:i.executable})}return n}async function wt({env:A=process.env,home:e=Bt(),platform:t=process.platform}={}){if(t!=="win32")return;let r=await ln({env:A,home:e});if(!r.length)return;let n=b.join(A.SystemRoot||"C:\\Windows","System32","WindowsPowerShell","v1.0","powershell.exe"),i=z(n,["-NoLogo","-NoProfile","-NonInteractive","-Command",hn],{env:A,encoding:"utf8",timeout:2e4,windowsHide:!0,maxBuffer:2*1024*1024,stdio:["ignore","pipe","ignore"]});if(i.status!==0)throw R();let o;try{o=JSON.parse(i.stdout)}catch{throw R()}if(!Array.isArray(o.processes)||!Number.isInteger(o.unreadable))throw R();if((await Qn(o.processes,r)).length)throw Object.assign(Error("\u7EA2\u679C\u540E\u53F0\u4ECD\u5728\u8FD0\u884C\uFF0C\u6B63\u5728\u5360\u7528\u63D2\u4EF6\u6587\u4EF6\u3002\u5378\u8F7D\u5C1A\u672A\u5F00\u59CB\uFF0C\u7F13\u5B58\u3001\u5E02\u573A\u914D\u7F6E\u548C\u89C2\u770B\u6570\u636E\u5747\u5DF2\u4FDD\u7559\u3002\u8BF7\u5148\u5173\u95ED\u7EA2\u679C\u64AD\u653E\u5668\u53CA\u4F7F\u7528\u8BE5\u63D2\u4EF6\u7684 Codex \u4F1A\u8BDD\uFF0C\u518D\u91CD\u65B0\u8FD0\u884C uninstall\u3002"),{code:"PLUGIN_RUNNING"});if(o.unreadable)throw R()}import{readFileSync as En}from"node:fs";var mt=JSON.parse(En(new URL("../../package.json",import.meta.url),"utf8")),pn=mt.name,RA=mt.version,N="hongguo-local";function vt(A,e={source:"npm",package:pn,version:A}){return{name:N,interface:{displayName:"\u7EA2\u679C\u77ED\u5267"},plugins:[{name:"codex-hongguo",source:e,policy:{installation:"AVAILABLE",authentication:"ON_INSTALL"},category:"Entertainment"}]}}import{mkdir as mn,readFile as vn,writeFile as dn,rename as yn,rm as Dn}from"node:fs/promises";import{join as iA,relative as dt,resolve as Dt}from"node:path";import{randomUUID as xn}from"node:crypto";import{realpathSync as yt}from"node:fs";var Bn=/^(0|[1-9]\d{0,2})\.(0|[1-9]\d{0,2})\.(0|[1-9]\d{0,2})(?:-beta\.([1-9]\d*))?$/;function wn(A){let e=typeof A=="string"&&Bn.exec(A);return!e||e[4]&&!Number.isSafeInteger(Number(e[4]))?null:{core:e.slice(1,4).map(Number),beta:e[4]?Number(e[4]):null}}var HA=A=>!!wn(A);var xt=Dt(Z(),"managed-marketplace"),F=iA(xt,RA);function GA(A){let e=A?.marketplaceSource?.source;return typeof e=="string"&&e.length?e:A?.root}function Nt(A,e=xt){if(typeof A!="string")return!1;if(HA(dt(e,Dt(A))))return!0;try{return HA(dt(yt.native(e),yt.native(A)))}catch{return!1}}async function kt(){let A=iA(F,".agents","plugins"),e=iA(A,"marketplace.json"),t=JSON.stringify(vt(RA),null,2)+`
|
|
15
|
+
`,r=iA(A,".marketplace-"+xn()+".tmp");try{return await mn(A,{recursive:!0,mode:448}),await vn(e,"utf8").catch(()=>"")===t||(await dn(r,t,{mode:384}),await yn(r,e)),F}catch{throw Error("\u65E0\u6CD5\u51C6\u5907\u672C\u673A npm \u63D2\u4EF6\u5E02\u573A\u7D22\u5F15\uFF0C\u8BF7\u68C0\u67E5\u7EA2\u679C\u7528\u6237\u6570\u636E\u76EE\u5F55\u6743\u9650\u540E\u91CD\u8BD5\u3002")}finally{await Dn(r,{force:!0}).catch(()=>{})}}var T="codex-hongguo@"+N,St=A=>typeof A=="string"?A.replace(/^https:\/\/github\.com\//,"").replace(/\.git$/,"").replace(/\/$/,""):A;function bt(A,e=process.env){return t=>{let r=z(A,[...t,"--json"],{env:e,encoding:"utf8",timeout:12e4,windowsHide:!0,maxBuffer:4194304});if(r.status!==0){if(t[0]==="plugin"&&t[1]==="remove"){let o=/os error 5|access is denied|permission denied|拒绝访问|EBUSY|EPERM|being used by another process/i.test((r.stderr||"")+`
|
|
16
16
|
`+(r.stdout||"")),s=Error(o?"\u65E0\u6CD5\u5220\u9664\u7EA2\u679C\u63D2\u4EF6\u7F13\u5B58\uFF1A\u6587\u4EF6\u4ECD\u88AB\u5360\u7528\u6216\u6743\u9650\u4E0D\u8DB3\u3002\u8BF7\u5173\u95ED\u7EA2\u679C\u64AD\u653E\u5668\u53CA\u4F7F\u7528\u8BE5\u63D2\u4EF6\u7684 Codex \u4F1A\u8BDD\uFF0C\u518D\u91CD\u65B0\u8FD0\u884C uninstall\uFF1B\u5C1A\u672A\u6E05\u7406\u89C2\u770B\u6570\u636E\u3002":"\u7EA2\u679C\u63D2\u4EF6\u5378\u8F7D\u5931\u8D25\uFF0C\u5C1A\u672A\u6E05\u7406\u89C2\u770B\u6570\u636E\u3002\u8BF7\u5173\u95ED\u7EA2\u679C\u64AD\u653E\u5668\u53CA\u4F7F\u7528\u8BE5\u63D2\u4EF6\u7684 Codex \u4F1A\u8BDD\uFF0C\u68C0\u67E5\u7F13\u5B58\u76EE\u5F55\u6743\u9650\u540E\u91CD\u8BD5\u3002");throw s.code=o?"PLUGIN_CACHE_IN_USE":"PLUGIN_REMOVE_FAILED",s}let n=(r.stderr||"")+`
|
|
17
|
-
`+(r.stdout||""),i=/no such file|does not exist|cannot find|not found/i.test(n)?"not_found":/access is denied|os error 5|permission denied/i.test(n)?"access_denied":/git/i.test(n)?"git":"unknown";throw Object.assign(Error("Codex \u6B65\u9AA4\u5931\u8D25\uFF1A"+t.slice(0,3).join(" ")+"\u3002\u8BF7\u5728 Codex \u63D2\u4EF6\u8BBE\u7F6E\u4E2D\u68C0\u67E5\u72B6\u6001\u540E\u91CD\u8BD5\u3002"),{diagnostic:{step:t.slice(0,3).join(" "),reason:i,status:r.status}})}try{return JSON.parse(r.stdout)}catch{throw Error("Codex \u8FD4\u56DE\u4E86\u65E0\u6CD5\u8BC6\u522B\u7684\u7ED3\u679C\uFF0C\u8BF7\u66F4\u65B0 Codex \u540E\u91CD\u8BD5\u3002")}}}async function
|
|
18
|
-
`))}function
|
|
17
|
+
`+(r.stdout||""),i=/no such file|does not exist|cannot find|not found/i.test(n)?"not_found":/access is denied|os error 5|permission denied/i.test(n)?"access_denied":/git/i.test(n)?"git":"unknown";throw Object.assign(Error("Codex \u6B65\u9AA4\u5931\u8D25\uFF1A"+t.slice(0,3).join(" ")+"\u3002\u8BF7\u5728 Codex \u63D2\u4EF6\u8BBE\u7F6E\u4E2D\u68C0\u67E5\u72B6\u6001\u540E\u91CD\u8BD5\u3002"),{diagnostic:{step:t.slice(0,3).join(" "),reason:i,status:r.status}})}try{return JSON.parse(r.stdout)}catch{throw Error("Codex \u8FD4\u56DE\u4E86\u65E0\u6CD5\u8BC6\u522B\u7684\u7ED3\u679C\uFF0C\u8BF7\u66F4\u65B0 Codex \u540E\u91CD\u8BD5\u3002")}}}async function bn({run:A,assertIdle:e=wt,removeFfmpeg:t=ct,removeData:r=Qt,managedRoot:n}){await e();let i=A(["plugin","marketplace","list"]).marketplaces;if(!Array.isArray(i))throw Error("\u65E0\u6CD5\u786E\u8BA4\u63D2\u4EF6\u5E02\u573A\u72B6\u6001\uFF0C\u8BF7\u66F4\u65B0 Codex \u540E\u91CD\u8BD5\u3002");let o=i.find(c=>c.name===N),s=GA(o);if(o&&(typeof s!="string"||!s.length))throw Error("\u65E0\u6CD5\u786E\u8BA4\u7EA2\u679C\u5E02\u573A\u7684\u4F4D\u7F6E\uFF0C\u5C1A\u672A\u6E05\u7406\u6570\u636E\u3002\u8BF7\u66F4\u65B0 Codex CLI \u540E\u91CD\u65B0\u8FD0\u884C uninstall\u3002");let C=A(["plugin","list","--marketplace",N]).installed;if(!Array.isArray(C))throw Error("\u65E0\u6CD5\u786E\u8BA4\u63D2\u4EF6\u5B89\u88C5\u72B6\u6001\uFF0C\u8BF7\u66F4\u65B0 Codex \u540E\u91CD\u8BD5\u3002");if(C.some(c=>c.pluginId===T)&&A(["plugin","remove",T]),o&&Nt(s,n)){A(["plugin","marketplace","remove",N]);let c=A(["plugin","marketplace","list"]).marketplaces;if(!Array.isArray(c)||c.some(a=>a.name===N))throw Error("\u7EA2\u679C\u5E02\u573A\u5C1A\u672A\u6CE8\u9500\uFF0C\u5DF2\u4FDD\u7559\u672C\u5730\u6570\u636E\u3002\u8BF7\u91CD\u65B0\u8FD0\u884C uninstall\u3002")}let g=[];for(let c of[t,r])try{await c()}catch(a){g.push(a.message)}if(g.length)throw Error(g.join(`
|
|
18
|
+
`))}function Fn(A){if(/^[\w.-]+\/[\w.-]+$/.test(A)||kn(A))return A;throw Error("--marketplace \u53EA\u63A5\u53D7 owner/repo \u6216\u73B0\u6709\u672C\u5730\u5E02\u573A\u76EE\u5F55\u3002")}function Mn({run:A,source:e=F,dryRun:t=!1,log:r=console.log}){if((!t||e!==F)&&Fn(e),t){r("\u5C06\u4F7F\u7528 Codex \u539F\u751F\u5E02\u573A\u5B89\u88C5 "+T+"\uFF1B\u5E02\u573A\u6765\u6E90\uFF1A"+e),r("\u89C2\u770B\u8FDB\u5EA6\u4FDD\u7559\u5728\u539F\u6570\u636E\u76EE\u5F55\u3002\u5B89\u88C5\u5B8C\u6210\u540E\u9700\u5728 Codex \u4E2D\u5BA1\u67E5\u5E76\u4FE1\u4EFB\u4E09\u4E2A Hooks\u3002");return}let n=A(["plugin","marketplace","list"]).marketplaces?.find(s=>s.name===N),i=GA(n),o=!!n&&St(i)!==St(e);o&&A(["plugin","marketplace","remove",N]);try{A(["plugin","marketplace","add",e]),e!==F&&!o&&n?.marketplaceSource?.sourceType==="git"&&A(["plugin","marketplace","upgrade",N]),A(["plugin","add",T])}catch(s){if(e===F&&n?.marketplaceSource?.sourceType==="git")throw Error("\u672C\u673A npm \u5E02\u573A\u5B89\u88C5\u672A\u5B8C\u6210\uFF0C\u8BF7\u91CD\u65B0\u8FD0\u884C setup\uFF1B\u89C2\u770B\u8FDB\u5EA6\u4ECD\u4FDD\u7559\u3002");if(o&&i){try{A(["plugin","marketplace","remove",N])}catch{}try{A(["plugin","marketplace","add",i]),A(["plugin","add",T])}catch{throw Error("\u5B89\u88C5\u5931\u8D25\uFF0C\u539F\u5E02\u573A\u672A\u80FD\u81EA\u52A8\u6062\u590D\u3002\u8BF7\u4ECE Codex \u63D2\u4EF6\u8BBE\u7F6E\u91CD\u65B0\u6DFB\u52A0\u539F\u6765\u6E90\uFF1B\u89C2\u770B\u8FDB\u5EA6\u4ECD\u4FDD\u7559\u3002")}}throw s}r("\u7EA2\u679C\u77ED\u5267\u5DF2\u5B89\u88C5\u3002\u8BF7\u5728\u65B0\u7684\u672C\u5730\u804A\u5929\u4E2D\u4F7F\u7528\uFF1B\u66F4\u65B0\u65F6\u5148\u5173\u95ED\u65E7\u64AD\u653E\u5668\u3002")}async function Vi(A=process.argv.slice(2)){try{let[e="help",...t]=A;if(e==="--version"){console.log(JSON.parse(Nn(new URL("../../package.json",import.meta.url),"utf8")).version);return}if(["help","--help","-h"].includes(e)){console.log(`\u7EA2\u679C\u77ED\u5267
|
|
19
19
|
codex-hongguo setup [--dry-run] [--marketplace owner/repo|\u76EE\u5F55]
|
|
20
20
|
codex-hongguo update [--dry-run] [--marketplace owner/repo|\u76EE\u5F55]
|
|
21
21
|
codex-hongguo uninstall [--dry-run]
|
|
22
22
|
codex-hongguo doctor
|
|
23
|
-
\u9700\u8981 Node.js >=22.16 \u548C Codex CLI\uFF1B\u64AD\u653E\u7EC4\u4EF6\u7531\u63D2\u4EF6\u81EA\u52A8\u51C6\u5907\u3002`);return}if(!["setup","update","uninstall","doctor"].includes(e))throw Error("\u672A\u77E5\u547D\u4EE4\uFF1B\u8FD0\u884C codex-hongguo --help \u67E5\u770B\u7528\u6CD5\u3002");if(process.platform==="win32"&&!["x64","arm64"].includes(process.arch))throw Error("Windows \u9700\u8981 x64 \u6216 ARM64 Node.js\uFF0C\u8BF7\u5B89\u88C5\u5BF9\u5E94\u7684 64 \u4F4D\u7248\u672C\u540E\u91CD\u8BD5\u3002");let[r,n]=process.versions.node.split(".").map(Number);if(r<22||r===22&&n<16)throw Error("\u9700\u8981 Node.js >=22.16\u3002");if(
|
|
23
|
+
\u9700\u8981 Node.js >=22.16 \u548C Codex CLI\uFF1B\u64AD\u653E\u7EC4\u4EF6\u7531\u63D2\u4EF6\u81EA\u52A8\u51C6\u5907\u3002`);return}if(!["setup","update","uninstall","doctor"].includes(e))throw Error("\u672A\u77E5\u547D\u4EE4\uFF1B\u8FD0\u884C codex-hongguo --help \u67E5\u770B\u7528\u6CD5\u3002");if(process.platform==="win32"&&!["x64","arm64"].includes(process.arch))throw Error("Windows \u9700\u8981 x64 \u6216 ARM64 Node.js\uFF0C\u8BF7\u5B89\u88C5\u5BF9\u5E94\u7684 64 \u4F4D\u7248\u672C\u540E\u91CD\u8BD5\u3002");let[r,n]=process.versions.node.split(".").map(Number);if(r<22||r===22&&n<16)throw Error("\u9700\u8981 Node.js >=22.16\u3002");if(ut(),e==="doctor"){if(t.length)throw Error("doctor \u4E0D\u63A5\u53D7\u989D\u5916\u53C2\u6570\u3002");if(z(process.execPath,[Sn(new URL("../../dist/setup/check.mjs",import.meta.url))],{stdio:"inherit",timeout:15e3}).status!==0)throw Error("\u73AF\u5883\u68C0\u67E5\u672A\u5B8C\u6210\u3002");return}let i=F,o=!1;for(let g=0;g<t.length;g++)if(t[g]==="--dry-run")o=!0;else if(e!=="uninstall"&&t[g]==="--marketplace"&&t[g+1])i=t[++g];else throw Error("\u65E0\u6CD5\u8BC6\u522B\u547D\u4EE4\u53C2\u6570\uFF1B\u8FD0\u884C codex-hongguo --help \u67E5\u770B\u7528\u6CD5\u3002");let s=nA("codex",process.env.HONGGUO_CODEX),C=[["Codex CLI",s]];e!=="uninstall"&&C.push(["npm",nA("npm")]);for(let[g,c]of C){let a=z(c,["--version"],{stdio:"ignore",timeout:15e3,windowsHide:!0});if(a.status!==0)throw a.error?.code==="ETIMEDOUT"?Error(g+" \u542F\u52A8\u8D85\u65F6\uFF0C\u8BF7\u5355\u72EC\u8FD0\u884C\u5B83\u7684 --version \u547D\u4EE4\u540E\u91CD\u8BD5\uFF1B\u89C2\u770B\u8FDB\u5EA6\u4FDD\u6301\u539F\u6837\u3002"):a.error?.code==="ENOENT"?Error("\u672A\u627E\u5230 "+g+"\u3002\u8BF7\u68C0\u67E5\u5B89\u88C5\u4F4D\u7F6E\u548C PATH \u540E\u91CD\u65B0\u8FD0\u884C "+e+"\u3002"):Error(g+" \u5DF2\u627E\u5230\u4F46\u542F\u52A8\u5931\u8D25\uFF0C\u8BF7\u5355\u72EC\u8FD0\u884C\u5B83\u7684 --version \u547D\u4EE4\u67E5\u770B\u9519\u8BEF\u540E\u91CD\u8BD5\uFF1B\u89C2\u770B\u8FDB\u5EA6\u4FDD\u6301\u539F\u6837\u3002")}if(e==="uninstall"){if(o)console.log("\u5C06\u5378\u8F7D "+T+"\uFF0C\u5220\u9664\u64AD\u653E\u7EC4\u4EF6\u3001\u89C2\u770B\u8FDB\u5EA6\u3001\u8BBE\u7F6E\u3001\u89C6\u9891\u7F13\u5B58\u548C\u8BBE\u5907\u6863\u6848\u3002");else{let g=bt(s);await bn({run:g}),console.log("\u7EA2\u679C\u77ED\u5267\u5DF2\u5378\u8F7D\uFF0C\u64AD\u653E\u7EC4\u4EF6\u3001\u89C2\u770B\u8FDB\u5EA6\u3001\u8BBE\u7F6E\u3001\u89C6\u9891\u7F13\u5B58\u548C\u8BBE\u5907\u6863\u6848\u5DF2\u5220\u9664\u3002\u8BF7\u6253\u5F00\u65B0\u804A\u5929\u3002")}return}o||(i===F&&await kt(),console.log("\u6B63\u5728\u51C6\u5907\u64AD\u653E\u7EC4\u4EF6\uFF0C\u9996\u6B21\u4F7F\u7528\u9700\u8981\u8054\u7F51\u4E0B\u8F7D\u2026"),await gt()),Mn({run:bt(s),source:i,dryRun:o}),o||console.log(ht)}catch(e){console.error(e.message),process.exitCode=1}}export{bt as codexRunner,F as defaultSource,Mn as install,Vi as main,N as marketplaceName,T as pluginId,bn as uninstall,Fn as validateSource};
|
|
24
24
|
/*! Bundled license information:
|
|
25
25
|
|
|
26
26
|
xz-decompress/dist/package/xz-decompress.js:
|
package/dist/hooks/write.mjs
CHANGED
|
@@ -30,10 +30,15 @@ import{DatabaseSync as f}from"node:sqlite";import{mkdirSync as b}from"node:fs";i
|
|
|
30
30
|
position_ms INTEGER NOT NULL, duration_ms INTEGER NOT NULL, updated_at INTEGER NOT NULL,
|
|
31
31
|
PRIMARY KEY(series_id,episode_id));
|
|
32
32
|
CREATE TABLE IF NOT EXISTS watch_restart (
|
|
33
|
-
series_id TEXT NOT NULL, episode_id TEXT NOT NULL, PRIMARY KEY(series_id,episode_id))
|
|
33
|
+
series_id TEXT NOT NULL, episode_id TEXT NOT NULL, PRIMARY KEY(series_id,episode_id));
|
|
34
|
+
CREATE TABLE IF NOT EXISTS player_preferences(id INTEGER PRIMARY KEY, body TEXT NOT NULL);`),this.db.prepare("PRAGMA user_version").get().user_version===0&&this.db.exec(`BEGIN IMMEDIATE;
|
|
34
35
|
DELETE FROM watch_progress WHERE series_id IN ('tide','ridge');
|
|
35
36
|
PRAGMA user_version=1;
|
|
36
|
-
COMMIT;`)
|
|
37
|
+
COMMIT;`),this.db.prepare("PRAGMA user_version").get().user_version<2&&this.db.exec(`BEGIN IMMEDIATE;
|
|
38
|
+
UPDATE player_preferences SET body=json_remove(body, '$.decoyUrl', '$.decoyFrameUrl')
|
|
39
|
+
WHERE json_type(body, '$.decoyUrl') IS NOT NULL OR json_type(body, '$.decoyFrameUrl') IS NOT NULL;
|
|
40
|
+
PRAGMA user_version=2;
|
|
41
|
+
COMMIT;`)}preferences(){let t=this.db.prepare("SELECT body FROM player_preferences WHERE id=1").get(),e={autoPrompt:!0,autoplayNext:!0,autoPauseOnFinish:!0,autoPlayOnStart:!0,defaultMuted:!0,volume:.7,hoverDecoyEnabled:!1,searchTerms:["\u603B\u88C1","\u91CD\u751F","\u9006\u88AD"]};return t?{...e,...JSON.parse(t.body)}:e}setupDismissed(){return this.db.prepare("SELECT dismissed FROM player_onboarding WHERE id=1").get()?.dismissed===1}setSetupDismissed(t){return this.db.prepare("INSERT OR REPLACE INTO player_onboarding VALUES(1,?)").run(Number(t)),{dismissed:t}}setPreferences(t){return this.transaction(()=>{let e=this.preferences(),r={...e,...t};return this.db.prepare("INSERT OR REPLACE INTO player_preferences VALUES(1,?)").run(JSON.stringify(r)),JSON.stringify(e.searchTerms)!==JSON.stringify(r.searchTerms)&&(this.db.exec("DELETE FROM recommendation_feed"),this.db.exec("DELETE FROM catalog_cache WHERE key LIKE 'feed:%'")),r})}event({session_id:t,turn_id:e,hook_event_name:r},s=Date.now()){if(!N(t)||!N(e)||!["UserPromptSubmit","Stop","Interrupt"].includes(r))return;let i=+(r==="Stop"),a=+(r==="Interrupt");return this.db.prepare(`INSERT INTO turn_state(session_id,turn_id,submitted_at,stop_kind,stopped,interrupted,observed_at)
|
|
37
42
|
VALUES(?,?,?,?,?,?,?) ON CONFLICT(session_id,turn_id) DO UPDATE SET
|
|
38
43
|
submitted_at=COALESCE(submitted_at,CASE WHEN excluded.submitted_at IS NOT NULL THEN min(observed_at,excluded.submitted_at) END),
|
|
39
44
|
stop_kind=COALESCE(excluded.stop_kind,stop_kind), stopped=max(stopped,excluded.stopped),
|