@kyun.si/codex-hongguo 0.0.32 → 0.0.34
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 +4 -2
- package/README.en.md +19 -7
- package/README.md +19 -7
- package/assets/README.md +22 -0
- package/assets/icon.svg +6 -0
- package/assets/logo.png +0 -0
- package/bin/run-node-arm64.exe +0 -0
- package/bin/run-node.exe +0 -0
- package/dist/cli/main.mjs +18 -5
- package/dist/hooks/write.mjs +1 -1
- package/dist/server/index.mjs +26 -26
- package/dist/setup/check.mjs +11 -11
- package/dist/ui/player.html +34 -29
- package/package.json +2 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-hongguo",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.34",
|
|
4
4
|
"description": "在 Codex 会话侧栏观看红果短剧,回合停止时保存进度。",
|
|
5
5
|
"hooks": "./hooks/hooks.json",
|
|
6
6
|
"skills": "./skills/",
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
"interface": {
|
|
13
13
|
"displayName": "红果短剧",
|
|
14
14
|
"shortDescription": "选剧、续播与回合自动暂停",
|
|
15
|
-
"brandColor": "#
|
|
15
|
+
"brandColor": "#242B2E",
|
|
16
|
+
"composerIcon": "./assets/icon.svg",
|
|
17
|
+
"logo": "./assets/logo.png",
|
|
16
18
|
"category": "Entertainment"
|
|
17
19
|
},
|
|
18
20
|
"mcpServers": "./.mcp.json"
|
package/README.en.md
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/logo.png" width="112" height="112" alt="Original codex-hongguo icon: a red fruit, green leaf and ivory play button on graphite">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
<h1 align="center">Hongguo Short Dramas · codex-hongguo</h1>
|
|
4
6
|
|
|
5
|
-
Watch
|
|
7
|
+
<p align="center">Watch an episode while Codex works.</p>
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="README.md">中文</a> · English<br>
|
|
11
|
+
<a href="#installation--setup">Installation & Setup</a> · <a href="#screenshots">Screenshots</a> · <a href="#usage">Usage</a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
Watch Hongguo short dramas in the right-hand panel of Codex Desktop, with browsing, search, resume and autoplay next. By default, a new task resumes the selected episode; finishing or interrupting the task pauses playback and saves your position. You can turn off either behavior independently in Settings. The plugin supports local-executor Codex Desktop conversations.
|
|
15
|
+
|
|
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
|
+
|
|
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.
|
|
8
19
|
|
|
9
20
|
## Installation & Setup
|
|
10
21
|
|
|
@@ -38,7 +49,7 @@ Default installation and updates do not require Git. The command checks Node, np
|
|
|
38
49
|
|
|
39
50
|

|
|
40
51
|
|
|
41
|
-
**Player**: Watch beside your chat, choose episodes and autoplay the next episode.
|
|
52
|
+
**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.
|
|
42
53
|
|
|
43
54
|

|
|
44
55
|
|
|
@@ -51,7 +62,7 @@ Default installation and updates do not require Git. The command checks Node, np
|
|
|
51
62
|
| 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. |
|
|
52
63
|
|
|
53
64
|
- **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.
|
|
54
|
-
- **
|
|
65
|
+
- **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.
|
|
55
66
|
- **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**.
|
|
56
67
|
- **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.
|
|
57
68
|
- **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.
|
|
@@ -65,8 +76,9 @@ Open **Settings** at the top right of the player, make your changes, and click *
|
|
|
65
76
|
| --- | --- | --- |
|
|
66
77
|
| 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. |
|
|
67
78
|
| 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
|
+
| Mute by default | On | Set the initial mute state for new players. Changes immediately update the current player and sync to other open players. |
|
|
68
80
|
|
|
69
|
-
|
|
81
|
+
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.
|
|
70
82
|
|
|
71
83
|
## Troubleshooting
|
|
72
84
|
|
package/README.md
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/logo.png" width="112" height="112" alt="codex-hongguo 原创图标:石墨灰底、红色果实、绿叶与米白播放键">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
<h1 align="center">红果短剧 · codex-hongguo</h1>
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
<p align="center">边等 Codex,边看一集。</p>
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
<p align="center">
|
|
10
|
+
中文 · <a href="README.en.md">English</a><br>
|
|
11
|
+
<a href="#安装与配置">安装与配置</a> · <a href="#界面预览">界面预览</a> · <a href="#观看用法">观看用法</a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
在 Codex 桌面会话右侧看红果短剧,支持选剧、搜索、续播和连播。默认在新任务开始时续播已选剧集,任务结束或中断时暂停并保存进度;两个行为都可在设置中独立关闭。插件用于使用本机执行器的 Codex 桌面对话。
|
|
15
|
+
|
|
16
|
+
本项目是非官方的独立插件,图标为原创设计。红色果实呼应「红果」,叶片和播放键构成插件自己的标识。
|
|
17
|
+
|
|
18
|
+
完成安装并信任 Hooks 后,照常发任务,对话里的「等待时看一集」每轮最多推荐三部。已有进度优先显示「继续观看」;本集已看完且还有后续分集时显示「看下一集」。其余位置轮换没看过的剧,点剧名即可在当前聊天里打开播放器,按「默认静音」设置开播。
|
|
8
19
|
|
|
9
20
|
## 安装与配置
|
|
10
21
|
|
|
@@ -38,7 +49,7 @@ npx.cmd "@kyun.si/codex-hongguo@latest" setup
|
|
|
38
49
|
|
|
39
50
|

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

|
|
44
55
|
|
|
@@ -51,7 +62,7 @@ npx.cmd "@kyun.si/codex-hongguo@latest" setup
|
|
|
51
62
|
| 只想看剧 | 在已安装插件的 Codex 桌面点击[直接打开红果短剧](codex://plugins/codex-hongguo@hongguo-local/app/open_drama_panel),即可进入独立片库。需要随任务自动播放和暂停时,请从对应聊天右侧打开播放器。 |
|
|
52
63
|
|
|
53
64
|
- **选剧与续播**:片库打开即显示已缓存的剧名并自动刷新。首次使用时,第一批剧目返回就会显示。点击推荐、搜索结果或「观看历史」中的剧名即可开播。看过的剧会自动回到上次的集数和时间点,提示栏同时提供「从头播放」。观看历史按剧汇总,可单条移除。
|
|
54
|
-
-
|
|
65
|
+
- **默认静音与画面控制**:可在设置中关闭「默认静音」,新打开的播放器会恢复上次音量;开启时静音打开,取消静音后仍恢复上次音量。扬声器按钮只控制当前播放器,切集和续播保持当前声音状态。画面内支持拖动进度、切换倍速(`0.75×`–`2×`)和全屏;选集区每 50 集一组,支持上一集、下一集和随机一集。
|
|
55
66
|
- **等待任务时看**:对话卡片和选剧页都可提供最多 3 部快捷推荐。同一回合的剧目保持不变;多个聊天共享本地轮换记录,卡片实际显示后才计入轮换。在「设置」中可关闭推荐或修改补充搜索词。
|
|
56
67
|
- **暂停与续播** 点画面、中央按钮或底部播放键都能暂停,再点一次从原处继续。任务运行中和结束后都可以操作。
|
|
57
68
|
- **后台播放** 切换窗口或标签页时可继续观看。开启「任务结束自动暂停」时,当前对话的任务结束或中断也会暂停后台播放。关闭播放器会保存进度。
|
|
@@ -65,8 +76,9 @@ npx.cmd "@kyun.si/codex-hongguo@latest" setup
|
|
|
65
76
|
| --- | --- | --- |
|
|
66
77
|
| 任务结束自动暂停 | 开启 | 当前聊天的任务结束或中断时暂停并保存进度;关闭后持续播放。 |
|
|
67
78
|
| 任务开始自动播放 | 开启 | 同一聊天的新任务开始时,从原位置播放已选中的剧集。 |
|
|
79
|
+
| 默认静音 | 开启 | 新打开播放器时按此设置决定是否静音;修改后立即同步当前播放器,其他已打开的播放器也会自动同步。 |
|
|
68
80
|
|
|
69
|
-
|
|
81
|
+
设置独立保存,所有聊天共用。任务播放开关和默认静音会同步到已打开的播放器。扬声器按钮只改变当前播放器的静音状态,不修改默认值;未修改默认静音时,同步不会覆盖手动选择。新打开播放器时恢复记住的音量。自动播放需要播放器保持打开且已有选中的剧集;它不会自动选剧或重新打开已关闭的播放器。手动暂停在当前任务内保持有效,下一轮是否续播取决于自动播放开关。升级会保留已保存的选择。
|
|
70
82
|
|
|
71
83
|
## 排查问题
|
|
72
84
|
|
package/assets/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Plugin icon
|
|
2
|
+
|
|
3
|
+
Original artwork for codex-hongguo, distributed under the project's MIT license.
|
|
4
|
+
|
|
5
|
+
The mark combines a coral-red fruit (`#F36C58`), a sage leaf (`#A8C8A0`) and an
|
|
6
|
+
ivory play button (`#FFF4E5`) on a graphite background (`#242B2E`). The fruit
|
|
7
|
+
connects the independent plugin to its Hongguo ("red fruit") name; the play button
|
|
8
|
+
identifies its short-drama player. It does not use Hongguo's official artwork.
|
|
9
|
+
|
|
10
|
+
- `icon.svg`: vector master and composer icon, designed on a 128 × 128 grid.
|
|
11
|
+
- `logo.png`: 512 × 512 RGBA export for plugin details and documentation.
|
|
12
|
+
|
|
13
|
+
Keep the proportions and colors intact; use at least 16 × 16 pixels. Leave
|
|
14
|
+
additional space around the square when placing it beside text. The built-in
|
|
15
|
+
padding keeps the symbol legible in small plugin menus and on light or dark
|
|
16
|
+
backgrounds.
|
|
17
|
+
|
|
18
|
+
To regenerate the PNG with ImageMagick:
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
magick -background none -density 384 assets/icon.svg -strip assets/logo.png
|
|
22
|
+
```
|
package/assets/icon.svg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128" fill="none">
|
|
2
|
+
<rect width="128" height="128" rx="30" fill="#242B2E"/>
|
|
3
|
+
<path d="M64 43C77 36 93 42 100 56C109 73 100 94 85 103C73 110 55 110 43 103C28 94 19 73 28 56C35 42 51 36 64 43Z" fill="#F36C58"/>
|
|
4
|
+
<path d="M62 38C60 25 68 17 86 18C86 31 78 40 62 38Z" fill="#A8C8A0"/>
|
|
5
|
+
<path d="M54 57.7C54 54.6 57.4 52.7 60 54.4L82 69.7C84.3 71.3 84.3 74.7 82 76.3L60 91.6C57.4 93.3 54 91.4 54 88.3V57.7Z" fill="#FFF4E5"/>
|
|
6
|
+
</svg>
|
package/assets/logo.png
ADDED
|
Binary file
|
package/bin/run-node-arm64.exe
CHANGED
|
Binary file
|
package/bin/run-node.exe
CHANGED
|
Binary file
|
package/dist/cli/main.mjs
CHANGED
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
import {createRequire as __cr} from 'node:module';const require=__cr(import.meta.url);
|
|
2
|
-
var yt=Object.create;var TA=Object.defineProperty;var dt=Object.getOwnPropertyDescriptor;var Dt=Object.getOwnPropertyNames;var xt=Object.getPrototypeOf,Nt=Object.prototype.hasOwnProperty;var N=(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 kt=(A,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Dt(e))!Nt.call(A,n)&&n!==t&&TA(A,n,{get:()=>e[n],enumerable:!(r=dt(e,n))||r.enumerable});return A};var gA=(A,e,t)=>(t=A!=null?yt(xt(A)):{},kt(e||!A||!A.__esModule?TA(t,"default",{value:A,enumerable:!0}):t,A));var ZA=p((un,XA)=>{XA.exports=WA;WA.sync=Ft;var PA=N("fs");function St(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 jA(A,e,t){return!A.isSymbolicLink()&&!A.isFile()?!1:St(e,t)}function WA(A,e,t){PA.stat(A,function(r,n){t(r,r?!1:jA(n,A,e))})}function Ft(A,e){return jA(PA.statSync(A),A,e)}});var ee=p((hn,Ae)=>{Ae.exports=$A;$A.sync=Mt;var VA=N("fs");function $A(A,e,t){VA.stat(A,function(r,n){t(r,r?!1:_A(n,e))})}function Mt(A,e){return _A(VA.statSync(A),e)}function _A(A,e){return A.isFile()&&Jt(A,e)}function Jt(A,e){var t=A.mode,r=A.uid,n=A.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),a=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),s=parseInt("100",8),C=parseInt("010",8),g=parseInt("001",8),I=s|C,o=t&g||t&C&&n===a||t&s&&r===i||t&I&&i===0;return o}});var re=p((Qn,te)=>{var ln=N("fs"),$;process.platform==="win32"||global.TESTING_WINDOWS?$=ZA():$=ee();te.exports=IA;IA.sync=Lt;function IA(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){IA(A,e||{},function(i,a){i?n(i):r(a)})})}$(A,e||{},function(r,n){r&&(r.code==="EACCES"||e&&e.ignoreErrors)&&(r=null,n=!1),t(r,n)})}function Lt(A,e){try{return $.sync(A,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var Ie=p((En,ge)=>{var Y=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",ne=N("path"),bt=Y?";":":",ie=re(),oe=A=>Object.assign(new Error(`not found: ${A}`),{code:"ENOENT"}),ae=(A,e)=>{let t=e.colon||bt,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}},se=(A,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:r,pathExt:n,pathExtExe:i}=ae(A,e),a=[],s=g=>new Promise((I,o)=>{if(g===r.length)return e.all&&a.length?I(a):o(oe(A));let c=r[g],f=/^".*"$/.test(c)?c.slice(1,-1):c,u=ne.join(f,A),h=!f&&/^\.[\\\/]/.test(A)?A.slice(0,2)+u:u;I(C(h,g,0))}),C=(g,I,o)=>new Promise((c,f)=>{if(o===n.length)return c(s(I+1));let u=n[o];ie(g+u,{pathExt:i},(h,Q)=>{if(!h&&Q)if(e.all)a.push(g+u);else return c(g+u);return c(C(g,I,o+1))})});return t?s(0).then(g=>t(null,g),t):s(0)},Yt=(A,e)=>{e=e||{};let{pathEnv:t,pathExt:r,pathExtExe:n}=ae(A,e),i=[];for(let a=0;a<t.length;a++){let s=t[a],C=/^".*"$/.test(s)?s.slice(1,-1):s,g=ne.join(C,A),I=!C&&/^\.[\\\/]/.test(A)?A.slice(0,2)+g:g;for(let o=0;o<r.length;o++){let c=I+r[o];try{if(ie.sync(c,{pathExt:n}))if(e.all)i.push(c);else return c}catch{}}}if(e.all&&i.length)return i;if(e.nothrow)return null;throw oe(A)};ge.exports=se;se.sync=Yt});var ce=p((Bn,CA)=>{"use strict";var Ce=(A={})=>{let e=A.env||process.env;return(A.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};CA.exports=Ce;CA.exports.default=Ce});var le=p((pn,he)=>{"use strict";var fe=N("path"),Gt=Ie(),Ht=ce();function ue(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 a;try{a=Gt.sync(A.command,{path:t[Ht({env:t})],pathExt:e?fe.delimiter:void 0})}catch{}finally{i&&process.chdir(r)}return a&&(a=fe.resolve(n?A.options.cwd:"",a)),a}function Rt(A){return ue(A)||ue(A,!0)}he.exports=Rt});var uA=p((wn,fA)=>{"use strict";var cA=/([()\][%!^"`<>&|;, *?])/g;function qt(A){return A=A.replace(cA,"^$1"),A}function Kt(A,e){return A=`${A}`,A=A.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),A=A.replace(/(?=(\\+?)?)\1$/,"$1$1"),A=`"${A}"`,A=A.replace(cA,"^$1"),e&&(A=A.replace(cA,"^$1")),A}fA.exports.command=qt;fA.exports.argument=Kt});var Ee=p((vn,Qe)=>{"use strict";Qe.exports=/^#!(.*)/});var pe=p((mn,Be)=>{"use strict";var Ut=Ee();Be.exports=(A="")=>{let e=A.match(Ut);if(!e)return null;let[t,r]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?r:r?`${n} ${r}`:n}});var ve=p((yn,we)=>{"use strict";var hA=N("fs"),zt=pe();function Ot(A){let t=Buffer.alloc(150),r;try{r=hA.openSync(A,"r"),hA.readSync(r,t,0,150,0),hA.closeSync(r)}catch{}return zt(t.toString())}we.exports=Ot});var De=p((dn,de)=>{"use strict";var Tt=N("path"),me=le(),ye=uA(),Pt=ve(),jt=process.platform==="win32",Wt=/\.(?:com|exe)$/i,Xt=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Zt(A){A.file=me(A);let e=A.file&&Pt(A.file);return e?(A.args.unshift(A.file),A.command=e,me(A)):A.file}function Vt(A){if(!jt)return A;let e=Zt(A),t=!Wt.test(e);if(A.options.forceShell||t){let r=Xt.test(e);A.command=Tt.normalize(A.command),A.command=ye.command(A.command),A.args=A.args.map(i=>ye.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 $t(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:Vt(r)}de.exports=$t});var ke=p((Dn,Ne)=>{"use strict";var lA=process.platform==="win32";function QA(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 _t(A,e){if(!lA)return;let t=A.emit;A.emit=function(r,n){if(r==="exit"){let i=xe(n,e);if(i)return t.call(A,"error",i)}return t.apply(A,arguments)}}function xe(A,e){return lA&&A===1&&!e.file?QA(e.original,"spawn"):null}function Ar(A,e){return lA&&A===1&&!e.file?QA(e.original,"spawnSync"):null}Ne.exports={hookChildProcess:_t,verifyENOENT:xe,verifyENOENTSync:Ar,notFoundError:QA}});var Me=p((xn,G)=>{"use strict";var Se=N("child_process"),EA=De(),BA=ke();function Fe(A,e,t){let r=EA(A,e,t),n=Se.spawn(r.command,r.args,r.options);return BA.hookChildProcess(n,r),n}function er(A,e,t){let r=EA(A,e,t),n=Se.spawnSync(r.command,r.args,r.options);return n.error=n.error||BA.verifyENOENTSync(n.status,r),n}G.exports=Fe;G.exports.spawn=Fe;G.exports.sync=er;G.exports._parse=EA;G.exports._enoent=BA});var qe=p((X,DA)=>{(function(e,t){typeof X=="object"&&typeof DA=="object"?DA.exports=t(N("stream/web")):typeof define=="function"&&define.amd?define(["stream/web"],t):typeof X=="object"?X["xz-decompress"]=t(N("stream/web")):e["xz-decompress"]=t(e["stream/web"])})(X,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 a=t[i];if(a!==void 0)return a.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,r),s.exports}r.d=(i,a)=>{for(var s in a)r.o(a,s)&&!r.o(i,s)&&Object.defineProperty(i,s,{enumerable:!0,get:a[s]})},r.o=(i,a)=>Object.prototype.hasOwnProperty.call(i,a),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:()=>o});var i=r(1);let a=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 I{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 o extends a{static _moduleInstancePromise;static _moduleInstance;static _contextMutex=new I;static async _getModuleInstance(){let f=i.replace("data:application/wasm;base64,",""),u=Uint8Array.from(atob(f),E=>E.charCodeAt(0)).buffer,h={},Q=await WebAssembly.instantiate(u,h);o._moduleInstance=Q.instance}constructor(f){let u,h=null,Q=f.getReader();super({async start(E){await o._contextMutex.acquire();try{o._moduleInstance||await(o._moduleInstancePromise||(o._moduleInstancePromise=o._getModuleInstance())),u=new g(o._moduleInstance)}catch(y){throw o._contextMutex.release(),y}},async pull(E){try{if(u.needsMoreInput()){if(h===null||h.byteLength===0){let{done:z,value:O}=await Q.read();z||(h=O)}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(),o._contextMutex.release(),E.close())}catch(y){throw u&&u.dispose(),o._contextMutex.release(),y}},cancel(){try{return u&&u.dispose(),Q.cancel()}finally{o._contextMutex.release()}}})}}})(),n})())});import{readFileSync as sn,existsSync as gn}from"node:fs";import{fileURLToPath as In}from"node:url";var ot=gA(Me(),1),MA=gA(uA(),1);import{accessSync as Hr,constants as nt,statSync as Rr}from"node:fs";import{homedir as qr}from"node:os";import{posix as it,win32 as AA}from"node:path";import{spawn as Pn,spawnSync as Kr}from"node:child_process";import{createHash as Te,randomUUID as yr}from"node:crypto";import{createReadStream as Pe}from"node:fs";import{mkdir as Ue,lstat as kA,open as je,readFile as We,writeFile as dr,rename as Dr,rm as q,chmod as xr,stat as ze,unlink as Nr,rmdir as Oe}from"node:fs/promises";import{lstatSync as kr}from"node:fs";import{homedir as Xe}from"node:os";import{posix as SA,win32 as FA}from"node:path";import{spawnSync as Sr}from"node:child_process";import{createRequire as tr}from"module";var rr=tr("/"),R,nr,ir;try{R=rr("worker_threads"),nr=R.Worker,ir=R.isMarkedAsUntransferable}catch{}var m=Uint8Array,H=Uint16Array,or=Int32Array,Je=new m([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]),Le=new m([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]),ar=new m([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),be=function(A,e){for(var t=new H(31),r=0;r<31;++r)t[r]=e+=1<<A[r-1];for(var n=new or(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}},R=be(Je,2),Ye=R.b,sr=R.r;Ye[28]=258,sr[258]=28;var Ge=be(Le,0),gr=Ge.b,kn=Ge.r,mA=new H(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,mA[l]=((M&65280)>>8|(M&255)<<8)>>1;var M,l,j=(function(A,e,t){for(var r=A.length,n=0,i=new H(e);n<r;++n)A[n]&&++i[A[n]-1];var a=new H(e);for(n=1;n<e;++n)a[n]=a[n-1]+i[n-1]<<1;var s;if(t){s=new H(1<<e);var C=15-e;for(n=0;n<r;++n)if(A[n])for(var g=n<<4|A[n],I=e-A[n],o=a[A[n]-1]++<<I,c=o|(1<<I)-1;o<=c;++o)s[mA[o]>>C]=g}else for(s=new H(r),n=0;n<r;++n)A[n]&&(s[n]=mA[a[A[n]-1]++]>>15-A[n]);return s}),W=new m(288);for(l=0;l<144;++l)W[l]=8;var l;for(l=144;l<256;++l)W[l]=9;var l;for(l=256;l<280;++l)W[l]=7;var l;for(l=280;l<288;++l)W[l]=8;var l,He=new m(32);for(l=0;l<32;++l)He[l]=5;var l;var Ir=j(W,9,1);var Cr=j(He,5,1),pA=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},wA=function(A,e){var t=e/8|0;return(A[t]|A[t+1]<<8|A[t+2]<<16)>>(e&7)},cr=function(A){return(A+7)/8|0},dA=function(A,e,t){return(e==null||e<0)&&(e=0),(t==null||t>A.length)&&(t=A.length),new m(A.subarray(e,t))};var fr=["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"],v=function(A,e,t){var r=new Error(e||fr[A]);if(r.code=A,Error.captureStackTrace&&Error.captureStackTrace(r,v),!t)throw r;return r},ur=function(A,e,t,r){var n=A.length,i=r?r.length:0;if(!n||e.f&&!e.l)return t||new m(0);var a=!t,s=a||e.i!=2,C=e.i;a&&(t=new m(n*3));var g=function(UA){var zA=t.length;if(UA>zA){var OA=new m(Math.max(zA*2,UA));OA.set(t),t=OA}},I=e.f||0,o=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){I=x(A,o,1);var y=x(A,o+1,3);if(o+=3,y)if(y==1)f=Ir,u=Cr,h=9,Q=5;else if(y==2){var nA=x(A,o,31)+257,LA=x(A,o+10,15)+4,bA=nA+x(A,o+5,31)+1;o+=14;for(var T=new m(bA),iA=new m(19),d=0;d<LA;++d)iA[ar[d]]=x(A,o+d*3,7);o+=LA*3;for(var YA=pA(iA),Bt=(1<<YA)-1,pt=j(iA,YA,1),d=0;d<bA;){var GA=pt[x(A,o,Bt)];o+=GA&15;var w=GA>>4;if(w<16)T[d++]=w;else{var L=0,V=0;for(w==16?(V=3+x(A,o,3),o+=2,L=T[d-1]):w==17?(V=3+x(A,o,7),o+=3):w==18&&(V=11+x(A,o,127),o+=7);V--;)T[d++]=L}}var HA=T.subarray(0,nA),J=T.subarray(nA);h=pA(HA),Q=pA(J),f=j(HA,h,1),u=j(J,Q,1)}else v(1);else{var w=cr(o)+4,z=A[w-4]|A[w-3]<<8,O=w+z;if(O>n){C&&v(0);break}s&&g(c+z),t.set(A.subarray(w,O),c),e.b=c+=z,e.p=o=O*8,e.f=I;continue}if(o>E){C&&v(0);break}}s&&g(c+131072);for(var wt=(1<<h)-1,vt=(1<<Q)-1,oA=o;;oA=o){var L=f[wA(A,o)&wt],b=L>>4;if(o+=L&15,o>E){C&&v(0);break}if(L||v(2),b<256)t[c++]=b;else if(b==256){oA=o,f=null;break}else{var RA=b-254;if(b>264){var d=b-257,P=Je[d];RA=x(A,o,(1<<P)-1)+Ye[d],o+=P}var aA=u[wA(A,o)&vt],sA=aA>>4;aA||v(3),o+=aA&15;var J=gr[sA];if(sA>3){var P=Le[sA];J+=wA(A,o)&(1<<P)-1,o+=P}if(o>E){C&&v(0);break}s&&g(c+131072);var qA=c+RA;if(c<J){var KA=i-J,mt=Math.min(J,qA);for(KA+c<0&&v(3);c<mt;++c)t[c]=r[KA+c]}for(;c<qA;++c)t[c]=t[c-J]}}e.l=f,e.p=oA,e.b=c,e.f=I,f&&(I=1,e.m=h,e.d=u,e.n=Q)}while(!I);return c!=t.length&&a?dA(t,0,c):t.subarray(0,c)};var hr=new m(0);var k=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},vA=function(A,e){return D(A,e)+D(A,e+4)*4294967296};function lr(A,e){return ur(A,{i:2},e&&e.out,e&&e.dictionary)}var yA=typeof TextDecoder<"u"&&new TextDecoder,Qr=0;try{yA.decode(hr,{stream:!0}),Qr=1}catch{}var Er=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:dA(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 Br(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(yA)return yA.decode(A);var n=Er(A),i=n.s,t=n.r;return t.length&&v(8),i}}var pr=function(A,e){return e+30+k(A,e+26)+k(A,e+28)},wr=function(A,e,t){var r=k(A,e+28),n=k(A,e+30),i=Br(A.subarray(e+46,e+46+r),!(k(A,e+8)&2048)),a=e+46+r,s=vr(A,a,n,t,D(A,e+20),D(A,e+24),D(A,e+42)),C=s[0],g=s[1],I=s[2];return[k(A,e+10),C,g,i,a+n+k(A,e+32),I]},vr=function(A,e,t,r,n,i,a){var s=n==4294967295,C=i==4294967295,g=a==4294967295,I=e+t,o=s+C+g;if(r&&o){for(;e+4<I;e+=4+k(A,e+2))if(k(A,e)==1)return[s?vA(A,e+4+8*C):n,C?vA(A,e+4):i,g?vA(A,e+4+8*(C+s)):a,1];r<2&&v(13)}return[n,i,a,0]};function Re(A,e){for(var t={},r=A.length-22;D(A,r)!=101010256;--r)(!r||A.length-r>65558)&&v(13);var n=k(A,r+8);if(!n)return{};var i=D(A,r+16),a=D(A,r-20)==117853008;if(a){var s=D(A,r-12);a=D(A,s)==101075792,a&&(n=D(A,s+32),i=D(A,s+48))}for(var C=e&&e.filter,g=0;g<n;++g){var I=wr(A,i,a),o=I[0],c=I[1],f=I[2],u=I[3],h=I[4],Q=I[5],E=pr(A,Q);i=h,(!C||C({name:u,size:c,originalSize:f,compression:o}))&&(o?o==8?t[u]=lr(A.subarray(E,E+c),{out:new m(f)}):v(14,"unknown compression type "+o):t[u]=dA(A,E,E+c))}return t}var Ze=gA(qe(),1);var Ke={"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 K=new Map,_=new Map,Fr="@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"),Mr=A=>new Promise(e=>setTimeout(e,A));function Ve(A={}){let{env:e=process.env,home:t=Xe(),platform:r=process.platform,arch:n=process.arch}=A,i=r==="win32"?FA:SA;if(e.HONGGUO_FFMPEG){if(!i.isAbsolute(e.HONGGUO_FFMPEG))throw B();return{...A,env:e,platform:r,target:e.HONGGUO_FFMPEG,override:!0}}let a=(A.artifacts||Ke)[r+"-"+n];if(!a)throw Error("\u5F53\u524D\u7CFB\u7EDF\u67B6\u6784\u6682\u4E0D\u652F\u6301\u81EA\u52A8\u51C6\u5907\u64AD\u653E\u7EC4\u4EF6\u3002");let s=$e({env:e,home:t,platform:r,paths:i}),C=i.join(s,"runtime","ffmpeg",a.archiveSha256.slice(0,16),r+"-"+n);return{...A,env:e,platform:r,artifact:a,directory:C,target:i.join(C,r==="win32"?"ffmpeg.exe":"ffmpeg")}}function $e({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 _e(A){return Ve(A).target}function xA(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=Te("sha256");for await(let t of Pe(A))e.update(t);return e.digest("hex")}function et(A,e){return e.probe?e.probe(A):Sr(A,["-version"],{stdio:"ignore",timeout:5e3,windowsHide:!0}).status===0}async function NA(A){let{target:e,artifact:t}=A;if(K.get(e)&&K.get(e)===xA(e))return!0;try{let r=await kA(e);if(!r.isFile()||r.isSymbolicLink())return!1;if(t){let n=JSON.parse(await We(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 et(e,A)?(K.set(e,xA(e)),!0):!1}catch{return!1}}async function Jr(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),i=new URL(A.url),a;for(let I=0;I<=6;I++){if(i.protocol!=="https:"||i.username||i.password||i.port||!r.has(i.hostname))throw B();if(a=await t(i,{redirect:"manual",signal:n}),![301,302,303,307,308].includes(a.status))break;let o=a.headers.get("location");if(await a.body?.cancel(),!o||I===6)throw B();i=new URL(o,i)}if(!a.ok||!a.body||Number(a.headers.get("content-length"))>A.archiveBytes)throw await a.body?.cancel(),B();let s=await je(e,"wx",384),C=Te("sha256"),g=0;try{for await(let I of a.body){if(g+=I.length,g>A.archiveBytes)throw B();C.update(I),await s.writeFile(I)}if(g!==A.archiveBytes||C.digest("hex")!==A.archiveSha256)throw B()}finally{await s.close()}}async function Lr(A,e,t){let r=await je(t,"wx",384);try{if(A.format==="zip"){let c=Re(await We(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 Ze.default.XzReadableStream(br(e)),i=n.getReader(),a=Buffer.alloc(0),s=0,C=0,g=!1,I=0;try{for(;;){let{value:o,done:c}=await i.read();if(c)break;if(I+=o.length,I>1024*1024*1024)throw B();for(a=Buffer.concat([a,o]);a.length;)if(s){let f=Math.min(s,a.length);if(g&&await r.writeFile(a.subarray(0,f)),a=a.subarray(f),s-=f,!s&&g)return}else if(C){let f=Math.min(C,a.length);a=a.subarray(f),C-=f}else{if(a.length<512)break;let f=a.subarray(0,512);a=a.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,C=(512-Q%512)%512}}throw B()}finally{await i.cancel().catch(()=>{})}}finally{await r.close()}}function br(A){let e=Pe(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 tt(A={}){let e=Ve(A);if(await NA(e))return e.target;if(e.override)throw B();if(_.has(e.target))return _.get(e.target);let t=Gr(e).finally(()=>_.delete(e.target));return _.set(e.target,t),t}async function Yr(A,e){for(let t=A;;t=e.dirname(t)){let r=await kA(t);if(!r.isDirectory()||r.isSymbolicLink())return!1;if(e.dirname(t)===t)return!0}}async function rt(A={}){let{env:e=process.env,home:t=Xe(),platform:r=process.platform}=A,n=r==="win32"?FA:SA,i=$e({env:e,home:t,platform:r,paths:n}),a=n.join(i,"runtime","ffmpeg"),s=n.dirname(a),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 Yr(s,n))throw C();let g=await kA(a);g.isDirectory()&&!g.isSymbolicLink()?await q(a,{recursive:!0,force:!0,maxRetries:10,retryDelay:100}):await Nr(a);for(let I of K.keys()){let o=n.relative(a,I);o&&!o.startsWith(".."+n.sep)&&!n.isAbsolute(o)&&K.delete(I)}}catch(g){if(g.code==="ENOENT")return{removed:0};throw C()}return await Oe(s).catch(()=>{}),await Oe(i).catch(()=>{}),{removed:1}}async function Gr(A){let{directory:e,target:t,artifact:r}=A,n=e+".lock",i=Date.now()+42e4;await Ue(e,{recursive:!0,mode:448});let a=!1;for(;!a;)try{await Ue(n,{mode:448}),a=!0}catch(o){if(o.code!=="EEXIST"||Date.now()>i)throw B();if(await NA(A))return t;try{Date.now()-(await ze(n)).mtimeMs>6e5&&await q(n,{recursive:!0,force:!0})}catch{}await Mr(200)}let s=A.platform==="win32"?FA:SA,C=s.basename(t)+"."+yr(),g=s.join(e,C+".archive"),I=s.join(e,C+".part");try{if(await NA(A))return t;await Jr(r,g,A.fetchImpl||fetch),await Lr(r,g,I);let o=await At(I);if(r.binarySha256&&o!==r.binarySha256||(await xr(I,493),!et(I,A)))throw B();return A.platform==="win32"&&await q(t,{force:!0}),await Dr(I,t),await dr(t+".json",JSON.stringify({owner:Fr,schema:1,archiveSha256:r.archiveSha256,binarySha256:o,binaryBytes:(await ze(t)).size,version:r.version})+`
|
|
3
|
-
`,{mode:384}),
|
|
4
|
-
|
|
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(et.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 tn(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=tn(A,e,t);return r?en(r.shell,r.args,r.options):Ct.default.sync(A,e,t)}function nA(A,e,{env:t=process.env,home:r=An(),platform:n=process.platform,arch:i=process.arch}={}){if(e)return e;if(A==="ffmpeg")return it({env:t,home:r,platform:n,arch:i});let{delimiter:o,dirname:s,join:C,isAbsolute:g,extname:c}=n==="win32"?rA:It,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(Vr(h,n==="win32"?ct.F_OK:ct.X_OK),Zr(h).isFile())return h}catch{}return A}function ft(){let{delimiter:A,dirname:e}=process.platform==="win32"?rA:It,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 ut="\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 ht,rm as sn,unlink as gn}from"node:fs/promises";import{homedir as cn}from"node:os";import{posix as In,win32 as Cn}from"node:path";import{homedir as rn}from"node:os";import{posix as nn,win32 as on}from"node:path";import{fileURLToPath as an}from"node:url";var Qi=an(new URL("../../",import.meta.url));function Z({env:A=process.env,home:e=rn(),platform:t=process.platform}={}){let{join:r}=t==="win32"?on:nn;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 lt(A={}){let{env:e=process.env,home:t=cn(),platform:r=process.platform}=A,n=r==="win32"?Cn:In,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 ht(a);if(!I.isDirectory()||I.isSymbolicLink())throw Error("Substituted data ancestor");if(n.dirname(a)===a)break}let c=await ht(g);c.isDirectory()&&!c.isSymbolicLink()?await sn(g,{recursive:!0,force:!0,maxRetries:10,retryDelay:100}):await gn(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 Qt,readdir as fn,realpath as JA}from"node:fs/promises";import{homedir as Bt}from"node:os";import{win32 as F}from"node:path";var un=`$ErrorActionPreference = 'Stop'
|
|
4
|
+
$result = @{ processes = @(); unreadable = 0 }
|
|
5
|
+
$query = "SELECT ProcessId, ExecutablePath FROM Win32_Process WHERE Name = 'run-node.exe' OR Name = 'run-node-arm64.exe'"
|
|
6
|
+
foreach ($candidate in @(Get-CimInstance -Query $query)) {
|
|
7
|
+
if ([string]::IsNullOrEmpty($candidate.ExecutablePath)) { $result.unreadable++ }
|
|
8
|
+
else { $result.processes += @{ pid = [int]$candidate.ProcessId; executable = [string]$candidate.ExecutablePath } }
|
|
9
|
+
}
|
|
10
|
+
$json = ConvertTo-Json -InputObject $result -Compress -Depth 4
|
|
11
|
+
$bytes = [Text.Encoding]::UTF8.GetBytes($json)
|
|
12
|
+
$output = [Console]::OpenStandardOutput()
|
|
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"}),Et=A=>F.normalize(A.replace(/^\\\\\?\\UNC\\/i,"\\\\").replace(/^\\\\\?\\/,"")).toLowerCase();async function hn({env:A=process.env,home:e=Bt()}={}){let t=A.CODEX_HOME||F.join(e,".codex");if(!F.isAbsolute(t))throw R();let r=F.join(t,"plugins","cache","hongguo-local","codex-hongguo"),n;try{n=await fn(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=F.join(r,o.name),C=F.join(s,"bin");try{let g=await Qt(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=F.join(C,a);try{let f=await Qt(I);if(!f.isFile()||f.isSymbolicLink())continue;let u=await JA(I);F.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 ln(A,e,t=JA){let r=new Set(e.map(Et)),n=[];for(let i of A){if(!Number.isInteger(i?.pid)||i.pid<=0||i.pid===process.pid||typeof i.executable!="string"||!F.isAbsolute(i.executable))continue;let o;try{o=await t(i.executable)}catch{continue}r.has(Et(o))&&n.push({pid:i.pid,executable:i.executable})}return n}async function pt({env:A=process.env,home:e=Bt(),platform:t=process.platform}={}){if(t!=="win32")return;let r=await hn({env:A,home:e});if(!r.length)return;let n=F.join(A.SystemRoot||"C:\\Windows","System32","WindowsPowerShell","v1.0","powershell.exe"),i=z(n,["-NoLogo","-NoProfile","-NonInteractive","-Command",un],{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 ln(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 Qn}from"node:fs";var wt=JSON.parse(Qn(new URL("../../package.json",import.meta.url),"utf8")),En=wt.name,RA=wt.version,x="hongguo-local";function mt(A,e={source:"npm",package:En,version:A}){return{name:x,interface:{displayName:"\u7EA2\u679C\u77ED\u5267"},plugins:[{name:"codex-hongguo",source:e,policy:{installation:"AVAILABLE",authentication:"ON_INSTALL"},category:"Entertainment"}]}}import{mkdir as Bn,readFile as pn,writeFile as wn,rename as mn,rm as vn}from"node:fs/promises";import{join as iA,relative as vt,resolve as dt}from"node:path";import{randomUUID as yn}from"node:crypto";import{realpathSync as yt}from"node:fs";var Dt=dt(Z(),"managed-marketplace"),b=iA(Dt,RA);function HA(A){let e=A?.marketplaceSource?.source;return typeof e=="string"&&e.length?e:A?.root}function Nt(A,e=Dt){if(typeof A!="string")return!1;let t=/^\d{1,3}\.\d{1,3}\.\d{1,3}$/;if(t.test(vt(e,dt(A))))return!0;try{return t.test(vt(yt.native(e),yt.native(A)))}catch{return!1}}async function xt(){let A=iA(b,".agents","plugins"),e=iA(A,"marketplace.json"),t=JSON.stringify(mt(RA),null,2)+`
|
|
15
|
+
`,r=iA(A,".marketplace-"+yn()+".tmp");try{return await Bn(A,{recursive:!0,mode:448}),await pn(e,"utf8").catch(()=>"")===t||(await wn(r,t,{mode:384}),await mn(r,e)),b}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 vn(r,{force:!0}).catch(()=>{})}}var T="codex-hongguo@"+x,kt=A=>typeof A=="string"?A.replace(/^https:\/\/github\.com\//,"").replace(/\.git$/,"").replace(/\/$/,""):A;function St(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 xn({run:A,assertIdle:e=pt,removeFfmpeg:t=gt,removeData:r=lt,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===x),s=HA(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",x]).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",x]);let c=A(["plugin","marketplace","list"]).marketplaces;if(!Array.isArray(c)||c.some(a=>a.name===x))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 kn(A){if(/^[\w.-]+\/[\w.-]+$/.test(A)||Dn(A))return A;throw Error("--marketplace \u53EA\u63A5\u53D7 owner/repo \u6216\u73B0\u6709\u672C\u5730\u5E02\u573A\u76EE\u5F55\u3002")}function Sn({run:A,source:e=b,dryRun:t=!1,log:r=console.log}){if((!t||e!==b)&&kn(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===x),i=HA(n),o=!!n&&kt(i)!==kt(e);o&&A(["plugin","marketplace","remove",x]);try{A(["plugin","marketplace","add",e]),e!==b&&!o&&n?.marketplaceSource?.sourceType==="git"&&A(["plugin","marketplace","upgrade",x]),A(["plugin","add",T])}catch(s){if(e===b&&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",x])}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 ji(A=process.argv.slice(2)){try{let[e="help",...t]=A;if(e==="--version"){console.log(JSON.parse(dn(new URL("../../package.json",import.meta.url),"utf8")).version);return}if(["help","--help","-h"].includes(e)){console.log(`\u7EA2\u679C\u77ED\u5267
|
|
5
19
|
codex-hongguo setup [--dry-run] [--marketplace owner/repo|\u76EE\u5F55]
|
|
6
20
|
codex-hongguo update [--dry-run] [--marketplace owner/repo|\u76EE\u5F55]
|
|
7
21
|
codex-hongguo uninstall [--dry-run]
|
|
8
22
|
codex-hongguo doctor
|
|
9
|
-
\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(
|
|
10
|
-
`));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}a||(i===F&&await lt(),console.log("\u6B63\u5728\u51C6\u5907\u64AD\u653E\u7EC4\u4EF6\uFF0C\u9996\u6B21\u4F7F\u7528\u9700\u8981\u8054\u7F51\u4E0B\u8F7D\u2026"),await tt()),cn({run:Et(s),source:i,dryRun:a}),a||console.log(st)}catch(e){console.error(e.message),process.exitCode=1}}export{Et as codexRunner,F as defaultSource,cn as install,vi as main,S as marketplaceName,U as pluginId,Cn as validateSource};
|
|
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(ft(),e==="doctor"){if(t.length)throw Error("doctor \u4E0D\u63A5\u53D7\u989D\u5916\u53C2\u6570\u3002");if(z(process.execPath,[Nn(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=b,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=St(s);await xn({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===b&&await xt(),console.log("\u6B63\u5728\u51C6\u5907\u64AD\u653E\u7EC4\u4EF6\uFF0C\u9996\u6B21\u4F7F\u7528\u9700\u8981\u8054\u7F51\u4E0B\u8F7D\u2026"),await st()),Sn({run:St(s),source:i,dryRun:o}),o||console.log(ut)}catch(e){console.error(e.message),process.exitCode=1}}export{St as codexRunner,b as defaultSource,Sn as install,ji as main,x as marketplaceName,T as pluginId,xn as uninstall,kn as validateSource};
|
|
11
24
|
/*! Bundled license information:
|
|
12
25
|
|
|
13
26
|
xz-decompress/dist/package/xz-decompress.js:
|
package/dist/hooks/write.mjs
CHANGED
|
@@ -33,7 +33,7 @@ import{DatabaseSync as f}from"node:sqlite";import{mkdirSync as b}from"node:fs";i
|
|
|
33
33
|
series_id TEXT NOT NULL, episode_id TEXT NOT NULL, PRIMARY KEY(series_id,episode_id));`),this.db.prepare("PRAGMA user_version").get().user_version===0&&this.db.exec(`BEGIN IMMEDIATE;
|
|
34
34
|
DELETE FROM watch_progress WHERE series_id IN ('tide','ridge');
|
|
35
35
|
PRAGMA user_version=1;
|
|
36
|
-
COMMIT;`)}preferences(){this.db.exec("CREATE TABLE IF NOT EXISTS player_preferences(id INTEGER PRIMARY KEY, body TEXT NOT NULL)");let t=this.db.prepare("SELECT body FROM player_preferences WHERE id=1").get(),e={autoPrompt:!0,autoplayNext:!0,autoPauseOnFinish:!0,autoPlayOnStart:!0,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)
|
|
36
|
+
COMMIT;`)}preferences(){this.db.exec("CREATE TABLE IF NOT EXISTS player_preferences(id INTEGER PRIMARY KEY, body TEXT NOT NULL)");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,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
37
|
VALUES(?,?,?,?,?,?,?) ON CONFLICT(session_id,turn_id) DO UPDATE SET
|
|
38
38
|
submitted_at=COALESCE(submitted_at,CASE WHEN excluded.submitted_at IS NOT NULL THEN min(observed_at,excluded.submitted_at) END),
|
|
39
39
|
stop_kind=COALESCE(excluded.stop_kind,stop_kind), stopped=max(stopped,excluded.stopped),
|