@66rpg/cgmaker-create 0.1.18 → 0.1.20
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/README.md +6 -5
- package/dist/index.js +17 -17
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,13 +7,14 @@ npx @66rpg/cgmaker-create@latest <template_id> [目录] [data_id]
|
|
|
7
7
|
npx @66rpg/cgmaker-create@latest <template_id> [目录] --data-id <data_id>
|
|
8
8
|
npx @66rpg/cgmaker-create@latest <template_id> [目录] --skill-platform cursor
|
|
9
9
|
npx @66rpg/cgmaker-create@latest <template_id> [目录] --skill-all
|
|
10
|
-
npx @66rpg/cgmaker-create@latest --agent --json <template_id>
|
|
10
|
+
npx @66rpg/cgmaker-create@latest --agent --json <template_id>
|
|
11
|
+
npx @66rpg/cgmaker-create@latest --agent --json <template_id> <用户说的目录> --skill-platform cursor
|
|
11
12
|
```
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
只要平台给的模板 ID(template_id,可 `@version_name`),不要写成 用户名/模板名。
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
未传资源包 ID(data_id)且你在屏幕前操作时,会列出该模板版本可下载的资源包,选序号或 `data_id`(`0` 表示不下载资源)。已传第三参数 / `--data-id` 则跳过列表。脚本环境会沿用该版本默认绑定包。未指定目录时:交互会问工程建在哪个文件夹;脚本必须带目录。未指定 `--skill-platform` / `--skill-all` 时:交互会询问要把 AI 说明安装到哪个编辑器(回车无效,跳过须输入 `s`),脚本默认不安装。`--agent` 下缺目录或缺选项会停下来问用户,不要自动起文件夹名。已有工程补装:`npx cgmaker skill --platform cursor` 或 `--all`。
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
你在屏幕前操作时若检测到新版本会询问是否更新。Agent 会停下来问你要不要更新;同意后用返回结果里的 `data.apply`(空目录改用 `@latest` 重跑)。`--skip-update` 跳过询问。
|
|
18
19
|
|
|
19
|
-
暂无云端种子时用 `--from-dir
|
|
20
|
+
暂无云端种子时用 `--from-dir`。从本地文件夹拷来的工程还没连上平台,不能 `publish-template`。
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import p from"node:fs";import d from"node:path";import le from"node:readline";import{fileURLToPath as de}from"node:url";import{spawnSync as pe}from"node:child_process";import{spawnSync as H}from"node:child_process";var P={_comment:"cgmaker-create \u7528\u6237\u53EF\u89C1\u6587\u6848\u3002\u5360\u4F4D\u7B26 {name}\u3002",help:{body:{code:"",text:`cgmaker-create \u2014 \u4ECE\u6258\u7BA1\u6A21\u677F\u521B\u5EFA\u5E26\u5B8C\u6574\u6E90\u7801\u7684\u6E38\u620F\u5DE5\u7A0B
|
|
2
2
|
|
|
3
3
|
\u7528\u6CD5:
|
|
4
4
|
npx @66rpg/cgmaker-create@latest <template_id> [\u76EE\u5F55] [data_id]
|
|
@@ -7,21 +7,21 @@ import d from"node:fs";import p from"node:path";import oe from"node:readline";im
|
|
|
7
7
|
npx @66rpg/cgmaker-create@latest <template_id> [\u76EE\u5F55] --skill-platform cursor
|
|
8
8
|
npx @66rpg/cgmaker-create@latest <template_id> [\u76EE\u5F55] --skill-all
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
data_id \u4E3A\u8BE5\u6A21\u677F\u4E0B\u7684\u8D44\u6E90\u5305
|
|
12
|
-
\u672A\u6307\u5B9A skill \u65F6\uFF1A\u4EA4\u4E92\u7EC8\u7AEF\u4F1A\u8BE2\u95EE\
|
|
13
|
-
--skill-platform \u53EA\
|
|
14
|
-
\u6682\u65E0\u4E91\u7AEF\u6A21\u677F\u79CD\u5B50\u65F6\uFF0C\u7528 --from-dir\u3002\u53D1\u73B0\u65B0\u7248\
|
|
15
|
-
`,comment:"\u6574\u6BB5 --help"}},err:{from_dir_need_path:{code:"",text:"--from-dir \u9700\u8981\u6A21\u677F\u76EE\u5F55\u8DEF\u5F84",comment:"\u53C2\u6570\u9519\u8BEF"},data_id_need:{code:"",text:"--data-id \u9700\u8981\u8D44\u6E90\u5305
|
|
16
|
-
`)}function
|
|
17
|
-
`)[0]?.trim();n.status===0&&
|
|
18
|
-
`)}function
|
|
19
|
-
`),h=await
|
|
20
|
-
${_}`,"Y");if(b({...i,promptedPpid:n},
|
|
21
|
-
`)}function
|
|
22
|
-
`),
|
|
10
|
+
\u6A21\u677F ID\uFF08template_id\uFF09\u662F\u5E73\u53F0\u7ED9\u7684\u5B57\u7B26\u4E32 id\uFF08\u5B57\u6BCD\u6570\u5B57\uFF09\uFF0C\u53EF\u5E26 @version_name\u3002\u4E0D\u8981\u5199\u6210 \u7528\u6237\u540D/\u6A21\u677F\u540D\u3002
|
|
11
|
+
data_id \u4E3A\u8BE5\u6A21\u677F\u4E0B\u7684\u8D44\u6E90\u5305 ID\uFF08data_id\uFF09\uFF1B\u4F60\u5728\u5C4F\u5E55\u524D\u64CD\u4F5C\u4E14\u6CA1\u4F20\u65F6\uFF0C\u4F1A\u5217\u51FA\u53EF\u4E0B\u8F7D\u7248\u672C\u4F9B\u9009\u62E9\u3002\u4E5F\u53EF\u7528 --data-id\u3002
|
|
12
|
+
\u672A\u6307\u5B9A skill \u65F6\uFF1A\u4EA4\u4E92\u7EC8\u7AEF\u4F1A\u8BE2\u95EE\u8981\u628A AI \u8BF4\u660E\u5B89\u88C5\u5230\u54EA\u4E2A\u7F16\u8F91\u5668\uFF08\u56DE\u8F66\u65E0\u6548\uFF0C\u8DF3\u8FC7\u987B\u8F93\u5165 s\uFF1B\u4E4B\u540E\u53EF\u5728\u5DE5\u7A0B\u76EE\u5F55\u6267\u884C cgmaker skill\uFF09\uFF1B\u811A\u672C\u73AF\u5883\u9ED8\u8BA4\u4E0D\u5B89\u88C5\u3002\u672A\u6307\u5B9A\u76EE\u5F55\u65F6\uFF1A\u4EA4\u4E92\u4F1A\u95EE\u5DE5\u7A0B\u5EFA\u5728\u54EA\u4E2A\u6587\u4EF6\u5939\uFF08\u56DE\u8F66\u53EF\u7528\u62EC\u53F7\u91CC\u7684\u5EFA\u8BAE\u540D\uFF09\uFF1B\u811A\u672C\u5FC5\u987B\u5E26\u76EE\u5F55\u3002Agent \u8BF7\u52A0 --agent --json\uFF1A\u7F3A\u76EE\u5F55/\u7F3A\u53C2/\u65B0\u7248\u672C\u4F1A\u505C\u4E0B\u8BA9\u5BF9\u8BDD\u8BE2\u95EE\u7528\u6237\uFF0C\u4E0D\u8981\u81EA\u52A8\u8D77\u6587\u4EF6\u5939\u540D\u3002
|
|
13
|
+
--skill-platform \u53EA\u5B89\u88C5\u5230\u8BE5\u7F16\u8F91\u5668\uFF08\u5982 cursor\uFF09\uFF1B--skill-all \u5B89\u88C5\u5230\u5168\u90E8\u7F16\u8F91\u5668\u3002\u5DF2\u6709\u5DE5\u7A0B\u8865\u88C5\u7528 npx cgmaker skill --platform cursor \u6216 --all\u3002
|
|
14
|
+
\u6682\u65E0\u4E91\u7AEF\u6A21\u677F\u79CD\u5B50\u65F6\uFF0C\u7528 --from-dir\u3002\u53D1\u73B0\u65B0\u7248\uFF1A\u4F60\u5728\u5C4F\u5E55\u524D\u64CD\u4F5C\u65F6\u4F1A\u95EE\u662F\u5426\u66F4\u65B0\uFF1BAgent \u4F1A\u505C\u4E0B\u6765\u95EE\u4F60\u8981\u4E0D\u8981\u66F4\u65B0\uFF0C\u540C\u610F\u540E --apply-update\uFF0C\u62D2\u7EDD --skip-update\u3002
|
|
15
|
+
`,comment:"\u6574\u6BB5 --help"}},err:{from_dir_need_path:{code:"",text:"--from-dir \u9700\u8981\u6A21\u677F\u76EE\u5F55\u8DEF\u5F84",comment:"\u53C2\u6570\u9519\u8BEF"},data_id_need:{code:"",text:"--data-id \u9700\u8981\u8D44\u6E90\u5305 ID\uFF08data_id\uFF09",comment:"\u53C2\u6570\u9519\u8BEF"},skill_platform_need:{code:"",text:"--skill-platform \u9700\u8981\u7F16\u8F91\u5668\u540D\uFF08\u5982 cursor\uFF09",comment:"\u53C2\u6570\u9519\u8BEF"},skill_conflict:{code:"",text:"--skill-platform \u4E0E --skill-all \u4E0D\u80FD\u540C\u65F6\u4F7F\u7528",comment:"\u53C2\u6570\u9519\u8BEF"},cleared:{code:"",text:"\u5DF2\u6E05\u7A7A {dir}",comment:"\u5931\u8D25\u56DE\u6EDA"},clear_failed:{code:"",text:"\u65E0\u6CD5\u6E05\u7A7A {dir}\uFF1A{e}",comment:"\u5931\u8D25\u56DE\u6EDA\uFF1B{e} \u4E3A\u4E2D\u6587\u539F\u56E0\uFF0C\u4E0D\u8981\u586B\u7CFB\u7EDF Error.message"},sys_denied:{code:"",text:"\u6CA1\u6709\u6743\u9650\uFF0C\u6216\u6587\u4EF6\u88AB\u5360\u7528",comment:"EPERM / EACCES\uFF0C\u4E0D\u6253\u5370\u7CFB\u7EDF\u8DEF\u5F84"},sys_missing:{code:"",text:"\u8DEF\u5F84\u4E0D\u5B58\u5728",comment:"ENOENT"},sys_busy:{code:"",text:"\u76EE\u5F55\u975E\u7A7A\u6216\u6587\u4EF6\u6B63\u5728\u4F7F\u7528",comment:"EBUSY / ENOTEMPTY"},sys_type:{code:"",text:"\u8DEF\u5F84\u7C7B\u578B\u4E0D\u6B63\u786E",comment:"ENOTDIR / EISDIR"},sys_invalid:{code:"",text:"\u8DEF\u5F84\u65E0\u6548",comment:"EINVAL"},sys_too_many:{code:"",text:"\u6253\u5F00\u7684\u6587\u4EF6\u8FC7\u591A",comment:"EMFILE / ENFILE"},sys_unknown:{code:"",text:"\u7CFB\u7EDF\u62D2\u7EDD\u4E86\u8FD9\u6B21\u64CD\u4F5C",comment:"\u5176\u5B83\u7CFB\u7EDF\u9519\u8BEF\uFF0C\u4E0D\u6253\u5370 Error.message \u4EE5\u514D\u4E71\u7801"},owner_slug:{code:"",text:"\u4E0D\u8981\u5199\u6210 \u7528\u6237\u540D/\u6A21\u677F\u540D\u3002\u8BF7\u4F7F\u7528\u5E73\u53F0\u6A21\u677F ID\uFF08template_id\uFF0C\u5B57\u6BCD\u6570\u5B57\uFF09\uFF0C\u4F8B\u5982 k8n2x4m7q1w5",comment:"\u53C2\u6570\u9519\u8BEF"},data_id_from_dir:{code:"",text:"--data-id \u4E0D\u80FD\u4E0E --from-dir \u540C\u65F6\u4F7F\u7528",comment:"\u53C2\u6570\u9519\u8BEF"},invalid_data_id:{code:"",text:"\u65E0\u6548\u7684\u8D44\u6E90\u5305 ID\uFF08data_id\uFF09: {id}",comment:"\u53C2\u6570\u9519\u8BEF"},from_dir_not_template:{code:"",text:"--from-dir \u4E0D\u662F\u6A21\u677F\u76EE\u5F55: {dir}",comment:"\u53C2\u6570\u9519\u8BEF"},need_dest_no_tty:{code:"",text:"\u8BF7\u6307\u5B9A\u8981\u628A\u5DE5\u7A0B\u5EFA\u5728\u54EA\u4E2A\u6587\u4EF6\u5939\u3002",comment:"\u53C2\u6570\u9519\u8BEF"},dest_exists:{code:"",text:"\u8FD9\u4E2A\u6587\u4EF6\u5939\u5DF2\u7ECF\u6709\u4E1C\u897F\u4E86\uFF0C\u6362\u4E2A\u540D\u5B57\u6216\u8DEF\u5F84\u518D\u521B\u5EFA\uFF1A{dir}",comment:"\u53C2\u6570\u9519\u8BEF"},npm_install:{code:"",text:"npm install \u5931\u8D25",comment:"\u843D\u5730\u5931\u8D25"},bin_missing:{code:"",text:"\u627E\u4E0D\u5230 {js}",comment:"\u843D\u5730\u5931\u8D25"},run_js:{code:"",text:"\u65E0\u6CD5\u8FD0\u884C {js}: {e}",comment:"\u843D\u5730\u5931\u8D25"},init_failed:{code:"",text:"cgmaker init \u5931\u8D25",comment:"\u843D\u5730\u5931\u8D25"},npm_install_again:{code:"",text:"init \u540E npm install \u5931\u8D25",comment:"\u843D\u5730\u5931\u8D25"},run_npm:{code:"",text:"\u65E0\u6CD5\u8FD0\u884C {cmd}: {e}",comment:"npm \u542F\u52A8\u5931\u8D25"},need_input:{code:"11",text:"\u7F3A\u5C11\u9700\u8981\u5411\u7528\u6237\u786E\u8BA4\u7684\u53C2\u6570\u3002\u8BF7\u8BE2\u95EE\u7528\u6237\u540E\uFF0C\u628A\u7B54\u6848\u53D8\u6210\u547D\u4EE4\u884C\u65D7\u6807\u518D\u91CD\u8DD1\u3002",comment:"Agent \u9000\u51FA\u7801 11"},update_available:{code:"10",text:"\u68C0\u6D4B\u5230 cgmaker \u65B0\u7248\u672C\uFF0C\u63A8\u8350\u66F4\u65B0\u3002\u8BF7\u8BE2\u95EE\u7528\u6237\u662F\u5426\u73B0\u5728\u66F4\u65B0\u3002",comment:"Agent \u9000\u51FA\u7801 10"},update_use_latest:{code:"",text:"\u5F53\u524D\u76EE\u5F55\u6CA1\u6709 package.json\uFF0C\u65E0\u6CD5\u5199\u5165\u5DE5\u7A0B\u4F9D\u8D56\u3002\u8BF7\u6539\u7528 npx @66rpg/cgmaker-create@latest \u518D\u6267\u884C\u3002",comment:"create --apply-update \u65E0\u5DE5\u7A0B"},update_failed:{code:"",text:"\u66F4\u65B0\u5931\u8D25\uFF0C\u5DF2\u8DF3\u8FC7\uFF0C\u7EE7\u7EED\u6267\u884C\u539F\u547D\u4EE4\u3002",comment:"npm install \u5931\u8D25"}},prompt:{dest_dir:{code:"",text:"\u5DE5\u7A0B\u8981\u5EFA\u5728\u54EA\u4E2A\u6587\u4EF6\u5939\uFF1F\u8BF7\u8BF4\u4E00\u4E2A\u65B0\u6587\u4EF6\u5939\u7684\u540D\u5B57\uFF0C\u6216\u5B8C\u6574\u8DEF\u5F84\u3002",comment:"\u8BE2\u95EE\u843D\u5730\u76EE\u5F55"},skill:{code:"",text:"\u8981\u628A AI \u8BF4\u660E\u5B89\u88C5\u5230\u54EA\u4E2A\u7F16\u8F91\u5668\uFF1F\uFF08\u63A8\u8350 Cursor\uFF09",comment:"Agent / TTY \u9009\u5E73\u53F0"},ask:{code:"",text:"{question} ({fallback}): ",comment:"readline \u63D0\u95EE\u683C\u5F0F"},update_ask:{code:"",text:"\u68C0\u6D4B\u5230\u65B0\u7248\u672C\uFF0C\u63A8\u8350\u66F4\u65B0\uFF0C\u662F\u5426\u73B0\u5728\u66F4\u65B0\uFF1F\uFF08\u56DE\u8F66=\u662F\uFF0Cn=\u5426\uFF09",comment:"TTY \u66F4\u65B0\u786E\u8BA4"}},ok:{written:{code:"",text:"\u5DF2\u5199\u5165\u5DE5\u7A0B {dir}",comment:"\u843D\u5730\u6210\u529F"},installed:{code:"",text:"\u5DF2\u5B89\u88C5 @66rpg/cgmaker \u5E76\u6267\u884C cgmaker init\u3002",comment:"\u843D\u5730\u6210\u529F"},local_origin:{code:"",text:"\u672C\u5730 --from-dir \u7684\u6A21\u677F ID\uFF08origin.template_id\uFF09\u4E3A local\uFF0C\u4E0D\u80FD\u76F4\u63A5 publish-template \u5230\u5E73\u53F0\u3002",comment:"\u672C\u5730\u6A21\u677F\u63D0\u9192"},next:{code:"",text:"\u63A5\u7740: cd \u8BE5\u76EE\u5F55 && npm run dev",comment:"\u843D\u5730\u6210\u529F\u4E0B\u4E00\u6B65"},update_installing:{code:"",text:"\u6B63\u5728\u628A cgmaker \u76F8\u5173\u5305\u66F4\u65B0\u5230\u6700\u65B0\u2026",comment:"npm install \u524D"},update_done:{code:"",text:"\u5DF2\u66F4\u65B0\u3002\u5F53\u524D\u8FDB\u7A0B\u4ECD\u662F\u65E7\u4EE3\u7801\uFF0C\u8BF7\u91CD\u65B0\u6267\u884C\u521A\u624D\u7684\u547D\u4EE4\u3002",comment:"\u66F4\u65B0\u6210\u529F\u540E\u9000\u51FA"}}};function Y(){let e={...P};return delete e._comment,e}var W=Y();function s(e,t,r){let n=W[e]?.[t];if(!n?.text)throw new Error(`missing create message ${e}.${t}`);let o=n.text;if(r)for(let[i,u]of Object.entries(r))o=o.split(`{${i}}`).join(String(u));return o}function q(e){return e&&typeof e=="object"&&"code"in e&&typeof e.code=="string"?e.code:(e instanceof Error?e.message:String(e)).match(/\b(EPERM|EACCES|ENOENT|EBUSY|ENOTEMPTY|ENOTDIR|EISDIR|EINVAL|EMFILE|ENFILE)\b/)?.[1]??""}function V(e){return e?e.includes("\uFFFD")||e.includes("\\\\?\\"):!1}function E(e){switch(q(e)){case"EPERM":case"EACCES":return s("err","sys_denied");case"ENOENT":return s("err","sys_missing");case"EBUSY":case"ENOTEMPTY":return s("err","sys_busy");case"ENOTDIR":case"EISDIR":return s("err","sys_type");case"EINVAL":return s("err","sys_invalid");case"EMFILE":case"ENFILE":return s("err","sys_too_many");default:return s("err","sys_unknown")}}function O(e){let t=e instanceof Error?e.message:String(e??"");return V(t)?E(e):t}function D(){return process.platform==="win32"?"npm.cmd":"npm"}function S(e,t={}){let r=process.platform==="win32",n=H(D(),e,{windowsHide:r,...t,shell:r});if(n.error)throw new Error(s("err","run_npm",{cmd:D(),e:E(n.error)}));return n}import v from"node:fs";import z from"node:os";import y from"node:path";import Z from"node:readline";import{fileURLToPath as Q}from"node:url";var U=["@66rpg/cgmaker","@66rpg/cgmaker-create","@66rpg/cgmaker-win32-x64"],X=1440*60*1e3;function ee(e,t){let r=e.split(".").map(i=>Number.parseInt(i,10)||0),n=t.split(".").map(i=>Number.parseInt(i,10)||0),o=Math.max(r.length,n.length);for(let i=0;i<o;i++){let u=r[i]??0,_=n[i]??0;if(u>_)return!0;if(u<_)return!1}return!1}function j(e=z.homedir()){return y.join(e,".cgmaker","update-check.json")}function te(e=j()){try{let t=JSON.parse(v.readFileSync(e,"utf8"));return!t||typeof t.checkedAt!="number"||typeof t.latest!="object"?null:t}catch{return null}}function b(e,t=j()){v.mkdirSync(y.dirname(t),{recursive:!0}),v.writeFileSync(t,`${JSON.stringify(e,null,2)}
|
|
16
|
+
`)}function ne(){return y.resolve(y.dirname(Q(import.meta.url)),"..")}function re(e,t=process.cwd()){if(e==="@66rpg/cgmaker-create")try{let r=JSON.parse(v.readFileSync(y.join(ne(),"package.json"),"utf8"));if(r.version)return r.version}catch{}try{return JSON.parse(v.readFileSync(y.join(t,"node_modules",e,"package.json"),"utf8")).version||null}catch{return null}}function F(e,t=process.cwd(),r={}){let n=[];for(let o of U){let i=e[o];if(!i||r[o]===i)continue;let u=re(o,t);u&&ee(i,u)&&n.push({name:o,current:u,latest:i})}return n}function se(e=process.cwd()){let t={};for(let r of U)try{let n=S(["view",r,"version"],{cwd:e,encoding:"utf8",timeout:2e3}),o=(n.stdout??"").toString().trim().split(`
|
|
17
|
+
`)[0]?.trim();n.status===0&&o&&(t[r]=o)}catch{}return t}function oe(){return process.env.CI==="true"||process.env.CGMAKER_NO_INTERACTIVE==="1"||process.env.CGMAKER_SKIP_UPDATE==="1"}function ie(){return process.platform==="win32"?["@66rpg/cgmaker-win32-x64"]:[]}function ce(e){process.stdout.write(`${JSON.stringify({success:!1,code:10,command:"update-available",message:s("err","update_available"),data:{packages:e,apply:"npx @66rpg/cgmaker-create@latest --apply-update",skip:"npx @66rpg/cgmaker-create@latest --skip-update <\u539F\u547D\u4EE4\u4E0E\u53C2\u6570>"}},null,2)}
|
|
18
|
+
`)}function ae(e,t){let r=Z.createInterface({input:process.stdin,output:process.stdout});return new Promise(n=>{r.question(`${e} [${t}]: `,o=>{r.close(),n(o.trim()||t)})})}async function $(e){if(oe())return"continue";let t=e.cwd??process.cwd(),r=e.now??Date.now(),n=e.ppid??process.ppid,o=e.cacheFile??j(),i=te(o)??{checkedAt:0,latest:{}};if(r-i.checkedAt>=X){let l={};try{l=e.fetch?e.fetch():se(t)}catch{l={}}i={...i,checkedAt:r,latest:{...i.latest,...l}},b(i,o)}if(e.apply)return G(i.latest,t);if(e.skip){let l={...i.declined};for(let f of F(i.latest,t))l[f.name]=f.latest;return b({...i,declined:l,promptedPpid:n},o),"continue"}let u=F(i.latest,t,i.declined??{});if(u.length===0)return"continue";if(e.agent)return ce(u),"agent-block";if(!e.tty||i.promptedPpid===n)return"continue";let _=u.map(l=>`${l.name} ${l.current} \u2192 ${l.latest}`).join(`
|
|
19
|
+
`),h=await ae(`${s("prompt","update_ask")}
|
|
20
|
+
${_}`,"Y");if(b({...i,promptedPpid:n},o),/^(n|no|否)$/i.test(h)){let l={...i.declined};for(let f of u)l[f.name]=f.latest;return b({...i,declined:l,promptedPpid:n},o),"continue"}return G(i.latest,t)}function G(e,t){let r=y.join(t,"package.json");if(!v.existsSync(r))return console.error(s("err","update_use_latest")),"updated-exit";let n=[];for(let o of["@66rpg/cgmaker","@66rpg/cgmaker-create",...ie()]){let i=e[o];n.push(i?`${o}@${i}`:`${o}@latest`)}console.error(s("ok","update_installing"));try{if(S(["install","-D",...n],{cwd:t,stdio:"inherit"}).status!==0)return console.error(s("err","update_failed")),"continue"}catch{return console.error(s("err","update_failed")),"continue"}return console.error(s("ok","update_done")),"updated-exit"}function R(){return s("help","body")}function ue(){return d.resolve(d.dirname(de(import.meta.url)),"..")}function L(e=process.cwd()){let t=e;for(;;){let r=d.join(t,"templates"),n=d.join(t,"package.json");if(p.existsSync(r)&&p.existsSync(n))try{if(JSON.parse(p.readFileSync(n,"utf8")).workspaces?.some(u=>u.includes("templates")))return t}catch{}let o=d.dirname(t);if(o===t)return null;t=o}}function me(){return JSON.parse(p.readFileSync(d.join(ue(),"package.json"),"utf8"))}function B(){let e=L();if(e){let t=d.join(e,"packages/cgmaker");if(p.existsSync(t))return`file:${t.replace(/\\/g,"/")}`}return`^${me().version}`}function fe(e){let t=e.split("@")[0]??e;return((t.includes("/")?t.split("/").pop():t)||"game").replace(/^tmpl_/,"tmpl-")}function ge(e){return/^[a-zA-Z0-9]+$/.test(e)}function _e(e){let t=e.filter(g=>g!=="--"),r,n,o,i=!1,u=!1,_=!1,h=!1,l=!1,f=[];for(let g=0;g<t.length;g++){let c=t[g];if(c==="--from-dir"){let a=t[++g];if(!a||a.startsWith("-"))throw new Error(s("err","from_dir_need_path"));r=a;continue}if(c.startsWith("--from-dir=")){if(r=c.slice(11),!r)throw new Error(s("err","from_dir_need_path"));continue}if(c==="--data-id"||c==="--data-ver-id"){let a=t[++g];if(!a||a.startsWith("-"))throw new Error(s("err","data_id_need"));n=a;continue}if(c.startsWith("--data-id=")){if(n=c.slice(10),!n)throw new Error(s("err","data_id_need"));continue}if(c.startsWith("--data-ver-id=")){if(n=c.slice(14),!n)throw new Error(s("err","data_id_need"));continue}if(c==="--skill-all"){i=!0;continue}if(c==="--skill-skip"||c==="--skip-skill"){u=!0;continue}if(c==="--agent"){_=!0;continue}if(c==="--apply-update"){h=!0;continue}if(c==="--skip-update"){l=!0;continue}if(c!=="--json"){if(c==="--skill-platform"){let a=t[++g];if(!a||a.startsWith("-"))throw new Error(s("err","skill_platform_need"));o=a;continue}if(c.startsWith("--skill-platform=")){if(o=c.slice(17),!o)throw new Error(s("err","skill_platform_need"));continue}f.push(c)}}if(i&&o)throw new Error(s("err","skill_conflict"));if(u&&(i||o))throw new Error(s("err","skill_conflict"));return{rest:f,fromDir:r,dataId:n,skillPlatform:o,skillAll:i,skillSkip:u,agent:_,applyUpdate:h,skipUpdateFlag:l}}function ke(e,t){process.stdout.write(`${JSON.stringify({success:!1,code:11,command:"need-input",message:e,data:{questions:t}},null,2)}
|
|
21
|
+
`)}function xe(e){return process.env.CI==="true"||process.env.CGMAKER_NO_INTERACTIVE==="1"?!1:e||process.env.CGMAKER_AGENT==="1"}function C(e,t){try{if(!p.existsSync(e))return;if(!t)p.rmSync(e,{recursive:!0,force:!0});else for(let r of p.readdirSync(e))p.rmSync(d.join(e,r),{recursive:!0,force:!0});console.error(s("err","cleared",{dir:e}))}catch(r){console.error(s("err","clear_failed",{dir:e,e:E(r)}))}}function he(e,t){let r=le.createInterface({input:process.stdin,output:process.stdout});return new Promise(n=>{r.question(s("prompt","ask",{question:e,fallback:t}),o=>{r.close(),n(o.trim()||t)})})}function K(){return!!(process.stdin.isTTY&&process.stdout.isTTY)}function we(e,t){p.mkdirSync(e,{recursive:!0});let r={name:t,private:!0,type:"module",engines:{node:">=20"},devDependencies:{"@66rpg/cgmaker":B()}};p.writeFileSync(d.join(e,"package.json"),`${JSON.stringify(r,null,2)}
|
|
22
|
+
`),p.writeFileSync(d.join(e,".gitignore"),`node_modules/
|
|
23
23
|
dist/
|
|
24
24
|
.DS_Store
|
|
25
|
-
`);let n=r.devDependencies["@66rpg/cgmaker"],
|
|
26
|
-
`)}function
|
|
27
|
-
`)}function
|
|
25
|
+
`);let n=r.devDependencies["@66rpg/cgmaker"],o=process.env.CGMAKER_NPM_SCOPE_REGISTRY?.trim();o&&typeof n=="string"&&!n.startsWith("file:")&&p.writeFileSync(d.join(e,".npmrc"),`@66rpg:registry=${o}
|
|
26
|
+
`)}function ye(e,t){let r=d.join(e,"package.json"),n=JSON.parse(p.readFileSync(r,"utf8"));n.name=t,n.devDependencies=n.devDependencies??{},n.devDependencies["@66rpg/cgmaker"]||(n.devDependencies["@66rpg/cgmaker"]=B()),p.writeFileSync(r,`${JSON.stringify(n,null,2)}
|
|
27
|
+
`)}function Ee(){return process.platform==="win32"?"cgmaker.exe":"cgmaker"}function Se(){let e=process.platform,t=process.arch;return e==="darwin"&&t==="arm64"?["aarch64-apple-darwin"]:e==="darwin"&&t==="x64"?["x86_64-apple-darwin"]:e==="win32"&&t==="x64"?["x86_64-pc-windows-gnu","x86_64-pc-windows-msvc"]:e==="linux"&&t==="x64"?["x86_64-unknown-linux-gnu","x86_64-unknown-linux-musl"]:e==="linux"&&t==="arm64"?["aarch64-unknown-linux-gnu","aarch64-unknown-linux-musl"]:[]}function ve(e){let t=Ee(),r=[];for(let n of["release","debug"]){for(let o of Se())r.push(d.join(e,o,n,t));r.push(d.join(e,n,t))}return r}function Re(){if(process.env.CG_MAKER_CLI_BIN&&p.existsSync(process.env.CG_MAKER_CLI_BIN))return process.env.CG_MAKER_CLI_BIN;if(process.env.CGMAKER_BIN&&p.existsSync(process.env.CGMAKER_BIN))return process.env.CGMAKER_BIN;let e=[];process.env.CARGO_TARGET_DIR&&e.push(process.env.CARGO_TARGET_DIR);let t=L();t&&e.push(d.join(t,"target"));for(let r of e)for(let n of ve(r))if(p.existsSync(n))return n}async function Ie(){let{rest:e,fromDir:t,dataId:r,skillPlatform:n,skillAll:o,skillSkip:i,agent:u,applyUpdate:_,skipUpdateFlag:h}=_e(process.argv.slice(2));if(e.includes("-h")||e.includes("--help")){process.stdout.write(R());return}let l=xe(u);if(l&&(process.env.CGMAKER_AGENT="1"),_||h||e.length>0){let m=await $({apply:_,skip:h,agent:l,tty:K()});m==="updated-exit"&&process.exit(0),m==="agent-block"&&process.exit(10)}e.length===0&&(process.stdout.write(R()),process.exit(1));let f=e[0],g=e[1],c=r??e[2];if(e.length>3&&(process.stderr.write(R()),process.exit(1)),(!f||f.startsWith("-"))&&(process.stderr.write(R()),process.exit(1)),f.includes("/")&&(console.error(s("err","owner_slug")),process.exit(1)),g?.startsWith("-")&&(process.stderr.write(R()),process.exit(1)),t&&c&&(console.error(s("err","data_id_from_dir")),process.exit(1)),c&&c!=="0"&&!ge(c)&&(console.error(s("err","invalid_data_id",{id:c})),process.exit(1)),l){let m=[];g||m.push({id:"create.dest",kind:"text",question:s("prompt","dest_dir")}),!n&&!o&&!i&&m.push({id:"create.skill",kind:"select",question:s("prompt","skill"),recommended:!0,options:[{value:"cursor",label:"cursor",flag:"--skill-platform cursor"},{value:"__all__",label:"all",flag:"--skill-all"},{value:"skip",label:"skip",flag:"--skill-skip",optional:!0}]}),m.some(k=>k.optional!==!0)&&(ke(s("err","need_input"),m),process.exit(11))}if(t){let m=d.resolve(t);p.existsSync(d.join(m,"package.json"))||(console.error(s("err","from_dir_not_template",{dir:m})),process.exit(1))}if(!g){let m=fe(f);K()||(console.error(s("err","need_dest_no_tty")),process.stderr.write(R()),process.exit(1)),g=await he(s("prompt","dest_dir"),m)}let a=d.resolve(g),A=p.existsSync(a);A&&p.readdirSync(a).length&&(console.error(s("err","dest_exists",{dir:a})),process.exit(1));let I=(m,k=1)=>{C(a,A),console.error(m),process.exit(k)};try{we(a,d.basename(a));let m=S(["install"],{cwd:a,stdio:"inherit"});m.status!==0&&I(s("err","npm_install"),m.status??1);let k=d.join(a,"node_modules/@66rpg/cgmaker/bin/cgmaker.js");p.existsSync(k)||I(s("err","bin_missing",{js:k}));let w=[k,"init",f];t&&w.push("--from-dir",d.resolve(t)),c&&w.push("--data-id",c),o&&w.push("--all"),n&&w.push("--platform",n),i&&w.push("--skip-skill"),l&&w.push("--agent","--json");let T=Re(),N={...process.env};T&&(N.CGMAKER_BIN=T),l&&(N.CGMAKER_AGENT="1"),N.CGMAKER_SKIP_UPDATE="1";let x=pe(process.execPath,w,{cwd:a,stdio:"inherit",windowsHide:!0,env:N});x.error&&I(s("err","run_js",{js:k,e:E(x.error)})),(x.status===10||x.status===11||x.status===12)&&(C(a,A),process.exit(x.status)),x.status!==0&&I(s("err","init_failed"),x.status??1),ye(a,d.basename(a));let M=S(["install"],{cwd:a,stdio:"inherit"});M.status!==0&&I(s("err","npm_install_again"),M.status??1)}catch(m){throw C(a,A),m}console.log(s("ok","written",{dir:a})),console.log(s("ok","installed")),t&&console.log(s("ok","local_origin")),console.log(s("ok","next"))}Ie().catch(e=>{console.error(O(e)),process.exit(1)});
|