@66rpg/lumimaker 0.1.31
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 +29 -0
- package/bin/lumimaker.js +7 -0
- package/dist/index.js +45 -0
- package/dist/validate.js +1 -0
- package/package.json +42 -0
- package/share/find-rust-bin.mjs +1 -0
- package/share/run-logic.mjs +2 -0
- package/skill/lumimaker/SKILL.md +94 -0
- package/skill/lumimaker/references/common-commands.md +54 -0
- package/skill/lumimaker/references/publish-game.md +50 -0
- package/skill/lumimaker/references/publish-project.md +36 -0
- package/skill/lumimaker/references/publish-template.md +56 -0
- package/skill/lumimaker-play-sdk/SKILL.md +170 -0
- package/skill/lumimaker-play-sdk/references/api.md +100 -0
- package/skill/lumimaker-template-spec/SKILL.md +53 -0
- package/skill/lumimaker-template-spec/references/protocol.md +113 -0
- package/skill-targets.json +14 -0
package/README.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# @66rpg/lumimaker
|
|
2
|
+
|
|
3
|
+
作者工程里的平台工具。Node.js 20+。不要全局安装。原生命令 **目前仅 Windows x64**。
|
|
4
|
+
|
|
5
|
+
`validate-template` 检查工程是否符合模板规范。`validate` 转调工程里必有的 `npm run validate`(有独立试玩数据时同一条命令检查两份,不要 `validate:demo`)。`login` / `publish` 等走平台。
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx lumimaker validate-template
|
|
9
|
+
npx lumimaker validate
|
|
10
|
+
npx lumimaker login
|
|
11
|
+
npx lumimaker publish
|
|
12
|
+
npx lumimaker publish --demo
|
|
13
|
+
npx lumimaker publish-template
|
|
14
|
+
npx lumimaker publish-template --with-assets
|
|
15
|
+
npx lumimaker publish-template --data-summary "..."
|
|
16
|
+
npx lumimaker publish-template-data
|
|
17
|
+
npx lumimaker publish-project
|
|
18
|
+
npx lumimaker skill --platform cursor
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
`--with-assets`(无值)用于**续发或派生**再交本地 `assets/`。默认首发本地有 `assets/` 会自动上传,此开关可省略。
|
|
22
|
+
|
|
23
|
+
人在终端走交互。终端若检测到新版本会询问是否更新。`npx lumimaker publish` 上传前会列出基本信息并确认;不想询问时可加 `--no-interactive`。
|
|
24
|
+
|
|
25
|
+
试玩是独立作品。开工程第一位置用网页给的 `用户名/slug`(可 `@版本`),或模板 id / 版本 id。不要用平台展示名去开工程。开工程下载数据包用 `--with-assets <数据包ID>`。
|
|
26
|
+
|
|
27
|
+
`publish-template` 首发必须有合法 `package.json.name`(不能含 `/` `@`)。空了会问你并写回;如果这个字段已经带 `@`,不要改它,发布时会再问展示名。模板 `package.json.version` 须 1–16 位,仅小写字母、数字、`.`、`-`;须以字母或数字开头和结尾,不能有连续符号。还没发布过时必须有工程 `assets/`,会自动上传数据包(不能绑已有数据包;`--with-assets` 可省略)。再发一版默认不带数据包;该 `data_ver` 尚无包且本地有 `assets/` 则自动上传。再带包用 `--with-assets`(开关)。数据包说明可用 `--data-summary`。数据包目录固定工程 `assets/`。只改资源、不发新模板版本用 `publish-template-data`。派生用 `--fork <版本ID>`;换绑已有包按提示给数据包 ID;要带本地包加 `--with-assets`。发版不传更新说明,请到网页改。
|
|
28
|
+
|
|
29
|
+
说明都在本包 `skill/`:`lumimaker`(怎么发)、`lumimaker-template-spec`(目录规范)、`lumimaker-play-sdk`(宿主 SDK)。装到工程编辑器:`npx lumimaker skill`。
|
package/bin/lumimaker.js
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import B from"picocolors";import{spawn as wo}from"node:child_process";import A from"node:fs";import So from"node:os";import F from"node:path";var Ct={$schema:"http://json-schema.org/draft-07/schema#",description:"lumimaker CLI \u8FD4\u56DE\u6587\u6848\u5B57\u5178\uFF08\u5305\u542B code \u7801\u4E0E\u6CE8\u91CA\u6587\u6848\uFF09",whoami:{title_logged_in:{code:"",text:"\u8D26\u53F7\u767B\u5F55\u4FE1\u606F",comment:"whoami \u67E5\u770B\u5DF2\u767B\u5F55\u8D26\u53F7\u4FE1\u606F\u65F6\u7684\u5361\u7247\u4E3B\u6807\u9898"},title_expired:{code:"2003",text:"\u767B\u5F55\u5DF2\u5931\u6548",comment:"whoami \u672C\u5730\u51ED\u636E\u8FC7\u671F\u65F6\u7684\u8B66\u544A\u5361\u7247\u6807\u9898"},title_offline:{code:"9000",text:"\u79BB\u7EBF\u6A21\u5F0F",comment:"whoami \u672C\u5730\u6709\u51ED\u636E\u4F46\u7F51\u7EDC\u4E0D\u53EF\u8FBE\u65F6\u7684\u5361\u7247\u6807\u9898"},title_not_logged_in:{code:"2001",text:"\u672A\u767B\u5F55",comment:"whoami \u5C1A\u672A\u767B\u5F55\u65F6\u7684\u63D0\u793A\u5361\u7247\u6807\u9898"},status_expired:{code:"2003",text:"\u51ED\u8BC1\u5DF2\u8FC7\u671F",comment:"\u51ED\u8BC1\u8FC7\u671F\u72B6\u6001\u63CF\u8FF0"},hint_relogin:{code:"2001",text:"\u8BF7\u6267\u884C npx lumimaker login \u91CD\u65B0\u767B\u5F55",comment:"\u91CD\u65B0\u767B\u5F55\u5F15\u5BFC\u5EFA\u8BAE"},status_offline:{code:"9000",text:"\u672C\u5730\u6709\u767B\u5F55\u51ED\u8BC1\uFF0C\u4F46\u5F53\u524D\u8FDE\u4E0D\u4E0A\u5E73\u53F0",comment:"\u79BB\u7EBF\u72B6\u6001\u539F\u56E0\u63CF\u8FF0"},hint_check_network:{code:"9000",text:"\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5",comment:"\u79BB\u7EBF\u72B6\u6001\u89E3\u51B3\u5EFA\u8BAE"},status_not_logged_in:{code:"2001",text:"\u5C1A\u672A\u767B\u5F55\u6258\u7BA1\u5E73\u53F0",comment:"\u672A\u767B\u5F55\u72B6\u6001\u63CF\u8FF0"},hint_login_now:{code:"2001",text:"\u8BF7\u6267\u884C npx lumimaker login \u5F00\u59CB\u767B\u5F55\u6388\u6743",comment:"\u672A\u767B\u5F55\u65F6\u7684\u767B\u5F55\u5F15\u5BFC\u5EFA\u8BAE"},label_nickname:{code:"",text:"\u7528\u6237\u6635\u79F0",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_uid:{code:"",text:"\u7528\u6237 ID",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_verified:{code:"",text:"\u5B9E\u540D\u8BA4\u8BC1",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},val_verified_yes:{code:"",text:"\u5DF2\u5B9E\u540D\u8BA4\u8BC1",comment:"\u5DF2\u5B8C\u6210\u5B9E\u540D\u8BA4\u8BC1\u72B6\u6001"},val_verified_no:{code:"",text:"\u672A\u8BA4\u8BC1 (\u90E8\u5206\u6743\u9650\u53D7\u9650)",comment:"\u672A\u5B8C\u6210\u5B9E\u540D\u8BA4\u8BC1\u72B6\u6001"},label_vip:{code:"",text:"\u4F1A\u5458\u7B49\u7EA7",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_admin:{code:"",text:"\u7BA1\u7406\u5458",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_sauthor:{code:"",text:"\u7B7E\u7EA6\u4F5C\u8005",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},val_yes:{code:"",text:"\u662F",comment:"\u5E03\u5C14\u771F\u503C\u6587\u6848"},label_lumi_username:{code:"",text:"\u7528\u6237\u540D",comment:"\u5E7B\u5149 profile.username"},label_display_role:{code:"",text:"\u8EAB\u4EFD",comment:"\u5E7B\u5149 profile.display_role_name"},label_lumi_roles:{code:"",text:"\u89D2\u8272",comment:"\u5E7B\u5149 profile.roles \u7684\u5C55\u793A\u540D"},role_user:{code:"",text:"\u666E\u901A\u7528\u6237",comment:"lumi \u89D2\u8272 user \u7684\u4E2D\u6587\u540D"},role_unknown:{code:"",text:"\u672A\u77E5",comment:"\u672A\u8BC6\u522B\u7684 lumi \u89D2\u8272"},role_author:{code:"",text:"\u4F5C\u8005",comment:"lumi \u89D2\u8272 author \u7684\u4E2D\u6587\u540D"},role_signed_author:{code:"",text:"\u7B7E\u7EA6\u4F5C\u8005",comment:"lumi \u89D2\u8272 signed_author \u7684\u4E2D\u6587\u540D"},role_signed_template_author:{code:"",text:"\u7B7E\u7EA6\u6A21\u677F\u4F5C\u8005",comment:"lumi \u89D2\u8272 signed_template_author \u7684\u4E2D\u6587\u540D"},role_moderator:{code:"",text:"\u7248\u4E3B",comment:"lumi \u89D2\u8272 moderator \u7684\u4E2D\u6587\u540D"},lumi_not_ready:{code:"",text:"\u53D1\u5E03\u5E73\u53F0\u672A\u5C31\u7EEA\uFF1A\u8BF7\u8FD0\u884C npx lumimaker login \u540E\u518D\u53D1\u5E03",comment:"SSO \u5DF2\u767B\u5F55\u4F46 Lumi profile \u5931\u8D25"},label_expires_at:{code:"",text:"\u51ED\u8BC1\u6709\u6548\u671F\u81F3",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},footer_logged_in:{code:"",text:"\u63D0\u793A\uFF1A\u767B\u5F55\u51ED\u636E\u5DF2\u5B89\u5168\u5B58\u50A8\u4E8E\u7CFB\u7EDF\u672C\u5730\u5BC6\u94A5\u73AF\u4E2D\u3002",comment:"\u767B\u5F55\u5361\u7247\u5E95\u90E8\u5B89\u5168\u63D0\u793A"}},publish:{title_success:{code:"",text:"\u6E38\u620F\u53D1\u7248\u6210\u529F",comment:"\u6E38\u620F\u53D1\u5E03\u6210\u529F\u5361\u7247\u6807\u9898"},label_game_id:{code:"",text:"\u6E38\u620FID",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E\uFF08\u5217\u8868\u6DF7\u6392\u65F6\u7528\uFF09"},label_game_id_official:{code:"",text:"\u6B63\u5F0F\u7248\u6E38\u620FID",comment:"\u6B63\u5F0F\u7248\u6E38\u620F\uFF08\u4F5C\u54C1\uFF09\u6210\u529F\u5361\u7247"},label_game_id_demo:{code:"",text:"\u8BD5\u73A9ID",comment:"demo \u7248\u6E38\u620F\u6210\u529F\u5361\u7247"},label_release_version:{code:"",text:"\u53D1\u5E03\u7248\u672C",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_version_id:{code:"",text:"\u7248\u672C ID",comment:"\u6E38\u620F\u53D1\u7248\u6210\u529F\u5361\u7247"},label_version_no:{code:"",text:"\u7248\u672C\u5E8F\u53F7",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_variant_type:{code:"",text:"\u7C7B\u578B",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},val_demo:{code:"",text:"demo\u7248\u6E38\u620F\uFF08demo\uFF09",comment:"demo \u7C7B\u578B"},val_official:{code:"",text:"\u6B63\u5F0F\u7248\u6E38\u620F\uFF08\u4F5C\u54C1\uFF09",comment:"\u6B63\u5F0F\u7248\u7C7B\u578B"},val_derived:{code:"",text:"\u884D\u751F",comment:"\u884D\u751F\u53D8\u4F53\u7C7B\u578B"},label_parent_game_id:{code:"",text:"\u6B63\u5F0F\u7248\u6E38\u620FID",comment:"demo \u6302\u63A5\u7684\u6B63\u5F0F\u7248"},label_package_size:{code:"",text:"\u4F5C\u54C1\u5305\u5927\u5C0F",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_post_id:{code:"",text:"\u4F5C\u54C1\u5E16\u5B50ID",comment:"versions/create \u56DE\u5305\u7684\u5E16\u5B50 id"},label_page:{code:"",text:"\u5E16\u5B50",comment:"post_status === 4 \u5DF2\u516C\u5F00\u5E16"},label_page_draft:{code:"",text:"\u5E16\u5B50\u8349\u7A3F\uFF08\u786E\u8BA4\u540E\u624D\u4F1A\u516C\u5F00\uFF09",comment:"post_status \u975E 4"},footer_success:{code:"",text:"dist/ \u9759\u6001\u5305\u5DF2\u6210\u529F\u6253\u5305\u8F6C\u7801\u5E76\u4E0A\u4F20\u81F3\u6258\u7BA1\u5E73\u53F0\u3002",comment:"\u6E38\u620F\u53D1\u5E03\u6210\u529F\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"},title_passed:{code:"",text:"\u6E38\u620F\u53D1\u7248\u6210\u529F",comment:"\u6E38\u620F\u53D1\u5E03\u4E14\u5BA1\u6838\u5DF2\u901A\u8FC7\u5361\u7247\u6807\u9898"},title_reviewing:{code:"",text:"\u6E38\u620F\u5DF2\u63D0\u4EA4\u5BA1\u6838",comment:"\u6E38\u620F\u53D1\u5E03\u4F46\u5BA1\u6838\u4E2D\u5361\u7247\u6807\u9898"},title_rejected:{code:"",text:"\u6E38\u620F\u5BA1\u6838\u88AB\u62D2\u7EDD",comment:"\u6E38\u620F\u53D1\u5E03\u4F46\u5BA1\u6838\u88AB\u62D2\u7EDD\u5361\u7247\u6807\u9898"},footer_passed:{code:"",text:"\u7248\u672C\u5DF2\u901A\u8FC7\u5BA1\u6838\u3002\u5E16\u5B50\u662F\u5426\u516C\u5F00\u3001\u4F5C\u54C1\u662F\u5426\u4E0A\u67B6\uFF0C\u8BF7\u4EE5\u7F51\u9875\u72B6\u6001\u4E3A\u51C6\u3002",comment:"\u6E38\u620F\u53D1\u5E03\u4E14\u5BA1\u6838\u5DF2\u901A\u8FC7\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"},footer_reviewing:{code:"",text:"\u5BA1\u6838\u4E2D\uFF0C\u8BF7\u5230\u7F51\u9875\u67E5\u770B\u5BA1\u6838\u7ED3\u679C\u3002",comment:"\u6E38\u620F\u53D1\u5E03\u4F46\u5BA1\u6838\u4E2D\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"},footer_rejected:{code:"",text:"\u5BA1\u6838\u88AB\u62D2\u7EDD\uFF0C\u8BF7\u5230\u7F51\u9875\u67E5\u770B\u8BE6\u60C5\u3002",comment:"\u6E38\u620F\u53D1\u5E03\u4F46\u5BA1\u6838\u88AB\u62D2\u7EDD\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"}},publish_template:{title_success:{code:"",text:"\u6A21\u677F\u53D1\u7248\u6210\u529F",comment:"\u6A21\u677F\u53D1\u5E03\u6210\u529F\u5361\u7247\u6807\u9898"},label_template_id:{code:"",text:"\u6A21\u677F ID",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_template_name:{code:"",text:"\u6A21\u677F\u540D\u79F0",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_slug:{code:"",text:"\u82F1\u6587\u77ED\u540D",comment:"\u5F00\u5DE5\u7A0B\u5F15\u7528\u540E\u534A\u6BB5\uFF0C\u4E0D\u662F\u5E73\u53F0\u6A21\u677F\u540D name"},label_create_pull:{code:"",text:"\u4ED6\u4EBA\u62C9\u53D6",comment:"\u53D1\u7248\u540E\u7ED9\u51FA lumimaker-create \u547D\u4EE4\uFF0C\u987B\u7528 \u7528\u6237\u540D/slug"},label_version:{code:"",text:"\u7248\u672C\u53F7",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_revision_id:{code:"",text:"\u6A21\u677F\u7248\u672C ID",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_data_ver:{code:"",text:"\u6570\u636E\u5305\u7248\u672C",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_data_id:{code:"",text:"\u6570\u636E\u5305 ID",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_data_summary:{code:"",text:"\u8D44\u6E90\u8BF4\u660E",comment:"\u6570\u636E\u5305 summary \u5361\u7247\u6807\u7B7E"},label_post_id:{code:"",text:"\u5173\u8054\u5E16",comment:"versions/create \u56DE\u5305\u7684\u5E16\u5B50 id"},label_page:{code:"",text:"\u5E16\u5B50",comment:"post_status === 4 \u5DF2\u516C\u5F00\u5E16"},label_page_draft:{code:"",text:"\u5E16\u5B50\u8349\u7A3F\uFF08\u786E\u8BA4\u540E\u624D\u4F1A\u516C\u5F00\uFF09",comment:"post_status \u975E 4"},footer_success:{code:"",text:"\u6A21\u677F\u5DF2\u4E0A\u4F20\u5230\u5E73\u53F0\u3002\u8BF7\u628A .lumimaker/ \u4E00\u5E76\u63D0\u4EA4\u5230 git\u3002",comment:"\u6A21\u677F\u53D1\u7248\u6210\u529F\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"},title_passed:{code:"",text:"\u6A21\u677F\u53D1\u7248\u6210\u529F",comment:"\u6A21\u677F\u53D1\u5E03\u4E14\u5BA1\u6838\u5DF2\u901A\u8FC7\u5361\u7247\u6807\u9898"},title_reviewing:{code:"",text:"\u6A21\u677F\u5DF2\u63D0\u4EA4\u5BA1\u6838",comment:"\u6A21\u677F\u53D1\u5E03\u4F46\u5BA1\u6838\u4E2D\u5361\u7247\u6807\u9898"},title_rejected:{code:"",text:"\u6A21\u677F\u5BA1\u6838\u88AB\u62D2\u7EDD",comment:"\u6A21\u677F\u53D1\u5E03\u4F46\u5BA1\u6838\u88AB\u62D2\u7EDD\u5361\u7247\u6807\u9898"},footer_passed:{code:"",text:"\u7248\u672C\u5DF2\u901A\u8FC7\u5BA1\u6838\u3002\u5E16\u5B50\u662F\u5426\u516C\u5F00\u3001\u6A21\u677F\u662F\u5426\u4E0A\u67B6\uFF0C\u8BF7\u4EE5\u7F51\u9875\u72B6\u6001\u4E3A\u51C6\u3002",comment:"\u6A21\u677F\u53D1\u5E03\u4E14\u5BA1\u6838\u5DF2\u901A\u8FC7\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"},footer_reviewing:{code:"",text:"\u5BA1\u6838\u4E2D\uFF0C\u8BF7\u5230\u7F51\u9875\u67E5\u770B\u5BA1\u6838\u7ED3\u679C\u3002",comment:"\u6A21\u677F\u53D1\u5E03\u4F46\u5BA1\u6838\u4E2D\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"},footer_rejected:{code:"",text:"\u5BA1\u6838\u88AB\u62D2\u7EDD\uFF0C\u8BF7\u5230\u7F51\u9875\u67E5\u770B\u8BE6\u60C5\u3002",comment:"\u6A21\u677F\u53D1\u5E03\u4F46\u5BA1\u6838\u88AB\u62D2\u7EDD\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"},title_data_success:{code:"",text:"\u6570\u636E\u5305\u5DF2\u4E0A\u4F20",comment:"\u53EA\u53D1\u6570\u636E\u5305\u6210\u529F\u5361\u7247\u6807\u9898"},footer_data_success:{code:"",text:"\u8FD9\u6B21\u53EA\u4E0A\u4F20\u4E86\u6570\u636E\u5305\uFF0C\u6CA1\u6709\u53D1\u5E03\u65B0\u6A21\u677F\u7248\u672C\uFF0C\u4E5F\u6CA1\u6709\u4FEE\u6539\u5DF2\u6709\u6A21\u677F\u7248\u672C\u7684\u7ED1\u5B9A\u3002\u5F00\u5DE5\u7A0B\u65F6\u52A0\u4E0A --with-assets \u548C\u6570\u636E\u5305 ID\uFF0C\u5373\u53EF\u4E0B\u8F7D\u8FD9\u4EFD\u5305\u3002\u82E5\u8981\u8BA9\u65B0\u7684\u6A21\u677F\u7248\u672C\u7ED1\u5B9A\u8FD9\u4EFD\u5305\uFF0C\u8BF7\u5148\u4FEE\u6539 package.json.version\uFF0C\u518D\u53D1\u5E03\u6A21\u677F\u3002",comment:"\u53EA\u53D1\u6570\u636E\u5305\u6210\u529F\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"}},publish_project:{title_success:{code:"",text:"\u5F00\u6E90\u5DE5\u7A0B\u53D1\u7248\u6210\u529F",comment:"\u5F00\u6E90\u5DE5\u7A0B\u53D1\u7248\u6210\u529F\u5361\u7247\u6807\u9898"},label_project_id:{code:"",text:"\u5DE5\u7A0B ID",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_project_name:{code:"",text:"\u5DE5\u7A0B\u540D\u79F0",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_release_version:{code:"",text:"\u53D1\u5E03\u7248\u672C",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_version_id:{code:"",text:"\u7248\u672C ID",comment:"\u5F00\u6E90\u5DE5\u7A0B\u53D1\u7248\u6210\u529F\u5361\u7247"},label_post_id:{code:"",text:"\u5173\u8054\u5E16",comment:"versions/create \u56DE\u5305\u7684\u5E16\u5B50 id"},label_package_size:{code:"",text:"\u6E90\u7801\u5305\u5927\u5C0F",comment:"\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_page:{code:"",text:"\u5E16\u5B50",comment:"\u5DF2\u516C\u5F00\u5E16"},label_page_draft:{code:"",text:"\u5E16\u5B50\u8349\u7A3F\uFF08\u786E\u8BA4\u540E\u624D\u4F1A\u516C\u5F00\uFF09",comment:"post_status \u975E 4"},footer_success:{code:"",text:"\u6E90\u7801\u5305\u5DF2\u4E0A\u4F20\uFF0C\u7248\u672C\u5DF2\u81EA\u52A8\u63D0\u4EA4\u5BA1\u6838\uFF1B\u5DF2\u540C\u6B65\u66F4\u65B0 .lumimaker/project.json\u3002",comment:"\u5F00\u6E90\u5DE5\u7A0B\u53D1\u7248\u6210\u529F\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"},title_passed:{code:"",text:"\u5F00\u6E90\u5DE5\u7A0B\u53D1\u7248\u6210\u529F",comment:"\u5F00\u6E90\u5DE5\u7A0B\u53D1\u5E03\u4E14\u5BA1\u6838\u5DF2\u901A\u8FC7\u5361\u7247\u6807\u9898"},title_reviewing:{code:"",text:"\u5F00\u6E90\u5DE5\u7A0B\u5DF2\u63D0\u4EA4\u5BA1\u6838",comment:"\u5F00\u6E90\u5DE5\u7A0B\u53D1\u5E03\u4F46\u5BA1\u6838\u4E2D\u5361\u7247\u6807\u9898"},title_rejected:{code:"",text:"\u5F00\u6E90\u5DE5\u7A0B\u5BA1\u6838\u88AB\u62D2\u7EDD",comment:"\u5F00\u6E90\u5DE5\u7A0B\u53D1\u5E03\u4F46\u5BA1\u6838\u88AB\u62D2\u7EDD\u5361\u7247\u6807\u9898"},footer_passed:{code:"",text:"\u7248\u672C\u5DF2\u901A\u8FC7\u5BA1\u6838\u3002\u5E16\u5B50\u662F\u5426\u516C\u5F00\u3001\u5DE5\u7A0B\u662F\u5426\u4E0A\u67B6\uFF0C\u8BF7\u4EE5\u7F51\u9875\u72B6\u6001\u4E3A\u51C6\u3002",comment:"\u5F00\u6E90\u5DE5\u7A0B\u53D1\u5E03\u4E14\u5BA1\u6838\u5DF2\u901A\u8FC7\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"},footer_reviewing:{code:"",text:"\u5BA1\u6838\u4E2D\uFF0C\u8BF7\u5230\u7F51\u9875\u67E5\u770B\u5BA1\u6838\u7ED3\u679C\u3002",comment:"\u5F00\u6E90\u5DE5\u7A0B\u53D1\u5E03\u4F46\u5BA1\u6838\u4E2D\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"},footer_rejected:{code:"",text:"\u5BA1\u6838\u88AB\u62D2\u7EDD\uFF0C\u8BF7\u5230\u7F51\u9875\u67E5\u770B\u8BE6\u60C5\u3002",comment:"\u5F00\u6E90\u5DE5\u7A0B\u53D1\u5E03\u4F46\u5BA1\u6838\u88AB\u62D2\u7EDD\u5361\u7247\u5E95\u90E8\u6CE8\u91CA"}},templates:{table_title:{code:"",text:"\u6211\u7684\u6A21\u677F\u5E16\u5B50\u5217\u8868\uFF1A",comment:"\u6A21\u677F\u5217\u8868\u8868\u683C\u4E3B\u6807\u9898"},empty_list:{code:"",text:"\u6682\u65E0\u6A21\u677F\u6570\u636E",comment:"\u5217\u8868\u4E3A\u7A7A\u65F6\u7684\u5360\u4F4D\u8BF4\u660E"},col_template_id:{code:"",text:"\u6A21\u677F ID",comment:"\u8868\u683C\u5217\u540D"},col_template_name:{code:"",text:"\u6A21\u677F\u540D\u79F0",comment:"\u8868\u683C\u5217\u540D"},col_latest_version:{code:"",text:"\u6700\u65B0\u7248\u672C",comment:"\u8868\u683C\u5217\u540D"},query_card_title:{code:"",text:"\u6A21\u677F\u8BE6\u60C5",comment:"\u67E5\u8BE2\u6A21\u677F\u8BE6\u60C5\u5361\u7247\u6807\u9898"},versions_title:{code:"",text:"\u6A21\u677F\u53D1\u5E03\u7248\u672C\u5386\u53F2",comment:"\u6A21\u677F\u7248\u672C\u5217\u8868\u6807\u9898"},data_packages_title:{code:"",text:"\u6A21\u677F\u7ED1\u5B9A\u7684\u6570\u636E\u5305\u5217\u8868",comment:"\u6A21\u677F\u6570\u636E\u5305\u5217\u8868\u6807\u9898"},col_data_id:{code:"",text:"\u6570\u636E\u5305 ID",comment:"\u6A21\u677F\u6570\u636E\u5305\u8868\u683C\u5217\u540D"},col_data_ver:{code:"",text:"\u6570\u636E\u5305\u7248\u672C",comment:"\u6A21\u677F\u6570\u636E\u5305\u8868\u683C\u5217\u540D"},col_data_summary:{code:"",text:"\u8BF4\u660E",comment:"\u6A21\u677F\u6570\u636E\u5305 summary \u5217\u540D"},empty_data:{code:"",text:"\u6682\u65E0\u6570\u636E\u5305",comment:"\u6A21\u677F\u6570\u636E\u5305\u5217\u8868\u4E3A\u7A7A\u65F6\u7684\u5360\u4F4D\u8BF4\u660E"}},games:{table_title:{code:"",text:"\u6211\u7684\u6E38\u620F\u5E16\u5B50\u5217\u8868\uFF1A",comment:"\u6E38\u620F\u5217\u8868\u8868\u683C\u4E3B\u6807\u9898"},empty_list:{code:"",text:"\u6682\u65E0\u6E38\u620F\u6570\u636E",comment:"\u5217\u8868\u4E3A\u7A7A\u65F6\u7684\u5360\u4F4D\u8BF4\u660E"},col_game_id:{code:"",text:"\u6E38\u620FID",comment:"\u8868\u683C\u5217\u540D"},col_game_name:{code:"",text:"\u6E38\u620F\u540D\u79F0",comment:"\u8868\u683C\u5217\u540D"},col_variant:{code:"",text:"\u7C7B\u578B",comment:"\u8868\u683C\u5217\u540D"},col_latest_version:{code:"",text:"\u6700\u65B0\u7248\u672C",comment:"\u8868\u683C\u5217\u540D"},val_demo:{code:"",text:"demo",comment:"\u8868\u683C\u5217\u5355\u5143\u683C\u5185\u6587\u672C"},val_official:{code:"",text:"\u4F5C\u54C1",comment:"\u8868\u683C\u5217\u5355\u5143\u683C\u5185\u6587\u672C"},val_derived:{code:"",text:"\u884D\u751F",comment:"\u8868\u683C\u5217\u5355\u5143\u683C\u5185\u6587\u672C"},query_card_title:{code:"",text:"\u6E38\u620F\u8BE6\u60C5",comment:"\u67E5\u8BE2\u6E38\u620F\u8BE6\u60C5\u5361\u7247\u6807\u9898"},versions_title:{code:"",text:"\u6E38\u620F\u53D1\u5E03\u7248\u672C\u5386\u53F2",comment:"\u6E38\u620F\u7248\u672C\u5217\u8868\u6807\u9898"}},projects:{table_title:{code:"",text:"\u6211\u7684\u5F00\u6E90\u5DE5\u7A0B\u5217\u8868\uFF1A",comment:"\u5F00\u6E90\u5DE5\u7A0B\u5217\u8868\u8868\u683C\u4E3B\u6807\u9898"},empty_list:{code:"",text:"\u6682\u65E0\u5F00\u6E90\u5DE5\u7A0B\u6570\u636E",comment:"\u5217\u8868\u4E3A\u7A7A\u65F6\u7684\u5360\u4F4D\u8BF4\u660E"},col_project_id:{code:"",text:"\u5DE5\u7A0B ID",comment:"\u8868\u683C\u5217\u540D"},col_project_name:{code:"",text:"\u5DE5\u7A0B\u540D\u79F0",comment:"\u8868\u683C\u5217\u540D"},col_latest_version:{code:"",text:"\u6700\u65B0\u7248\u672C",comment:"\u8868\u683C\u5217\u540D"},query_card_title:{code:"",text:"\u5F00\u6E90\u5DE5\u7A0B\u8BE6\u60C5",comment:"\u67E5\u8BE2\u5F00\u6E90\u5DE5\u7A0B\u8BE6\u60C5\u5361\u7247\u6807\u9898"},versions_title:{code:"",text:"\u5F00\u6E90\u5DE5\u7A0B\u7248\u672C\u5386\u53F2",comment:"\u5F00\u6E90\u5DE5\u7A0B\u7248\u672C\u5217\u8868\u6807\u9898"}},versions:{col_version_id:{code:"",text:"\u7248\u672C ID",comment:"\u7248\u672C\u5386\u53F2\u8868\u683C\u5217\u540D"},col_version:{code:"",text:"\u7248\u672C\u53F7",comment:"\u7248\u672C\u5386\u53F2\u8868\u683C\u5217\u540D"},col_status:{code:"",text:"\u5BA1\u6838",comment:"\u7248\u672C\u5386\u53F2\u8868\u683C\u5217\u540D"},col_published_at:{code:"",text:"\u901A\u8FC7\u65F6\u95F4",comment:"\u7248\u672C\u901A\u8FC7\u65F6\u95F4\uFF08published_at\uFF0C\u672A\u901A\u8FC7\u663E\u793A -\uFF09"},col_changelog:{code:"",text:"\u66F4\u65B0\u8BF4\u660E",comment:"\u7248\u672C\u5386\u53F2\u8868\u683C\u5217\u540D"},col_post:{code:"",text:"\u5173\u8054\u5E16",comment:"\u7248\u672C\u5386\u53F2\u8868\u683C\uFF1Apost_id \u4E0E\u516C\u5F00\u72B6\u6001"},post_public:{code:"",text:"\u5DF2\u516C\u5F00",comment:"post_status === 4"},post_draft:{code:"",text:"\u672A\u516C\u5F00",comment:"post_status \u975E 4"},status_draft:{code:"",text:"\u8349\u7A3F",comment:"\u7248\u672C status=1"},status_machine:{code:"",text:"\u673A\u5BA1\u4E2D",comment:"\u7248\u672C status=2"},status_human:{code:"",text:"\u4EBA\u5BA1\u4E2D",comment:"\u7248\u672C status=3"},status_passed:{code:"",text:"\u5DF2\u901A\u8FC7",comment:"\u7248\u672C status=4"},status_rejected:{code:"",text:"\u5DF2\u62D2\u7EDD",comment:"\u7248\u672C status=5"},status_unknown:{code:"",text:"\u672A\u77E5",comment:"\u7248\u672C status \u975E 1\u20135"},empty_versions:{code:"",text:"\u6682\u65E0\u7248\u672C\u8BB0\u5F55",comment:"\u7248\u672C\u5386\u53F2\u4E3A\u7A7A\u65F6\u7684\u5360\u4F4D\u8BF4\u660E"}},shelf:{action_update:{code:"",text:"\u66F4\u65B0",comment:"\u5E16\u5B50\u64CD\u4F5C\u884C\u4E3A\u63CF\u8FF0"},type_template:{code:"",text:"\u6A21\u677F",comment:"\u5E16\u5B50\u5B9E\u4F53\u7C7B\u578B"},type_game:{code:"",text:"\u6E38\u620F",comment:"\u5E16\u5B50\u5B9E\u4F53\u7C7B\u578B"},type_project:{code:"",text:"\u5F00\u6E90\u5DE5\u7A0B",comment:"\u5E16\u5B50\u5B9E\u4F53\u7C7B\u578B"},label_community_post:{code:"",text:"\u5173\u8054\u5E16",comment:"\u5E16\u5B50\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},card_title_shelf_updated:{code:"",text:"\u5E16\u5B50\u66F4\u65B0\u6210\u529F",comment:"\u5E16\u5B50\u66F4\u65B0\u6210\u529F\u5361\u7247\u6807\u9898\u540E\u7F00"},label_shelf:{code:"",text:"\u4E0A\u4E0B\u67B6",comment:"shelf_status \u4E0A\u67B6/\u4E0B\u67B6\uFF0C\u4E0D\u8981\u548C\u793E\u533A\u5E16 post_url \u6DF7\u6807\u6210\u5E16\u5B50"},val_shelf_on:{code:"",text:"\u4E0A\u67B6",comment:"shelf_status=1"},val_shelf_off:{code:"",text:"\u4E0B\u67B6",comment:"shelf_status=2"},label_changelog:{code:"",text:"\u66F4\u65B0\u8BF4\u660E",comment:"\u5E16\u5B50\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"},label_version_id:{code:"",text:"\u7248\u672C ID",comment:"\u5E16\u5B50\u5361\u7247\u5C55\u793A\u5B57\u6BB5\u6807\u7B7E"}},error:{title:{code:"",text:"\u64CD\u4F5C\u672A\u5B8C\u6210",comment:"\u9519\u8BEF\u5361\u7247\u901A\u7528\u4E3B\u6807\u9898"},label_code:{code:"",text:"\u9519\u8BEF\u4EE3\u7801",comment:"\u9519\u8BEF\u5361\u7247\u5B57\u6BB5\u6807\u7B7E"},label_detail:{code:"",text:"\u9519\u8BEF\u8BE6\u60C5",comment:"\u9519\u8BEF\u5361\u7247\u5B57\u6BB5\u6807\u7B7E"},label_hint:{code:"",text:"\u89E3\u51B3\u5EFA\u8BAE",comment:"\u9519\u8BEF\u5361\u7247\u5B57\u6BB5\u6807\u7B7E"},label_log_path:{code:"",text:"\u8BE6\u7EC6\u65E5\u5FD7",comment:"\u9519\u8BEF\u5361\u7247\u5B57\u6BB5\u6807\u7B7E"},footer:{code:"",text:"\u5982\u9700\u8FDB\u4E00\u6B65\u5E2E\u52A9\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D{contact}\u3002",comment:"\u9519\u8BEF\u5361\u7247\u5E95\u90E8\u6CE8\u91CA\uFF1B{contact} \u4E3A\u90AE\u7BB1/QQ \u6216\u7A7A"},default_message:{code:"",text:"\u672A\u77E5\u9519\u8BEF",comment:"\u7F3A\u7701\u9519\u8BEF\u6587\u6848"}},error_codes:{"1001":{code:"1001",text:"\u8F93\u5165\u53C2\u6570\u65E0\u6548\uFF0C\u8BF7\u68C0\u67E5\u547D\u4EE4\u53C2\u6570\u3002",comment:"\u547D\u4EE4\u884C\u53C2\u6570\u4E0D\u7B26\u5408\u89C4\u8303"},"1001_missing_dist":{code:"1001",text:"\u8BF7\u5148\u5728\u5DE5\u7A0B\u76EE\u5F55\u8FD0\u884C npm run build \u751F\u6210 dist/index.html\u3002",comment:"\u53D1\u5E03\u6E38\u620F\u7F3A\u5C11 dist/ \u4EA7\u7269\u65F6\u7684\u89E3\u51B3\u5EFA\u8BAE"},"1001_missing_script":{code:"1001",text:"\u5F53\u524D\u5DE5\u7A0B\u7684 package.json \u7F3A\u5C11\u5FC5\u8981\u811A\u672C\uFF08\u5982 scripts.validate\u3001scripts.dev:demo\u3001scripts.build:demo\uFF09\u3002\u8BF7\u8865\u4E0A\u540E\u518D\u53D1\u5E03\u3002",comment:"\u53D1\u5E03\u6A21\u677F\u7F3A\u5C11\u89C4\u8303\u811A\u672C\u65F6\u7684\u89E3\u51B3\u5EFA\u8BAE"},"1001_no_approved":{code:"1001",text:"\u8FD9\u4E2A\u6A21\u677F\u8FD8\u6CA1\u6709\u5BA1\u6838\u901A\u8FC7\u7684\u7248\u672C\uFF0C\u4E0D\u80FD\u5F00\u5DE5\u7A0B\u3002\u8BF7\u6362\u5DF2\u8FC7\u5BA1\u7684\u6A21\u677F\uFF0C\u6216\u7B49\u5BA1\u6838\u901A\u8FC7\u540E\u518D\u8BD5\u3002\u672C\u5730\u76EE\u5F55\u53EF\u7528 --from-dir\u3002",comment:"\u5B89\u88C5\u6A21\u677F\u65F6\u6CA1\u6709\u5DF2\u901A\u8FC7\u5BA1\u6838\u7684\u7248\u672C"},"1003_checksum":{code:"1003",text:"\u6A21\u677F\u5305\u6821\u9A8C\u4E0D\u5339\u914D\uFF0C\u53EF\u80FD\u662F\u4E91\u7AEF\u6587\u4EF6\u5F02\u5E38\u6216\u7F51\u7EDC\u4E0B\u8F7D\u53D7\u635F\uFF0C\u8BF7\u91CD\u8BD5\u6216\u8054\u7CFB\u5BA2\u670D{contact}\u91CD\u65B0\u53D1\u7248\u3002",comment:"\u6A21\u677F\u5B89\u88C5\u5305\u54C8\u5E0C\u6821\u9A8C\u5931\u8D25\u65F6\u7684\u89E3\u51B3\u5EFA\u8BAE"},"1002":{code:"1002",text:"\u6587\u4EF6\u8BFB\u53D6\u6216\u5199\u5165\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u6587\u4EF6\u6216\u76EE\u5F55\u6743\u9650\u3002",comment:"\u672C\u5730\u78C1\u76D8\u8BFB\u5199\u5F02\u5E38"},"2001":{code:"2001",text:"\u8BF7\u5148\u8FD0\u884C npx lumimaker login \u5B8C\u6210\u8D26\u53F7\u6388\u6743\u3002",comment:"\u5C1A\u672A\u767B\u5F55\u6216\u767B\u5F55\u6001\u5DF2\u88AB\u670D\u52A1\u7AEF\u540A\u9500"},"2002":{code:"2002",text:"\u767B\u5F55\u6388\u6743\u6D41\u7A0B\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u3002",comment:"OAuth \u767B\u5F55\u672A\u6210\u529F\u5B8C\u6210"},"2003":{code:"2003",text:"\u767B\u5F55\u51ED\u8BC1\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55\u3002",comment:"\u7528\u6237 refresh_token \u8D85\u8FC7\u6709\u6548\u671F"},"2004":{code:"2004",text:"\u6388\u6743\u8F6E\u8BE2\u8D85\u65F6\uFF0C\u8BF7\u91CD\u65B0\u53D1\u8D77\u767B\u5F55\u3002",comment:"\u6253\u5F00\u6D4F\u89C8\u5668\u8D85\u8FC7 5 \u5206\u949F\u672A\u5B8C\u6210\u767B\u5F55"},"8000":{code:"8000",text:"\u5E73\u53F0\u670D\u52A1\u7EF4\u62A4\u4E2D\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002",comment:"\u670D\u52A1\u7AEF\u7EF4\u62A4\u505C\u673A"},"8001":{code:"8001",text:"\u8BF7\u6C42\u7F3A\u5C11\u5FC5\u8981\u53C2\u6570\uFF0C\u8BF7\u68C0\u67E5\u8F93\u5165\u3002",comment:"\u670D\u52A1\u7AEF\u7F3A\u5C11\u5FC5\u4F20\u5B57\u6BB5"},"8002":{code:"8002",text:"\u8BF7\u6C42\u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\u4F20\u5165\u7684\u503C\u3002",comment:"\u670D\u52A1\u7AEF\u53C2\u6570\u6821\u9A8C\u672A\u901A\u8FC7"},"8004":{code:"8004",text:"\u5F53\u524D\u64CD\u4F5C\u9700\u8981\u5BF9\u5E94\u4F5C\u8005\u6216\u7B7E\u7EA6\u89D2\u8272\u6743\u9650\uFF0C\u8BF7\u786E\u8BA4\u8D26\u53F7\u6743\u9650\u540E\u91CD\u8BD5\u3002",comment:"\u8D26\u53F7\u89D2\u8272\u6743\u9650\u4E0D\u8DB3\uFF08\u5982\u672A\u7B7E\u7EA6\uFF09"},"8005":{code:"8005",text:"\u5E73\u53F0\u670D\u52A1\u51FA\u73B0\u5185\u90E8\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002",comment:"\u670D\u52A1\u7AEF\u7CFB\u7EDF\u5185\u90E8\u5F02\u5E38"},"8006":{code:"8006",text:"\u4F1A\u8BDD\u521B\u5EFA\u5931\u8D25\uFF0C\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u767B\u5F55\u3002",comment:"\u6362\u53D6 session \u5931\u8D25"},"8007":{code:"8007",text:"\u767B\u5F55\u4F1A\u8BDD\u5DF2\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55\u3002",comment:"\u5F53\u524D session \u65E0\u6548"},"8400":{code:"8400",text:"\u670D\u52A1\u5668\u6846\u67B6\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002",comment:"\u7F51\u5173\u6216\u5E95\u5C42\u6846\u67B6\u9519\u8BEF"},"8999":{code:"8999",text:"\u670D\u52A1\u5668\u8FD4\u56DE\u672A\u77E5\u4E1A\u52A1\u9519\u8BEF\u3002",comment:"\u672A\u5F52\u7C7B\u7684\u4E1A\u52A1\u9519\u8BEF"},"9000":{code:"9000",text:"\u7F51\u7EDC\u65E0\u6CD5\u8FDE\u63A5\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8BBE\u7F6E\u6216\u4EE3\u7406\u3002",comment:"\u672C\u5730\u65E0\u6CD5\u8FDE\u901A\u670D\u52A1\u5668"},"9001":{code:"9001",text:"\u7F51\u7EDC\u8BF7\u6C42\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u72B6\u51B5\u540E\u91CD\u8BD5\u3002",comment:"\u7F51\u7EDC\u8FDE\u63A5\u6216\u8BFB\u53D6\u8D85\u65F6"},"9002":{code:"9002",text:"\u670D\u52A1\u5668\u8FD4\u56DE\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002",comment:"HTTP 4xx/5xx \u72B6\u6001\u54CD\u5E94"},"9003":{code:"9003",text:"\u8FD9\u6B21\u64CD\u4F5C\u6CA1\u80FD\u5B8C\u6210\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\uFF1B\u82E5\u63D0\u793A\u7248\u672C\u540D\u5DF2\u5B58\u5728\uFF0C\u8BF7\u6539 package.json \u7684 version \u540E\u518D\u53D1\u3002\u6301\u7EED\u51FA\u73B0\u8BF7\u8054\u7CFB\u5BA2\u670D\u3002",comment:"Lumi \u4E1A\u52A1\u5931\u8D25\u3001\u9650\u9891\u6216\u54CD\u5E94\u65E0\u6CD5\u89E3\u6790\u65F6\u7684\u515C\u5E95 hint\uFF1B\u7248\u672C\u540D\u51B2\u7A81\u65F6\u670D\u52A1\u7AEF\u539F\u6587\u4F1A\u6620\u5C04\u4E3A\u66F4\u660E\u786E\u7684\u6587\u6848"},"9999":{code:"9999",text:"\u670D\u52A1\u5668\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002",comment:"\u4E0A\u6E38\u672A\u8FD4\u56DE\u6709\u6548\u6570\u636E"}},skill:{card_title:{code:"",text:"\u5DF2\u628A AI \u8BF4\u660E\u540C\u6B65\u5230\u7F16\u8F91\u5668",comment:"lumimaker skill \u6210\u529F\u5361\u7247\u6807\u9898"},label_kit:{code:"",text:"\u6E90",comment:"kit \u8DEF\u5F84"},label_copied:{code:"",text:"\u62F7\u8D1D",comment:"\u5DF2\u62F7\u8D1D\u7684 skill \u540D"},label_targets:{code:"",text:"\u76EE\u5F55",comment:"\u5B89\u88C5\u76EE\u6807\u76F8\u5BF9\u8DEF\u5F84"}},common:{success_default:{code:"",text:"\u64CD\u4F5C\u6267\u884C\u6210\u529F\u3002",comment:"\u547D\u4EE4\u6267\u884C\u6210\u529F\u9ED8\u8BA4\u8BF4\u660E"},page_info_pattern:{code:"",text:"\u7B2C {page} \u9875\uFF0C\u672C\u9875 {count} \u6761\uFF0C\u5171 {total} \u6761",comment:"\u5217\u8868\u5E95\u90E8\u5206\u9875\u8BF4\u660E\u6A21\u677F"},login_required_confirm:{code:"2001",text:"\u5F53\u524D\u672A\u767B\u5F55\u5E73\u53F0\uFF0C\u662F\u5426\u73B0\u5728\u6253\u5F00\u6D4F\u89C8\u5668\u5B8C\u6210\u6388\u6743\uFF1F",comment:"\u4EFB\u610F\u547D\u4EE4\u9047\u5230\u672A\u767B\u5F55\u65F6\u7684\u786E\u8BA4\u63D0\u95EE"},login_cancelled:{code:"2001",text:"\u5DF2\u53D6\u6D88\u767B\u5F55\uFF0C\u65E0\u6CD5\u7EE7\u7EED\u5F53\u524D\u64CD\u4F5C\u3002",comment:"\u7528\u6237\u62D2\u7EDD\u767B\u5F55\u5F15\u5BFC\u540E\u7684\u63D0\u793A"},login_retrying:{code:"",text:"\u767B\u5F55\u6210\u529F\uFF0C\u6B63\u5728\u7EE7\u7EED\u521A\u624D\u7684\u64CD\u4F5C\u2026",comment:"\u767B\u5F55\u5B8C\u6210\u540E\u81EA\u52A8\u91CD\u8BD5\u539F\u547D\u4EE4"},login_failed:{code:"2002",text:"\u767B\u5F55\u672A\u5B8C\u6210\uFF0C\u65E0\u6CD5\u7EE7\u7EED\u5F53\u524D\u64CD\u4F5C\u3002",comment:"\u5F15\u5BFC\u767B\u5F55\u5931\u8D25\u540E\u7684\u63D0\u793A"}}};var Nt={_comment:"kit \u7528\u6237\u53EF\u89C1\u6587\u6848\uFF08\u5E2E\u52A9\u3001\u4EA4\u4E92\u3001\u6821\u9A8C\u3001\u901A\u7528\u6807\u7B7E\uFF09\u3002\u5360\u4F4D\u7B26 {name}\u3002\u4E0E cli-messages.json \u4E00\u5E76\u52A0\u8F7D\u3002",help:{tagline:{code:"",text:"\u5E7B\u5149\u9759\u6001\u6E38\u620F\u5E73\u53F0\u5DE5\u5177",comment:"lumimaker --help \u6807\u9898\u526F\u6587\u6848"},usage_heading:{code:"",text:"\u7528\u6CD5:",comment:"\u5E2E\u52A9\u5206\u6BB5"},usage_line:{code:"",text:"lumimaker <command> [options]",comment:"\u7528\u6CD5\u793A\u4F8B"},section_publish:{code:"",text:"\u53D1\u5E03\u4E0E\u9274\u6743:",comment:"\u5E2E\u52A9\u5206\u6BB5"},section_shelf:{code:"",text:"\u5E16\u5B50\u7BA1\u7406:",comment:"\u5E2E\u52A9\u5206\u6BB5"},section_check:{code:"",text:"\u89C4\u8303\u6821\u9A8C:",comment:"\u5E2E\u52A9\u5206\u6BB5"},section_global:{code:"",text:"\u5168\u5C40\u9009\u9879:",comment:"\u5E2E\u52A9\u5206\u6BB5"},cmd_publish:{code:"",text:"\u53D1\u5E03\u6B63\u5F0F\u7248\u6E38\u620F\uFF08\u4F5C\u54C1\uFF09\uFF1A\u4E0A\u4F20 dist/",comment:"publish"},cmd_publish_demo:{code:"",text:"\u53D1\u5E03 demo \u7248\u6E38\u620F\uFF08demo\uFF09\uFF1B\u53EF\u4EE5\u8FD8\u6CA1\u6709\u6B63\u5F0F\u7248\u6E38\u620F\uFF1B\u4E4B\u540E\u53D1\u6B63\u5F0F\u7248\u4F1A\u81EA\u52A8\u8FDE\u4E0A",comment:"publish --demo"},cmd_publish_template:{code:"",text:"\u53D1\u5E03\u6A21\u677F\u3002\u9996\u53D1\u987B\u6709 assets/ \u5E76\u81EA\u52A8\u4E0A\u4F20\u6570\u636E\u5305\uFF1B\u7EED\u53D1\u8BE5\u6570\u636E\u5305\u7248\u672C\u8FD8\u6CA1\u6709\u5305\u65F6\u4E5F\u4F1A\u81EA\u52A8\u4F20\uFF1B\u518D\u4F20\u4E00\u5305\u7528 --with-assets",comment:"publish-template"},cmd_publish_template_data:{code:"",text:"\u53EA\u53D1\u6570\u636E\u5305\uFF0C\u4E0D\u53D1\u65B0\u6A21\u677F\u7248\u672C\u3002\u7248\u672C\u548C\u8BF4\u660E\u8BFB package.json\uFF0C\u6587\u4EF6\u653E\u5728 assets/",comment:"publish-template-data"},cmd_publish_project:{code:"",text:"\u53D1\u5E03\u5F00\u6E90\u5DE5\u7A0B\uFF1B\u65E0 project.json \u65F6\u540C\u65F6\u5EFA\u5DE5\u7A0B",comment:"publish-project"},cmd_login:{code:"",text:"\u767B\u5F55\uFF08\u5DF2\u6709\u6709\u6548\u767B\u5F55\u5219\u8DF3\u8FC7\uFF1B--force \u5F3A\u5236\u91CD\u65B0\u6388\u6743\uFF09",comment:"login"},cmd_logout:{code:"",text:"\u9000\u51FA\u767B\u5F55\uFF0C\u6E05\u9664\u672C\u5730\u51ED\u8BC1",comment:"logout"},cmd_whoami:{code:"",text:"\u67E5\u770B\u5F53\u524D\u767B\u5F55\u72B6\u6001\u4E0E\u8D26\u53F7\u4FE1\u606F",comment:"whoami"},cmd_games_update:{code:"",text:"\u4FEE\u6539\u6E38\u620F\u5E16\u5B50",comment:"games update"},cmd_templates_update:{code:"",text:"\u4FEE\u6539\u6A21\u677F\u5E16\u5B50\u540D\u79F0",comment:"templates update"},cmd_projects_update:{code:"",text:"\u4FEE\u6539\u5F00\u6E90\u5DE5\u7A0B\u5E16\u5B50",comment:"projects update"},cmd_validate_template:{code:"",text:"\u9A8C\u8BC1\u5F53\u524D\u5DE5\u7A0B\u662F\u5426\u7B26\u5408\u6A21\u677F\u89C4\u8303",comment:"validate-template"},cmd_validate:{code:"",text:"\u8F6C\u8C03 npm run validate\uFF08\u6A21\u677F\u5FC5\u987B\u63D0\u4F9B\uFF1B\u6709\u8BD5\u73A9\u6570\u636E\u65F6\u540C\u4E00\u6761\u68C0\u67E5\u4E24\u4EFD\uFF09",comment:"validate"},cmd_skill:{code:"",text:"\u5B89\u88C5 AI \u8BF4\u660E\u5230\u7F16\u8F91\u5668\uFF1A--platform cursor \u6216 --all",comment:"skill"},opt_json:{code:"",text:"\u811A\u672C\u8981\u673A\u5668\u53EF\u8BFB JSON \u65F6\u4F7F\u7528\uFF1B\u4EBA\u5728\u7EC8\u7AEF\u548C\u7F16\u8F91\u5668\u91CC\u4E0D\u5FC5\u52A0\uFF0C\u6210\u529F\u7ED3\u679C\u5DF2\u662F\u4E2D\u6587",comment:"--json"},opt_verbose:{code:"",text:"\u8F93\u51FA\u8C03\u8BD5\u65E5\u5FD7",comment:"--verbose"},opt_no_interactive:{code:"",text:"\u7981\u7528\u4EA4\u4E92\u5F0F\u5F15\u5BFC\uFF0C\u7F3A\u53C2\u65F6\u76F4\u63A5\u62A5\u9519",comment:"--no-interactive"},opt_yes:{code:"",text:"\u53D1\u5E03\u6E38\u620F\u65F6\u8DF3\u8FC7\u53D1\u5E03\u524D\u786E\u8BA4\uFF08\u811A\u672C / \u5DF2\u4EBA\u5DE5\u786E\u8BA4\uFF09",comment:"--yes"},opt_agent:{code:"",text:"\u5F3A\u5236\u6309 AI \u52A9\u624B\u534F\u8BAE\uFF08\u7F3A\u53C2\u5148\u95EE\u4EBA\uFF09\u3002\u9ED8\u8BA4\u53EF\u7701\u7565\uFF1A\u4EBA\u5728\u7EC8\u7AEF\u8D70\u4EA4\u4E92\uFF0C\u7F16\u8F91\u5668\u91CC\u975E TTY \u4F1A\u81EA\u52A8\u5F00\u542F",comment:"--agent"},opt_apply_update:{code:"",text:"\u628A\u5F53\u524D\u5DE5\u7A0B\u7684 lumimaker \u76F8\u5173\u5305\u5347\u5230\u5DF2\u68C0\u6D4B\u5230\u7684\u6700\u65B0\u7248",comment:"--apply-update"},opt_skip_update:{code:"",text:"\u672C\u6B21\u8DF3\u8FC7 npm \u66F4\u65B0\u63D0\u793A\uFF08\u540C\u4E00 latest 24 \u5C0F\u65F6\u5185\u4E0D\u518D\u6253\u65AD\uFF09",comment:"--skip-update"},opt_help:{code:"",text:"\u67E5\u770B\u5E2E\u52A9",comment:"--help"},contact:{code:"",text:"\u9700\u8981\u8054\u7CFB\u5BA2\u670D{contact}",comment:"\u5E2E\u52A9\u9875\u5E95\u90E8\uFF1A\u65E0\u72EC\u7ACB\u8054\u7CFB\u6E20\u9053\u9875\uFF0C\u5F15\u5BFC\u8054\u7CFB\u5BA2\u670D"}},prompt:{cancel:{code:"",text:"\u5DF2\u53D6\u6D88\u64CD\u4F5C\u3002",comment:"Ctrl+C \u53D6\u6D88\u4EA4\u4E92"},intro:{code:"",text:"\u5E7B\u5149 lumimaker \u5E73\u53F0\u5DE5\u5177",comment:"\u4E3B\u83DC\u5355\u6807\u9898"},main_message:{code:"",text:"\u8BF7\u9009\u62E9\u8981\u6267\u884C\u7684\u64CD\u4F5C\uFF1A",comment:"\u4E3B\u83DC\u5355\u63D0\u95EE"},main_publish_label:{code:"",text:"\u53D1\u5E03\u6E38\u620F (publish)",comment:"\u4E3B\u83DC\u5355"},main_publish_hint:{code:"",text:"\u4E0A\u4F20 dist/ \u5230\u5E73\u53F0\uFF08\u6B63\u5F0F\u7248\u6E38\u620F\u6216 demo\uFF09",comment:"\u4E3B\u83DC\u5355"},main_publish_template_label:{code:"",text:"\u53D1\u5E03\u6A21\u677F (publish-template)",comment:"\u4E3B\u83DC\u5355"},main_publish_template_hint:{code:"",text:"\u4E0A\u4F20\u6A21\u677F\u7248\u672C",comment:"\u4E3B\u83DC\u5355"},main_publish_template_data_label:{code:"",text:"\u53EA\u53D1\u6570\u636E\u5305 (publish-template-data)",comment:"\u4E3B\u83DC\u5355"},main_publish_template_data_hint:{code:"",text:"\u4E0D\u53D1\u65B0\u6A21\u677F\u7248\u672C\uFF1B\u6E38\u620F\u4F5C\u8005\u7528 --with-assets \u4E0B\u8F7D",comment:"\u4E3B\u83DC\u5355"},main_publish_project_label:{code:"",text:"\u53D1\u5E03\u5F00\u6E90\u5DE5\u7A0B (publish-project)",comment:"\u4E3B\u83DC\u5355"},main_publish_project_hint:{code:"",text:"\u6253\u5305\u4E0A\u4F20\u6E90\u7801\u5DE5\u7A0B",comment:"\u4E3B\u83DC\u5355"},main_games_label:{code:"",text:"\u6E38\u620F\u5E16\u5B50\u7BA1\u7406 (games)",comment:"\u4E3B\u83DC\u5355"},main_games_hint:{code:"",text:"\u6539\u6E38\u620F\u5E16\u5B50\u540D\u79F0\u6216\u4E0A\u4E0B\u67B6",comment:"\u4E3B\u83DC\u5355"},main_templates_label:{code:"",text:"\u6A21\u677F\u5E16\u5B50\u7BA1\u7406 (templates)",comment:"\u4E3B\u83DC\u5355"},main_templates_hint:{code:"",text:"\u6539\u6A21\u677F\u5E16\u5B50\u540D\u79F0\u6216\u4E0A\u4E0B\u67B6",comment:"\u4E3B\u83DC\u5355"},main_projects_label:{code:"",text:"\u5F00\u6E90\u5DE5\u7A0B\u5E16\u5B50\u7BA1\u7406 (projects)",comment:"\u4E3B\u83DC\u5355"},main_projects_hint:{code:"",text:"\u6539\u5F00\u6E90\u5DE5\u7A0B\u5E16\u5B50\u540D\u79F0\u6216\u4E0A\u4E0B\u67B6",comment:"\u4E3B\u83DC\u5355"},main_login_label:{code:"",text:"\u8D26\u53F7\u767B\u5F55 (login)",comment:"\u4E3B\u83DC\u5355"},main_login_hint:{code:"",text:"\u5DF2\u767B\u5F55\u5219\u8DF3\u8FC7\uFF1B--force \u5F3A\u5236\u91CD\u767B",comment:"\u4E3B\u83DC\u5355"},main_whoami_label:{code:"",text:"\u67E5\u770B\u5F53\u524D\u8D26\u53F7 (whoami)",comment:"\u4E3B\u83DC\u5355"},main_whoami_hint:{code:"",text:"\u68C0\u67E5\u5F53\u524D\u767B\u5F55\u72B6\u6001",comment:"\u4E3B\u83DC\u5355"},main_validate_template_label:{code:"",text:"\u6821\u9A8C\u6A21\u677F\u89C4\u8303 (validate-template)",comment:"\u4E3B\u83DC\u5355"},main_validate_template_hint:{code:"",text:"\u68C0\u67E5\u672C\u5730\u76EE\u5F55\u4E0E\u6587\u4EF6",comment:"\u4E3B\u83DC\u5355"},main_skill_label:{code:"",text:"\u5B89\u88C5 AI \u8BF4\u660E\u5230\u7F16\u8F91\u5668 (skill)",comment:"\u4E3B\u83DC\u5355"},main_skill_hint:{code:"",text:"--platform cursor \u6216 --all",comment:"\u4E3B\u83DC\u5355"},main_logout_label:{code:"",text:"\u9000\u51FA\u767B\u5F55 (logout)",comment:"\u4E3B\u83DC\u5355"},main_logout_hint:{code:"",text:"\u6E05\u9664\u672C\u5730\u51ED\u636E",comment:"\u4E3B\u83DC\u5355"},version_empty:{code:"",text:"\u7248\u672C\u53F7\u4E0D\u80FD\u4E3A\u7A7A",comment:"\u6821\u9A8C"},version_invalid:{code:"",text:"\u987B 1\u201316 \u4F4D\uFF0C\u4EC5\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001`.` \u548C `-`\uFF1B\u5FC5\u987B\u4EE5\u5B57\u6BCD\u6216\u6570\u5B57\u5F00\u5934\u548C\u7ED3\u5C3E\uFF0C\u4E14\u4E0D\u80FD\u8FDE\u7EED\u4F7F\u7528\u7B26\u53F7\u3002\u793A\u4F8B\uFF1A1.0.0",comment:"publish-template \u6821\u9A8C"},version_invalid_log:{code:"",text:"\u6A21\u677F\u7248\u672C\u53F7\u683C\u5F0F\u65E0\u6548\uFF08{version}\uFF09",comment:"publish-template \u6821\u9A8C"},version_invalid_hint:{code:"",text:"\u987B 1\u201316 \u4F4D\uFF0C\u4EC5\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u82F1\u6587\u70B9 . \u548C\u77ED\u6A2A\u7EBF -\uFF1B\u5FC5\u987B\u4EE5\u5B57\u6BCD\u6216\u6570\u5B57\u5F00\u5934\u548C\u7ED3\u5C3E\uFF1B\u4E0D\u80FD\u51FA\u73B0\u8FDE\u7EED\u7684 . \u6216 -\u3002\u793A\u4F8B\uFF1A1.0.0\u30010.1.0\u30011.0.0-a",comment:"publish-template \u6821\u9A8C"},publish_version:{code:"",text:"\u8BF7\u8F93\u5165\u8FD9\u6B21\u53D1\u5E03\u7684\u7248\u672C\u53F7\uFF1A",comment:"publish"},publish_name:{code:"",text:"\u8BF7\u8F93\u5165\u6E38\u620F\u5C55\u793A\u540D\u79F0\uFF1A",comment:"publish"},publish_variant:{code:"",text:"\u8FD9\u6B21\u53D1\u6B63\u5F0F\u7248\u6E38\u620F\uFF08\u4F5C\u54C1\uFF09\u8FD8\u662F demo \u7248\u6E38\u620F\uFF08demo\uFF09\uFF1F",comment:"publish"},publish_have_none:{code:"",text:"\u8FD8\u6CA1\u6709\u6B63\u5F0F\u7248\u6E38\u620F\uFF0C\u4E5F\u8FD8\u6CA1\u6709 demo\u3002",comment:"publish \u53D8\u4F53\u8BE2\u95EE"},publish_have_official:{code:"",text:"\u5DF2\u7ECF\u6709\u6B63\u5F0F\u7248\u6E38\u620F\uFF08\u6B63\u5F0F\u7248\u6E38\u620FID {id}\uFF09\u3002",comment:"publish \u53D8\u4F53\u8BE2\u95EE"},publish_have_demo:{code:"",text:"\u5DF2\u7ECF\u6709 demo \u7248\u6E38\u620F\uFF08\u8BD5\u73A9ID {id}\uFF09\u3002",comment:"publish \u53D8\u4F53\u8BE2\u95EE"},publish_have_both:{code:"",text:"\u5DF2\u7ECF\u6709\u6B63\u5F0F\u7248\u6E38\u620F\uFF08\u6B63\u5F0F\u7248\u6E38\u620FID {official}\uFF09\u548C demo \u7248\u6E38\u620F\uFF08\u8BD5\u73A9ID {demo}\uFF09\u3002",comment:"publish \u53D8\u4F53\u8BE2\u95EE"},publish_official_label:{code:"",text:"\u6B63\u5F0F\u7248\u6E38\u620F\uFF08\u4F5C\u54C1\uFF09",comment:"publish"},publish_official_hint:{code:"",text:"\u9762\u5411\u73A9\u5BB6\u7684\u4E3B\u7248\u672C",comment:"publish"},publish_demo_label:{code:"",text:"demo\u7248\u6E38\u620F\uFF08demo\uFF09",comment:"publish"},publish_demo_hint:{code:"",text:"\u5355\u72EC\u7684 demo\uFF0C\u53EF\u4EE5\u8FD8\u6CA1\u6709\u6B63\u5F0F\u7248\u6E38\u620F",comment:"publish"},publish_parent:{code:"",text:"\u5982\u679C\u5DF2\u7ECF\u6709\u6B63\u5F0F\u7248\u6E38\u620F\uFF0C\u586B\u6B63\u5F0F\u7248\u6E38\u620FID\uFF08\u6CA1\u6709\u5C31\u56DE\u8F66\uFF0C\u5148\u53D1 demo\uFF09\uFF1A",comment:"publish"},publish_parent_placeholder:{code:"",text:"\u7559\u7A7A\u5219\u5148\u53D1 demo",comment:"publish"},publish_changelog:{code:"",text:"\u8BF7\u8F93\u5165\u7248\u672C\u66F4\u65B0\u8BF4\u660E\uFF08changelog\uFF0C\u53EF\u9009\u76F4\u63A5\u56DE\u8F66\uFF09\uFF1A",comment:"publish"},publish_changelog_placeholder:{code:"",text:"\u4FEE\u590D\u4E86\u4E00\u4E9B\u5DF2\u77E5\u95EE\u9898",comment:"publish"},publish_demo_scope:{code:"",text:"\u8BD5\u73A9\u8303\u56F4\u8BF4\u660E\uFF08\u4EC5\u65B0\u5EFA\u6E38\u620F\u65F6\u6709\u6548\uFF0C\u53EF\u9009\u76F4\u63A5\u56DE\u8F66\uFF09\uFF1A",comment:"publish"},publish_play_duration:{code:"",text:"\u9884\u8BA1\u6E38\u620F\u65F6\u957F\uFF08\u4EC5\u65B0\u5EFA\u6E38\u620F\u65F6\u6709\u6548\uFF0C\u53EF\u9009\u76F4\u63A5\u56DE\u8F66\uFF09\uFF1A",comment:"publish"},publish_confirm:{code:"",text:"\u5373\u5C06\u53D1\u5E03\u6E38\u620F\uFF0C\u8BF7\u786E\u8BA4\u4EE5\u4E0B\u4FE1\u606F\uFF1A",comment:"publish"},publish_confirm_name:{code:"",text:"\u540D\u79F0\uFF1A{name}",comment:"publish"},publish_confirm_version:{code:"",text:"\u7248\u672C\uFF1A{version}",comment:"publish"},publish_confirm_variant:{code:"",text:"\u7C7B\u578B\uFF1A{variant}",comment:"publish"},publish_confirm_official:{code:"",text:"\u6B63\u5F0F\u7248\u6E38\u620F\uFF08\u4F5C\u54C1\uFF09",comment:"publish"},publish_confirm_demo:{code:"",text:"demo\u7248\u6E38\u620F\uFF08demo\uFF09",comment:"publish"},publish_confirm_parent:{code:"",text:"\u6302\u63A5\u6B63\u5F0F\u7248\u6E38\u620F\uFF1A{id}",comment:"publish"},publish_confirm_changelog:{code:"",text:"\u66F4\u65B0\u8BF4\u660E\uFF1A{text}",comment:"publish"},publish_confirm_none:{code:"",text:"\u65E0",comment:"publish"},publish_confirm_unnamed:{code:"",text:"\u672A\u586B\u5199",comment:"publish"},tpl_version:{code:"",text:"\u8BF7\u8F93\u5165\u6A21\u677F\u7248\u672C\u53F7\uFF081\u201316 \u4F4D\uFF0C\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u77ED\u6A2A\u7EBF\uFF09\uFF1A",comment:"publish-template"},tpl_name:{code:"",text:"\u8BF7\u8F93\u5165\u6A21\u677F\u5728\u5E73\u53F0\u4E0A\u663E\u793A\u7684\u540D\u79F0\uFF08\u4E0D\u80FD\u542B / \u6216 @\uFF09\uFF1A",comment:"publish-template"},tpl_name_placeholder:{code:"",text:"\u4F8B\u5982 \u95EE\u7B54",comment:"publish-template"},tpl_name_empty:{code:"",text:"\u6A21\u677F\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A",comment:"publish-template"},tpl_name_invalid:{code:"",text:"\u6A21\u677F\u540D\u79F0\u4E0D\u80FD\u5305\u542B / \u6216 @",comment:"publish-template"},tpl_name_invalid_log:{code:"",text:"\u6A21\u677F\u540D\u79F0\u4E0D\u5408\u6CD5\uFF1A{name}\uFF08\u4E0D\u80FD\u542B / \u6216 @\uFF09",comment:"publish-template"},tpl_changelog:{code:"",text:"\u8BF7\u8F93\u5165\u7248\u672C\u66F4\u65B0\u8BF4\u660E\uFF08changelog\uFF0C\u53EF\u9009\u76F4\u63A5\u56DE\u8F66\uFF09\uFF1A",comment:"publish-template"},tpl_mode:{code:"",text:"\u672C\u5730\u5C1A\u65E0 origin.json \u8EAB\u4EFD\uFF0C\u8BF7\u9009\u62E9\u53D1\u5E03\u65B9\u5F0F\uFF1A",comment:"publish-template"},tpl_publish_label:{code:"",text:"\u53D1\u5E03\u9996\u7248\uFF08\u81EA\u52A8\u5E26\u6570\u636E\u5305\uFF09",comment:"publish-template"},tpl_publish_hint:{code:"",text:"\u65B0\u5EFA\u6A21\u677F\uFF1A\u4E0A\u4F20\u6A21\u677F\uFF0C\u5E76\u628A\u5DE5\u7A0B assets/ \u505A\u6210\u6570\u636E\u5305",comment:"publish-template"},tpl_fork_label:{code:"",text:"Fork \u73B0\u6709\u6A21\u677F (--fork)",comment:"publish-template"},tpl_fork_hint:{code:"",text:"\u57FA\u4E8E\u6E90\u6A21\u677F\u7248\u672C\u884D\u751F",comment:"publish-template"},tpl_fork_id:{code:"",text:"\u8BF7\u8F93\u5165 Fork \u6E90\u6A21\u677F\u7248\u672C ID\uFF1A",comment:"publish-template"},tpl_fork_placeholder:{code:"",text:"\u4F8B\u5982 4p7dlg00utc0",comment:"publish-template"},tpl_fork_empty:{code:"",text:"Fork \u5FC5\u987B\u63D0\u4F9B\u6E90\u6A21\u677F\u7248\u672C ID",comment:"publish-template"},tpl_data_id:{code:"",text:"\u8981\u6362\u7ED1\u5DF2\u6709\u6570\u636E\u5305\u7684\u8BDD\uFF0C\u8F93\u5165\u6570\u636E\u5305 ID\uFF08\u56DE\u8F66\u8DF3\u8FC7\uFF09\uFF1A",comment:"publish-template --fork \u53EF\u9009 --data-id"},data_ver_reuse:{code:"",text:"\u6570\u636E\u5305\u7248\u672C\u6CBF\u7528\u4E0A\u6B21\u7684 {ver}\uFF1F",comment:"data-ver"},data_ver_new:{code:"",text:"\u8BF7\u8F93\u5165\u65B0\u7684\u6570\u636E\u5305\u7248\u672C\u53F7\uFF1A",comment:"data-ver"},data_ver_ask:{code:"",text:"\u8BF7\u8F93\u5165\u6570\u636E\u5305\u7248\u672C\u53F7\uFF08\u4E0D\u4F1A\u81EA\u52A8\u52A0 1\uFF09\uFF1A",comment:"data-ver"},data_ver_placeholder_last:{code:"",text:"\u4E0A\u6B21 {ver}",comment:"data-ver"},data_ver_placeholder:{code:"",text:"\u4F8B\u5982 1",comment:"data-ver"},data_ver_empty:{code:"",text:"\u6570\u636E\u5305\u7248\u672C\u4E0D\u80FD\u4E3A\u7A7A\uFF0C\u7A0B\u5E8F\u4E0D\u4F1A\u81EA\u52A8\u9012\u589E",comment:"data-ver"},data_summary:{code:"",text:"\u8BF7\u8F93\u5165\u8FD9\u4EFD\u6570\u636E\u5305\u7684\u8BF4\u660E\uFF08\u56DE\u8F66\u8DF3\u8FC7\uFF09\uFF1A",comment:"data-summary"},data_summary_placeholder:{code:"",text:"\u540C\u4E00\u6570\u636E\u5305\u7248\u672C\u4E0B\u7528\u6765\u533A\u5206\u672C\u5305",comment:"data-summary"},data_assets:{code:"",text:"\u8BF7\u628A\u6570\u636E\u5305\u6587\u4EF6\u653E\u5230\u5DE5\u7A0B\u7684 assets \u6587\u4EF6\u5939\u3002\u5DF2\u7ECF\u653E\u597D\u4E86\u5417\uFF1F",comment:"publish-template / publish-template-data"},data_assets_placeholder:{code:"",text:"\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u4F8B\u5982 C:\\path\\to\\assets",comment:"publish-template / publish-template-data --assets"},data_assets_not_absolute:{code:"",text:"--assets \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84",comment:"publish-template / publish-template-data --assets"},data_assets_not_dir:{code:"",text:"\u8BE5\u8DEF\u5F84\u4E0D\u662F\u6709\u6548\u76EE\u5F55",comment:"publish-template / publish-template-data --assets"},proj_version:{code:"",text:"\u8BF7\u8F93\u5165\u8FD9\u6B21\u53D1\u5E03\u7684\u7248\u672C\u53F7\uFF1A",comment:"publish-project"},proj_name:{code:"",text:"\u8BF7\u8F93\u5165\u5DE5\u7A0B\u5C55\u793A\u540D\u79F0\uFF1A",comment:"publish-project"},proj_summary:{code:"",text:"\u8BF7\u8F93\u5165\u5DE5\u7A0B\u7B80\u4ECB (\u53EF\u9009)\uFF1A",comment:"publish-project"},proj_summary_placeholder:{code:"",text:"\u57FA\u4E8E\u5E7B\u5149\u5F00\u53D1\u7684\u6E38\u620F/\u6A21\u677F\u5DE5\u7A0B",comment:"publish-project"},proj_cover:{code:"",text:"\u8BF7\u8F93\u5165\u5C01\u9762\u56FE\u8DEF\u5F84 (\u53EF\u9009\uFF0C\u76F4\u63A5\u56DE\u8F66\u8DF3\u8FC7)\uFF1A",comment:"publish-project"},proj_changelog:{code:"",text:"\u8BF7\u8F93\u5165\u7248\u672C\u66F4\u65B0\u8BF4\u660E (\u53EF\u9009)\uFF1A",comment:"publish-project"},id_empty:{code:"",text:"ID \u4E0D\u80FD\u4E3A\u7A7A",comment:"\u6821\u9A8C"},name_empty:{code:"",text:"\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A",comment:"\u6821\u9A8C"},games_action:{code:"",text:"\u8BF7\u9009\u62E9\u6E38\u620F\u5E16\u5B50\u64CD\u4F5C\uFF1A",comment:"games"},games_list_label:{code:"",text:"\u5217\u51FA\u6211\u7684\u6E38\u620F\u5217\u8868",comment:"games"},games_list_hint:{code:"",text:"\u6309\u9875\u62C9\u53D6\u5E73\u53F0\u6E38\u620F",comment:"games"},games_query_label:{code:"",text:"\u67E5\u8BE2\u6307\u5B9A\u6E38\u620F\u8BE6\u60C5 (--query)",comment:"games"},games_query_hint:{code:"",text:"\u6309\u6B63\u5F0F\u7248\u6E38\u620FID\u6216\u8BD5\u73A9ID\u67E5\u770B",comment:"games"},games_versions_label:{code:"",text:"\u67E5\u770B\u6E38\u620F\u5168\u90E8\u53D1\u5E03\u7248\u672C (--versions)",comment:"games"},games_versions_hint:{code:"",text:"\u67E5\u770B\u5DF2\u53D1\u5E03\u7684\u5404\u7248\u672C",comment:"games"},games_update_label:{code:"",text:"\u4FEE\u6539\u6E38\u620F\u5E16\u5B50 (update)",comment:"games"},games_update_hint:{code:"",text:"\u6539\u540D\u79F0/\u7B80\u4ECB/\u4E0A\u4E0B\u67B6/\u7248\u672C\u8BF4\u660E",comment:"games"},games_id:{code:"",text:"\u8BF7\u8F93\u5165\u6E38\u620FID\uFF08\u6B63\u5F0F\u7248\u6E38\u620FID\u6216\u8BD5\u73A9ID\uFF09\uFF1A",comment:"games"},games_name:{code:"",text:"\u8BF7\u8F93\u5165\u6E38\u620F\u540D\u79F0\uFF1A",comment:"games"},games_name_placeholder:{code:"",text:"\u6211\u7684\u6E38\u620F",comment:"games"},games_summary:{code:"",text:"\u8BF7\u8F93\u5165\u6E38\u620F\u7B80\u4ECB (\u53EF\u9009)\uFF1A",comment:"games"},games_update_id:{code:"",text:"\u8BF7\u8F93\u5165\u9700\u8981\u4FEE\u6539\u7684\u6E38\u620FID\uFF08\u6B63\u5F0F\u7248\u6E38\u620FID\u6216\u8BD5\u73A9ID\uFF0C--game-id\uFF09\uFF1A",comment:"games"},games_update_name:{code:"",text:"\u8BF7\u8F93\u5165\u8981\u66F4\u65B0\u7684\u6E38\u620F\u540D\u79F0 (\u56DE\u8F66\u8DF3\u8FC7)\uFF1A",comment:"games"},games_update_summary:{code:"",text:"\u8BF7\u8F93\u5165\u8981\u66F4\u65B0\u7684\u6E38\u620F\u7B80\u4ECB (\u56DE\u8F66\u8DF3\u8FC7)\uFF1A",comment:"games"},games_update_variant:{code:"",text:"\u8981\u6539\u6B63\u5F0F\u7248\u6E38\u620F\u8FD8\u662F demo\uFF1F",comment:"games update\uFF0C\u672C\u5730\u540C\u65F6\u6709\u6B63\u5F0F\u4E0E demo"},games_update_official:{code:"",text:"\u6B63\u5F0F\u7248\u6E38\u620F\uFF08\u4F5C\u54C1\uFF09",comment:"games update"},games_update_demo:{code:"",text:"demo\u7248\u6E38\u620F\uFF08demo\uFF09",comment:"games update"},update_status:{code:"",text:"\u4E0A\u4E0B\u67B6\uFF08\u53EF\u9009\uFF0C\u4E0D\u6539\u8BF7\u56DE\u8F66\uFF09\uFF1A",comment:"update"},update_status_skip:{code:"",text:"\u4E0D\u6539\u4E0A\u4E0B\u67B6",comment:"update"},update_status_on:{code:"",text:"\u4E0A\u67B6",comment:"update"},update_status_off:{code:"",text:"\u4E0B\u67B6",comment:"update"},update_changelog:{code:"",text:"\u6539\u5DF2\u6709\u7248\u672C\u7684\u66F4\u65B0\u8BF4\u660E\uFF08\u53EF\u9009\u76F4\u63A5\u56DE\u8F66\uFF09\uFF1A",comment:"update"},update_version_id:{code:"",text:"\u8BF7\u8F93\u5165\u8981\u6539\u8BF4\u660E\u7684\u7248\u672C ID\uFF08--version-id\uFF09\uFF1A",comment:"update"},tpls_action:{code:"",text:"\u8BF7\u9009\u62E9\u6A21\u677F\u5E16\u5B50\u64CD\u4F5C\uFF1A",comment:"templates"},tpls_list_label:{code:"",text:"\u5217\u51FA\u6211\u7684\u6A21\u677F\u5217\u8868",comment:"templates"},tpls_list_hint:{code:"",text:"\u6309\u9875\u67E5\u770B\u5E73\u53F0\u6A21\u677F",comment:"templates"},tpls_query_label:{code:"",text:"\u67E5\u8BE2\u6A21\u677F\u8BE6\u60C5 (--query)",comment:"templates"},tpls_query_hint:{code:"",text:"\u6309\u6A21\u677F ID \u67E5\u770B",comment:"templates"},tpls_versions_label:{code:"",text:"\u67E5\u770B\u6A21\u677F\u7248\u672C\u5217\u8868 (--versions)",comment:"templates"},tpls_versions_hint:{code:"",text:"\u67E5\u770B\u5DF2\u53D1\u7248\u672C",comment:"templates"},tpls_data_label:{code:"",text:"\u67E5\u770B\u6A21\u677F\u6570\u636E\u5305 (--data)",comment:"templates"},tpls_data_hint:{code:"",text:"\u67E5\u770B\u7ED1\u5B9A\u7684 assets \u5305",comment:"templates"},tpls_update_label:{code:"",text:"\u4FEE\u6539\u6A21\u677F\u540D\u79F0 (update)",comment:"templates"},tpls_update_hint:{code:"",text:"\u6539\u540D\u79F0/\u4E0A\u4E0B\u67B6/\u7248\u672C\u8BF4\u660E",comment:"templates"},tpls_id:{code:"",text:"\u8BF7\u8F93\u5165\u6A21\u677F ID\uFF1A",comment:"templates"},tpls_name:{code:"",text:"\u8BF7\u8F93\u5165\u6A21\u677F\u540D\u79F0\uFF1A",comment:"templates"},tpls_name_placeholder:{code:"",text:"\u6211\u7684\u6A21\u677F",comment:"templates"},tpls_update_id:{code:"",text:"\u8BF7\u8F93\u5165\u8981\u4FEE\u6539\u7684\u6A21\u677F ID (--template-id)\uFF1A",comment:"templates"},tpls_update_name:{code:"",text:"\u8BF7\u8F93\u5165\u8981\u66F4\u65B0\u7684\u6A21\u677F\u540D\u79F0 (\u56DE\u8F66\u8DF3\u8FC7)\uFF1A",comment:"templates"},projs_action:{code:"",text:"\u8BF7\u9009\u62E9\u5F00\u6E90\u5DE5\u7A0B\u5E16\u5B50\u64CD\u4F5C\uFF1A",comment:"projects"},projs_list_label:{code:"",text:"\u5217\u51FA\u5F00\u6E90\u5DE5\u7A0B\u5217\u8868",comment:"projects"},projs_list_hint:{code:"",text:"\u6309\u9875\u67E5\u770B",comment:"projects"},projs_query_label:{code:"",text:"\u67E5\u8BE2\u5F00\u6E90\u5DE5\u7A0B\u8BE6\u60C5 (--query)",comment:"projects"},projs_query_hint:{code:"",text:"\u6309\u5DE5\u7A0B ID \u67E5\u770B",comment:"projects"},projs_versions_label:{code:"",text:"\u67E5\u770B\u5DE5\u7A0B\u53D1\u5E03\u7248\u672C (--versions)",comment:"projects"},projs_versions_hint:{code:"",text:"\u67E5\u770B\u7248\u672C\u8BB0\u5F55",comment:"projects"},projs_update_label:{code:"",text:"\u4FEE\u6539\u5DE5\u7A0B\u5E16\u5B50 (update)",comment:"projects"},projs_update_hint:{code:"",text:"\u6539\u540D\u79F0/\u7B80\u4ECB/\u5C01\u9762/\u4E0A\u4E0B\u67B6/\u7248\u672C\u8BF4\u660E",comment:"projects"},projs_id:{code:"",text:"\u8BF7\u8F93\u5165\u5F00\u6E90\u5DE5\u7A0B ID\uFF1A",comment:"projects"},projs_name:{code:"",text:"\u8BF7\u8F93\u5165\u5F00\u6E90\u5DE5\u7A0B\u540D\u79F0\uFF1A",comment:"projects"},projs_update_id:{code:"",text:"\u8BF7\u8F93\u5165\u8981\u4FEE\u6539\u7684\u5F00\u6E90\u5DE5\u7A0B ID (--project-id)\uFF1A",comment:"projects"},projs_update_name:{code:"",text:"\u8BF7\u8F93\u5165\u8981\u66F4\u65B0\u7684\u5DE5\u7A0B\u540D\u79F0 (\u56DE\u8F66\u8DF3\u8FC7)\uFF1A",comment:"projects"},login_mode:{code:"",text:"\u8BF7\u9009\u62E9\u767B\u5F55\u65B9\u5F0F\uFF1A",comment:"login"},login_skip_label:{code:"",text:"\u5DF2\u6709\u6709\u6548\u767B\u5F55\u5219\u8DF3\u8FC7",comment:"login"},login_skip_hint:{code:"",text:"\u63A8\u8350",comment:"login"},login_force_label:{code:"",text:"\u5F3A\u5236\u91CD\u65B0\u767B\u5F55\u5E76\u6253\u5F00\u6D4F\u89C8\u5668\u6388\u6743 (--force)",comment:"login"},login_force_hint:{code:"",text:"\u6362\u53F7\u6216\u5237\u65B0\u51ED\u8BC1",comment:"login"},skill_platform:{code:"",text:"\u8BF7\u9009\u62E9\u8981\u628A AI \u8BF4\u660E\u5B89\u88C5\u5230\u54EA\u4E2A\u7F16\u8F91\u5668\uFF1A",comment:"skill"},skill_platform_detected:{code:"",text:"\u68C0\u6D4B\u5230\u5F53\u524D\u4F7F\u7528\u7684\u7F16\u8F91\u5668\u662F {id}\u3002\u8BF7\u9009\u62E9\u8981\u628A AI \u8BF4\u660E\u5B89\u88C5\u5230\u54EA\u4E2A\u7F16\u8F91\u5668\uFF1A",comment:"skill\uFF0C\u5DF2\u63A2\u6D4B\u5230\u5BBF\u4E3B"},skill_current_suffix:{code:"",text:"\uFF08\u5F53\u524D\uFF09",comment:"skill \u9009\u9879\uFF1A\u63A2\u6D4B\u5230\u7684\u7F16\u8F91\u5668"},skill_all_label:{code:"",text:"\u5168\u90E8\u7F16\u8F91\u5668",comment:"skill"},skill_all_hint:{code:"",text:"--all",comment:"skill"}},kit:{validate_template_ok:{code:"",text:"\u6A21\u677F\u76EE\u5F55\u89C4\u8303\u6821\u9A8C\u901A\u8FC7\uFF01",comment:"validate-template \u6210\u529F"},validate_ok:{code:"",text:"\u5DE5\u7A0B\u6821\u9A8C\u901A\u8FC7\uFF01",comment:"validate \u6210\u529F"},validate_need_script:{code:"",text:"\u5F53\u524D\u5DE5\u7A0B\u6CA1\u6709 scripts.validate\u3002\u6A21\u677F\u89C4\u8303\u8981\u6C42\u5FC5\u987B\u63D0\u4F9B\u8FD9\u6761\u6570\u636E\u68C0\u67E5\u811A\u672C\u3002",comment:"validate \u7F3A\u811A\u672C"},validate_script_loops:{code:"",text:"scripts.validate \u4E0D\u80FD\u518D\u8C03\u7528 lumimaker validate\u3002\u8BF7\u5199\u6210\u6A21\u677F\u81EA\u5DF1\u7684\u68C0\u67E5\uFF08\u4F8B\u5982 node schema/check.mjs\uFF09\u3002npx lumimaker validate \u4F1A\u8F6C\u8C03 npm run validate\u3002",comment:"validate \u5FAA\u73AF\u8C03\u7528"},bin_missing:{code:"",text:"\u627E\u4E0D\u5230\u9002\u7528\u4E8E\u5F53\u524D\u7CFB\u7EDF\u7684 lumimaker \u539F\u751F\u4E8C\u8FDB\u5236\u3002\u8BF7\u786E\u8BA4\u5DF2\u6B63\u786E\u5B89\u88C5 @66rpg/lumimaker \u53CA\u5BF9\u5E94\u5E73\u53F0\u5305\uFF1B\u4ED3\u5E93\u5F00\u53D1\u8005\u53EF\u5728 npm/ \u8FD0\u884C make ensure-cli\u3002",comment:"\u672A\u627E\u5230\u539F\u751F CLI"},unexpected_positional:{code:"",text:"{command} \u4E0D\u63A5\u53D7\u4F4D\u7F6E\u53C2\u6570\u300C{args}\u300D\u3002\u6307\u5B9A\u6570\u636E\u5305\u76EE\u5F55\u8BF7\u7528 --assets <\u7EDD\u5BF9\u8DEF\u5F84>\uFF1B\u663E\u5F0F\u5E26\u5305\u8BF7\u7528\u5F00\u5173 --with-assets\u3002",comment:"publish-template \u8BEF\u628A\u8DEF\u5F84\u5199\u5728 --with-assets \u540E\u9762"},run_failed:{code:"",text:"\u6267\u884C\u5931\u8D25: {e}",comment:"spawn inherit \u5931\u8D25"},cli_failed:{code:"",text:"\u8C03\u7528 CLI \u5931\u8D25: {e}",comment:"spawn json \u5931\u8D25"},internal_command:{code:"",text:"\u8FD9\u4E2A\u547D\u4EE4\u4E0D\u80FD\u4ECE\u8FD9\u91CC\u4F7F\u7528\u3002\u53D1\u7248\u8BF7\u7528 publish / publish-template / publish-project\uFF1B\u521D\u59CB\u5316\u5DE5\u7A0B\u8BF7\u7528 lumimaker-create\uFF1B\u6539\u5E16\u8BF7\u5230\u7F51\u9875\u3002",comment:"\u7528\u6237\u4FA7\u8C03\u7528 games/templates/projects/init"},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"},op_failed:{code:"",text:"\u64CD\u4F5C\u5931\u8D25",comment:"\u4FE1\u5C01\u65E0 error \u65F6\u7684\u515C\u5E95"},need_input:{code:"11",text:"\u8FD8\u7F3A\u9700\u8981\u5411\u7528\u6237\u786E\u8BA4\u7684\u5185\u5BB9\u3002\u8BF7\u7528\u53E3\u8BED\u95EE\u7528\u6237\uFF0C\u628A\u7B54\u6848\u5199\u6210\u547D\u4EE4\u65D7\u6807\uFF08\u6216\u5199\u5165\u4FE1\u5C01\u6807\u660E\u7684\u6587\u4EF6\u5B57\u6BB5\uFF09\u540E\u518D\u91CD\u8DD1\u3002",comment:"Agent \u9000\u51FA\u7801 11"},login_required_agent:{code:"12",text:"\u5F53\u524D\u672A\u767B\u5F55\u5E73\u53F0\u3002\u8BF7\u8BE2\u95EE\u7528\u6237\u662F\u5426\u73B0\u5728\u6253\u5F00\u6D4F\u89C8\u5668\u767B\u5F55\uFF1B\u540C\u610F\u540E\u6267\u884C npx lumimaker login\uFF0C\u5B8C\u6210\u540E\u518D\u91CD\u8DD1\u539F\u547D\u4EE4\u3002",comment:"Agent \u9000\u51FA\u7801 12"},update_available:{code:"10",text:"\u68C0\u6D4B\u5230 lumimaker \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_ask:{code:"",text:"\u68C0\u6D4B\u5230\u65B0\u7248\u672C\uFF0C\u63A8\u8350\u66F4\u65B0\uFF0C\u662F\u5426\u73B0\u5728\u66F4\u65B0\uFF1F",comment:"TTY \u66F4\u65B0\u786E\u8BA4"},update_not_project:{code:"",text:"\u5F53\u524D\u76EE\u5F55\u4E0D\u662F npm \u5DE5\u7A0B\uFF0C\u5DF2\u8DF3\u8FC7\u66F4\u65B0\u3002",comment:"cwd \u65E0 package.json"},update_installing:{code:"",text:"\u6B63\u5728\u628A lumimaker \u76F8\u5173\u5305\u66F4\u65B0\u5230\u6700\u65B0\u2026",comment:"npm install \u524D"},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"},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"},table_empty:{code:"",text:" (\u65E0\u6570\u636E)",comment:"\u7A7A\u8868\u9ED8\u8BA4\u6587\u6848"},validate_ok_line:{code:"",text:"\u6A21\u677F\u76EE\u5F55\u89C4\u8303\u6821\u9A8C\u901A\u8FC7",comment:"validate-template \u539F\u59CB\u6210\u529F\u884C\uFF08\u5DF2\u4E0D\u518D\u5355\u72EC\u6253\u5370\uFF09"},validate_data_ok_line:{code:"",text:"\u5DE5\u7A0B\u6821\u9A8C\u901A\u8FC7",comment:"validate \u539F\u59CB\u6210\u529F\u884C"},issue_line:{code:"",text:"{path}: {message}",comment:"\u6821\u9A8C\u5931\u8D25\u4E00\u884C\uFF1B\u82F1\u6587\u9519\u8BEF\u7801\u53EA\u7559\u5728\u5185\u90E8\u5BF9\u8C61\uFF0C\u4E0D\u4E0A\u5C4F"}},fmt:{label_status:{code:"",text:"\u72B6\u6001",comment:"whoami \u5361\u7247"},label_hint:{code:"",text:"\u5EFA\u8BAE",comment:"whoami \u5361\u7247"},label_action:{code:"",text:"\u64CD\u4F5C",comment:"whoami \u5361\u7247"},version_no:{code:"",text:"\u7B2C {n} \u7248",comment:"\u7248\u672C\u5E8F\u53F7"},data_ver:{code:"",text:"\u7B2C {ver} \u7248\uFF08\u6570\u636E\u5305 ID {id}\uFF09",comment:"\u6570\u636E\u5305\u7248\u672C"},post_id:{code:"",text:"{id}",comment:"\u793E\u533A\u5E16"},vip:{code:"",text:"VIP {n}",comment:"\u4F1A\u5458\u7B49\u7EA7"},type_template:{code:"",text:"\u6A21\u677F",comment:"\u5E16\u5B50\u7C7B\u578B"},type_game:{code:"",text:"\u6E38\u620F",comment:"\u5E16\u5B50\u7C7B\u578B"},type_project:{code:"",text:"\u5F00\u6E90\u5DE5\u7A0B",comment:"\u5E16\u5B50\u7C7B\u578B"},shelf_id:{code:"",text:"{type} ID",comment:"\u5E16\u5B50\u5361\u7247"},shelf_name:{code:"",text:"{type}\u540D\u79F0",comment:"\u5E16\u5B50\u5361\u7247"},label_shelf:{code:"",text:"\u4E0A\u4E0B\u67B6",comment:"shelf_status \u4E0A\u67B6/\u4E0B\u67B6\uFF0C\u4E0D\u8981\u548C\u793E\u533A\u5E16 post_url \u6DF7\u6807\u6210\u5E16\u5B50"},val_shelf_on:{code:"",text:"\u4E0A\u67B6",comment:"shelf_status=1"},val_shelf_off:{code:"",text:"\u4E0B\u67B6",comment:"shelf_status=2"},label_changelog:{code:"",text:"\u66F4\u65B0\u8BF4\u660E",comment:"\u5E16\u5B50\u5361\u7247"},label_demo_scope:{code:"",text:"\u8BD5\u73A9\u8303\u56F4",comment:"\u6E38\u620F\u8BE6\u60C5"},label_play_duration:{code:"",text:"\u9884\u8BA1\u65F6\u957F",comment:"\u6E38\u620F\u8BE6\u60C5"},label_post_id:{code:"",text:"\u5173\u8054\u5E16",comment:"\u8BE6\u60C5 query \u7684 post_id\uFF08\u6A21\u677F / \u5F00\u6E90\u5DE5\u7A0B\uFF09"},label_work_post_id:{code:"",text:"\u4F5C\u54C1\u5E16\u5B50ID",comment:"\u6E38\u620F\u8BE6\u60C5 / \u53D1\u6E38\u620F\u6210\u529F\u7684\u5E16\u5B50 id"},label_template_id:{code:"",text:"\u6A21\u677F ID",comment:"\u6A21\u677F\u8BE6\u60C5 id"},label_project_id:{code:"",text:"\u5DE5\u7A0B ID",comment:"\u5F00\u6E90\u5DE5\u7A0B\u8BE6\u60C5 id"},label_game_official_id:{code:"",text:"\u6B63\u5F0F\u7248\u6E38\u620FID",comment:"\u6E38\u620F\u8BE6\u60C5 id"},label_game_demo_id:{code:"",text:"\u8BD5\u73A9ID",comment:"demo \u6E38\u620F\u8BE6\u60C5 id"},label_post_status:{code:"",text:"\u5173\u8054\u5E16\u72B6\u6001",comment:"\u8BE6\u60C5 query \u7684 post_status"},label_name:{code:"",text:"\u540D\u79F0",comment:"query \u5361\u7247"},label_type:{code:"",text:"\u7C7B\u578B",comment:"query \u5361\u7247\uFF1A\u6B63\u5F0F\u7248\u6E38\u620F/demo"},label_parent:{code:"",text:"\u6B63\u5F0F\u7248\u6E38\u620FID",comment:"query \u5361\u7247"},label_summary:{code:"",text:"\u7B80\u4ECB",comment:"query \u5361\u7247"},label_version:{code:"",text:"\u7248\u672C",comment:"query \u5361\u7247"},val_official:{code:"",text:"\u6B63\u5F0F\u7248\u6E38\u620F\uFF08\u4F5C\u54C1\uFF09",comment:"query \u7C7B\u578B"},val_demo:{code:"",text:"demo\u7248\u6E38\u620F\uFF08demo\uFF09",comment:"query \u7C7B\u578B"},val_unknown:{code:"",text:"\u672A\u77E5",comment:"\u672A\u77E5\u679A\u4E3E\u7ED9\u4EBA\u770B\u7684\u5360\u4F4D"},logout_done:{code:"",text:"\u5DF2\u9000\u51FA\u767B\u5F55",comment:"logout \u6210\u529F\u77ED\u53E5"},post_url_line:{code:"",text:"\u5E16\u5B50\uFF1A{url}",comment:"\u53D1\u7248\u6210\u529F\u540E\u72EC\u7ACB\u6253\u5370\u7684\u5DF2\u516C\u5F00\u5E16\u94FE\u63A5\uFF0C\u907F\u514D\u5361\u7247\u6298\u884C"},post_url_draft_line:{code:"",text:"\u5E16\u5B50\uFF08\u8349\u7A3F\uFF0C\u786E\u8BA4\u540E\u624D\u4F1A\u516C\u5F00\uFF09\uFF1A{url}",comment:"\u53D1\u7248\u6210\u529F\u540E\u72EC\u7ACB\u6253\u5370\u7684\u8349\u7A3F\u5E16\u94FE\u63A5"},create_pull_line:{code:"",text:"\u4ED6\u4EBA\u62C9\u53D6\uFF1A{cmd}",comment:"\u53D1\u7248\u6210\u529F\u540E\u72EC\u7ACB\u6253\u5370\u7684 create \u547D\u4EE4\uFF0C\u987B\u7528 \u7528\u6237\u540D/slug"},list_sep:{code:"",text:"\u3001",comment:"\u5217\u8868\u9879\u5206\u9694"}},validate:{forbidden_scripts_dir:{code:"FORBIDDEN_SCRIPTS_DIR",text:"\u6A21\u677F\u6839\u76EE\u5F55\u4E0D\u8981\u653E scripts/ \u6587\u4EF6\u5939\uFF08\u548C npm scripts\u3001skill/scripts \u649E\u8F66\uFF09",comment:"\u89C4\u8303\u95E8\u7981"},forbidden_out_dir:{code:"FORBIDDEN_OUT_DIR",text:"\u4EA7\u7269\u76EE\u5F55\u53EA\u80FD\u53EB dist/\uFF0C\u4E0D\u8981\u7528 {dir}/",comment:"\u89C4\u8303\u95E8\u7981"},forbidden_content_root:{code:"FORBIDDEN_CONTENT_ROOT",text:"\u5185\u5BB9\u653E assets/{dir}/\uFF0C\u4E0D\u8981\u5728\u6839\u76EE\u5F55\u653E {dir}/",comment:"\u89C4\u8303\u95E8\u7981"},forbidden_template_yaml:{code:"FORBIDDEN_TEMPLATE_YAML",text:"\u4E0D\u8981 template.yaml\uFF1Bslug \u5199\u5728 package.json",comment:"\u89C4\u8303\u95E8\u7981"},missing_dir:{code:"MISSING_DIR",text:"\u7F3A\u5C11\u5FC5\u6709\u76EE\u5F55 {dir}/",comment:"\u89C4\u8303\u95E8\u7981"},empty_assets:{code:"EMPTY_ASSETS",text:"assets/ \u91CC\u81F3\u5C11\u8981\u6709\u4E00\u4E2A\u6587\u4EF6\uFF08\u53EF\u4EE5\u653E\u5728\u5B50\u76EE\u5F55\u4E2D\uFF09",comment:"\u89C4\u8303\u95E8\u7981"},assets_not_dir:{code:"ASSETS_NOT_DIR",text:"assets \u5982\u679C\u5B58\u5728\uFF0C\u5FC5\u987B\u662F\u76EE\u5F55\u3002\u53EF\u4EE5\u4E0D\u521B\u5EFA\uFF0C\u4E5F\u53EF\u4EE5\u662F\u7A7A\u76EE\u5F55",comment:"\u89C4\u8303\u95E8\u7981"},missing_file:{code:"MISSING_FILE",text:"\u7F3A\u5C11\u5FC5\u6709\u6587\u4EF6 {file}",comment:"\u89C4\u8303\u95E8\u7981"},logic_export:{code:"LOGIC_EXPORT",text:"schema/logic.mjs \u5FC5\u987B default export async function validate(data, rootDir)",comment:"\u89C4\u8303\u95E8\u7981"},invalid_json:{code:"INVALID_JSON",text:"package.json \u4E0D\u662F\u5408\u6CD5 JSON",comment:"\u89C4\u8303\u95E8\u7981"},package_not_object:{code:"PACKAGE_NOT_OBJECT",text:"package.json \u5FC5\u987B\u662F JSON \u5BF9\u8C61",comment:"\u89C4\u8303\u95E8\u7981"},missing_name:{code:"MISSING_NAME",text:"package.json \u5FC5\u987B\u6709\u5E73\u53F0\u5C55\u793A\u540D name\uFF0C\u53BB\u6389\u9996\u5C3E\u7A7A\u767D\u540E\u4E0D\u80FD\u4E3A\u7A7A",comment:"\u89C4\u8303\u95E8\u7981"},invalid_name:{code:"INVALID_NAME",text:"name \u4E0D\u80FD\u5305\u542B / \u6216 @",comment:"\u89C4\u8303\u95E8\u7981"},missing_version:{code:"MISSING_VERSION",text:"package.json \u5FC5\u987B\u6709\u6A21\u677F\u7248\u672C\u53F7 version\uFF08\u5982 0.1.0\u30011.0.0-a\uFF09",comment:"\u89C4\u8303\u95E8\u7981"},invalid_description:{code:"INVALID_DESCRIPTION",text:"description \u53EF\u4EE5\u4E0D\u5199\uFF1B\u5982\u679C\u5199\u4E86\uFF0C\u5FC5\u987B\u662F\u5B57\u7B26\u4E32\uFF0C\u53EF\u4EE5\u4E3A\u7A7A\u5B57\u7B26\u4E32",comment:"\u89C4\u8303\u95E8\u7981"},scripts_type:{code:"SCRIPTS_TYPE",text:"package.json \u7684 scripts \u5FC5\u987B\u662F\u5BF9\u8C61\uFF0C\u5E76\u5305\u542B dev\u3001dev:demo\u3001build\u3001build:demo\u3001validate",comment:"\u89C4\u8303\u95E8\u7981"},build_failed:{code:"BUILD_FAILED",text:"npm run {name} \u6CA1\u6709\u6210\u529F\u3002\u8FD9\u4E2A\u811A\u672C\u5FC5\u987B\u5728\u5DE5\u7A0B\u6839\u76EE\u5F55\u751F\u6210 dist/index.html",comment:"\u89C4\u8303\u95E8\u7981"},missing_build_index:{code:"MISSING_BUILD_INDEX",text:"npm run {name} \u7ED3\u675F\u540E\u6CA1\u6709 dist/index.html\u3002\u6784\u5EFA\u7ED3\u679C\u5FC5\u987B\u5199\u5230 dist/\uFF0C\u5E76\u4E14\u5305\u542B\u5165\u53E3 index.html",comment:"\u89C4\u8303\u95E8\u7981"},forbidden_template_id:{code:"FORBIDDEN_TEMPLATE_ID",text:"package.json \u4E0D\u8981\u624B\u5199\u6A21\u677F ID\uFF0C\u8EAB\u4EFD\u7531\u5E73\u53F0\u7B7E\u53D1\u7684 origin.json \u4FDD\u5B58",comment:"\u89C4\u8303\u95E8\u7981"},missing_slug:{code:"MISSING_SLUG",text:"package.json \u5FC5\u987B\u6709\u82F1\u6587\u77ED\u540D slug\uFF08\u5B89\u88C5\u8DEF\u5F84\u540E\u534A\u6BB5\uFF0C\u4E0D\u662F name\uFF09",comment:"\u89C4\u8303\u95E8\u7981"},invalid_slug:{code:"INVALID_SLUG",text:"\u82F1\u6587\u77ED\u540D slug \u987B\u5339\u914D ^[a-z0-9][a-z0-9-]{0,62}$",comment:"\u89C4\u8303\u95E8\u7981"},invalid_version:{code:"INVALID_VERSION",text:"\u6A21\u677F package.json \u7684 version \u683C\u5F0F\u65E0\u6548\uFF1A\u987B 1\u201316 \u4F4D\uFF0C\u4EC5\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001`.`\u3001`-`\uFF1B\u5FC5\u987B\u4EE5\u5B57\u6BCD\u6216\u6570\u5B57\u5F00\u5934\u548C\u7ED3\u5C3E\uFF0C\u4E14\u4E0D\u80FD\u6709\u8FDE\u7EED\u7B26\u53F7\u3002\u793A\u4F8B\uFF1A0.1.0\u30011.0.0-a",comment:"\u89C4\u8303\u95E8\u7981"},missing_data_ver:{code:"MISSING_DATA_VER",text:'package.json \u5FC5\u987B\u6709\u6570\u636E\u5305\u7248\u672C\u53F7\uFF08\u5982 "1"\uFF09',comment:"\u89C4\u8303\u95E8\u7981"},invalid_data_ver:{code:"INVALID_DATA_VER",text:"data_ver \u5FC5\u987B\u662F\u53BB\u6389\u9996\u5C3E\u7A7A\u767D\u540E\u4E0D\u4E3A\u7A7A\u7684\u5B57\u7B26\u4E32\uFF0C\u6216\u4E00\u4E2A\u6709\u9650\u6570\u5B57",comment:"\u89C4\u8303\u95E8\u7981"},forbidden_bin:{code:"FORBIDDEN_BIN",text:"\u6A21\u677F\u5DE5\u7A0B\u4E0D\u8981\u8BBE\u7F6E bin\uFF0C\u907F\u514D\u4F5C\u8005\u8BEF npx \u5230\u6A21\u677F",comment:"\u89C4\u8303\u95E8\u7981"},forbidden_package_manager:{code:"FORBIDDEN_PACKAGE_MANAGER",text:"\u4E0D\u8981\u5199 packageManager\uFF08\u4F5C\u8005\u73AF\u5883\u53EA\u7528 Node \u81EA\u5E26\u7684 npm\uFF09",comment:"\u89C4\u8303\u95E8\u7981"},missing_script:{code:"MISSING_SCRIPT",text:"package.json \u7F3A\u5C11 scripts.{name}",comment:"\u89C4\u8303\u95E8\u7981"},forbidden_script:{code:"FORBIDDEN_SCRIPT",text:"\u4E0D\u8981\u628A\u811A\u672C\u547D\u540D\u4E3A {name}\uFF08\u4F1A\u548C npm {name} \u649E\u8F66\uFF09\u3002\u8BF7\u7528 npx lumimaker {name}",comment:"\u89C4\u8303\u95E8\u7981"},forbidden_validate_demo:{code:"FORBIDDEN_SCRIPT",text:"\u4E0D\u8981 scripts.validate:demo\u3002\u5F00\u53D1\u670D\u52A1\u548C\u6253\u5305\u624D\u5206\u6B63\u5F0F/\u8BD5\u73A9\uFF1B\u6570\u636E\u6821\u9A8C\u53EA\u6709 scripts.validate\uFF0C\u6709\u72EC\u7ACB\u8BD5\u73A9\u6570\u636E\u65F6\u540C\u4E00\u6761\u547D\u4EE4\u68C0\u67E5\u4E24\u4EFD",comment:"\u89C4\u8303\u95E8\u7981"},missing_gitignore:{code:"MISSING_GITIGNORE",text:"\u7F3A\u5C11 .gitignore\uFF0C\u4E14\u5FC5\u987B\u5FFD\u7565 dist/ \u4E0E node_modules/",comment:"\u89C4\u8303\u95E8\u7981"},gitignore_dist:{code:"GITIGNORE_DIST",text:".gitignore \u5FC5\u987B\u5FFD\u7565 dist/",comment:"\u89C4\u8303\u95E8\u7981"},gitignore_node_modules:{code:"GITIGNORE_NODE_MODULES",text:".gitignore \u5FC5\u987B\u5FFD\u7565 node_modules/",comment:"\u89C4\u8303\u95E8\u7981"},absolute_asset_path:{code:"ABSOLUTE_ASSET_PATH",text:"{rel} \u5FC5\u987B\u7528\u76F8\u5BF9\u8DEF\u5F84\uFF08Vite \u8BBE base: './'\uFF09\uFF0C\u624D\u80FD\u653E\u5230\u4EFB\u610F\u9759\u6001\u6258\u7BA1\u5B50\u76EE\u5F55",comment:"dist \u68C0\u67E5"},missing_dist:{code:"MISSING_DIST",text:"\u7F3A\u5C11 {entry}\u3002\u8BF7\u5148 npm run build\uFF0C\u4E14 outDir \u5FC5\u987B\u662F dist",comment:"dist \u68C0\u67E5"},missing_game_html:{code:"MISSING_GAME_HTML",text:"dist/ \u81F3\u5C11\u8981\u6709 1 \u4E2A\u6E38\u620F\u9875 index.{lang}.{h|v}.html\uFF08\u5982 index.zh.h.html\uFF09\u3002\u5355\u9875\u6A21\u677F\u53EF\u5728 build \u540E\u628A index.html \u62F7\u4E00\u4EFD\u4F5C fallback",comment:"dist \u68C0\u67E5"},dist_html_name:{code:"DIST_HTML_NAME",text:"\u4EA7\u7269 HTML \u547D\u540D\u4E0D\u7B26\u5408\u7EA6\u5B9A\u3002\u6E38\u620F\u9875\u7528 index.{lang}.{h|v}.html\uFF0C\u65B9\u5411\u9996\u9875\u7528 index.h.html / index.v.html\uFF0C\u53E6\u5141\u8BB8 start.html\u3001404.html\u3001privacy.html\u3001offline.html",comment:"dist \u68C0\u67E5"},invalid_asset:{code:"INVALID_ASSET",text:"\u6570\u636E\u5305\u8DEF\u5F84\u4E0D\u5408\u6CD5: {rel}",comment:"\u6570\u636E\u6821\u9A8C"},missing_asset:{code:"MISSING_ASSET",text:"\u6570\u636E\u5305\u6587\u4EF6\u4E0D\u5B58\u5728: assets/{posix}",comment:"\u6570\u636E\u6821\u9A8C"},asset_case:{code:"ASSET_CASE",text:"\u6570\u636E\u5305\u8DEF\u5F84\u5927\u5C0F\u5199\u4E0D\u4E00\u81F4: JSON \u5199 assets/{posix}\uFF0C\u78C1\u76D8\u4E0A\u662F assets/{actual}\uFF08Linux \u6258\u7BA1\u4F1A\u627E\u4E0D\u5230\uFF09",comment:"\u6570\u636E\u6821\u9A8C"},schema_failed:{code:"SCHEMA",text:"schema \u6821\u9A8C\u5931\u8D25",comment:"\u6570\u636E\u6821\u9A8C\u515C\u5E95"},schema_detail:{code:"SCHEMA",text:"{path} {message}",comment:"Ajv \u9519\u8BEF"},theme_schema_failed:{code:"THEME_SCHEMA",text:"theme schema \u6821\u9A8C\u5931\u8D25",comment:"\u6570\u636E\u6821\u9A8C\u515C\u5E95"}}};function ko(){let e={...Ct,...Nt};return delete e._comment,e}var p=ko();function ve(e,t){if(!t)return e;let n=e;for(let[o,i]of Object.entries(t))n=n.split(`{${o}}`).join(String(i));return n}function s(e,t,n){let o=p[e]?.[t];if(!o?.text)throw new Error(`missing cli message ${String(e)}.${t}`);return ve(o.text,n)}function y(e,t,n){let o=p.validate[t];if(!o)throw new Error(`missing validate message ${t}`);return{path:e,code:o.code,message:ve(o.text,n)}}function P(e){return se(e)===void 0}function se(e){let t=e.trim();if(!t)return"empty";if(t.includes("/")||t.includes("@"))return"invalid"}function H(e){let t=e?.trim()??"";return!t||P(t)}var Dt="^(?=.{1,16}$)[a-z0-9]+(?:[.-][a-z0-9]+)*$",Lt=new RegExp(Dt);function D(e){return Lt.test(e)}var Io=["src"],Ao=["package.json","README.md","AGENTS.md"],jo=["dev","dev:demo","build","build:demo","validate"],Eo=["build","build:demo"],Ro=/^[a-z0-9][a-z0-9-]{0,62}$/;function Mt(e,t){let n=F.join(e,t);return A.existsSync(n)&&A.statSync(n).isFile()}function Po(e,t){let n=F.join(e,t);return A.existsSync(n)&&A.statSync(n).isDirectory()}function Ot(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function To(e){let t=[];for(let m of Io)Po(e,m)||t.push(y(`/${m}/`,"missing_dir",{dir:m}));let n=F.join(e,"assets");A.existsSync(n)&&!A.statSync(n).isDirectory()&&t.push(y("/assets","assets_not_dir"));for(let m of Ao)Mt(e,m)||t.push(y(`/${m}`,"missing_file",{file:m}));if(!Mt(e,"package.json"))return{ok:!1,errors:t};let o;try{o=JSON.parse(A.readFileSync(F.join(e,"package.json"),"utf8"))}catch{return t.push(y("/package.json","invalid_json")),{ok:!1,errors:t}}if(!Ot(o))return t.push(y("/package.json","package_not_object")),{ok:!1,errors:t};let i=o.name;if(typeof i!="string")t.push(y("/package.json","missing_name"));else{let m=se(i);m==="empty"?t.push(y("/package.json","missing_name")):m==="invalid"&&t.push(y("/package.json","invalid_name"))}let r=o.slug;typeof r!="string"||r.trim()===""?t.push(y("/package.json","missing_slug")):Ro.test(r)||t.push(y("/package.json","invalid_slug"));let a=o.version;typeof a!="string"||a.trim()===""?t.push(y("/package.json","missing_version")):D(a)||t.push(y("/package.json","invalid_version"));let c=o.data_ver;if(c==null?t.push(y("/package.json","missing_data_ver")):typeof c=="string"?c.trim()===""&&t.push(y("/package.json","invalid_data_ver")):(typeof c!="number"||!Number.isFinite(c))&&t.push(y("/package.json","invalid_data_ver")),"description"in o&&typeof o.description!="string"&&t.push(y("/package.json","invalid_description")),!Ot(o.scripts))t.push(y("/package.json","scripts_type"));else for(let m of jo){let l=o.scripts[m];(typeof l!="string"||l.trim()==="")&&t.push(y("/package.json","missing_script",{name:m}))}return{ok:t.length===0,errors:t}}function Co(e,t){return new Promise((n,o)=>{let i=wo("npm",["run",t],{cwd:e,stdio:"inherit",shell:process.platform==="win32"});i.on("error",o),i.on("close",r=>n(r??1))})}function No(e){let t=F.join(e,"dist","index.html");return A.existsSync(t)&&A.statSync(t).isFile()}async function Do(e){let t=F.join(e,"dist"),n=A.mkdtempSync(F.join(So.tmpdir(),"lumimaker-dist-")),o=F.join(n,"dist"),i=A.existsSync(t);i&&A.cpSync(t,o,{recursive:!0});let r=[];try{for(let a of Eo){A.rmSync(F.join(t,"index.html"),{force:!0});try{await Co(e,a)}catch{r.push(y("/dist/index.html","missing_build_index",{name:a}));continue}No(e)||r.push(y("/dist/index.html","missing_build_index",{name:a}))}r.length&&i&&(A.rmSync(t,{recursive:!0,force:!0}),A.cpSync(o,t,{recursive:!0}))}finally{A.rmSync(n,{recursive:!0,force:!0})}return r}async function Lo(e){let t=To(e);if(!t.ok)return t;let n=await Do(e);return{ok:n.length===0,errors:n}}async function ye(e){let{ok:t,errors:n}=await Lo(e);if(!t){for(let o of n)console.error(s("kit","issue_line",{path:o.path,message:o.message}));process.exit(1)}}import $t from"node:fs";import Mo from"node:path";import{spawn as Oo}from"node:child_process";import{createRequire as $o}from"node:module";var Fo=$o(import.meta.url),Ft=Fo("ajv"),fs=Ft.default??Ft;var Ut="LUMIMAKER_VALIDATE_DISPATCH",ae=class extends Error{exitCode;constructor(t){super("validate_script_failed"),this.name="ValidateScriptFailed",this.exitCode=t}};function Uo(e){let t=e.trim().replace(/\s+/g," ");return/^(npx\s+)?(@66rpg\/lumimaker|lumimaker)\s+validate(\s|$)/i.test(t)}function Vo(e){let t=Mo.join(e,"package.json");if($t.existsSync(t))try{let o=JSON.parse($t.readFileSync(t,"utf8")).scripts?.validate;return typeof o!="string"||!o.trim()?void 0:o}catch{return}}function qo(e){if(process.env[Ut]==="1")throw new Error(s("kit","validate_script_loops"));let t=Vo(e);if(!t)throw new Error(s("kit","validate_need_script"));if(Uo(t))throw new Error(s("kit","validate_script_loops"))}function Jo(){return process.platform==="win32"?"npm.cmd":"npm"}function Bo(e){let t=process.platform==="win32";return new Promise((n,o)=>{let i=Oo(Jo(),["run","validate"],{cwd:e,stdio:"inherit",env:{...process.env,[Ut]:"1"},shell:t,windowsHide:t});i.on("error",o),i.on("close",r=>n(r??1))})}async function Ve(e){qo(e);let t=await Bo(e);if(t!==0)throw new ae(t)}import E from"node:fs";import G from"node:path";import qe from"node:fs";import Vt from"node:path";var Go=".lumimaker",Wo=".cgmaker";function j(e){let t=Vt.join(e,Go),n=Vt.join(e,Wo);if(qe.existsSync(t)||!qe.existsSync(n))return t;try{return qe.renameSync(n,t),t}catch{return n}}var Be=new Set(["json","verbose","help","demo","init","if-needed","force","no-interactive","no-data","all","agent","apply-update","skip-update","skip-skill","skill-skip","with-assets","yes"]),Ko=new Set(["publish-template","publish-template-data"]);function qt(e){return!e.command||!Ko.has(e.command)?[]:e.positionals.slice(1)}var Jt=new Set(["no-interactive","agent","json","apply-update","skip-update","yes"]);function Bt(e){let t=e.slice(2),n={},o=[];for(let w=0;w<t.length;w++){let u=t[w];if(u==="--"){o.push(...t.slice(w+1));break}if(u.startsWith("--")){let R=u.indexOf("=");if(R!==-1){let b=u.slice(2,R),C=u.slice(R+1);n[b]=C}else{let b=u.slice(2);if(Be.has(b))n[b]=!0;else if(b==="version"){let C=t[w+1];C&&!C.startsWith("-")?(n[b]=C,w++):n[b]=!0}else{let C=t[w+1];C&&!C.startsWith("-")?(n[b]=C,w++):n[b]=!0}}continue}if(u.startsWith("-")&&u.length>1){let R=u.slice(1);R==="v"?n.verbose=!0:R==="h"?n.help=!0:R==="V"?n.V=!0:n[R]=!0;continue}o.push(u)}let i=process.env.LUMIMAKER_OUTPUT==="json",r=!!n.verbose||!!n.v,a=!!n["no-interactive"]||process.env.CI==="true"||process.env.LUMIMAKER_NO_INTERACTIVE==="1",c=!i&&!a&&!!(process.stdin.isTTY&&process.stdout.isTTY),m=o[0],l=o[1],d=typeof n.config=="string"?n.config:void 0,g=!m&&(n.version===!0||n.V===!0);return{raw:t,command:m,subcommand:l,flags:n,positionals:o,isJson:i,isVerbose:r,isInteractive:c,wantsVersion:g,configPath:d}}function M(e=process.cwd()){try{let t=G.join(e,"package.json");if(E.existsSync(t)){let n=JSON.parse(E.readFileSync(t,"utf8")),o=n.data_ver,i=n.data_summary;return{name:typeof n.name=="string"?n.name:void 0,slug:typeof n.slug=="string"?n.slug:void 0,version:typeof n.version=="string"?n.version:void 0,data_ver:o!=null&&String(o).trim()!==""?String(o).trim():void 0,data_summary:typeof i=="string"&&i.trim()?i.trim():void 0}}}catch{}return null}function V(e,t=process.cwd()){let n=G.join(t,"package.json");try{if(!E.existsSync(n))return!1;let o=JSON.parse(E.readFileSync(n,"utf8"));for(let[i,r]of Object.entries(e)){if(r===void 0)continue;let a=r.trim();if(!a){delete o[i];continue}o[i]=a}return E.writeFileSync(n,`${JSON.stringify(o,null,2)}
|
|
2
|
+
`),!0}catch{return!1}}var Qo=new Set(["publish","publish-template","publish-template-data","publish-project"]);function Je(e,t){let n=e[t];return typeof n!="string"?void 0:n.trim()||void 0}function Gt(e,t,n=process.cwd()){if(!e||!Qo.has(e))return!1;delete t.changelog;let o={},i=Je(t,"name"),r=Je(t,"version"),a=Je(t,"data-ver");return i&&(P(i)&&H(M(n)?.name)?o.name=i:P(i)||delete t.name),r&&(o.version=r),a&&(o.data_ver=a),!o.name&&!o.version&&!o.data_ver||!V(o,n)?!1:(o.name&&delete t.name,o.version&&delete t.version,o.data_ver&&delete t["data-ver"],!0)}function ke(e=process.cwd()){try{let t=G.join(j(e),"game.json");if(E.existsSync(t))return JSON.parse(E.readFileSync(t,"utf8"))}catch{}return null}function we(e=process.cwd()){try{let t=G.join(j(e),"origin.json");if(E.existsSync(t))return JSON.parse(E.readFileSync(t,"utf8"))}catch{}return null}function ce(e=process.cwd()){return Ho(G.join(e,"assets"))}function Ho(e){try{if(!E.existsSync(e)||!E.statSync(e).isDirectory())return!1;let t=[e];for(;t.length;){let n=t.pop();for(let o of E.readdirSync(n)){let i=G.join(n,o),r=E.statSync(i);if(r.isFile())return!0;r.isDirectory()&&t.push(i)}}}catch{}return!1}function Se(e=process.cwd()){try{let t=G.join(j(e),"project.json");if(E.existsSync(t))return JSON.parse(E.readFileSync(t,"utf8"))}catch{}return null}import ti from"node:fs";import ni from"node:path";import Yo from"node:fs";import Ge from"node:path";import{fileURLToPath as zo}from"node:url";function Y(){let e=Ge.dirname(zo(import.meta.url));for(;;){if(Yo.existsSync(Ge.join(e,"package.json")))return e;let t=Ge.dirname(e);if(t===e)throw new Error("lumimaker kit package root not found");e=t}}var Xo=[{id:"workbuddy",tokens:["workbuddy"]},{id:"codebuddy",tokens:["codebuddy"]},{id:"cursor",tokens:["cursor"]},{id:"opencode",tokens:["opencode"]},{id:"claude",tokens:["claudecode","claude"]},{id:"codex",tokens:["codex"]},{id:"trae",tokens:["trae"]},{id:"kimi",tokens:["kimi"]},{id:"qwen",tokens:["qwen"]}];function Zo(e){let t=[" "];for(let n of e){let o="";for(let i of n.toLowerCase())i>="a"&&i<="z"||i>="0"&&i<="9"?o+=i:o?(t.push(o," "),o=""):t[t.length-1]!==" "&&t.push(" ");o&&t.push(o," ")}return t.join("")}function ei(e){let t=[];for(let[n,o]of Object.entries(e))n&&t.push(n),typeof o=="string"&&o&&t.push(o);return t}function z(e=process.env){let t=Zo(ei(e));for(let{id:n,tokens:o}of Xo)if(o.some(i=>t.includes(` ${i} `)))return n}function Ie(e,t){return!t||!e.includes(t)?[...e]:[t,...e.filter(n=>n!==t)]}function x(e,t){let n=e[t];if(typeof n!="string")return;let o=n.trim();return o||void 0}function Qt(e,t){return t.some(n=>n.optional!==!0)}function Ht(e,t){let n=x(e,"name"),o=t?.name?.trim()||void 0;return n&&P(n)?n:o&&P(o)?o:n||o}function We(e,t,n){let o=Ht(e,t);return o?!P(o):le(n?.template_id)?!1:!me(n)}function Wt(e){let t=(e??"").trim();return t&&t!=="0"?t:void 0}function Ke(e){return e.demo===!0||String(e.variant??"")==="2"}function Qe(e){let t=Wt(e?.game_id),n=Wt(e?.demo_game_id),o;return t&&n?o=s("prompt","publish_have_both",{official:t,demo:n}):t?o=s("prompt","publish_have_official",{id:t}):n?o=s("prompt","publish_have_demo",{id:n}):o=s("prompt","publish_have_none"),`${o}
|
|
3
|
+
${s("prompt","publish_variant")}`}function He(e,t,n){let o=x(e,"name")||t?.name?.trim()||s("prompt","publish_confirm_unnamed"),i=x(e,"version")||t?.version?.trim()||"-",r=Ke(e),a=r?s("prompt","publish_confirm_demo"):s("prompt","publish_confirm_official"),c=[s("prompt","publish_confirm"),s("prompt","publish_confirm_name",{name:o}),s("prompt","publish_confirm_version",{version:i}),s("prompt","publish_confirm_variant",{variant:a})],m=x(e,"parent")||r&&n?.game_id?.trim()||void 0;return r&&m&&c.push(s("prompt","publish_confirm_parent",{id:m})),c.join(`
|
|
4
|
+
`)}function le(e){if(e==null)return!1;let t=e.trim();return!t||t==="local"||t==="0"}function me(e){let t=(e?.template_id??"").trim();return!!t&&t!=="local"&&t!=="0"}function Ye(e,t){return e["no-data"]===!0||e.init===!0?!1:e.fork?e["with-assets"]===!0||!!x(e,"assets"):le(t?.template_id)?!1:me(t)?e["with-assets"]===!0||!!x(e,"assets"):!0}function ze(e,t,n){if(x(e,"data-ver"))return!1;let o=(t??"").trim();return o&&o!=="0"?!1:Ye(e,n)}function Xe(e,t,n){return x(e,"data-summary")||(t??"").trim()?!1:Ye(e,n)}function Ze(e,t,n=!0){return Ye(e,t)?!n:!1}function et(){try{let e=ni.join(Y(),"skill-targets.json"),t=JSON.parse(ti.readFileSync(e,"utf8")),n=[];for(let o of t.projectSkillDirs??[]){let r=(o.replace(/\\/g,"/").split("/").find(Boolean)??"").replace(/^\./,"").toLowerCase();r&&!n.includes(r)&&n.push(r)}return n}catch{return["cursor"]}}function Yt(e,t={}){let n=t.cwd??process.cwd(),o=e.flags,i=e.command,r=t.pkg!==void 0?t.pkg:M(n),a=t.game!==void 0?t.game:ke(n),c=t.origin!==void 0?t.origin:we(n),m=t.project!==void 0?t.project:Se(n),l=t.skillIds??et(),d=t.hasAssets??ce(n);return i?i==="publish"?ii(o,r,a):i==="publish-template"?ri(o,r,c,d):i==="publish-template-data"?si(o,r,c,d):i==="publish-project"?ai(o,r,m):i==="login"?[]:i==="skill"?ci(o,l,t.detectedEditor):[]:oi()}function oi(){return[{id:"main.command",kind:"select",question:s("prompt","main_message"),recommended:!0,options:[{value:"publish",label:s("prompt","main_publish_label")},{value:"publish-template",label:s("prompt","main_publish_template_label")},{value:"publish-template-data",label:s("prompt","main_publish_template_data_label")},{value:"publish-project",label:s("prompt","main_publish_project_label")},{value:"login",label:s("prompt","main_login_label")},{value:"whoami",label:s("prompt","main_whoami_label")},{value:"validate-template",label:s("prompt","main_validate_template_label")},{value:"skill",label:s("prompt","main_skill_label")},{value:"logout",label:s("prompt","main_logout_label")}]}]}function ii(e,t,n){let o=[];return!e.version&&!(t?.version??"").trim()&&o.push({id:"publish.version",kind:"text",question:s("prompt","publish_version"),field:"package.json.version",recommended:!0,default:"1.0.0"}),!x(e,"name")&&!(t?.name??"").trim()&&!n?.game_id&&o.push({id:"publish.name",kind:"text",question:s("prompt","publish_name"),field:"package.json.name",optional:!0,default:t?.name||"game"}),e.demo===void 0&&e.variant===void 0?(o.push({id:"publish.variant",kind:"select",question:Qe(n),recommended:!0,options:[{value:"official",label:s("prompt","publish_official_label"),flag:"--variant 1"},{value:"demo",label:s("prompt","publish_demo_label"),flag:"--demo"}]}),o):(Ke(e)&&!e.parent&&o.push({id:"publish.parent",kind:"text",question:s("prompt","publish_parent"),flag:"--parent",optional:!0,default:n?.game_id||void 0}),Kt(e,n)&&!x(e,"demo-scope")&&o.push({id:"publish.demo-scope",kind:"text",question:s("prompt","publish_demo_scope"),flag:"--demo-scope",optional:!0}),Kt(e,n)&&!x(e,"play-duration")&&o.push({id:"publish.play-duration",kind:"text",question:s("prompt","publish_play_duration"),flag:"--play-duration",optional:!0}),o.filter(r=>r.optional!==!0).length===0&&e.yes!==!0&&o.push({id:"publish.confirm",kind:"confirm",question:He(e,t,n),flag:"--yes",recommended:!0}),o)}function Kt(e,t){return x(e,"game-id")?!1:Ke(e)?!(t?.demo_game_id??"").trim():!(t?.game_id??"").trim()}function ri(e,t,n,o){let i=[],r=typeof e.version=="string"?e.version.trim():"",a=(t?.version??"").trim(),c=r||a;if(r&&!D(r)?i.push({id:"publish-template.version",kind:"text",question:s("prompt","tpl_version"),field:"package.json.version",recommended:!0,default:a||"0.1.0"}):c?!r&&a&&!D(a)&&i.push({id:"publish-template.version",kind:"text",question:s("prompt","tpl_version"),field:"package.json.version",recommended:!0,default:"0.1.0"}):i.push({id:"publish-template.version",kind:"text",question:s("prompt","tpl_version"),field:"package.json.version",recommended:!0,default:"0.1.0"}),We(e,t,n)){let m=Ht(e,t),l=(m&&P(m)?m:void 0)||t?.slug?.trim()||void 0,d=H(t?.name);i.push({id:"publish-template.name",kind:"text",question:s("prompt","tpl_name"),field:d?"package.json.name":void 0,flag:d?void 0:"--name",recommended:!0,default:l&&P(l)?l:void 0})}return!e.init&&!e.fork&&!me(n)&&!le(n?.template_id)&&(i.push({id:"publish-template.mode",kind:"select",question:s("prompt","tpl_mode"),optional:!0,recommended:!0,default:"publish",options:[{value:"publish",label:s("prompt","tpl_publish_label"),flag:""},{value:"fork",label:s("prompt","tpl_fork_label"),flag:"--fork"}]}),i.push({id:"publish-template.fork",kind:"text",question:s("prompt","tpl_fork_id"),flag:"--fork",optional:!0})),ze(e,t?.data_ver,n)&&i.push({id:"publish-template.data-ver",kind:"text",question:s("prompt","data_ver_ask"),field:"package.json.data_ver",recommended:!0}),Xe(e,t?.data_summary,n)&&i.push({id:"publish-template.data-summary",kind:"text",question:s("prompt","data_summary"),flag:"--data-summary",optional:!0}),Ze(e,n,o)&&i.push({id:"publish-template.assets",kind:"confirm",question:s("prompt","data_assets"),recommended:!0}),e.fork&&!x(e,"data-id")&&!x(e,"data-ver-id")&&i.push({id:"publish-template.data-id",kind:"text",question:s("prompt","tpl_data_id"),flag:"--data-id",optional:!0}),i}function si(e,t,n,o){let i=[];if(!x(e,"data-ver")){let r=(t?.data_ver??"").trim();r&&r!=="0"&&r||i.push({id:"publish-template-data.data-ver",kind:"text",question:s("prompt","data_ver_ask"),field:"package.json.data_ver",recommended:!0})}return!x(e,"data-summary")&&!(t?.data_summary??"").trim()&&i.push({id:"publish-template-data.data-summary",kind:"text",question:s("prompt","data_summary"),flag:"--data-summary",optional:!0}),o||i.push({id:"publish-template-data.assets",kind:"confirm",question:s("prompt","data_assets"),recommended:!0}),i}function ai(e,t,n){let o=[];return!e.version&&!(t?.version??"").trim()&&o.push({id:"publish-project.version",kind:"text",question:s("prompt","proj_version"),field:"package.json.version",recommended:!0,default:"1.0.0"}),!x(e,"name")&&!(t?.name??"").trim()&&!n?.project_id&&o.push({id:"publish-project.name",kind:"text",question:s("prompt","proj_name"),field:"package.json.name",recommended:!0,default:t?.name||"open-source-project"}),!e.summary&&!n?.project_id&&o.push({id:"publish-project.summary",kind:"text",question:s("prompt","proj_summary"),flag:"--summary",optional:!0}),!e.cover&&!n?.project_id&&o.push({id:"publish-project.cover",kind:"text",question:s("prompt","proj_cover"),flag:"--cover",optional:!0}),o}function ci(e,t,n){if(typeof e.platform=="string"&&e.platform!==""||e.all===!0)return[];let i=n!==void 0?n??void 0:z(),r=i&&t.includes(i)?i:void 0,a=s("prompt","skill_current_suffix"),c=r?s("prompt","skill_platform_detected",{id:r}):s("prompt","skill_platform");return[{id:"skill.platform",kind:"select",question:c,recommended:!0,default:r,options:[...Ie(t,r).map(m=>({value:m,label:m===r?`${m}${a}`:m,flag:`--platform ${m}`,recommended:m===r})),{value:"__all__",label:s("prompt","skill_all_label"),flag:"--all"}]}]}function zt(e,t=process.env){return t.CI==="true"||t.LUMIMAKER_NO_INTERACTIVE==="1"||e?.["no-interactive"]===!0}function tt(e=process.stdin,t=process.stdout){return!!(e.isTTY&&t.isTTY)}function Ae(e,t){let n=t?.env??process.env,o=e?.flags;return zt(o,n)||(t?.tty??tt())?!1:!!z(n)}function Xt(){process.env.LUMIMAKER_AGENT="1"}function Zt(e){return zt(e)?!0:process.env.LUMIMAKER_SKIP_UPDATE==="1"}function nt(e){process.stdout.write(`${JSON.stringify(e,null,2)}
|
|
5
|
+
`)}function en(e,t){nt({success:!1,code:11,command:"need-input",message:e,data:{questions:t}})}function tn(e){nt({success:!1,code:12,command:"login-required",message:e,data:{apply:"npx lumimaker login",hint:"\u8BF7\u8BE2\u95EE\u7528\u6237\u662F\u5426\u73B0\u5728\u767B\u5F55\u3002\u540C\u610F\u540E\u6267\u884C login\uFF08\u4F1A\u6253\u5F00\u6D4F\u89C8\u5668\uFF09\uFF0C\u5B8C\u6210\u540E\u518D\u539F\u6837\u91CD\u8DD1\u521A\u624D\u7684\u547D\u4EE4\u3002"}})}function nn(e,t){nt({success:!1,code:10,command:"update-available",message:e,data:{packages:t,apply:"npx lumimaker --apply-update",skip:"npx lumimaker --skip-update <\u539F\u547D\u4EE4\u4E0E\u53C2\u6570>"}})}import X from"node:fs";import li from"node:os";import ue from"node:path";import{spawnSync as mi}from"node:child_process";import*as Ee from"@clack/prompts";import de from"picocolors";import f from"picocolors";var k={brand:e=>f.bold(f.cyan(`[lumimaker] ${e}`)),brandTag:f.bold(f.cyan("[lumimaker]")),dim:e=>f.dim(String(e)),highlight:e=>f.bold(f.cyan(String(e))),accent:e=>f.bold(f.yellow(String(e))),path:e=>f.underline(f.gray(e)),url:e=>f.underline(f.blue(e)),badgeInfo:f.bgCyan(f.black(" INFO ")),badgeSuccess:f.bgGreen(f.black(" SUCCESS ")),badgeWarn:f.bgYellow(f.black(" WARN ")),badgeError:f.bgRed(f.white(" ERROR ")),badgeDebug:f.bgBlack(f.gray(" DEBUG ")),iconInfo:f.cyan("\u2139"),iconSuccess:f.green("\u2714"),iconWarn:f.yellow("\u26A0"),iconError:f.red("\u2716"),iconStep:f.cyan("\u279C"),iconArrow:f.gray("\u203A"),successText:e=>f.green(e),errorText:e=>f.red(e),warnText:e=>f.yellow(e),infoText:e=>f.cyan(e),border:e=>f.gray(e),borderSuccess:e=>f.green(e),borderError:e=>f.red(e)};var ot=class{_verbose=!1;setVerbose(t){this._verbose=t}isVerbose(){return this._verbose}info(t,...n){console.log(`${k.brandTag} ${k.badgeInfo} ${t}`,...n)}success(t,...n){console.log(`${k.brandTag} ${k.badgeSuccess} ${t}`,...n)}warn(t,...n){console.warn(`${k.brandTag} ${k.badgeWarn} ${de.yellow(t)}`,...n)}error(t,...n){console.error(`${k.brandTag} ${k.badgeError} ${de.red(t)}`,...n)}debug(t,...n){this._verbose&&console.error(`${k.brandTag} ${k.badgeDebug} ${de.gray(t)}`,...n)}step(t){console.log(`${k.brandTag} ${de.cyan("\u279C")} ${de.bold(t)}`)}plain(t){console.log(t)}},h=new ot;var sn=["@66rpg/lumimaker","@66rpg/lumimaker-create","@66rpg/lumimaker-win32-x64"],di=1440*60*1e3;function ui(e,t){let n=e.split(".").map(r=>Number.parseInt(r,10)||0),o=t.split(".").map(r=>Number.parseInt(r,10)||0),i=Math.max(n.length,o.length);for(let r=0;r<i;r++){let a=n[r]??0,c=o[r]??0;if(a>c)return!0;if(a<c)return!1}return!1}function it(e=li.homedir()){return ue.join(j(e),"update-check.json")}function pi(e=it()){try{let t=JSON.parse(X.readFileSync(e,"utf8"));return!t||typeof t.checkedAt!="number"||typeof t.latest!="object"?null:t}catch{return null}}function je(e,t=it()){X.mkdirSync(ue.dirname(t),{recursive:!0}),X.writeFileSync(t,`${JSON.stringify(e,null,2)}
|
|
6
|
+
`)}function fi(e,t=process.cwd()){if(e==="@66rpg/lumimaker")try{let n=JSON.parse(X.readFileSync(ue.join(Y(),"package.json"),"utf8"));if(n.version)return n.version}catch{}try{return JSON.parse(X.readFileSync(ue.join(t,"node_modules",e,"package.json"),"utf8")).version||null}catch{return null}}function on(e,t=process.cwd(),n={}){let o=[];for(let i of sn){let r=e[i];if(!r||n[i]===r)continue;let a=fi(i,t);a&&ui(r,a)&&o.push({name:i,current:a,latest:r})}return o}function _i(){return process.platform==="win32"?"npm.cmd":"npm"}function an(e,t,n){let o=process.platform==="win32",i=mi(_i(),e,{cwd:t,encoding:"utf8",timeout:n,windowsHide:o,shell:o});return{status:i.status??1,stdout:i.stdout?.toString()??""}}function gi(e=sn,t=process.cwd()){let n={};for(let o of e){let i=an(["view",o,"version"],t,2e3),r=i.stdout.trim();i.status===0&&r&&(n[o]=r.split(`
|
|
7
|
+
`)[0].trim())}return n}function hi(){return process.platform!=="win32"?[]:["@66rpg/lumimaker-win32-x64"]}async function cn(e){if(Zt(e.flags))return"continue";let t=e.cwd??process.cwd(),n=e.now??Date.now(),o=e.ppid??process.ppid,i=it(),r=pi(i)??{checkedAt:0,latest:{}};if(n-r.checkedAt>=di){let l=(e.fetch??gi)();r={...r,checkedAt:n,latest:{...r.latest,...l}},je(r,i)}if(e.flags["apply-update"]===!0)return rn(r.latest,t);if(e.flags["skip-update"]===!0){let l={...r.declined};for(let d of on(r.latest,t))l[d.name]=d.latest;return je({...r,declined:l,promptedPpid:o},i),"continue"}let a=on(r.latest,t,r.declined??{});if(a.length===0)return"continue";if(Ae({flags:e.flags}))return nn(s("kit","update_available"),a),"agent-block";if(!e.isInteractive||r.promptedPpid===o)return"continue";let c=a.map(l=>`${l.name} ${l.current} \u2192 ${l.latest}`).join(`
|
|
8
|
+
`),m=await Ee.confirm({message:`${s("kit","update_ask")}
|
|
9
|
+
${c}`,initialValue:!0});if(je({...r,promptedPpid:o},i),Ee.isCancel(m)||!m){let l={...r.declined};for(let d of a)l[d.name]=d.latest;return je({...r,declined:l,promptedPpid:o},i),"continue"}return rn(r.latest,t)}function rn(e,t){let n=ue.join(t,"package.json");if(!X.existsSync(n))return h.warn(s("kit","update_not_project")),"continue";let o=[];for(let r of["@66rpg/lumimaker","@66rpg/lumimaker-create",...hi()]){let a=e[r];a?o.push(`${r}@${a}`):o.push(`${r}@latest`)}return h.step(s("kit","update_installing")),an(["install","-D",...o],t,12e4).status!==0?(h.warn(s("kit","update_failed")),"continue"):(h.success(s("kit","update_done")),"updated-exit")}var xi=new Set(["games","templates","projects","init"]);function ln(e){return!!(e&&xi.has(e))}function mn(e=process.env){return e.LUMIMAKER_INTERNAL==="1"}import*as _ from"@clack/prompts";import dn from"picocolors";function v(e){_.isCancel(e)&&(_.cancel(s("prompt","cancel")),process.exit(0))}function bi(e){if(!e||!e.trim())return s("prompt","version_empty");if(!D(e.trim()))return s("prompt","version_invalid")}function rt(e,t,n){let o=t.trim();if(o){if(H(n)&&V({name:o})){delete e.name;return}e.name=o}}function vi(e){let t=se(e??"");if(t==="empty")return s("prompt","tpl_name_empty");if(t==="invalid")return s("prompt","tpl_name_invalid")}function un(e,t,n){let o=[e];t&&o.push(t);for(let[i,r]of Object.entries(n))Jt.has(i)||(r===!0?Be.has(i)&&o.push(`--${i}`):typeof r=="string"&&r!==""&&o.push(`--${i}`,r));return o}async function pn(){_.intro(dn.bold(dn.cyan(s("prompt","intro"))));let e=await _.select({message:s("prompt","main_message"),options:[{value:"publish",label:s("prompt","main_publish_label"),hint:s("prompt","main_publish_hint")},{value:"publish-template",label:s("prompt","main_publish_template_label"),hint:s("prompt","main_publish_template_hint")},{value:"publish-template-data",label:s("prompt","main_publish_template_data_label"),hint:s("prompt","main_publish_template_data_hint")},{value:"publish-project",label:s("prompt","main_publish_project_label"),hint:s("prompt","main_publish_project_hint")},{value:"login",label:s("prompt","main_login_label"),hint:s("prompt","main_login_hint")},{value:"whoami",label:s("prompt","main_whoami_label"),hint:s("prompt","main_whoami_hint")},{value:"validate-template",label:s("prompt","main_validate_template_label"),hint:s("prompt","main_validate_template_hint")},{value:"skill",label:s("prompt","main_skill_label"),hint:s("prompt","main_skill_hint")},{value:"logout",label:s("prompt","main_logout_label"),hint:s("prompt","main_logout_hint")}]});return v(e),{command:e}}async function fn(e){let t={...e.flags},n=M(),o=ke();if(!t.version&&!(n?.version??"").trim()){let r="1.0.0",a=await _.text({message:s("prompt","publish_version"),placeholder:r,defaultValue:r,validate(c){if(!c||!c.trim())return s("prompt","version_empty")}});v(a),V({version:a.trim()}),delete t.version}if(!x(t,"name")&&!(n?.name??"").trim()&&!o?.game_id){let r=n?.name||"game",a=await _.text({message:s("prompt","publish_name"),placeholder:r,defaultValue:r});v(a),rt(t,a,n?.name)}if(t.demo===void 0&&t.variant===void 0){let r=await _.select({message:Qe(o),options:[{value:"official",label:s("prompt","publish_official_label"),hint:s("prompt","publish_official_hint")},{value:"demo",label:s("prompt","publish_demo_label"),hint:s("prompt","publish_demo_hint")}]});if(v(r),r==="demo"){if(t.demo=!0,!t.parent){let a=o?.game_id||"",c=await _.text({message:s("prompt","publish_parent"),placeholder:a||s("prompt","publish_parent_placeholder"),defaultValue:a});v(c);let m=c.trim();m&&(t.parent=m)}}else t.variant="1"}let i=!t["game-id"]&&(t.demo===!0||String(t.variant??"")==="2"?!(o?.demo_game_id??"").trim():!(o?.game_id??"").trim());if(i&&!t["demo-scope"]){let r=await _.text({message:s("prompt","publish_demo_scope")});v(r),r.trim()&&(t["demo-scope"]=r.trim())}if(i&&!t["play-duration"]){let r=await _.text({message:s("prompt","publish_play_duration")});v(r),r.trim()&&(t["play-duration"]=r.trim())}if(t.yes!==!0){let r=await _.confirm({message:He(t,n,o),initialValue:!1});v(r),r||(_.cancel(s("prompt","cancel")),process.exit(0))}return t}async function _n(e){let t={...e.flags},n=M(),o=we();if(typeof t.version=="string"&&t.version.trim()&&!D(t.version.trim())&&(h.error(s("prompt","version_invalid_log",{version:t.version.trim()})),h.warn(s("prompt","version_invalid_hint")),delete t.version),!t.version){let i=(n?.version??"").trim();if(!(i&&D(i))){let r=i||"0.1.0",a=await _.text({message:s("prompt","tpl_version"),placeholder:r,defaultValue:r,validate:bi});v(a),V({version:a.trim()}),delete t.version}}if(typeof t.name=="string"&&t.name.trim()&&!P(t.name)&&(h.error(s("prompt","tpl_name_invalid_log",{name:t.name.trim()})),delete t.name),We(t,n,o)){let i=typeof t.name=="string"?t.name.trim():n?.name?.trim(),r=(i&&P(i)?i:void 0)||n?.slug?.trim()||void 0,a=await _.text({message:s("prompt","tpl_name"),placeholder:r||s("prompt","tpl_name_placeholder"),defaultValue:r&&P(r)?r:void 0,validate:vi});v(a),rt(t,a,n?.name)}if(!t.init&&!t.fork&&!me(o)&&!le(o?.template_id)){let i=await _.select({message:s("prompt","tpl_mode"),options:[{value:"publish",label:s("prompt","tpl_publish_label"),hint:s("prompt","tpl_publish_hint")},{value:"fork",label:s("prompt","tpl_fork_label"),hint:s("prompt","tpl_fork_hint")}],initialValue:"publish"});if(v(i),i==="fork"){let r=await _.text({message:s("prompt","tpl_fork_id"),placeholder:s("prompt","tpl_fork_placeholder"),validate(a){if(!a||!a.trim())return s("prompt","tpl_fork_empty")}});v(r),t.fork=r.trim()}}if(Ze(t,o,ce())&&await xn(),ze(t,n?.data_ver,o)){let i=await gn(n?.data_ver??o?.data_ver);V({data_ver:i}),delete t["data-ver"]}if(Xe(t,n?.data_summary,o)&&await hn(t),t.fork&&!x(t,"data-id")&&!x(t,"data-ver-id")){let i=await _.text({message:s("prompt","tpl_data_id"),placeholder:s("prompt","tpl_fork_placeholder")});v(i),i.trim()&&(t["data-id"]=i.trim())}return t}async function gn(e){let t=typeof e=="string"?e.trim():"",n=t&&t!=="0"?t:"";if(n){let i=await _.confirm({message:s("prompt","data_ver_reuse",{ver:n}),initialValue:!0});if(v(i),i)return n}let o=await _.text({message:n?s("prompt","data_ver_new"):s("prompt","data_ver_ask"),placeholder:n?s("prompt","data_ver_placeholder_last",{ver:n}):s("prompt","data_ver_placeholder"),validate(i){if(!i||!i.trim())return s("prompt","data_ver_empty")}});return v(o),o.trim()}async function hn(e){let t=await _.text({message:s("prompt","data_summary"),placeholder:s("prompt","data_summary_placeholder")});v(t);let n=t.trim();n&&(e["data-summary"]=n)}async function xn(){let e=await _.confirm({message:s("prompt","data_assets"),initialValue:!1});v(e),e||(_.cancel(s("prompt","cancel")),process.exit(0))}async function bn(e){let t={...e.flags},n=M();if(!x(t,"data-ver")){let o=(n?.data_ver??"").trim();if(!o||o==="0"){let i=await gn(n?.data_ver);V({data_ver:i}),delete t["data-ver"]}}return!x(t,"data-summary")&&!(n?.data_summary??"").trim()&&await hn(t),ce()||await xn(),t}async function vn(e){let t={...e.flags},n=M(),o=Se();if(!t.version&&!(n?.version??"").trim()){let i="1.0.0",r=await _.text({message:s("prompt","proj_version"),placeholder:i,defaultValue:i,validate(a){if(!a||!a.trim())return s("prompt","version_empty")}});v(r),V({version:r.trim()}),delete t.version}if(!x(t,"name")&&!(n?.name??"").trim()&&!o?.project_id){let i=n?.name||"open-source-project",r=await _.text({message:s("prompt","proj_name"),placeholder:i,defaultValue:i});v(r),rt(t,r,n?.name)}if(!t.summary&&!o?.project_id){let i=await _.text({message:s("prompt","proj_summary"),placeholder:s("prompt","proj_summary_placeholder")});v(i),i.trim()&&(t.summary=i.trim())}if(!t.cover&&!o?.project_id){let i=await _.text({message:s("prompt","proj_cover"),placeholder:"./cover.png"});v(i),i.trim()&&(t.cover=i.trim())}return t}async function yn(){let e=await _.confirm({message:p.common.login_required_confirm.text,initialValue:!0});return!(_.isCancel(e)||!e)}async function kn(e){let t={...e.flags};if(!t.force&&!t["if-needed"]){let n=await _.select({message:s("prompt","login_mode"),options:[{value:"skip",label:s("prompt","login_skip_label"),hint:s("prompt","login_skip_hint")},{value:"force",label:s("prompt","login_force_label"),hint:s("prompt","login_force_hint")}],initialValue:"skip"});v(n),n==="force"&&(t.force=!0)}return t}async function wn(e){let t={...e.flags};if(typeof t.platform=="string"&&t.platform!==""||t.all===!0)return t;let o=et(),i=z(),r=i&&o.includes(i)?i:void 0,a=s("prompt","skill_current_suffix"),c=await _.select({message:r?s("prompt","skill_platform_detected",{id:r}):s("prompt","skill_platform"),initialValue:r,options:[...Ie(o,r).map(m=>({value:m,label:m===r?`${m}${a}`:m})),{value:"__all__",label:s("prompt","skill_all_label"),hint:s("prompt","skill_all_hint")}]});return v(c),c==="__all__"?t.all=!0:t.platform=c,t}import Z from"node:fs";import U from"node:path";import{createRequire as yi}from"node:module";import{fileURLToPath as ki}from"node:url";var wi=yi(import.meta.url);function st(){return process.platform==="win32"?"lumimaker.exe":"lumimaker"}function Si(){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 Ii(e){let t=st(),n=[];for(let o of["release","debug"]){for(let i of Si())n.push(U.join(e,i,o,t));n.push(U.join(e,o,t))}return n}function Ai(e){for(let t of e)if(t){for(let n of Ii(t))if(Z.existsSync(n))return n}return null}function ji(){let e=process.platform,t=process.arch;return e==="darwin"&&t==="arm64"?"@66rpg/lumimaker-darwin-arm64":e==="darwin"&&t==="x64"?"@66rpg/lumimaker-darwin-x64":e==="win32"&&t==="x64"?"@66rpg/lumimaker-win32-x64":null}function pe(){if(process.env.CG_MAKER_CLI_BIN&&Z.existsSync(process.env.CG_MAKER_CLI_BIN))return process.env.CG_MAKER_CLI_BIN;if(process.env.LUMIMAKER_BIN&&Z.existsSync(process.env.LUMIMAKER_BIN))return process.env.LUMIMAKER_BIN;let e=U.dirname(ki(import.meta.url)),t=U.resolve(e,"..");try{t=Z.realpathSync(t)}catch{}let n=[];process.env.CARGO_TARGET_DIR&&n.push(process.env.CARGO_TARGET_DIR);let o=t;for(let c=0;c<10;c++){n.push(U.join(o,"target"));let m=U.dirname(o);if(m===o)break;o=m}let i=Ai(n);if(i)return i;let r=U.join(t,st());if(Z.existsSync(r))return r;let a=ji();if(a)try{let c=U.dirname(wi.resolve(`${a}/package.json`)),m=U.join(c,st());if(Z.existsSync(m))return m}catch{}return null}import{spawn as oo}from"node:child_process";import oe from"picocolors";var Ei=/[\u001B\u009B][[\]()#;?]*(?:(?:(?:[a-zA-Z\d]*(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)|(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-ntqry=><~]))/g;function fe(e){return e.replace(Ei,"")}function O(e){let t=fe(e),n=0,o=Array.from(t);for(let i of o){let r=i.codePointAt(0)??0;if("\u2714\u2716\u26A0\u2139".includes(i)){n+=2;continue}if(r>65535){n+=2;continue}r>=4352&&r<=4447||r>=11904&&r<=42191&&r!==12351||r>=44032&&r<=55203||r>=63744&&r<=64255||r>=65040&&r<=65049||r>=65072&&r<=65135||r>=65280&&r<=65376||r>=65504&&r<=65510?n+=2:n+=1}return n}function _e(e,t){let n=O(e);return n>=t?e:e+" ".repeat(t-n)}function Re(e,t){if(t<=4)return[e];let n=[],o=e.split(/\r?\n/);for(let i of o){if(!i){n.push("");continue}let r="",a=0,c=Array.from(i);for(let m=0;m<c.length;m++){let l=c[m],d=O(l);a+d>t&&r.length>0&&(n.push(r),r="",a=0),r+=l,a+=d}r.length>0&&n.push(r)}return n.length>0?n:[""]}import q from"picocolors";function ee(e,t,n){if(!t||t.length===0)return q.gray(n?.emptyText??s("kit","table_empty"));let o={};for(let l of e){let d=O(l.header);for(let g of t){let w=g[l.key]!=null?String(g[l.key]):"-",u=O(w);u>d&&(d=u)}l.minWidth&&d<l.minWidth&&(d=l.minWidth),l.maxWidth&&d>l.maxWidth&&(d=l.maxWidth),o[l.key]=d}let i=[];n?.title&&i.push(q.bold(n.title));let r="\u250C\u2500"+e.map(l=>"\u2500".repeat(o[l.key])).join("\u2500\u252C\u2500")+"\u2500\u2510";i.push(q.gray(r));let a="\u2502 "+e.map(l=>q.bold(_e(l.header,o[l.key]))).join(q.gray(" \u2502 "))+" \u2502";i.push(a);let c="\u251C\u2500"+e.map(l=>"\u2500".repeat(o[l.key])).join("\u2500\u253C\u2500")+"\u2500\u2524";i.push(q.gray(c));for(let l of t){let d="\u2502 "+e.map(g=>{let w=l[g.key]!=null?String(l[g.key]):"-";return _e(w,o[g.key])}).join(q.gray(" \u2502 "))+" \u2502";i.push(d)}let m="\u2514\u2500"+e.map(l=>"\u2500".repeat(o[l.key])).join("\u2500\u2534\u2500")+"\u2500\u2518";return i.push(q.gray(m)),i.join(`
|
|
10
|
+
`)}import T from"picocolors";import mt from"node:fs";import Ri from"node:os";import at from"node:path";var Pi="https://test-cg-maker.66rpg.com/common/public-info/test.json",Ti="https://cg-maker.66rpg.com/common/public-info/debug.json",Ci="https://cg-maker.66rpg.com/common/public-info/release.json",Ni="https://test-lumi.66rpg.com",Di="https://debug-lumi.66rpg.com",Li="https://lumi.66rpg.com",Mi=5e3,ge,ct;function Oi(e="",t=""){let n=`${e} ${t}`.toLowerCase();return n.includes("debug")?"debug":n.includes("test")?"test":"release"}function $i(e){return e==="debug"?Ti:e==="test"?Pi:Ci}function Fi(e){return`${e==="debug"?Di:e==="test"?Ni:Li}/`}function Ui(e,t){let n=qi(e??"");return Vi(n,t)?`${n}/`:Fi(t)}function Vi(e,t){if(!e)return!1;let n=e.toLowerCase();return t==="debug"?n.includes("debug"):t==="test"?n.includes("test"):!n.includes("debug")&&!n.includes("test")}function qi(e){let t=e.trim().replace(/\/+$/,"");return t?t.endsWith("/api")?t.slice(0,-4):t:""}var In=new WeakMap,Ji=new Set(["template","templates","works","edit-works","edit-template","edit-game","projects","edit-projects","edit-project"]),Bi=new Set(["version","environment","updatedat","updated_at","status","id","description","effectiveat","expireat"]);function An(e){let t=e.trim().toLowerCase();return t==="email"||t==="mail"||t==="e-mail"||t==="\u90AE\u7BB1"||t==="\u516C\u5F00\u90AE\u7BB1"?"email":t==="qq"||t==="qq\u53F7"||t==="qq_number"||t==="qqnumber"?"qq":t}function ut(e,t){return e==="email"?"\u90AE\u7BB1":e==="qq"?"QQ":t.trim()||e}function Gi(e){return!!e&&!Ji.has(e)&&!Bi.has(e)}function pt(e,t){!t.value||!Gi(t.key)||e.some(n=>n.key===t.key)||e.push(t)}function Wi(e){let t=[];for(let[n,o]of Object.entries(e))pt(t,{key:n,label:ut(n,n),value:o.trim()});return t}function Ki(e){let t=n=>n==="email"?0:n==="qq"?1:2;return[...e].sort((n,o)=>t(n.key)-t(o.key))}function Qi(e){let t=Ki(e).map(n=>`${n.label.trim()} ${n.value.trim()}`.trim()).filter(Boolean);return t.length?`\uFF08${t.join("\uFF0C")}\uFF09`:""}function Hi(e){let t=e.trim().replace(/^\uFEFF/,"").trim();if(!t||t.startsWith("<"))return lt({},[]);let n=t;for(let r=0;r<3&&typeof n=="string";r+=1)try{n=JSON.parse(n.trim())}catch{return lt({},[])}let o=[],i={};return jn(n,i,o),lt(i,o)}function lt(e,t){return In.set(e,t),e}function jn(e,t,n){if(!e||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)Sn(t,n,i);return}let o=e;if(Array.isArray(o.items))for(let i of o.items)Sn(t,n,i);for(let i of["data","list","result","content","payload"]){let r=o[i];r&&typeof r=="object"&&jn(r,t,n)}for(let[i,r]of Object.entries(o)){if(i==="items"||i==="data"||i==="list"||i==="result"||i==="content"||i==="payload")continue;let a=dt(r);if(!a)continue;let c=An(i);t[c]||=a,pt(n,{key:c,label:ut(c,i),value:a})}}function Sn(e,t,n){if(!n||typeof n!="object"||Array.isArray(n))return;let o=n,i=String(o.keyName??o.key_name??""),r=An(i);if(!r)return;let a=dt(o.keyValue??o.key_value??o[r]);if(!a)return;e[r]||=a;let c=dt(o.name)||ut(r,i);pt(t,{key:r,label:c,value:a})}function dt(e){return typeof e=="string"?e.trim():typeof e=="number"&&Number.isFinite(e)?String(e):""}function Yi(e=ge??{}){return Qi(In.get(e)??Wi(e))}function W(e,t){return ve(e,{contact:Yi(t??ge??{})})}async function te(){if(ge===void 0){if(process.env.NODE_TEST_CONTEXT){ge={};return}ct||(ct=er()),ge=await ct}}function zi(){let e=Xi();if(!e)return{lumi:"",cg:""};try{let n=JSON.parse(mt.readFileSync(e,"utf8")).web_config??{};return{lumi:typeof n.base_lumi_api=="string"?n.base_lumi_api:"",cg:typeof n.base_cg=="string"?n.base_cg:""}}catch{return{lumi:"",cg:""}}}function Xi(){let e=Zi();if(e)return e;let t=pe();if(t){let o=at.join(at.dirname(t),"config.json");if(mt.existsSync(o))return o}let n=at.join(j(Ri.homedir()),"config.json");if(mt.existsSync(n))return n}function Zi(){let e=process.argv.slice(2);for(let t=0;t<e.length;t+=1){let n=e[t];if(n==="--config"&&e[t+1])return e[t+1];if(n.startsWith("--config="))return n.slice(9)}}async function er(){let e=zi(),t=Oi(e.lumi,e.cg),n=new AbortController,o=setTimeout(()=>n.abort(),Mi);try{let i=await fetch($i(t),{signal:n.signal,headers:{Accept:"application/json,text/plain,*/*","User-Agent":"lumimaker",Referer:Ui(e.lumi,t)}});return i.ok?Hi(await i.text()):{}}catch{return{}}finally{clearTimeout(o)}}function En(e,t,n){let o="\u2500".repeat(e+4);return t(n?`\u250C${o}\u2510`:`\u2514${o}\u2518`)}function Rn(e,t){return t("\u2502")+" ".repeat(e+4)+t("\u2502")}function tr(e,t,n){let o=Math.max(0,t-O(e));return n("\u2502")+" "+e+" ".repeat(o)+" "+n("\u2502")}function N(e,t,n){let o=n?.status??"info",i=o==="success"?T.green("\u2714"):o==="error"?T.red("\u2716"):o==="warn"?T.yellow("\u26A0"):T.cyan("\u2139"),r=o==="success"?T.green:o==="error"?T.red:o==="warn"?T.yellow:T.cyan,a=process.stdout.columns&&process.stdout.columns>30?process.stdout.columns:80,c=Math.min(Math.max(a-1,20),84),m=Math.max(16,c-6),l=t.filter(S=>S.value!=null&&S.value!==""),g=l.reduce((S,re)=>Math.max(S,O(re.label)),0)+2,w=Math.max(16,m-g-1),u=[],R=`${i} ${T.bold(e)}`;u.push(R);for(let S of l){let re=String(S.value),Rt=Re(re,w);for(let be=0;be<Rt.length;be++){let Pt=Rt[be],Tt=S.highlight?T.bold(T.cyan(Pt)):Pt;if(be===0){let Ue=T.gray(_e(S.label+":",g));u.push(`${Ue} ${Tt}`)}else{let Ue=" ".repeat(g+1);u.push(`${Ue}${Tt}`)}}}let b=Math.max(...u.map(S=>O(S)),Math.min(40,m));n?.width&&(b=Math.max(b,n.width)),b=Math.min(b,m);let C=[];for(let S of u)O(S)<=b?C.push(S):C.push(...Re(fe(S),b));if(u.length=0,u.push(...C),n?.footer){u.push(T.dim("\u2500".repeat(b)));let S=Re(n.footer,b);for(let re of S)u.push(T.dim(re))}let Q=[];Q.push(En(b,r,!0)),Q.push(Rn(b,r));for(let S of u)Q.push(tr(S,b,r));return Q.push(Rn(b,r)),Q.push(En(b,r,!1)),Q.join(`
|
|
11
|
+
`)}function Pn(e,t){let n=p.error,o=[];return t?.code!=null&&o.push({label:n.label_code.text,value:t.code}),o.push({label:n.label_detail.text,value:e,highlight:!1}),t?.hint&&o.push({label:n.label_hint.text,value:t.hint,highlight:!0}),t?.logPath&&o.push({label:n.label_log_path.text,value:t.logPath}),N(n.title.text,o,{status:"error",footer:W(n.footer.text)})}function nr(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 Tn(e){return e?e.includes("\uFFFD")||e.includes("\\\\?\\"):!1}function Cn(e){switch(nr(e)){case"EPERM":case"EACCES":return s("kit","sys_denied");case"ENOENT":return s("kit","sys_missing");case"EBUSY":case"ENOTEMPTY":return s("kit","sys_busy");case"ENOTDIR":case"EISDIR":return s("kit","sys_type");case"EINVAL":return s("kit","sys_invalid");case"EMFILE":case"ENFILE":return s("kit","sys_too_many");default:return s("kit","sys_unknown")}}function J(e){let t=e instanceof Error?e.message:String(e??"");return Tn(t)?Cn(e):t}function ft(e){return e&&(Tn(e)?Cn(new Error(e)):e)}import I from"picocolors";function or(e){return String(e.post_url??"").trim()}function ir(e){return Number(e.post_status)===4}function _t(e,t,n){t.post_id&&e.push({label:n.label_post_id.text,value:s("fmt","post_id",{id:t.post_id})})}function he(e,t,n){let o=[],i=or(t);if(i&&o.push(ir(t)?s("fmt","post_url_line",{url:i}):s("fmt","post_url_draft_line",{url:i})),n?.pull&&!t.skipped_upload){let r=cr(t);r&&o.push(s("fmt","create_pull_line",{cmd:r}))}return o.length?`${e}
|
|
12
|
+
${o.join(`
|
|
13
|
+
`)}`:e}function Dn(e){return!e||e<=0?"-":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(2)} MB`}function rr(e){let t=typeof e=="number"?e:Number(e);if(!Number.isFinite(t)||t<=0)return"-";let n=new Date(t*1e3);if(Number.isNaN(n.getTime()))return"-";let o=i=>String(i).padStart(2,"0");return`${n.getFullYear()}-${o(n.getMonth()+1)}-${o(n.getDate())} ${o(n.getHours())}:${o(n.getMinutes())}:${o(n.getSeconds())}`}function Ln(e){let t=typeof e=="number"?e:Number(e),n=p.shelf;return t===1?I.green(n.val_shelf_on.text):t===2?n.val_shelf_off.text:s("fmt","val_unknown")}function sr(e){let t=typeof e=="number"?e:Number(e),n=p.versions;switch(t){case 1:return n.status_draft.text;case 2:return n.status_machine.text;case 3:return n.status_human.text;case 4:return I.green(n.status_passed.text);case 5:return I.red(n.status_rejected.text);default:return n.status_unknown.text}}function Mn(e,t,n,o){return e===2?I.yellow(n):e===3?o:t}function gt(e,t){switch(typeof t=="number"?t:Number(t)){case 4:return{title:e.title_passed.text,status:"success",footer:e.footer_passed.text};case 2:case 3:return{title:e.title_reviewing.text,status:"info",footer:e.footer_reviewing.text};case 5:return{title:e.title_rejected.text,status:"error",footer:e.footer_rejected.text};default:return{title:e.title_success.text,status:"success",footer:e.footer_success.text}}}function ar(e){let t=p.whoami;switch(e){case"signed_template_author":return t.role_signed_template_author.text;case"signed_author":return t.role_signed_author.text;case"author":return t.role_author.text;case"user":return t.role_user.text;case"moderator":return t.role_moderator.text;default:return}}function On(e){let t=p.whoami;if(!e.logged_in)return e.expired?N(t.title_expired.text,[{label:s("fmt","label_status"),value:t.status_expired.text},{label:s("fmt","label_hint"),value:t.hint_relogin.text,highlight:!0}],{status:"warn"}):e.offline?N(t.title_offline.text,[{label:s("fmt","label_status"),value:t.status_offline.text},{label:s("fmt","label_hint"),value:t.hint_check_network.text}],{status:"warn"}):N(t.title_not_logged_in.text,[{label:s("fmt","label_status"),value:t.status_not_logged_in.text},{label:s("fmt","label_action"),value:t.hint_login_now.text,highlight:!0}],{status:"info"});let n=[],o=e.nickname,i=e.username||e.lumi_username;o&&n.push({label:t.label_nickname.text,value:o,highlight:!0}),i&&n.push({label:t.label_lumi_username.text,value:i}),e.display_role_name&&n.push({label:t.label_display_role.text,value:e.display_role_name}),e.lumi_ok===!1&&n.push({label:s("fmt","label_hint"),value:t.lumi_not_ready.text,highlight:!0});let r=Array.isArray(e.role_names)?e.role_names.filter(c=>typeof c=="string"&&c):[],a=r.length?r:Array.isArray(e.lumi_roles)?e.lumi_roles.map(c=>ar(String(c))).filter(c=>!!c):[];return a.length&&n.push({label:t.label_lumi_roles.text,value:a.join(s("fmt","list_sep"))}),N(t.title_logged_in.text,n,{status:"success",footer:t.footer_logged_in.text})}function $n(e){let t=p.publish,n=e.variant===2,o=[{label:n?t.label_game_id_demo.text:t.label_game_id_official.text,value:e.game_id,highlight:!0},{label:t.label_release_version.text,value:e.version_name},{label:t.label_version_id.text,value:e.version_id},{label:t.label_version_no.text,value:e.version_no?s("fmt","version_no",{n:e.version_no}):void 0},{label:t.label_variant_type.text,value:Mn(e.variant,t.val_official.text,t.val_demo.text,t.val_derived.text)}];n&&e.parent_game_id&&o.push({label:t.label_parent_game_id.text,value:e.parent_game_id}),e.bytes&&o.push({label:t.label_package_size.text,value:Dn(e.bytes)}),_t(o,e,t);let i=gt(t,e.status);return he(N(i.title,o,{status:i.status,footer:i.footer}),e)}function cr(e){let t=String(e.slug||"").trim(),n=String(e.owner||"").trim();if(!t||!n)return;let o=String(e.version||"").trim(),i=o?`${n}/${t}@${o}`:`${n}/${t}`,r=String(e.data_ver_id||"").trim();return r&&r!=="0"?`npx @66rpg/lumimaker-create@latest ${i} --with-assets ${r}`:`npx @66rpg/lumimaker-create@latest ${i}`}function Fn(e,t){let n=p.publish_template,o=t==="publish-template-data"||e.pack_only===!0,i=[{label:n.label_template_id.text,value:e.template_id,highlight:!0},{label:n.label_template_name.text,value:e.template_name},{label:n.label_slug.text,value:e.slug},{label:n.label_version.text,value:e.version},{label:n.label_revision_id.text,value:e.revision_id}];e.data_ver&&e.data_ver!=="0"&&i.push({label:n.label_data_ver.text,value:e.data_ver}),e.data_ver_id&&e.data_ver_id!=="0"&&i.push({label:n.label_data_id.text,value:e.data_ver_id,highlight:o&&!(e.data_ver&&e.data_ver!=="0")}),e.data_summary&&i.push({label:n.label_data_summary.text,value:e.data_summary}),o||_t(i,e,n);let r;if(o)r=N(n.title_data_success.text,i,{status:"success",footer:n.footer_data_success.text});else{let a=gt(n,e.status);r=N(a.title,i,{status:a.status,footer:a.footer})}return he(r,e,{pull:!0})}function Un(e){let t=p.publish_project,n=[{label:t.label_project_id.text,value:e.project_id,highlight:!0},{label:t.label_project_name.text,value:e.version_name},{label:t.label_release_version.text,value:e.version_name},{label:t.label_version_id.text,value:e.version_id}];e.bytes&&n.push({label:t.label_package_size.text,value:Dn(e.bytes)}),_t(n,e,t);let o=gt(t,e.status);return he(N(o.title,n,{status:o.status,footer:o.footer}),e)}function Vn(e){let t=p.templates,n=e.templates||e.items||[],o=[{key:"template_id",header:t.col_template_id.text,minWidth:14},{key:"name",header:t.col_template_name.text,minWidth:16},{key:"latest_version_no",header:t.col_latest_version.text,minWidth:10}],i=n.map(c=>({template_id:I.cyan(c.template_id||c.id||"-"),name:c.name||c.template_name||"-",latest_version_no:c.latest_version_no?s("fmt","version_no",{n:c.latest_version_no}):"-"})),r=ee(o,i,{emptyText:t.empty_list.text,title:I.bold(t.table_title.text)}),a=e.total!=null?I.dim(`
|
|
14
|
+
`+s("common","page_info_pattern",{page:String(e.page||1),count:String(e.count||i.length),total:String(e.total)})):"";return r+a}function qn(e){let t=p.games,n=e.games||[],o=[{key:"game_id",header:t.col_game_id.text,minWidth:14},{key:"name",header:t.col_game_name.text,minWidth:16},{key:"variant",header:t.col_variant.text,minWidth:10},{key:"latest_version_no",header:t.col_latest_version.text,minWidth:10}],i=n.map(c=>({game_id:I.cyan(c.game_id||c.id||"-"),name:c.name||"-",variant:Mn(c.variant,t.val_official.text,t.val_demo.text,t.val_derived.text),latest_version_no:c.latest_version_no?s("fmt","version_no",{n:c.latest_version_no}):"-"})),r=ee(o,i,{emptyText:t.empty_list.text,title:I.bold(t.table_title.text)}),a=e.total!=null?I.dim(`
|
|
15
|
+
`+s("common","page_info_pattern",{page:String(e.page||1),count:String(e.count||i.length),total:String(e.total)})):"";return r+a}function Jn(e){let t=p.projects,n=e.projects||[],o=[{key:"project_id",header:t.col_project_id.text,minWidth:14},{key:"name",header:t.col_project_name.text,minWidth:16},{key:"latest_version_no",header:t.col_latest_version.text,minWidth:10}],i=n.map(c=>({project_id:I.cyan(c.project_id||c.id||"-"),name:c.name||c.project_name||"-",latest_version_no:c.latest_version_no?s("fmt","version_no",{n:c.latest_version_no}):"-"})),r=ee(o,i,{emptyText:t.empty_list.text,title:I.bold(t.table_title.text)}),a=e.total!=null?I.dim(`
|
|
16
|
+
`+s("common","page_info_pattern",{page:String(e.page||1),count:String(e.count||i.length),total:String(e.total)})):"";return r+a}function Pe(e,t){let n=p.versions,o=[{key:"version_id",header:n.col_version_id.text,minWidth:14},{key:"version",header:n.col_version.text,minWidth:10},{key:"status",header:n.col_status.text,minWidth:8},{key:"changelog",header:n.col_changelog.text,minWidth:12},{key:"published_at",header:n.col_published_at.text,minWidth:18},{key:"post",header:n.col_post.text,minWidth:14}],i=t.map(r=>{let a=r.post_id||"",c="-";if(a){let m=Number(r.post_status)===4;c=`${a} \xB7 ${m?n.post_public.text:n.post_draft.text}`}return{version_id:I.cyan(r.version_id||r.revision_id||"-"),version:r.version_name||r.version||r.version_no||"-",status:sr(r.status??r.audit_status),changelog:r.changelog||"-",published_at:rr(r.published_at),post:c}});return ee(o,i,{emptyText:n.empty_versions.text,title:I.bold(e)})}function Bn(e,t){let n=p.templates,o=[{key:"data_id",header:n.col_data_id.text,minWidth:14},{key:"data_ver",header:n.col_data_ver.text,minWidth:10},{key:"summary",header:n.col_data_summary.text,minWidth:12}],i=t.map(r=>({data_id:I.cyan(r.data_id||"-"),data_ver:r.data_ver||"-",summary:r.summary||"-"}));return ee(o,i,{emptyText:n.empty_data.text,title:I.bold(e)})}function $(e){if(e==null||typeof e=="object")return;let t=String(e).trim();return t||void 0}function lr(e){let t=$(e);if(!(!t||t==="0"))return t}function mr(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(e);if(!(!Number.isFinite(t)||t===0))return t===2?s("fmt","val_demo"):t===3?p.games.val_derived.text:t===1?s("fmt","val_official"):s("fmt","val_unknown")}function dr(e,t){let n=t==="template"?["template_id","id"]:t==="project"?["project_id","id"]:["game_id","id"];for(let o of n){let i=lr(e[o]);if(i)return t==="game"?{label:(typeof e.variant=="number"?e.variant:Number(e.variant))===2?s("fmt","label_game_demo_id"):s("fmt","label_game_official_id"),id:i}:t==="template"?{label:s("fmt","label_template_id"),id:i}:{label:s("fmt","label_project_id"),id:i}}}function Te(e,t,n="game"){let o=[],i=$(t.name)??$(t.template_name)??$(t.project_name);i&&o.push({label:s("fmt","label_name"),value:i,highlight:!0});let r=dr(t,n);r&&o.push({label:r.label,value:r.id});let a=mr(t.variant);a&&o.push({label:s("fmt","label_type"),value:a});let c=$(t.parent_game_id);c&&o.push({label:s("fmt","label_parent"),value:c});let m=$(t.summary);m&&o.push({label:s("fmt","label_summary"),value:m});let l=$(t.latest_version_name)??(t.latest_version_no!=null&&t.latest_version_no!==""?s("fmt","version_no",{n:t.latest_version_no}):void 0);l&&o.push({label:s("fmt","label_version"),value:l}),t.status!=null&&t.status!==""&&o.push({label:s("fmt","label_shelf"),value:Ln(t.status)});let d=$(t.demo_scope);d&&o.push({label:s("fmt","label_demo_scope"),value:d});let g=$(t.play_duration);if(g&&o.push({label:s("fmt","label_play_duration"),value:g}),t.post_id&&o.push({label:n==="game"?s("fmt","label_work_post_id"):s("fmt","label_post_id"),value:s("fmt","post_id",{id:t.post_id})}),t.post_status!=null&&t.post_status!==""){let w=Number(t.post_status)===4;o.push({label:s("fmt","label_post_status"),value:w?p.versions.post_public.text:p.versions.post_draft.text})}return he(N(e,o,{status:"info"}),t)}function Gn(e={}){let t=$(e.message)??s("fmt","logout_done");return I.green(`\u2714 ${t}`)}function Ce(e,t){let n=p.shelf,o=s("fmt",`type_${e}`),i=e==="template"?"template_id":e==="game"?"game_id":"project_id",r=e==="template"?"template_name":e==="game"?"name":"project_name",a=[{label:s("fmt","shelf_id",{type:o}),value:t[i]||"-",highlight:!0}];return t[r]&&a.push({label:s("fmt","shelf_name",{type:o}),value:t[r]}),t.post_id&&a.push({label:n.label_community_post.text,value:s("fmt","post_id",{id:t.post_id})}),t.shelf_status&&a.push({label:n.label_shelf.text,value:Ln(t.shelf_status)}),t.version_id&&a.push({label:n.label_version_id.text,value:t.version_id}),t.changelog&&a.push({label:n.label_changelog.text,value:t.changelog}),he(N(`${o}${n.card_title_shelf_updated.text}`,a,{status:"success"}),t)}function Wn(e){let t=p.skill,n=s("fmt","list_sep"),o=Array.isArray(e.copied)?e.copied.join(n):"-",i=Array.isArray(e.targets)?e.targets.join(n):"-";return N(t.card_title.text,[{label:t.label_kit.text,value:e.kit||"-"},{label:t.label_copied.text,value:o},{label:t.label_targets.text,value:i,highlight:!0}],{status:"success"})}function Nn(e){return e.replace(/https?:\/\/\S*test-lumi\.66rpg\.com\S*/gi,"").replace(/https?:\/\/\S*lumi\.66rpg\.com\/api\S*/gi,"").replace(/\b(?:test-lumi\.66rpg\.com|lumi\.66rpg\.com\/api|base_lumi_api)\b/gi,"").replace(/[ \t]{2,}/g," ").trim()}function Kn(e){let t=p.error,n=p.error_codes,o=Nn(ft(e.message||t.default_message.text)),i=e.hint?Nn(ft(e.hint)):e.hint;if(!i){let r=e.code!=null?String(e.code):"";r==="2001"||o.includes("\u672A\u767B\u5F55")?i=n[2001].text:r==="2003"||o.includes("\u51ED\u8BC1\u5DF2\u8FC7\u671F")?i=n[2003].text:o.includes("\u6821\u9A8C\u5931\u8D25")||o.includes("\u54C8\u5E0C")||o.includes("MD5")||o.includes("SHA-256")||o.includes("checksum")?i=W(n["1003_checksum"].text):o.includes("dist")||o.includes("index.html")?i=n["1001_missing_dist"].text:o.includes("scripts.")||/scripts\s/.test(o)?i=n["1001_missing_script"].text:o.includes("\u6682\u65E0\u5DF2\u901A\u8FC7\u5BA1\u6838")||o.includes("\u5C1A\u672A\u901A\u8FC7\u5BA1\u6838")||o.includes("\u8FD8\u5728\u5BA1\u6838\u4E2D")?i=n["1001_no_approved"].text:r==="2002"||r==="8004"||o.includes("\u6743\u9650")||o.includes("\u7B7E\u7EA6")?i=n[8004].text:n[r]&&(i=n[r].text)}return i&&(i=W(i)),Pn(o,{code:e.code,hint:i})}var Qn=new Set(["login","logout","skill"]);function Hn(e){let t=e.code!=null?String(e.code):"";if(t==="2001"||t==="2003")return!0;let n=e.message||"";return n.includes("\u672A\u767B\u5F55")||n.includes("\u51ED\u8BC1\u5DF2\u8FC7\u671F")||n.includes("\u767B\u5F55\u51ED\u8BC1\u5DF2\u8FC7\u671F")||n.includes("\u767B\u5F55\u5DF2\u5931\u6548")||n.includes("refresh_token \u5DF2\u5931\u6548")}function Yn(e,t){if(e!=="whoami"||!t||typeof t!="object")return!1;let n=t;return n.offline?!1:n.logged_in===!1||n.expired===!0}function zn(e,t={stdinTty:!!process.stdin.isTTY,stdoutTty:!!process.stdout.isTTY}){return e.skipLoginPrompt||e.command&&Qn.has(e.command)||e.isAgent||e.isJson||e.isInteractive===!1?!1:!!(t.stdinTty&&t.stdoutTty)}function Xn(e){return!(!e.isAgent||e.skipLoginPrompt||e.command&&Qn.has(e.command))}import ne from"node:fs";import Ne from"node:os";import ur from"node:path";var pr="analytics-identity.json";function ht(e){return ur.join(j(e),pr)}function Zn(e){if(typeof e=="number"&&Number.isFinite(e)&&e>0)return String(Math.trunc(e));if(typeof e=="string"){let t=e.trim();if(/^[1-9][0-9]{0,18}$/.test(t))return t}}function xt(e,t=Ne.homedir()){let n=Zn(e);if(n){try{let o=j(t);ne.mkdirSync(o,{recursive:!0}),ne.writeFileSync(ht(t),`${JSON.stringify({uid:n})}
|
|
17
|
+
`)}catch{}return n}}function De(e=Ne.homedir()){try{let t=ht(e);ne.existsSync(t)&&ne.unlinkSync(t)}catch{}}function bt(e=Ne.homedir()){try{let t=ht(e);if(!ne.existsSync(t))return;let n=JSON.parse(ne.readFileSync(t,"utf8"));return Zn(n?.uid)}catch{return}}function eo(e=Ne.homedir()){let t=bt(e);return t?{uid:t,logged_in:!0}:{logged_in:!1}}function vt(e){return!!(e.isJson&&!e.isAgent)}function to(e){let t=fe(e).trim();if(!t)return"";let n=t.match(/^(?:\d{4}-\d{2}-\d{2}T[\d:.]+Z\s+)?(INFO|DEBUG|WARN|ERROR)\s+(.*)$/);if(n){let o=n[1],i=n[2];if(o==="INFO")return`${k.brandTag} ${k.badgeInfo} ${i}`;if(o==="DEBUG")return`${k.brandTag} ${k.badgeDebug} ${oe.gray(i)}`;if(o==="WARN")return`${k.brandTag} ${k.badgeWarn} ${oe.yellow(i)}`;if(o==="ERROR")return`${k.brandTag} ${k.badgeError} ${oe.red(i)}`}return t.startsWith("[lumimaker]")?e:`${k.brandTag} ${e}`}function yt(e,t){return new Promise(n=>{let o=oo(e,t,{stdio:"inherit"});o.on("exit",i=>n(i??0)),o.on("error",i=>{console.error(oe.red(s("kit","run_failed",{e:J(i)}))),n(1)})})}function _r(e,t){let n=t.includes("--json")?[...t]:[...t,"--json"];return new Promise(o=>{let i="",r="",a=oo(e,n,{stdio:["inherit","pipe","pipe"]});a.stdout.on("data",c=>{i+=c.toString("utf8")}),a.stderr.on("data",c=>{let l=(r+c.toString("utf8")).split(/\r?\n/);r=l.pop()??"";for(let d of l)d.trim()&&process.stderr.write(to(d)+`
|
|
18
|
+
`)}),a.on("exit",c=>{r.trim()&&process.stderr.write(to(r)+`
|
|
19
|
+
`);let m=i.trim();try{let l=JSON.parse(m);o({code:c??0,envelope:l,rawStdout:i})}catch{o({code:c??0,envelope:null,rawStdout:i})}}),a.on("error",c=>{console.error(oe.red(s("kit","cli_failed",{e:J(c)}))),o({code:1,envelope:null,rawStdout:""})})})}async function no(e){return Xn(e)?(tn(s("kit","login_required_agent")),12):gr(e)}async function gr(e){if(!zn(e))return null;if(!await yn())return h.warn(p.common.login_cancelled.text),null;let n=await yt(e.binPath,["login"]);return n!==0?(h.error(p.common.login_failed.text),n||1):(h.success(p.common.login_retrying.text),Le({...e,skipLoginPrompt:!0}))}function hr(e,t){if(!e)return null;let n=e,o=n.command;return o!=="need-input"&&o!=="update-available"&&o!=="login-required"?null:typeof n.code=="number"&&n.code>0?n.code:t>0?t:11}function xr(e,t,n){try{if(e==="logout"&&(n===0||t?.success===!0)){De();return}let o=t?.data;o&&typeof o=="object"&&o!==null&&"uid"in o&&xt(o.uid)}catch{}}async function Le(e){let t=te(),{binPath:n,args:o,isJson:i,command:r,subcommand:a,isAgent:c}=e,m=o.includes("--help")||o.includes("-h")||o.includes("--version")||o.includes("-V");if(r==="login"||m)return yt(n,o);if(vt(e)){let d=o.includes("--json")?o:[...o,"--json"],g=await yt(n,d);if(r==="logout"&&g===0)try{De()}catch{}return g}let l=await _r(n,o);if(xr(r,l.envelope,l.code),await t,!l.envelope)return l.rawStdout&&process.stdout.write(l.rawStdout),l.code;if(l.envelope.success===!0){let d=l.envelope.data??{};if(Yn(r,d)){let g=await no(e);if(g!=null)return g}return vt(e)?(l.rawStdout&&process.stdout.write(l.rawStdout),0):(br(r,a,o,d),0)}if(l.envelope.success===!1){let d=hr(l.envelope,l.code);if(c&&d!=null)return l.rawStdout&&process.stdout.write(l.rawStdout),d;let g=l.envelope.error??{message:s("kit","op_failed")};if(Hn(g)){let w=await no(e);if(w!=null)return w}return vt(e)?(l.rawStdout&&process.stdout.write(l.rawStdout),l.code||2):(console.error(Kn(g)),l.code||2)}return l.rawStdout&&process.stdout.write(l.rawStdout),l.code}function br(e,t,n,o){if(e==="whoami"){console.log(On(o));return}if(e==="publish"){console.log($n(o));return}if(e==="publish-template"||e==="publish-template-data"){console.log(Fn(o,e));return}if(e==="publish-project"){console.log(Un(o));return}if(e==="games"){if(t==="update"){console.log(Ce("game",o));return}if(n.includes("--query")){console.log(Te(p.games.query_card_title.text,o,"game"));return}if(n.includes("--versions")){console.log(Pe(p.games.versions_title.text,Array.isArray(o)?o:[]));return}console.log(qn(o));return}if(e==="templates"){if(t==="update"){console.log(Ce("template",o));return}if(n.includes("--query")){console.log(Te(p.templates.query_card_title.text,o,"template"));return}if(n.includes("--versions")){console.log(Pe(p.templates.versions_title.text,Array.isArray(o)?o:[]));return}if(n.includes("--data")){console.log(Bn(p.templates.data_packages_title.text,o.items||[]));return}console.log(Vn(o));return}if(e==="projects"){if(t==="update"){console.log(Ce("project",o));return}if(n.includes("--query")){console.log(Te(p.projects.query_card_title.text,o,"project"));return}if(n.includes("--versions")){console.log(Pe(p.projects.versions_title.text,Array.isArray(o)?o:[]));return}console.log(Jn(o));return}if(e==="skill"){console.log(Wn(o));return}if(e==="logout"){console.log(Gn(o));return}console.log(oe.green(`\u2714 ${p.common.success_default.text}`))}var kt={CliCommandResult:"CliCommandResult"},vr=new Set(["publish","publish-template","publish-template-data","publish-project","login","logout","whoami","games","templates","projects","validate-template","validate","skill","init"]),yr=new Set(["update","list","versions","query"]),kr=new Set(["bin_missing","usage","version_invalid","unexpected_positional","validate_fail","need_input","update","login_required","fail"]);function io(e){if(e)return vr.has(e)?e:"other"}function ro(e){if(e)return yr.has(e)?e:void 0}function so(e){if(e)return kr.has(e)?e:void 0}function wt(e){return e===0?"ok":e===10?"update":e===11?"need_input":e===12?"login_required":e===2?"usage":"fail"}import ie from"node:fs";import Nr from"node:os";import Dr from"node:path";import At from"node:fs";import wr from"node:os";import ao from"node:path";var Oe="huanguang",co="lumimaker_npm",lo="lumimaker_cli",Sr=`https://fx-it.66rpg.com:8206/sa?project=${Oe}`;function St(e,t=Oe){try{let n=new URL(e);return n.protocol==="https:"&&n.hostname==="fx-it.66rpg.com"&&n.port==="8206"&&n.pathname==="/sa"&&n.searchParams.get("project")===t&&!n.username&&!n.password}catch{return!1}}function Me(e,t){return String(e[t]??"").trim().toLowerCase()}function Ir(e){let t=Me(e,"LUMIMAKER_NO_ANALYTICS");if(t==="1"||t==="true")return!0;let n=Me(e,"LUMIMAKER_ANALYTICS");if(n==="0"||n==="false")return!0;let o=Me(e,"CI");return!!(o==="true"||o==="1"||e.NODE_TEST_CONTEXT)}function Ar(){try{let e=JSON.parse(At.readFileSync(ao.join(Y(),"package.json"),"utf8"));return typeof e.version=="string"?e.version:""}catch{return""}}function jr(e){try{let t=ao.join(j(e),"config.json");if(!At.existsSync(t))return;let n=JSON.parse(At.readFileSync(t,"utf8"));return n&&typeof n=="object"?n:void 0}catch{return}}function Er(e){let t=e?.web_config,n=typeof t?.type=="string"?t.type:"",o=typeof t?.base_cg=="string"?t.base_cg:"";return n&&n!=="1"||o.toLowerCase().includes("test")?"test":"release"}function Rr(e){let t=e?.env??process.env,n=e?.homeDir??wr.homedir(),o=e?.fileConfig??(e?.skipFile?void 0:jr(n)),i=Er(o),r=o?.sensorsAnalytics,a=!0;typeof r?.enabled=="boolean"&&(a=r.enabled),Ir(t)&&(a=!1);let c=Sr,m=typeof r?.serverUrl=="string"?r.serverUrl.trim():"";m&&St(m)&&(c=m);let l=typeof t.LUMIMAKER_SENSORS_URL=="string"?t.LUMIMAKER_SENSORS_URL.trim():"";l&&St(l)&&(c=l),St(c)||(a=!1);let d=Me(t,"LUMIMAKER_ANALYTICS_LOG"),g=i!=="release"&&(r?.showLog===!0||d==="1"||d==="true");return{enabled:a,serverUrl:c,showLog:g,deployEnv:i,releaseId:e?.releaseId??Ar()}}var It;function xe(){return It||(It=Rr()),It}var Pr=/^\$?[A-Za-z][A-Za-z0-9_]{0,99}$/,Tr=new Set(["access_token","token","cookie","authorization","phone","mobile","wechat","qq","content","body","draft_title","search","query","error","message","stack","order_no","password","refresh_token","nick_name","nickname","username","lumi_username","dest","dest_dir","cwd","argv","from_dir","path","filepath"]);function Cr(e){if(e!=null){if(typeof e=="string")return e.slice(0,256);if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(typeof e=="boolean"||e instanceof Date)return e;if(Array.isArray(e))return e.slice(0,20).map(t=>t.slice(0,256))}}function mo(e){let t={};for(let[n,o]of Object.entries(e)){if(!Pr.test(n)||Tr.has(n.toLowerCase()))continue;let i=Cr(o);i!==void 0&&(t[n]=i)}return t}var Lr=100,Mr=600,Or=700,$r="analytics-device-id",$e=[],Fe=new Set,K,jt=!1;function uo(e){try{return`${e}-${crypto.randomUUID()}`}catch{return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,12)}`}}function po(e=Nr.homedir()){if(K)return K;let t=j(e),n=Dr.join(t,$r);try{if(ie.existsSync(n)){let i=ie.readFileSync(n,"utf8").trim();if(i)return K=i,i}let o=uo("cli");return ie.mkdirSync(t,{recursive:!0}),ie.writeFileSync(n,`${o}
|
|
20
|
+
`,{encoding:"utf8",flag:"wx"}),K=o,o}catch{try{if(ie.existsSync(n)){let o=ie.readFileSync(n,"utf8").trim();if(o)return K=o,o}}catch{}return K=uo("session"),K}}function Fr(){let e=Number.parseInt(process.versions.node,10);return Number.isFinite(e)?e:void 0}function Ur(){return bt()??po()}function Vr(){let e=xe(),t=eo();return{product:co,app_id:lo,deploy_env:e.deployEnv,env:e.deployEnv==="release"?"production":"development",release_id:e.releaseId,surface:"cli",device_type:"desktop",device_code:po(),event_schema_version:2,os_platform:process.platform,os_arch:process.arch,node_major:Fr(),logged_in:t.logged_in,uid:t.uid,$is_login_id:!!t.uid}}function qr(e){Fe.add(e),e.finally(()=>Fe.delete(e))}async function Jr(e,t){let n=xe();if(!n.enabled)return;let o={distinct_id:Ur(),time:Date.now(),type:"track",event:e,project:Oe,properties:{$lib:"Node",$lib_version:n.releaseId||"0",$lib_method:"code",...mo({...Vr(),...t})}};n.showLog&&console.error(`[lumimaker analytics] ${e}`);let i=Buffer.from(JSON.stringify(o),"utf8").toString("base64"),r=`data=${encodeURIComponent(i)}&gzip=0`,a=await fetch(n.serverUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:r,redirect:"error",signal:AbortSignal.timeout(Mr)});n.showLog&&console.error(`[lumimaker analytics] ${e} ${a.status}`)}function fo(){if(jt)return;jt=!0;let e=$e.splice(0);for(let t of e)qr(Jr(t.name,t.properties).catch(()=>{}));jt=!1}function _o(e,t={}){try{if(!xe().enabled)return;$e.length>=Lr&&$e.shift(),$e.push({name:e,properties:t}),fo()}catch{}}async function go(e=Or){try{if(fo(),Fe.size===0)return;await Promise.race([Promise.allSettled([...Fe]),new Promise(t=>{setTimeout(t,e).unref?.()})])}catch{}}function ho(e,t){let n=io(t.command);if(!n)return;let o=e===0&&(t.outcome==null||t.outcome==="ok"),i=t.outcome??wt(e);_o(kt.CliCommandResult,{command:n,subcommand:ro(t.subcommand),success:o,outcome:i,agent:!!t.agent,interactive:!!t.interactive,json:!!t.json,package:"lumimaker",reason:so(t.reason)??(i==="ok"?void 0:i)})}async function Et(e,t={}){try{t.skip||ho(e,t),await go()}catch{}process.exit(e)}function L(e,t,n=22){return` ${B.cyan(e.padEnd(n))}${s("help",t)}`}function xo(e,t,n=22){return` ${B.gray(e.padEnd(n))}${s("help",t)}`}function Wr(e){return typeof e.version=="string"&&e.version.trim()?e.version.trim():(M()?.version??"").trim()}function Kr(e){let t=Wr(e);return!t||D(t)?!0:(h.error(s("prompt","version_invalid_log",{version:t})),h.warn(s("prompt","version_invalid_hint")),!1)}function bo(){return`${B.bold(B.cyan("lumimaker"))} \u2014 ${s("help","tagline")}
|
|
21
|
+
|
|
22
|
+
${B.bold(s("help","usage_heading"))}
|
|
23
|
+
${s("help","usage_line")}
|
|
24
|
+
|
|
25
|
+
${B.bold(s("help","section_publish"))}
|
|
26
|
+
${L("publish","cmd_publish")}
|
|
27
|
+
${L("publish --demo","cmd_publish_demo")}
|
|
28
|
+
${L("publish-template","cmd_publish_template")}
|
|
29
|
+
${L("publish-template-data","cmd_publish_template_data")}
|
|
30
|
+
${L("publish-project","cmd_publish_project")}
|
|
31
|
+
${L("login","cmd_login")}
|
|
32
|
+
${L("logout","cmd_logout")}
|
|
33
|
+
${L("whoami","cmd_whoami")}
|
|
34
|
+
|
|
35
|
+
${B.bold(s("help","section_check"))}
|
|
36
|
+
${L("validate-template","cmd_validate_template")}
|
|
37
|
+
${L("validate","cmd_validate")}
|
|
38
|
+
${L("skill","cmd_skill")}
|
|
39
|
+
|
|
40
|
+
${B.bold(s("help","section_global"))}
|
|
41
|
+
${xo("--no-interactive","opt_no_interactive")}
|
|
42
|
+
${xo("-h, --help","opt_help")}
|
|
43
|
+
|
|
44
|
+
${W(s("help","contact"))}
|
|
45
|
+
`}async function rl(){let e=Bt(process.argv);te(),e.isVerbose&&h.setVerbose(!0);let t=Ae(e);t&&Xt();let n=e.isJson||t||!tt(),o={command:e.command,subcommand:e.subcommand,agent:t,interactive:e.isInteractive,json:n},i=(u,R)=>Et(u,{...o,...R});if(ln(e.command)&&!mn())return h.error(s("kit","internal_command")),i(2,{reason:"internal_command"});if(e.flags.help||e.command==="help")return await te(),process.stdout.write(bo()),i(0,{skip:!0});if(e.wantsVersion){let u=pe();if(!u)return h.error(s("kit","bin_missing")),i(1,{skip:!0});let R=await Le({binPath:u,args:["--version"],isJson:!1});return i(R,{skip:!0})}let r=await cn({flags:e.flags,isInteractive:e.isInteractive});if(r==="updated-exit")return i(0,{reason:"update",outcome:"update"});if(r==="agent-block")return i(10,{reason:"update"});if(t&&!e.isInteractive){let u=Yt(e);if(Qt(e,u))return en(s("kit","need_input"),u),i(11,{reason:"need_input"})}if(e.command==="validate-template")try{return await ye(process.cwd()),h.success(s("kit","validate_template_ok")),i(0)}catch(u){return h.error(J(u)),i(1,{reason:"validate_fail"})}if(e.command==="validate")try{return await Ve(process.cwd()),h.success(s("kit","validate_ok")),i(0)}catch(u){return u instanceof ae?i(u.exitCode,{reason:"validate_fail"}):(h.error(J(u)),i(1,{reason:"validate_fail"}))}let a=pe();if(!a)return h.error(s("kit","bin_missing")),i(1,{reason:"bin_missing"});let c=e.command,m=e.subcommand,l={...e.flags};if(e.isInteractive){if(!c){let u=await pn();c=u.command,m=u.subcommand}if(c==="validate-template"){o.command=c;try{return await ye(process.cwd()),h.success(s("kit","validate_template_ok")),i(0)}catch(u){return h.error(J(u)),i(1,{reason:"validate_fail"})}}c==="publish"?l=await fn({...e,flags:l}):c==="publish-template"?l=await _n({...e,flags:l}):c==="publish-template-data"?l=await bn({...e,flags:l}):c==="publish-project"?l=await vn({...e,flags:l}):c==="login"?l=await kn({...e,flags:l}):c==="skill"&&(l=await wn({...e,flags:l}))}if(o.command=c,o.subcommand=m,!c)return await te(),process.stdout.write(bo()),i(0,{skip:!0});let d=qt({...e,command:c,subcommand:m});if(d.length)return h.error(s("kit","unexpected_positional",{command:c,args:d.join(" ")})),i(2,{reason:"unexpected_positional"});if(c==="publish-template"&&!n&&!Kr(l))return i(2,{reason:"version_invalid"});Gt(c,l);let g=un(c,m,l),w=await Le({binPath:a,args:g,isJson:n,command:c,subcommand:m,isInteractive:e.isInteractive,isAgent:t});return i(w)}export{Dt as VERSION_NAME_PATTERN,Lt as VERSION_NAME_RE,D as isValidVersionName,rl as run,J as userFacingError,Ve as validate,ye as validateTemplate};
|