@kyun.si/codex-hongguo 0.0.33 → 0.0.35-beta.1
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 +19 -5
- package/README.md +19 -5
- package/bin/run-node-arm64.exe +0 -0
- package/bin/run-node.exe +0 -0
- package/dist/cli/main.mjs +8 -8
- package/dist/hooks/write.mjs +7 -2
- package/dist/server/index.mjs +32 -27
- package/dist/setup/check.mjs +17 -12
- package/dist/ui/player.html +194 -62
- package/package.json +1 -1
package/README.en.md
CHANGED
|
@@ -15,7 +15,7 @@ Watch Hongguo short dramas in the right-hand panel of Codex Desktop, with browsi
|
|
|
15
15
|
|
|
16
16
|
This is an independent, unofficial plugin with original icon artwork. The red fruit echoes the name Hongguo ("red fruit"), while the leaf and play button form the plugin's own mark.
|
|
17
17
|
|
|
18
|
-
After installation and Hook review, continue working normally. The optional **Watch while you wait** card offers up to three shows per turn. It prioritizes **Continue watching**, or **Watch next** when the saved episode is complete and another episode is available. Other slots rotate unwatched shows. Clicking a title opens the player in that chat and
|
|
18
|
+
After installation and Hook review, continue working normally. The optional **Watch while you wait** card offers up to three shows per turn. It prioritizes **Continue watching**, or **Watch next** when the saved episode is complete and another episode is available. Other slots rotate unwatched shows. Clicking a title opens the player in that chat and uses your default-mute setting.
|
|
19
19
|
|
|
20
20
|
## Installation & Setup
|
|
21
21
|
|
|
@@ -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.
|
|
@@ -49,7 +59,7 @@ Default installation and updates do not require Git. The command checks Node, np
|
|
|
49
59
|
|
|
50
60
|

|
|
51
61
|
|
|
52
|
-
**Player**: Watch beside your chat, choose episodes and autoplay the next episode.
|
|
62
|
+
**Player**: Watch beside your chat, choose episodes and autoplay the next episode. Playback can start once the first local fragments are ready while the rest continue processing in the background. With autoplay next enabled, the player preloads one upcoming episode during the last roughly 30 seconds (or the final quarter of shorter episodes), reducing the wait between episodes. Preload failures do not interrupt playback.
|
|
53
63
|
|
|
54
64
|

|
|
55
65
|
|
|
@@ -62,7 +72,7 @@ Default installation and updates do not require Git. The command checks Node, np
|
|
|
62
72
|
| Watch independently | In Codex Desktop with the plugin installed, click [Open Hongguo Short Dramas](codex://plugins/codex-hongguo@hongguo-local/app/open_drama_panel) to open the standalone catalog. To play and pause automatically with tasks, open the player from the corresponding chat instead. |
|
|
63
73
|
|
|
64
74
|
- **Browse & resume**: The catalog shows saved titles as it refreshes. On first use, titles appear as soon as the first batch arrives. Click any show title in Recommendations, Search results, or Watch history (`观看历史`) to start playing. Previously watched shows automatically resume from your last episode and timestamp, with a banner option to **Start over** (`从头播放`). Watch history is grouped by show and supports removing individual entries.
|
|
65
|
-
- **
|
|
75
|
+
- **Default mute & playback controls**: Turn off **Mute by default** in Settings to open new players at the last volume. When enabled, new players start muted and restore that volume when unmuted. The speaker button controls only the current player; switching episodes and resuming preserve its sound state. On-screen controls support scrubbing, playback speed (`0.75×`–`2×`), and fullscreen. The episode selector groups episodes in sets of 50 with Previous, Next, and random episode buttons.
|
|
66
76
|
- **Watch while waiting**: Both the conversation card and catalog can offer up to 3 titles. Choices stay fixed within a turn. Chats share local rotation records, which advance after titles become visible. Disable suggestions or edit additional search keywords in **Settings**.
|
|
67
77
|
- **Pause and resume.** Click the picture, center button or toolbar playback button to pause. Click again to resume from the same position, during or after a task.
|
|
68
78
|
- **Background playback.** Playback continues when you switch windows or tabs. When automatic pausing is enabled, a task ending or being interrupted in this chat also pauses background playback. Closing the player saves your position.
|
|
@@ -70,14 +80,18 @@ 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. |
|
|
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.
|
|
79
93
|
|
|
80
|
-
|
|
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.
|
|
81
95
|
|
|
82
96
|
## Troubleshooting
|
|
83
97
|
|
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
本项目是非官方的独立插件,图标为原创设计。红色果实呼应「红果」,叶片和播放键构成插件自己的标识。
|
|
17
17
|
|
|
18
|
-
完成安装并信任 Hooks
|
|
18
|
+
完成安装并信任 Hooks 后,照常发任务,对话里的「等待时看一集」每轮最多推荐三部。已有进度优先显示「继续观看」;本集已看完且还有后续分集时显示「看下一集」。其余位置轮换没看过的剧,点剧名即可在当前聊天里打开播放器,按「默认静音」设置开播。
|
|
19
19
|
|
|
20
20
|
## 安装与配置
|
|
21
21
|
|
|
@@ -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 的授权。
|
|
@@ -49,7 +59,7 @@ npx.cmd "@kyun.si/codex-hongguo@latest" setup
|
|
|
49
59
|
|
|
50
60
|

|
|
51
61
|
|
|
52
|
-
|
|
62
|
+
**播放界面**:在聊天右侧观看,支持选集和连播。本地转码生成首批分段后即可开播,其余分段继续后台准备。开启连播时,在本集最后约 30 秒(短集的最后四分之一)后台预加载下一集,减少切集等待;只提前准备一集,失败不影响当前播放。
|
|
53
63
|
|
|
54
64
|

|
|
55
65
|
|
|
@@ -62,7 +72,7 @@ npx.cmd "@kyun.si/codex-hongguo@latest" setup
|
|
|
62
72
|
| 只想看剧 | 在已安装插件的 Codex 桌面点击[直接打开红果短剧](codex://plugins/codex-hongguo@hongguo-local/app/open_drama_panel),即可进入独立片库。需要随任务自动播放和暂停时,请从对应聊天右侧打开播放器。 |
|
|
63
73
|
|
|
64
74
|
- **选剧与续播**:片库打开即显示已缓存的剧名并自动刷新。首次使用时,第一批剧目返回就会显示。点击推荐、搜索结果或「观看历史」中的剧名即可开播。看过的剧会自动回到上次的集数和时间点,提示栏同时提供「从头播放」。观看历史按剧汇总,可单条移除。
|
|
65
|
-
-
|
|
75
|
+
- **默认静音与画面控制**:可在设置中关闭「默认静音」,新打开的播放器会恢复上次音量;开启时静音打开,取消静音后仍恢复上次音量。扬声器按钮只控制当前播放器,切集和续播保持当前声音状态。画面内支持拖动进度、切换倍速(`0.75×`–`2×`)和全屏;选集区每 50 集一组,支持上一集、下一集和随机一集。
|
|
66
76
|
- **等待任务时看**:对话卡片和选剧页都可提供最多 3 部快捷推荐。同一回合的剧目保持不变;多个聊天共享本地轮换记录,卡片实际显示后才计入轮换。在「设置」中可关闭推荐或修改补充搜索词。
|
|
67
77
|
- **暂停与续播** 点画面、中央按钮或底部播放键都能暂停,再点一次从原处继续。任务运行中和结束后都可以操作。
|
|
68
78
|
- **后台播放** 切换窗口或标签页时可继续观看。开启「任务结束自动暂停」时,当前对话的任务结束或中断也会暂停后台播放。关闭播放器会保存进度。
|
|
@@ -70,14 +80,18 @@ 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
|
| 任务开始自动播放 | 开启 | 同一聊天的新任务开始时,从原位置播放已选中的剧集。 |
|
|
89
|
+
| 默认静音 | 开启 | 新打开播放器时按此设置决定是否静音;修改后立即同步当前播放器,其他已打开的播放器也会自动同步。 |
|
|
90
|
+
| 悬停时显示播放器 | 关闭 | 鼠标移出红果面板时显示替身并暂停,移回后从原处继续;手动暂停保持不变。 |
|
|
91
|
+
|
|
92
|
+
悬停模式按红果播放面板的范围触发:移到聊天区、其他面板或其他窗口都会遮盖。剧名、封面和播放控件一起隐藏,已加载的视频保持原位;遮盖期间任务结束的自动暂停仍然生效。替身由内置的项目待办、技术文档、测试报告和会议纪要模板随机生成,布局与内容有小幅变化,无需联网。每次打开面板生成一页,本次打开期间保持不变;设置中的「换一页」会先完成当前保存,再更换当前替身并关闭设置。替身沿用界面语言和明暗主题。此功能替换面板内容,Codex 原生标签名称及聊天里已有的推荐卡片仍由宿主管理。
|
|
79
93
|
|
|
80
|
-
|
|
94
|
+
设置独立保存,所有聊天共用。任务播放开关和默认静音会同步到已打开的播放器。扬声器按钮只改变当前播放器的静音状态,不修改默认值;未修改默认静音时,同步不会覆盖手动选择。新打开播放器时恢复记住的音量。自动播放需要播放器保持打开且已有选中的剧集;它不会自动选剧或重新打开已关闭的播放器。手动暂停在当前任务内保持有效,下一轮是否续播取决于自动播放开关。升级会保留已保存的选择。
|
|
81
95
|
|
|
82
96
|
## 排查问题
|
|
83
97
|
|
package/bin/run-node-arm64.exe
CHANGED
|
Binary file
|
package/bin/run-node.exe
CHANGED
|
Binary file
|
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 Lt=Object.create;var XA=Object.defineProperty;var Jt=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Ht=Object.getPrototypeOf,Rt=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 Yt=(A,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Gt(e))!Rt.call(A,n)&&n!==t&&XA(A,n,{get:()=>e[n],enumerable:!(r=Jt(e,n))||r.enumerable});return A};var IA=(A,e,t)=>(t=A!=null?Lt(Ht(A)):{},Yt(e||!A||!A.__esModule?XA(t,"default",{value:A,enumerable:!0}):t,A));var Ae=p((Nn,_A)=>{_A.exports=ZA;ZA.sync=Ut;var $A=k("fs");function qt(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:qt(e,t)}function ZA(A,e,t){$A.stat(A,function(r,n){t(r,r?!1:VA(n,A,e))})}function Ut(A,e){return VA($A.statSync(A),A,e)}});var ie=p((kn,ne)=>{ne.exports=te;te.sync=Kt;var ee=k("fs");function te(A,e,t){ee.stat(A,function(r,n){t(r,r?!1:re(n,e))})}function Kt(A,e){return re(ee.statSync(A),e)}function re(A,e){return A.isFile()&&Ot(A,e)}function Ot(A,e){var t=A.mode,r=A.uid,n=A.gid,o=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),i=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),s=parseInt("100",8),I=parseInt("010",8),g=parseInt("001",8),c=s|I,a=t&g||t&I&&n===i||t&s&&r===o||t&c&&o===0;return a}});var ae=p((Fn,oe)=>{var Sn=k("fs"),eA;process.platform==="win32"||global.TESTING_WINDOWS?eA=Ae():eA=ie();oe.exports=CA;CA.sync=zt;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(o,i){o?n(o):r(i)})})}eA(A,e||{},function(r,n){r&&(r.code==="EACCES"||e&&e.ignoreErrors)&&(r=null,n=!1),t(r,n)})}function zt(A,e){try{return eA.sync(A,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var ue=p((bn,fe)=>{var R=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",se=k("path"),Tt=R?";":":",ge=ae(),ce=A=>Object.assign(new Error(`not found: ${A}`),{code:"ENOENT"}),Ie=(A,e)=>{let t=e.colon||Tt,r=A.match(/\//)||R&&A.match(/\\/)?[""]:[...R?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=R?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=R?n.split(t):[""];return R&&A.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:r,pathExt:o,pathExtExe:n}},Ce=(A,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:r,pathExt:n,pathExtExe:o}=Ie(A,e),i=[],s=g=>new Promise((c,a)=>{if(g===r.length)return e.all&&i.length?c(i):a(ce(A));let C=r[g],f=/^".*"$/.test(C)?C.slice(1,-1):C,u=se.join(f,A),h=!f&&/^\.[\\\/]/.test(A)?A.slice(0,2)+u:u;c(I(h,g,0))}),I=(g,c,a)=>new Promise((C,f)=>{if(a===n.length)return C(s(c+1));let u=n[a];ge(g+u,{pathExt:o},(h,Q)=>{if(!h&&Q)if(e.all)i.push(g+u);else return C(g+u);return C(I(g,c,a+1))})});return t?s(0).then(g=>t(null,g),t):s(0)},Pt=(A,e)=>{e=e||{};let{pathEnv:t,pathExt:r,pathExtExe:n}=Ie(A,e),o=[];for(let i=0;i<t.length;i++){let s=t[i],I=/^".*"$/.test(s)?s.slice(1,-1):s,g=se.join(I,A),c=!I&&/^\.[\\\/]/.test(A)?A.slice(0,2)+g:g;for(let a=0;a<r.length;a++){let C=c+r[a];try{if(ge.sync(C,{pathExt:n}))if(e.all)o.push(C);else return C}catch{}}}if(e.all&&o.length)return o;if(e.nothrow)return null;throw ce(A)};fe.exports=Ce;Ce.sync=Pt});var le=p((Mn,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((Ln,Be)=>{"use strict";var Qe=k("path"),jt=ue(),Wt=le();function Ee(A,e){let t=A.options.env||process.env,r=process.cwd(),n=A.options.cwd!=null,o=n&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(A.options.cwd)}catch{}let i;try{i=jt.sync(A.command,{path:t[Wt({env:t})],pathExt:e?Qe.delimiter:void 0})}catch{}finally{o&&process.chdir(r)}return i&&(i=Qe.resolve(n?A.options.cwd:"",i)),i}function Xt(A){return Ee(A)||Ee(A,!0)}Be.exports=Xt});var lA=p((Jn,hA)=>{"use strict";var uA=/([()\][%!^"`<>&|;, *?])/g;function $t(A){return A=A.replace(uA,"^$1"),A}function Vt(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=$t;hA.exports.argument=Vt});var me=p((Gn,we)=>{"use strict";we.exports=/^#!(.*)/});var ye=p((Hn,ve)=>{"use strict";var Zt=me();ve.exports=(A="")=>{let e=A.match(Zt);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((Rn,de)=>{"use strict";var QA=k("fs"),_t=ye();function Ar(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 _t(t.toString())}de.exports=Ar});var Se=p((Yn,ke)=>{"use strict";var er=k("path"),xe=pe(),Ne=lA(),tr=De(),rr=process.platform==="win32",nr=/\.(?:com|exe)$/i,ir=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function or(A){A.file=xe(A);let e=A.file&&tr(A.file);return e?(A.args.unshift(A.file),A.command=e,xe(A)):A.file}function ar(A){if(!rr)return A;let e=or(A),t=!nr.test(e);if(A.options.forceShell||t){let r=ir.test(e);A.command=er.normalize(A.command),A.command=Ne.command(A.command),A.args=A.args.map(o=>Ne.argument(o,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 sr(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:ar(r)}ke.exports=sr});var Me=p((qn,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 gr(A,e){if(!EA)return;let t=A.emit;A.emit=function(r,n){if(r==="exit"){let o=Fe(n,e);if(o)return t.call(A,"error",o)}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:gr,verifyENOENT:Fe,verifyENOENTSync:cr,notFoundError:BA}});var Ge=p((Un,Y)=>{"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 Ir(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}Y.exports=Je;Y.exports.spawn=Je;Y.exports.sync=Ir;Y.exports._parse=pA;Y.exports._enoent=wA});var ze=p((Z,NA)=>{(function(e,t){typeof Z=="object"&&typeof NA=="object"?NA.exports=t(k("stream/web")):typeof define=="function"&&define.amd?define(["stream/web"],t):typeof Z=="object"?Z["xz-decompress"]=t(k("stream/web")):e["xz-decompress"]=t(e["stream/web"])})(Z,A=>(()=>{"use strict";var e=[,(o=>{o.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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"}),(o=>{o.exports=A})],t={};function r(o){var i=t[o];if(i!==void 0)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,r),s.exports}r.d=(o,i)=>{for(var s in i)r.o(i,s)&&!r.o(o,s)&&Object.defineProperty(o,s,{enumerable:!0,get:i[s]})},r.o=(o,i)=>Object.prototype.hasOwnProperty.call(o,i),r.r=o=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})};var n={};return(()=>{r.r(n),r.d(n,{XzReadableStream:()=>a});var o=r(1);let i=globalThis.ReadableStream||r(2).ReadableStream,s=0,I=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!==I)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===I}}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 i{static _moduleInstancePromise;static _moduleInstance;static _contextMutex=new c;static async _getModuleInstance(){let f=o.replace("data:application/wasm;base64,",""),u=Uint8Array.from(atob(f),E=>E.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(E){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(E){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();E.enqueue(y.outChunk),u.resetOutputBuffer(),y.finished&&(u.dispose(),a._contextMutex.release(),E.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 wn,existsSync as mn}from"node:fs";import{fileURLToPath as vn}from"node:url";var ct=IA(Ge(),1),LA=IA(lA(),1);import{accessSync as Wr,constants as st,statSync as Xr}from"node:fs";import{homedir as $r}from"node:os";import{posix as gt,win32 as rA}from"node:path";import{spawn as oi,spawnSync as Vr}from"node:child_process";import{createHash as Xe,randomUUID as Lr}from"node:crypto";import{createReadStream as $e}from"node:fs";import{mkdir as Pe,lstat as FA,open as Ve,readFile as Ze,writeFile as Jr,rename as Gr,rm as K,chmod as Hr,stat as je,unlink as Rr,rmdir as We}from"node:fs/promises";import{lstatSync as Yr}from"node:fs";import{homedir as _e}from"node:os";import{posix as bA,win32 as MA}from"node:path";import{spawnSync as qr}from"node:child_process";import{createRequire as Cr}from"module";var fr=Cr("/"),U,ur,hr;try{U=fr("worker_threads"),ur=U.Worker,hr=U.isMarkedAsUntransferable}catch{}var v=Uint8Array,q=Uint16Array,lr=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]),Re=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]),Qr=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 q(31),r=0;r<31;++r)t[r]=e+=1<<A[r-1];for(var n=new lr(t[30]),r=1;r<30;++r)for(var o=t[r];o<t[r+1];++o)n[o]=o-t[r]<<5|r;return{b:t,r:n}},U=Ye(He,2),qe=U.b,Er=U.r;qe[28]=258,Er[258]=28;var Ue=Ye(Re,0),Br=Ue.b,On=Ue.r,dA=new q(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,o=new q(e);n<r;++n)A[n]&&++o[A[n]-1];var i=new q(e);for(n=1;n<e;++n)i[n]=i[n-1]+o[n-1]<<1;var s;if(t){s=new q(1<<e);var I=15-e;for(n=0;n<r;++n)if(A[n])for(var g=n<<4|A[n],c=e-A[n],a=i[A[n]-1]++<<c,C=a|(1<<c)-1;a<=C;++a)s[dA[a]>>I]=g}else for(s=new q(r),n=0;n<r;++n)A[n]&&(s[n]=dA[i[A[n]-1]++]>>15-A[n]);return s}),V=new v(288);for(l=0;l<144;++l)V[l]=8;var l;for(l=144;l<256;++l)V[l]=9;var l;for(l=256;l<280;++l)V[l]=7;var l;for(l=280;l<288;++l)V[l]=8;var l,Ke=new v(32);for(l=0;l<32;++l)Ke[l]=5;var l;var pr=$(V,9,1);var wr=$(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},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)},mr=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 vr=["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||vr[A]);if(r.code=A,Error.captureStackTrace&&Error.captureStackTrace(r,m),!t)throw r;return r},yr=function(A,e,t,r){var n=A.length,o=r?r.length:0;if(!n||e.f&&!e.l)return t||new v(0);var i=!t,s=i||e.i!=2,I=e.i;i&&(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,C=e.b||0,f=e.l,u=e.d,h=e.m,Q=e.n,E=n*8;do{if(!f){c=x(A,a,1);var y=x(A,a+1,3);if(a+=3,y)if(y==1)f=pr,u=wr,h=9,Q=5;else if(y==2){var oA=x(A,a,31)+257,RA=x(A,a+10,15)+4,YA=oA+x(A,a+5,31)+1;a+=14;for(var W=new v(YA),aA=new v(19),d=0;d<RA;++d)aA[Qr[d]]=x(A,a+d*3,7);a+=RA*3;for(var qA=mA(aA),kt=(1<<qA)-1,St=$(aA,qA,1),d=0;d<YA;){var UA=St[x(A,a,kt)];a+=UA&15;var w=UA>>4;if(w<16)W[d++]=w;else{var G=0,AA=0;for(w==16?(AA=3+x(A,a,3),a+=2,G=W[d-1]):w==17?(AA=3+x(A,a,7),a+=3):w==18&&(AA=11+x(A,a,127),a+=7);AA--;)W[d++]=G}}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=mr(a)+4,P=A[w-4]|A[w-3]<<8,j=w+P;if(j>n){I&&m(0);break}s&&g(C+P),t.set(A.subarray(w,j),C),e.b=C+=P,e.p=a=j*8,e.f=c;continue}if(a>E){I&&m(0);break}}s&&g(C+131072);for(var Ft=(1<<h)-1,bt=(1<<Q)-1,sA=a;;sA=a){var G=f[vA(A,a)&Ft],H=G>>4;if(a+=G&15,a>E){I&&m(0);break}if(G||m(2),H<256)t[C++]=H;else if(H==256){sA=a,f=null;break}else{var OA=H-254;if(H>264){var d=H-257,X=He[d];OA=x(A,a,(1<<X)-1)+qe[d],a+=X}var gA=u[vA(A,a)&bt],cA=gA>>4;gA||m(3),a+=gA&15;var L=Br[cA];if(cA>3){var X=Re[cA];L+=vA(A,a)&(1<<X)-1,a+=X}if(a>E){I&&m(0);break}s&&g(C+131072);var zA=C+OA;if(C<L){var TA=o-L,Mt=Math.min(L,zA);for(TA+C<0&&m(3);C<Mt;++C)t[C]=r[TA+C]}for(;C<zA;++C)t[C]=t[C-L]}}e.l=f,e.p=sA,e.b=C,e.f=c,f&&(c=1,e.m=h,e.d=u,e.n=Q)}while(!c);return C!=t.length&&i?xA(t,0,C):t.subarray(0,C)};var dr=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 Dr(A,e){return yr(A,{i:2},e&&e.out,e&&e.dictionary)}var DA=typeof TextDecoder<"u"&&new TextDecoder,xr=0;try{DA.decode(dr,{stream:!0}),xr=1}catch{}var Nr=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 kr(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=Nr(A),o=n.s,t=n.r;return t.length&&m(8),o}}var Sr=function(A,e){return e+30+S(A,e+26)+S(A,e+28)},Fr=function(A,e,t){var r=S(A,e+28),n=S(A,e+30),o=kr(A.subarray(e+46,e+46+r),!(S(A,e+8)&2048)),i=e+46+r,s=br(A,i,n,t,D(A,e+20),D(A,e+24),D(A,e+42)),I=s[0],g=s[1],c=s[2];return[S(A,e+10),I,g,o,i+n+S(A,e+32),c]},br=function(A,e,t,r,n,o,i){var s=n==4294967295,I=o==4294967295,g=i==4294967295,c=e+t,a=s+I+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*I):n,I?yA(A,e+4):o,g?yA(A,e+4+8*(I+s)):i,1];r<2&&m(13)}return[n,o,i,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 o=D(A,r+16),i=D(A,r-20)==117853008;if(i){var s=D(A,r-12);i=D(A,s)==101075792,i&&(n=D(A,s+32),o=D(A,s+48))}for(var I=e&&e.filter,g=0;g<n;++g){var c=Fr(A,o,i),a=c[0],C=c[1],f=c[2],u=c[3],h=c[4],Q=c[5],E=Sr(A,Q);o=h,(!I||I({name:u,size:C,originalSize:f,compression:a}))&&(a?a==8?t[u]=Dr(A.subarray(E,E+C),{out:new v(f)}):m(14,"unknown compression type "+a):t[u]=xA(A,E,E+C))}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,Ur="@kyun.si/codex-hongguo",B=()=>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"),Kr=A=>new Promise(e=>setTimeout(e,A));function et(A={}){let{env:e=process.env,home:t=_e(),platform:r=process.platform,arch:n=process.arch}=A,o=r==="win32"?MA:bA;if(e.HONGGUO_FFMPEG){if(!o.isAbsolute(e.HONGGUO_FFMPEG))throw B();return{...A,env:e,platform:r,target:e.HONGGUO_FFMPEG,override:!0}}let i=(A.artifacts||Te)[r+"-"+n];if(!i)throw Error("\u5F53\u524D\u7CFB\u7EDF\u67B6\u6784\u6682\u4E0D\u652F\u6301\u81EA\u52A8\u51C6\u5907\u64AD\u653E\u7EC4\u4EF6\u3002");let s=tt({env:e,home:t,platform:r,paths:o}),I=o.join(s,"runtime","ffmpeg",i.archiveSha256.slice(0,16),r+"-"+n);return{...A,env:e,platform:r,artifact:i,directory:I,target:o.join(I,r==="win32"?"ffmpeg.exe":"ffmpeg")}}function tt({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 rt(A){return et(A).target}function kA(A){try{let e=Yr(A);return e.isFile()&&!e.isSymbolicLink()?`${e.size}:${e.mtimeMs}:${e.ctimeMs}`:null}catch{return null}}async function nt(A){let e=Xe("sha256");for await(let t of $e(A))e.update(t);return e.digest("hex")}function it(A,e){return e.probe?e.probe(A):qr(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 Ze(e+".json","utf8"));if(n.archiveSha256!==t.archiveSha256||!/^[a-f0-9]{64}$/.test(n.binarySha256)||r.size!==(t.binaryBytes||n.binaryBytes)||await nt(e)!==(t.binarySha256||n.binarySha256))return!1}return it(e,A)?(O.set(e,kA(e)),!0):!1}catch{return!1}}async function Or(A,e,t){let r=new Set(["github.com","release-assets.githubusercontent.com","objects.githubusercontent.com","evermeet.cx","www.osxexperts.net"]),n=AbortSignal.timeout(3e5),o=new URL(A.url),i;for(let c=0;c<=6;c++){if(o.protocol!=="https:"||o.username||o.password||o.port||!r.has(o.hostname))throw B();if(i=await t(o,{redirect:"manual",signal:n}),![301,302,303,307,308].includes(i.status))break;let a=i.headers.get("location");if(await i.body?.cancel(),!a||c===6)throw B();o=new URL(a,o)}if(!i.ok||!i.body||Number(i.headers.get("content-length"))>A.archiveBytes)throw await i.body?.cancel(),B();let s=await Ve(e,"wx",384),I=Xe("sha256"),g=0;try{for await(let c of i.body){if(g+=c.length,g>A.archiveBytes)throw B();I.update(c),await s.writeFile(c)}if(g!==A.archiveBytes||I.digest("hex")!==A.archiveSha256)throw B()}finally{await s.close()}}async function zr(A,e,t){let r=await Ve(t,"wx",384);try{if(A.format==="zip"){let C=Oe(await Ze(e),{filter:f=>f.name===A.entry&&f.originalSize<=(A.binaryBytes||268435456)})[A.entry];if(!C||A.binaryBytes&&C.length!==A.binaryBytes)throw B();await r.writeFile(C);return}let n=new At.default.XzReadableStream(Tr(e)),o=n.getReader(),i=Buffer.alloc(0),s=0,I=0,g=!1,c=0;try{for(;;){let{value:a,done:C}=await o.read();if(C)break;if(c+=a.length,c>1024*1024*1024)throw B();for(i=Buffer.concat([i,a]);i.length;)if(s){let f=Math.min(s,i.length);if(g&&await r.writeFile(i.subarray(0,f)),i=i.subarray(f),s-=f,!s&&g)return}else if(I){let f=Math.min(I,i.length);i=i.subarray(f),I-=f}else{if(i.length<512)break;let f=i.subarray(0,512);i=i.subarray(512);let u=(E,y)=>f.subarray(E,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 B();s=Q,I=(512-Q%512)%512}}throw B()}finally{await o.cancel().catch(()=>{})}}finally{await r.close()}}function Tr(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 ot(A={}){let e=et(A);if(await SA(e))return e.target;if(e.override)throw B();if(tA.has(e.target))return tA.get(e.target);let t=jr(e).finally(()=>tA.delete(e.target));return tA.set(e.target,t),t}async function Pr(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 at(A={}){let{env:e=process.env,home:t=_e(),platform:r=process.platform}=A,n=r==="win32"?MA:bA,o=tt({env:e,home:t,platform:r,paths:n}),i=n.join(o,"runtime","ffmpeg"),s=n.dirname(i),I=()=>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(o))throw I();try{if(!await Pr(s,n))throw I();let g=await FA(i);g.isDirectory()&&!g.isSymbolicLink()?await K(i,{recursive:!0,force:!0,maxRetries:10,retryDelay:100}):await Rr(i);for(let c of O.keys()){let a=n.relative(i,c);a&&!a.startsWith(".."+n.sep)&&!n.isAbsolute(a)&&O.delete(c)}}catch(g){if(g.code==="ENOENT")return{removed:0};throw I()}return await We(s).catch(()=>{}),await We(o).catch(()=>{}),{removed:1}}async function jr(A){let{directory:e,target:t,artifact:r}=A,n=e+".lock",o=Date.now()+42e4;await Pe(e,{recursive:!0,mode:448});let i=!1;for(;!i;)try{await Pe(n,{mode:448}),i=!0}catch(a){if(a.code!=="EEXIST"||Date.now()>o)throw B();if(await SA(A))return t;try{Date.now()-(await je(n)).mtimeMs>6e5&&await K(n,{recursive:!0,force:!0})}catch{}await Kr(200)}let s=A.platform==="win32"?MA:bA,I=s.basename(t)+"."+Lr(),g=s.join(e,I+".archive"),c=s.join(e,I+".part");try{if(await SA(A))return t;await Or(r,g,A.fetchImpl||fetch),await zr(r,g,c);let a=await nt(c);if(r.binarySha256&&a!==r.binarySha256||(await Hr(c,493),!it(c,A)))throw B();return A.platform==="win32"&&await K(t,{force:!0}),await Gr(c,t),await Jr(t+".json",JSON.stringify({owner:Ur,schema:1,archiveSha256:r.archiveSha256,binarySha256:a,binaryBytes:(await je(t)).size,version:r.version})+`
|
|
3
|
-
`,{mode:384}),O.set(t,kA(t)),t}catch{throw
|
|
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()`,
|
|
15
|
-
`,r=iA(A,".marketplace-"+
|
|
16
|
-
`+(r.stdout||"")),s=Error(
|
|
17
|
-
`+(r.stdout||""),
|
|
18
|
-
`))}function
|
|
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
|
+
`+(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 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),
|