@h-ai/cli 1.0.0-beta.6 → 1.0.0-beta.7
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.en.md +3 -3
- package/README.ja.md +3 -3
- package/README.md +3 -3
- package/dist/{chunk-STWZQ3IP.js → chunk-RT5OZJKM.js} +587 -10
- package/dist/chunk-RT5OZJKM.js.map +1 -0
- package/dist/{chunk-4XVCGFBA.js → chunk-XI5SKOOR.js} +552 -11
- package/dist/chunk-XI5SKOOR.js.map +1 -0
- package/dist/cli-config-templates-5KS3AE4H.js +5 -0
- package/dist/{cli-config-templates-YGPVNRX5.js.map → cli-config-templates-5KS3AE4H.js.map} +1 -1
- package/dist/index.js +37 -32
- package/dist/index.js.map +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/{src-NXCCU6GO.js → src-CX5IJGYM.js} +3 -3
- package/dist/src-CX5IJGYM.js.map +1 -0
- package/package.json +11 -11
- package/templates/apps/fullstack/packages/{{projectName}}-serv/README.md.hbs +2 -2
- package/templates/base/package.json.hbs +6 -1
- package/templates/skills/hai-ai/SKILL.md +6 -2
- package/templates/skills/hai-ai/acp.md +143 -0
- package/templates/skills/hai-ai/guide.md +1 -1
- package/templates/skills/hai-ai/resources.md +69 -0
- package/templates/skills/hai-app-create/development.md +1 -1
- package/templates/skills/hai-app-create/reference.md +1 -1
- package/templates/skills/hai-build/SKILL.md +1 -1
- package/templates/skills/hai-build/reference.md +1 -1
- package/templates/skills/hai-ci/SKILL.md +2 -0
- package/dist/chunk-4XVCGFBA.js.map +0 -1
- package/dist/chunk-STWZQ3IP.js.map +0 -1
- package/dist/cli-config-templates-YGPVNRX5.js +0 -5
- package/dist/src-NXCCU6GO.js.map +0 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export { generateConfigFile, generateEnvExample, generateProductionEnvironment } from './chunk-RT5OZJKM.js';
|
|
3
|
+
import './chunk-ZSDEVXZ7.js';
|
|
4
|
+
//# sourceMappingURL=cli-config-templates-5KS3AE4H.js.map
|
|
5
|
+
//# sourceMappingURL=cli-config-templates-5KS3AE4H.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"cli-config-templates-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"cli-config-templates-5KS3AE4H.js"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { generateConfigFile, runtimeEnvironmentVariables, renderEnvironment, generateProductionEnvironment, moduleEnvironmentVariables, documentConfig, parameterizeConfig } from './chunk-
|
|
2
|
+
import { generateConfigFile, runtimeEnvironmentVariables, renderEnvironment, generateProductionEnvironment, moduleEnvironmentVariables, documentConfig, parameterizeConfig } from './chunk-RT5OZJKM.js';
|
|
3
3
|
import { cliM } from './chunk-7DNIMG2H.js';
|
|
4
|
-
import { normalizeProjectName, resolveImageReference, resolveDownloadProxy } from './chunk-
|
|
4
|
+
import { normalizeProjectName, resolveImageReference, resolveDownloadProxy } from './chunk-XI5SKOOR.js';
|
|
5
5
|
import './chunk-ZSDEVXZ7.js';
|
|
6
6
|
import process5 from 'process';
|
|
7
7
|
import { cac } from 'cac';
|
|
@@ -133,11 +133,10 @@ Handlebars2.registerHelper("html", (value) => Handlebars2.escapeExpression(value
|
|
|
133
133
|
Handlebars2.registerHelper("yaml", (key, value) => stringify({ [key]: value }).trim());
|
|
134
134
|
Handlebars2.registerHelper("jsString", (value) => `'${JSON.stringify(value).slice(1, -1).replace(/\\"/g, '"').replace(/'/g, "\\'")}'`);
|
|
135
135
|
Handlebars2.registerHelper("moduleConfig", function(moduleKey, enabled) {
|
|
136
|
-
const generated = generateConfigFile(moduleKey, this.moduleConfigs).trimEnd();
|
|
136
|
+
const generated = generateConfigFile(moduleKey, this.moduleConfigs, Boolean(enabled)).trimEnd();
|
|
137
137
|
const content = moduleKey === "feedback" ? generated.replace("HAI_FEEDBACK_APPID:my-app", `HAI_FEEDBACK_APPID:${this.projectName}`) : generated;
|
|
138
138
|
const configured = this.appType === "fullstack" && moduleKey === "iam" ? content.replace("HAI_IAM_SEEDDEFAULTDATA:true", "HAI_IAM_SEEDDEFAULTDATA:false").replace("variant: card", "variant: split") : content;
|
|
139
|
-
return
|
|
140
|
-
${configured.split("\n").map((line) => line ? `# ${line}` : "").join("\n")}`;
|
|
139
|
+
return configured;
|
|
141
140
|
});
|
|
142
141
|
var TEMPLATE_SKIP_IF_EMPTY_MARKER = "@skipIfEmpty";
|
|
143
142
|
var NORMALIZED_RENDER_EXTENSIONS = /* @__PURE__ */ new Set([".ts", ".js", ".svelte", ".json", ".css"]);
|
|
@@ -460,7 +459,11 @@ function buildApiWorkspaceCatalogPackages(featureMap) {
|
|
|
460
459
|
function buildAppHaiCatalogPackages(options) {
|
|
461
460
|
const packageNames = ["@h-ai/cli"];
|
|
462
461
|
if (options.isSvelteOnlyApp) {
|
|
463
|
-
packageNames.push("@h-ai/api-client", "@h-ai/
|
|
462
|
+
packageNames.push("@h-ai/api-client", "@h-ai/capacitor", "@h-ai/core", "@h-ai/ui");
|
|
463
|
+
if (options.featureMap.iam)
|
|
464
|
+
packageNames.push("@h-ai/api-contract");
|
|
465
|
+
if (options.featureMap.deploy)
|
|
466
|
+
packageNames.push("@h-ai/deploy");
|
|
464
467
|
if (options.featureMap.crypto)
|
|
465
468
|
packageNames.push("@h-ai/crypto");
|
|
466
469
|
return pickCatalogPackages(packageNames, HAI_CATALOG_PACKAGES);
|
|
@@ -1228,7 +1231,14 @@ var FEATURES = {
|
|
|
1228
1231
|
packages: ["@h-ai/capacitor"]
|
|
1229
1232
|
}
|
|
1230
1233
|
};
|
|
1231
|
-
var
|
|
1234
|
+
var TEMPLATE_FEATURES = {
|
|
1235
|
+
"admin": ["iam", "reach"],
|
|
1236
|
+
"website": [],
|
|
1237
|
+
"h5": ["iam", "reach"],
|
|
1238
|
+
"api": ["iam", "reach", "storage", "feedback"],
|
|
1239
|
+
"mobile-app": ["iam", "crypto", "api-client", "capacitor"],
|
|
1240
|
+
"fullstack": ["iam", "storage", "audit", "reach", "scheduler", "feedback"]
|
|
1241
|
+
};
|
|
1232
1242
|
var PROJECT_NAME_REGEX = /^[a-z0-9-]+$/;
|
|
1233
1243
|
async function createProject(options) {
|
|
1234
1244
|
const spinner = ora();
|
|
@@ -1271,30 +1281,23 @@ async function createProject(options) {
|
|
|
1271
1281
|
});
|
|
1272
1282
|
await generateFromTemplates(projectPath, context);
|
|
1273
1283
|
{
|
|
1274
|
-
const { generateConfigFile: generateConfigFile2, generateEnvExample, generateProductionEnvironment: generateProductionEnvironment2 } = await import('./cli-config-templates-
|
|
1284
|
+
const { generateConfigFile: generateConfigFile2, generateEnvExample, generateProductionEnvironment: generateProductionEnvironment2 } = await import('./cli-config-templates-5KS3AE4H.js');
|
|
1275
1285
|
const configs = resolvedOptions.moduleConfigs;
|
|
1276
1286
|
const isApiWorkspace = resolvedOptions.appType === "api";
|
|
1277
1287
|
const isFullstack = resolvedOptions.appType === "fullstack";
|
|
1278
1288
|
const configDir = isApiWorkspace ? path2.join(projectPath, "apps", `${resolvedOptions.name}-serv`, "config") : isFullstack ? path2.join(projectPath, "packages", `${resolvedOptions.name}-serv`, "config") : path2.join(projectPath, "config");
|
|
1279
1289
|
const envExamplePath = isApiWorkspace ? path2.join(projectPath, "apps", `${resolvedOptions.name}-serv`, ".env.example") : path2.join(projectPath, ".env.example");
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
if (!isApiWorkspace && !isFullstack) {
|
|
1292
|
-
await writeFile(
|
|
1293
|
-
path2.join(configDir, "_core.yml"),
|
|
1294
|
-
generateConfigFile2("core", configs)
|
|
1295
|
-
);
|
|
1296
|
-
if (!context.isSvelteOnlyApp)
|
|
1297
|
-
await writeFile(path2.join(configDir, "_kit.yml"), generateConfigFile2("kit", configs));
|
|
1290
|
+
const enabledConfigs = /* @__PURE__ */ new Set(["core", ...context.isSvelteOnlyApp ? [] : resolvedOptions.features.map(getFeatureConfigKey).filter(Boolean)]);
|
|
1291
|
+
if (isApiWorkspace || isFullstack)
|
|
1292
|
+
enabledConfigs.add("serv");
|
|
1293
|
+
else if (!context.isSvelteOnlyApp)
|
|
1294
|
+
enabledConfigs.add("kit");
|
|
1295
|
+
for (const configKey of ["core", "serv", "kit", "db", "cache", "iam", "storage", "audit", "reach", "ai", "vecdb", "payment", "scheduler", "feedback"]) {
|
|
1296
|
+
const configPath = path2.join(configDir, `_${configKey}.yml`);
|
|
1297
|
+
if ((isApiWorkspace || isFullstack) && await fse.pathExists(configPath))
|
|
1298
|
+
continue;
|
|
1299
|
+
const content = generateConfigFile2(configKey, configs, enabledConfigs.has(configKey));
|
|
1300
|
+
await writeFile(configPath, configKey === "feedback" ? content.replace("HAI_FEEDBACK_APPID:my-app", `HAI_FEEDBACK_APPID:${resolvedOptions.name}`) : content);
|
|
1298
1301
|
}
|
|
1299
1302
|
const configContents = {};
|
|
1300
1303
|
for (const file of await fse.readdir(configDir)) {
|
|
@@ -1302,7 +1305,7 @@ async function createProject(options) {
|
|
|
1302
1305
|
configContents[file.slice(1, -4)] = await fse.readFile(path2.join(configDir, file), "utf8");
|
|
1303
1306
|
}
|
|
1304
1307
|
const envFeatures = context.isSvelteOnlyApp ? [] : isFullstack ? [.../* @__PURE__ */ new Set([...resolvedOptions.features, "reach"])] : resolvedOptions.features;
|
|
1305
|
-
const envContents = generateEnvExample(envFeatures, configs,
|
|
1308
|
+
const envContents = generateEnvExample(envFeatures, configs, true, configContents);
|
|
1306
1309
|
let envExample = isApiWorkspace ? envContents : isFullstack ? `${envContents}
|
|
1307
1310
|
# First-start administrator password; must satisfy the IAM password policy.
|
|
1308
1311
|
HAI_ADMIN_DEFAULT_PASSWORD=
|
|
@@ -1452,7 +1455,7 @@ ${formatPromptDescription(cliM("cli_selectHint"))}`,
|
|
|
1452
1455
|
}
|
|
1453
1456
|
const selectedAppType = resolvedAppType || "admin";
|
|
1454
1457
|
const selectedFrontends = selectedAppType === "fullstack" ? await resolveFrontendTargets(options.frontends, useDefaults, onCancel) : [];
|
|
1455
|
-
let selectedFeatures = selectedAppType === "mobile-app" ? [
|
|
1458
|
+
let selectedFeatures = selectedAppType === "mobile-app" ? [...TEMPLATE_FEATURES[selectedAppType]] : resolveFeatureDependencies(TEMPLATE_FEATURES[selectedAppType]);
|
|
1456
1459
|
selectedFeatures = selectedFeatures.filter((feature) => feature !== "deploy");
|
|
1457
1460
|
if (options.deploy !== false)
|
|
1458
1461
|
selectedFeatures.push("deploy");
|
|
@@ -1857,7 +1860,9 @@ function generateEnvironmentReadme() {
|
|
|
1857
1860
|
|
|
1858
1861
|
\u8FD0\u884C\u53C2\u6570\u5728 \`.env.example\` \u4E2D\u9010\u9879\u8BF4\u660E\u7528\u9014\u3001\u679A\u4E3E\u548C\u8303\u56F4\u3002\`.env\` \u4E3A\u516C\u5171\u57FA\u7840\uFF0C\`.env.dev\` / \`.env.test\` / \`.env.prod\` \u4E3A\u73AF\u5883\u8986\u76D6\uFF0C\u5747\u63D0\u4EA4 Git\uFF1B\`.env.local\` \u4E3A\u672C\u673A\u79C1\u6709\u8986\u76D6\uFF0C\u4E0D\u63D0\u4EA4 Git\u3002\u4F18\u5148\u7EA7\u4E3A\u8FDB\u7A0B > \`.env.<mode>.local\` > \`.env.local\` > \`.env.<mode>\` > \`.env\` > YAML\u3002\u540C\u6765\u6E90\u5148\u7236 JSON \u540E\u7EC6\u9879\uFF0C\u9AD8\u6765\u6E90\u6574\u6BB5\u66FF\u6362\u5148\u6E05\u9664\u4F4E\u6765\u6E90\u7EC6\u9879\u3002YAML \u663E\u5F0F\u5F15\u7528 \`HAI_<\u914D\u7F6E\u540D>_<\u8DEF\u5F84>\` \u5E76\u4FDD\u7559\u672C\u5730\u56DE\u9000\uFF0CcamelCase \u4E0D\u62C6\u8BCD\u3002\u5B8C\u6574\u547D\u4EE4\u3001\u52A0\u8F7D\u4F18\u5148\u7EA7\u548C Provider \u5207\u6362\u89C1 [\u73AF\u5883\u914D\u7F6E](.agents/skills/hai-app-create/development.md#\u73AF\u5883\u914D\u7F6E)\u3002
|
|
1859
1862
|
|
|
1860
|
-
\
|
|
1863
|
+
\u4F9D\u8D56\u53EA\u5305\u542B\u6A21\u677F\u5B9E\u9645\u4F7F\u7528\u7684\u6A21\u5757\uFF1Bconfig \u4E0E \`.env.example\` \u4FDD\u7559\u6240\u6709\u6A21\u5757\u7684\u5B8C\u6574\u53C2\u8003\uFF0C\u672A\u542F\u7528\u9879\u4EE5\u6CE8\u91CA\u63D0\u4F9B\uFF0C\u4E0D\u8FDB\u5165\u516C\u5171\u73AF\u5883\u9ED8\u8BA4\u503C\u3002\u65B0\u589E\u529F\u80FD\u65F6\u6DFB\u52A0\u4F9D\u8D56\u3001\u542F\u7528\u6240\u9700\u914D\u7F6E\uFF0C\u518D\u63A5\u5165\u521D\u59CB\u5316\u3001\u53CD\u5E8F\u5173\u95ED\u548C\u4E1A\u52A1\u4EE3\u7801\uFF1B\u5B89\u88C5\u4F9D\u8D56\u4E0D\u4F1A\u81EA\u52A8\u63A5\u5165\u6A21\u5757\u3002\u7EAF\u5BA2\u6237\u7AEF\u7684\u670D\u52A1\u7AEF\u914D\u7F6E\u4EC5\u4F9B\u540E\u7EED\u540E\u7AEF\u96C6\u6210\u53C2\u8003\uFF0C\u79D8\u5BC6\u4E0D\u5F97\u6CE8\u5165\u6D4F\u89C8\u5668\u3002
|
|
1864
|
+
|
|
1865
|
+
\u751F\u4EA7 .env.prod \u6309\u5DF2\u542F\u7528\u6A21\u5757\u9009\u62E9\u5171\u4EAB PostgreSQL\uFF08\u660E\u786E\u9009\u62E9 MySQL \u65F6\u4FDD\u7559\uFF09\u3001Redis\u3001S3\u3001Qdrant\uFF0C\u9ED8\u8BA4\u4F7F\u7528 Compose \u5185\u90E8\u670D\u52A1\u540D db/cache/storage/vecdb\u3002\u5BC6\u7801\u3001S3 \u51ED\u636E\u3001\u6A21\u578B Key \u4E0E\u53D7\u4FDD\u62A4 Qdrant \u7684 Key \u53EA\u7531\u79C1\u6709\u73AF\u5883\u6CE8\u5165\uFF1B\u5BB9\u5668\u5916\u8FD0\u884C\u8986\u76D6\u5185\u90E8\u8FDE\u63A5\u5730\u5740\u3002\u751F\u4EA7 Reach \u5FC5\u987B\u6CE8\u5165\u771F\u5B9E HAI_REACH_PROVIDERS JSON\uFF0C\u516C\u5171\u7A7A\u6570\u7EC4\u4F1A\u62D2\u7EDD\u542F\u52A8\u3002\u540E\u7EED\u901A\u8FC7 hai add ai \u8865\u9F50 db+vecdb \u4F9D\u8D56\u65F6\uFF0C\u8FD8\u987B\u5728\u5E94\u7528\u5165\u53E3\u63A5\u5165\u521D\u59CB\u5316\u548C\u53CD\u5E8F\u5173\u95ED\uFF0C\u4E0D\u80FD\u4EC5\u5B89\u88C5\u4F9D\u8D56\u3002
|
|
1861
1866
|
|
|
1862
1867
|
| \u7528\u9014 | \u547D\u4EE4 |
|
|
1863
1868
|
| --- | --- |
|
|
@@ -1913,7 +1918,7 @@ function generateReadme(name, appTypeLabel, pm, appType) {
|
|
|
1913
1918
|
const install = getInstallCommand(pm);
|
|
1914
1919
|
const staticWebsite = appType === "website" ? `### \u9759\u6001\u7F51\u7AD9\u4E0E GitHub Pages
|
|
1915
1920
|
|
|
1916
|
-
\u9ED8\u8BA4\u4F7F\u7528Node SSR\uFF0C\
|
|
1921
|
+
\u9ED8\u8BA4\u4F7F\u7528Node SSR\uFF0C\u53EA\u5B89\u88C5\u5C55\u793A\u529F\u80FD\u6240\u9700\u7684Core/Kit/UI\uFF0C\u53EF\u76F4\u63A5\u5207\u6362\u9759\u6001\u53D1\u5E03\uFF1B\u5B8C\u6574\u6CE8\u91CA\u914D\u7F6E\u4E0D\u542F\u7528\u6A21\u5757\u3002\u540E\u7EED\u65B0\u589E\u7684\u670D\u52A1\u7AEF\u4E1A\u52A1\u4F9D\u8D56\u3001\u521D\u59CB\u5316\u53CAAPI/actions\u987B\u5148\u79FB\u9664\uFF0C\u5DF2\u6709\u52A8\u6001\u6A21\u5757\u4E0D\u80FD\u4EC5\u6253\u5F00\u5F00\u5173\u9759\u6001\u53D1\u5E03\u3002
|
|
1917
1922
|
|
|
1918
1923
|
\`HAI_BUILD_STATIC=1\`\u663E\u5F0F\u9884\u6E32\u67D3\uFF0C\`PUBLIC_BASE_PATH=/${name}\`\u6307\u5B9A\u9879\u76EE\u7AD9\u76EE\u5F55\uFF08\u65E0\u672B\u5C3E/\uFF0C\u6839\u7AD9\u7559\u7A7A\uFF09\uFF1B\u5728PowerShell\u8BBE\u7F6E\u672C\u6B21\u6784\u5EFA\u73AF\u5883\uFF1A
|
|
1919
1924
|
|
|
@@ -2103,7 +2108,7 @@ CLI \u5728\u6839\u76EE\u5F55 .env.dev.local\u3001.env.test.local\u3001.env.prod.
|
|
|
2103
2108
|
|
|
2104
2109
|
### \u914D\u7F6E\u6269\u5C55
|
|
2105
2110
|
|
|
2106
|
-
\u670D\u52A1\u7AEF \`packages/${name}-serv/config/\` \u59CB\u7EC8\u4FDD\u7559 core\u3001serv\u3001db\u3001cache\u3001iam\u3001storage\u3001audit\u3001reach\u3001ai\u3001vecdb\u3001payment\u3001scheduler\u3001feedback \u5171
|
|
2111
|
+
\u670D\u52A1\u7AEF \`packages/${name}-serv/config/\` \u59CB\u7EC8\u4FDD\u7559 core\u3001serv\u3001kit\u3001db\u3001cache\u3001iam\u3001storage\u3001audit\u3001reach\u3001ai\u3001vecdb\u3001payment\u3001scheduler\u3001feedback \u5171 14 \u4EFD YAML\uFF1B\u6784\u5EFA\u90E8\u7F72\u914D\u7F6E\u7EDF\u4E00\u4F4D\u4E8E\u9879\u76EE\u6839 hai.json\u3002\u53EA\u5B89\u88C5\u7BA1\u7406\u540E\u53F0\u5B9E\u9645\u4F7F\u7528\u7684\u6A21\u5757\uFF1B\u5DF2\u7528\u6A21\u5757\u4FDD\u7559\u5DE5\u4F5C\u9ED8\u8BA4\u503C\uFF0C\u672A\u542F\u7528\u6A21\u5757\u6574\u4EFD\u6CE8\u91CA\uFF0C\u53EF\u9009\u5B57\u6BB5\u548C\u66FF\u4EE3 Provider \u6309\u5757\u6CE8\u91CA\uFF1B\u6839 \`.env.example\` \u4E5F\u4FDD\u7559\u672A\u542F\u7528\u6A21\u5757\u7684\u51ED\u636E\u793A\u4F8B\u3002\u65B0\u589E\u529F\u80FD\u65F6\u5B89\u88C5\u4F9D\u8D56\u5E76\u63A5\u5165\u521D\u59CB\u5316\u3001\u5173\u95ED\u53CA\u4E1A\u52A1\u4EE3\u7801\u3002Reach \u9ED8\u8BA4\u4E3A\u5F00\u53D1\u63A7\u5236\u53F0\u901A\u77E5\uFF0Cfeedback \u4F7F\u7528 email \u522B\u540D\uFF1B\u751F\u4EA7\u6309 \`_reach.yml\` \u6CE8\u91CA\u66FF\u6362\u4E3A SMTP\u3001\u77ED\u4FE1\u6216 API Provider\uFF0C\u5E76\u4FDD\u6301\u540D\u79F0\u552F\u4E00\u3002
|
|
2107
2112
|
|
|
2108
2113
|
\u81EA\u52A8\u751F\u6210\u7684 \`.env\` \u5305\u542B\u5DF2\u542F\u7528\u6A21\u5757\u7684\u73AF\u5883\u53C2\u6570\uFF1BYAML \u663E\u5F0F\u5F15\u7528\u76F8\u540C\u53D8\u91CF\u5E76\u4FDD\u7559\u672C\u5730\u56DE\u9000\u3002\u7F16\u8F91\u73AF\u5883\u53C2\u6570\u4F18\u5148\u4FEE\u6539\u5BF9\u5E94 \`.env\`\uFF1B\u672A\u542F\u7528\u6A21\u5757\u4ECD\u4FDD\u7559\u6CE8\u91CA\u3002
|
|
2109
2114
|
|
|
@@ -3317,7 +3322,7 @@ async function deployCommand(options) {
|
|
|
3317
3322
|
localModule = localRequire.resolve("@h-ai/deploy");
|
|
3318
3323
|
} catch {
|
|
3319
3324
|
}
|
|
3320
|
-
deployModule = localModule ? await import(pathToFileURL(localModule).href) : await import('./src-
|
|
3325
|
+
deployModule = localModule ? await import(pathToFileURL(localModule).href) : await import('./src-CX5IJGYM.js');
|
|
3321
3326
|
} catch {
|
|
3322
3327
|
writeCliError(chalk.red(cliM("cli_deploy_module_missing")));
|
|
3323
3328
|
writeCliMessage(chalk.cyan(" pnpm add -D @h-ai/deploy"));
|