@clize/clize 0.32.0 → 0.33.0
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 +19 -17
- package/dist/cli.js +484 -373
- package/dist/cli.js.map +1 -1
- package/dist/core/addresses.js +12 -11
- package/dist/core/addresses.js.map +1 -1
- package/dist/core/analytics.js +6 -5
- package/dist/core/analytics.js.map +1 -1
- package/dist/core/authz.js +6 -5
- package/dist/core/authz.js.map +1 -1
- package/dist/core/billing.js +83 -12
- package/dist/core/billing.js.map +1 -1
- package/dist/core/credentials.js +3 -1
- package/dist/core/credentials.js.map +1 -1
- package/dist/core/dns.js +3 -2
- package/dist/core/dns.js.map +1 -1
- package/dist/core/domain-health.js +74 -50
- package/dist/core/domain-health.js.map +1 -1
- package/dist/core/domains.js +74 -44
- package/dist/core/domains.js.map +1 -1
- package/dist/core/email-tx.js +8 -6
- package/dist/core/email-tx.js.map +1 -1
- package/dist/core/email.js +13 -12
- package/dist/core/email.js.map +1 -1
- package/dist/core/env-detect.js +7 -14
- package/dist/core/env-detect.js.map +1 -1
- package/dist/core/handle.js +33 -30
- package/dist/core/handle.js.map +1 -1
- package/dist/core/install.js +114 -56
- package/dist/core/install.js.map +1 -1
- package/dist/core/media.js +37 -36
- package/dist/core/media.js.map +1 -1
- package/dist/core/payments.js +5 -4
- package/dist/core/payments.js.map +1 -1
- package/dist/core/projects.js +38 -26
- package/dist/core/projects.js.map +1 -1
- package/dist/core/redirect.js +4 -3
- package/dist/core/redirect.js.map +1 -1
- package/dist/core/serve.js +2 -1
- package/dist/core/serve.js.map +1 -1
- package/dist/core/setup.js +11 -9
- package/dist/core/setup.js.map +1 -1
- package/dist/core/shop.js +17 -16
- package/dist/core/shop.js.map +1 -1
- package/dist/core/site.js +2 -1
- package/dist/core/site.js.map +1 -1
- package/dist/core/sites.js +41 -40
- package/dist/core/sites.js.map +1 -1
- package/dist/core/triage.js +39 -5
- package/dist/core/triage.js.map +1 -1
- package/dist/core/video.js +45 -43
- package/dist/core/video.js.map +1 -1
- package/dist/github.js +4 -3
- package/dist/github.js.map +1 -1
- package/dist/i18n/t.js +65 -0
- package/dist/i18n/t.js.map +1 -0
- package/dist/i18n/zh.js +1265 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/index.js +61 -40
- package/dist/index.js.map +1 -1
- package/dist/lib/cloudflare.js +8 -7
- package/dist/lib/cloudflare.js.map +1 -1
- package/dist/lib/crypto.js +2 -1
- package/dist/lib/crypto.js.map +1 -1
- package/dist/lib/vercel.js +2 -1
- package/dist/lib/vercel.js.map +1 -1
- package/dist/lib/zone.js +2 -1
- package/dist/lib/zone.js.map +1 -1
- package/dist/mcp-profiles.js +5 -1
- package/dist/mcp-profiles.js.map +1 -1
- package/dist/providers/deploy/cloudflare.js +3 -2
- package/dist/providers/deploy/cloudflare.js.map +1 -1
- package/dist/providers/email/cloudflare-inbound.js +4 -3
- package/dist/providers/email/cloudflare-inbound.js.map +1 -1
- package/dist/providers/email/cloudflare-outbound.js +2 -1
- package/dist/providers/email/cloudflare-outbound.js.map +1 -1
- package/dist/providers/email/resend.js +3 -2
- package/dist/providers/email/resend.js.map +1 -1
- package/dist/providers/email/ses.js +3 -2
- package/dist/providers/email/ses.js.map +1 -1
- package/dist/providers/index.js +3 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/media/google.js +10 -9
- package/dist/providers/media/google.js.map +1 -1
- package/dist/providers/media/kie.js +12 -11
- package/dist/providers/media/kie.js.map +1 -1
- package/dist/providers/media/kunavo.js +10 -9
- package/dist/providers/media/kunavo.js.map +1 -1
- package/dist/providers/media/openai.js +5 -4
- package/dist/providers/media/openai.js.map +1 -1
- package/dist/providers/media/suno.js +7 -6
- package/dist/providers/media/suno.js.map +1 -1
- package/dist/providers/registrar/routing.js +2 -1
- package/dist/providers/registrar/routing.js.map +1 -1
- package/dist/providers/registrar/vercel.js +2 -1
- package/dist/providers/registrar/vercel.js.map +1 -1
- package/dist/providers/seo/dataforseo.js +5 -4
- package/dist/providers/seo/dataforseo.js.map +1 -1
- package/dist/providers/seo/gsc.js +5 -4
- package/dist/providers/seo/gsc.js.map +1 -1
- package/dist/remote.js +25 -22
- package/dist/remote.js.map +1 -1
- package/dist/selfcheck.js +23 -22
- package/dist/selfcheck.js.map +1 -1
- package/dist/state/file-store.js +17 -16
- package/dist/state/file-store.js.map +1 -1
- package/package.json +4 -3
- package/skills/clize/SKILL.md +171 -143
- package/skills/clize-seo/SKILL.md +2 -2
- package/skills/clize-site-build/SKILL.md +97 -41
- package/skills/clize-site-debug/SKILL.md +73 -45
package/dist/core/domains.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { chargedAmount, checkMonthlySpendLimit } from "./billing.js";
|
|
1
|
+
import { chargedAmount, checkMonthlySpendLimit, monthSpentUsd } from "./billing.js";
|
|
2
2
|
import { ensureBalance } from "./autopay.js";
|
|
3
3
|
import { auditScope, currentProjectId, PENDING_PROJECT_ID, projectFilter, requireProjectId, } from "./projects.js";
|
|
4
4
|
import { CLOUDFLARE_TLDS } from "../providers/registrar/cloudflare.js";
|
|
5
5
|
import { nameserversOnVercel } from "../lib/zone.js";
|
|
6
6
|
import { ClizeError } from "../lib/errors.js";
|
|
7
7
|
/** @deprecated 仅 Cloudflare 直注的固定后缀;真实可注册能力(含 Vercel)用 listSupportedTlds(ctx)。 */
|
|
8
|
+
import { t } from "../i18n/t.js";
|
|
8
9
|
export const SUPPORTED_TLDS = CLOUDFLARE_TLDS;
|
|
9
10
|
/** 列出真实可注册的 TLD:CF 直注的 + 配了 Vercel 时的 500+ 补充(系统按 TLD 自动选注册商)。 */
|
|
10
11
|
export async function listSupportedTlds(ctx) {
|
|
@@ -18,8 +19,8 @@ export async function listSupportedTlds(ctx) {
|
|
|
18
19
|
cloudflareDirect: CLOUDFLARE_TLDS,
|
|
19
20
|
viaVercelCount: vercel.length,
|
|
20
21
|
note: vercel.length
|
|
21
|
-
?
|
|
22
|
-
: `Cloudflare
|
|
22
|
+
? t `${CLOUDFLARE_TLDS.length} TLDs register directly at Cloudflare (same account, DNS included); the rest go through Vercel, ${all.length} in total. Just run \`clize domain search <name>.<tld>\`; the registrar is chosen automatically and the NS is moved back to CF.`
|
|
23
|
+
: t `Cloudflare Registrar beta, only ${CLOUDFLARE_TLDS.length} TLDs; configure VERCEL_TOKEN to unlock Vercel's 500+ TLDs (.ai/.io/.co…).`,
|
|
23
24
|
tlds: all,
|
|
24
25
|
};
|
|
25
26
|
}
|
|
@@ -53,7 +54,7 @@ export async function listDomains(ctx) {
|
|
|
53
54
|
export async function getDomain(ctx, domain) {
|
|
54
55
|
const id = await ctx.store.getIdentity(ctx.tenantId, domain);
|
|
55
56
|
if (!id)
|
|
56
|
-
throw new Error(
|
|
57
|
+
throw new Error(t `Domain ${domain} not found (not registered or not managed yet)`);
|
|
57
58
|
return id;
|
|
58
59
|
}
|
|
59
60
|
export async function registerDomain(ctx, domain, opts = {}) {
|
|
@@ -65,7 +66,7 @@ export async function registerDomain(ctx, domain, opts = {}) {
|
|
|
65
66
|
// 1) 查价 + 可用性(注册商由 RoutingRegistrar 自动选)
|
|
66
67
|
const [check] = await ctx.providers.registrar.checkAvailability([domain]);
|
|
67
68
|
if (!check?.available)
|
|
68
|
-
throw new Error(
|
|
69
|
+
throw new Error(t `Domain ${domain} is not available${check?.reason ? `(${check.reason})` : ""}`);
|
|
69
70
|
const cost = check.registrationCost;
|
|
70
71
|
// selfPaid:按 checkAvailability 自动选中的注册商判定(平台代付重叠会比首年价选低的那家)。
|
|
71
72
|
const selfPaid = selfPaidFor(ctx, domain, check.registrar);
|
|
@@ -85,7 +86,7 @@ export async function registerDomain(ctx, domain, opts = {}) {
|
|
|
85
86
|
await ctx.store.upsertIdentity(ctx.tenantId, {
|
|
86
87
|
domain,
|
|
87
88
|
status: "pending",
|
|
88
|
-
notes: "DRY_RUN
|
|
89
|
+
notes: t("DRY_RUN rehearsal, nothing was registered"),
|
|
89
90
|
projectId,
|
|
90
91
|
});
|
|
91
92
|
return {
|
|
@@ -95,7 +96,7 @@ export async function registerDomain(ctx, domain, opts = {}) {
|
|
|
95
96
|
currency: check.currency,
|
|
96
97
|
autoRenew,
|
|
97
98
|
registrar: check.registrar,
|
|
98
|
-
message: "
|
|
99
|
+
message: t("Rehearsal mode: nothing was registered. Set DRY_RUN=false to execute."),
|
|
99
100
|
};
|
|
100
101
|
}
|
|
101
102
|
// 4) 计费闸(仅「托管 + 平台代付」:预付余额 + 加价,先扣后注册;self-host / BYO 自付跳过)
|
|
@@ -120,7 +121,7 @@ export async function registerDomain(ctx, domain, opts = {}) {
|
|
|
120
121
|
catch (e) {
|
|
121
122
|
if (charged != null)
|
|
122
123
|
await ctx.store
|
|
123
|
-
.creditBalance(ctx.tenantId, charged, { action: "refund", detail: { domain, reason: "
|
|
124
|
+
.creditBalance(ctx.tenantId, charged, { action: "refund", detail: { domain, reason: t("refund for failed registration") } })
|
|
124
125
|
.catch(() => {
|
|
125
126
|
/* 退款失败不掩盖原始错误 */
|
|
126
127
|
});
|
|
@@ -162,7 +163,7 @@ export async function registerDomain(ctx, domain, opts = {}) {
|
|
|
162
163
|
autoRenew,
|
|
163
164
|
...(viaVercel
|
|
164
165
|
? {
|
|
165
|
-
note: "
|
|
166
|
+
note: t("The domain is registered at Vercel with DNS at Vercel too. For a support@ mailbox → use a TLD Cloudflare registers directly, or turn off the CDN / set custom NS in the Vercel dashboard and then `clize domain import` (the API cannot migrate it automatically)."),
|
|
166
167
|
}
|
|
167
168
|
: {}),
|
|
168
169
|
};
|
|
@@ -200,7 +201,7 @@ export async function importDomain(ctx, domain) {
|
|
|
200
201
|
domain,
|
|
201
202
|
zoneId: zone.id,
|
|
202
203
|
status: "active",
|
|
203
|
-
message: `✅
|
|
204
|
+
message: t `✅ The domain is on Cloudflare with its NS active; run \`clize email setup ${domain}\` for email and \`clize deploy\` to ship a site.`,
|
|
204
205
|
};
|
|
205
206
|
}
|
|
206
207
|
return {
|
|
@@ -208,8 +209,8 @@ export async function importDomain(ctx, domain) {
|
|
|
208
209
|
zoneId: zone.id,
|
|
209
210
|
status: zone.status,
|
|
210
211
|
nameservers: zone.name_servers,
|
|
211
|
-
actionRequired:
|
|
212
|
-
warning:
|
|
212
|
+
actionRequired: t `Change the NS at your registrar to the nameservers above, then rerun \`clize domain import ${domain}\` until status becomes active.`,
|
|
213
|
+
warning: t("Moving the NS takes over all DNS for the domain. CF tries to import existing records when creating the full zone, but check your current DNS provider for website / email / verification records first and change the NS only once everything is accounted for."),
|
|
213
214
|
};
|
|
214
215
|
}
|
|
215
216
|
// 2) 不在 CF:需新建 zone 接入(演练模式只说明,不真正建)
|
|
@@ -217,7 +218,7 @@ export async function importDomain(ctx, domain) {
|
|
|
217
218
|
return {
|
|
218
219
|
dryRun: true,
|
|
219
220
|
domain,
|
|
220
|
-
message: "
|
|
221
|
+
message: t("Rehearsal mode: would create a CF zone for the domain and return the nameservers to configure. Set DRY_RUN=false to execute."),
|
|
221
222
|
};
|
|
222
223
|
}
|
|
223
224
|
const zone = await ctx.cf.createZone(domain);
|
|
@@ -238,9 +239,9 @@ export async function importDomain(ctx, domain) {
|
|
|
238
239
|
status: zone.status, // 通常 "pending"(等 NS 生效)
|
|
239
240
|
nameservers: zone.name_servers,
|
|
240
241
|
nextSteps: [
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
`3)
|
|
242
|
+
t("1) At your registrar (GoDaddy / Aliyun / Namecheap …) change the NS to the nameservers above."),
|
|
243
|
+
t("2) ⚠️ Moving the NS takes over all DNS for the domain. CF tried to import existing records; check your current DNS provider for website / email / verification records before changing the NS."),
|
|
244
|
+
t `3) After changing the NS, rerun \`clize domain import ${domain}\` until status becomes active; then \`clize email setup ${domain}\` sets up email.`,
|
|
244
245
|
],
|
|
245
246
|
};
|
|
246
247
|
}
|
|
@@ -298,8 +299,8 @@ export async function workspaceStatus(ctx, opts = {}) {
|
|
|
298
299
|
if (ownerId !== projectId) {
|
|
299
300
|
const ownerSlug = (await ctx.store.listProjects(ctx.tenantId)).find((p) => p.id === ownerId)?.slug ?? "default";
|
|
300
301
|
drift =
|
|
301
|
-
|
|
302
|
-
`deploy
|
|
302
|
+
t `The local clize.json checks out "${ctx.projectSlug}", but its domain ${opts.localDomain} actually belongs to project "${ownerSlug}" — ` +
|
|
303
|
+
t `deploy follows the domain's real project automatically; to align the local checkout run clize use ${ownerSlug}`;
|
|
303
304
|
}
|
|
304
305
|
}
|
|
305
306
|
}
|
|
@@ -315,12 +316,12 @@ export async function workspaceStatus(ctx, opts = {}) {
|
|
|
315
316
|
...(drift ? { drift } : {}),
|
|
316
317
|
...(projectId === PENDING_PROJECT_ID
|
|
317
318
|
? {
|
|
318
|
-
projectNote:
|
|
319
|
+
projectNote: t `Project "${ctx.projectSlug}" does not exist yet (created automatically on the first claim / domain buy); this is an empty project view`,
|
|
319
320
|
}
|
|
320
321
|
: {}),
|
|
321
322
|
...(!ctx.projectSlug && projectCount > 1
|
|
322
323
|
? {
|
|
323
|
-
projectHint:
|
|
324
|
+
projectHint: t `This tenant has ${projectCount} projects and none is checked out (tenant-wide view). cd into a project directory (or clize use <slug> / -p <slug> for one call) to see one project; clize projects lists them`,
|
|
324
325
|
}
|
|
325
326
|
: {}),
|
|
326
327
|
...(opts.identity ? { identity: opts.identity } : {}),
|
|
@@ -329,14 +330,22 @@ export async function workspaceStatus(ctx, opts = {}) {
|
|
|
329
330
|
// / 未分类,带 class + mailbox);仅在租户 D1 里还没有信时才落到下面的 KV 扫描(未分流)。
|
|
330
331
|
waiting: waiting.slice(0, STATUS_WAITING_CAP),
|
|
331
332
|
...(waiting.length > STATUS_WAITING_CAP
|
|
332
|
-
? { waitingTruncated:
|
|
333
|
+
? { waitingTruncated: t `Only the ${STATUS_WAITING_CAP} longest-waiting of ${waiting.length} are listed; see everything per domain with clize email inbox <domain>` }
|
|
333
334
|
: {}),
|
|
334
335
|
// config 正常态压一行:status 是 agent 每次续上必跑的高频命令,正常值反复进 transcript
|
|
335
336
|
// 零信息量;只有「会改变行为语义」的状态(dryRun / 缺凭证 / 有限额 / 发信未就绪)才展开。
|
|
336
337
|
config: configHealth(ctx),
|
|
337
338
|
// 开销口径随检出走:检出项目 → 本项目本月开销(无归属旧记录归 default);未检出 → 全租户。
|
|
338
339
|
// 语义细节(月度限额闸仍按全租户)在 SPEC「开销口径」,这里只标口径名,省高频 token。
|
|
340
|
+
//
|
|
341
|
+
// 全租户口径读 **ledger**(余额出入的唯一记录),不读 audit.cost:audit 只在部分调用点
|
|
342
|
+
// 手写 cost,seo / storage 是直接 chargeBalance 的、从不补审计 —— 2026-09-01 实测本租户
|
|
343
|
+
// 「本月花费」显示 $0.00,而余额当月实际走掉 $4.97(101 次 seo 查询)。console 首屏的钱行
|
|
344
|
+
// 与 Billing 的花费构成必须同源,否则就是同一个事实两个数字打架。
|
|
345
|
+
// 项目口径仍用 audit(ledger 没有 project 维度;seo / storage 本就是租户级开销)。
|
|
339
346
|
spentThisMonthUsd: await (async () => {
|
|
347
|
+
if (!projectId)
|
|
348
|
+
return monthSpentUsd(ctx); // 全租户 = ledger 口径,与月度上限闸同源
|
|
340
349
|
const scope = await auditScope(ctx);
|
|
341
350
|
return ctx.store.spentThisMonth(ctx.tenantId, scope[0], scope[1]);
|
|
342
351
|
})(),
|
|
@@ -352,7 +361,7 @@ export async function workspaceStatus(ctx, opts = {}) {
|
|
|
352
361
|
site: Boolean(i.site?.url),
|
|
353
362
|
})),
|
|
354
363
|
...(identities.length > STATUS_DOMAINS_CAP
|
|
355
|
-
? { domainsTruncated:
|
|
364
|
+
? { domainsTruncated: t `Only ${STATUS_DOMAINS_CAP}/${identities.length} listed; all: clize domain list` }
|
|
356
365
|
: {}),
|
|
357
366
|
};
|
|
358
367
|
}
|
|
@@ -366,7 +375,7 @@ function configHealth(ctx) {
|
|
|
366
375
|
if (ctx.tenant.monthlySpendLimitUsd != null)
|
|
367
376
|
issues.monthlySpendLimitUsd = ctx.tenant.monthlySpendLimitUsd;
|
|
368
377
|
if (ctx.tenant.outboundProvider === "resend" && !ctx.platform.resend.apiKey)
|
|
369
|
-
issues.outbound = "resend
|
|
378
|
+
issues.outbound = t("resend is selected but RESEND_API_KEY is not configured (sending will fail)");
|
|
370
379
|
return Object.keys(issues).length ? issues : "ok";
|
|
371
380
|
}
|
|
372
381
|
export async function auditLog(ctx, limit = 20) {
|
|
@@ -381,7 +390,7 @@ export async function setAutoRenew(ctx, domain, enabled) {
|
|
|
381
390
|
detail: { domain, enabled },
|
|
382
391
|
dryRun: true,
|
|
383
392
|
});
|
|
384
|
-
return { dryRun: true, domain, autoRenew: enabled, message: "
|
|
393
|
+
return { dryRun: true, domain, autoRenew: enabled, message: t("Rehearsal mode: nothing was changed.") };
|
|
385
394
|
}
|
|
386
395
|
// 落到真实注册商:从 Identity.registrar(注册时回填的权威来源)取 hint 传给 routing,
|
|
387
396
|
// 替代它的 TLD 静态猜测 —— 重叠 TLD 在 Vercel 注册时会猜错家,CF 不认该域、开关失效。
|
|
@@ -393,7 +402,7 @@ export async function setAutoRenew(ctx, domain, enabled) {
|
|
|
393
402
|
detail: { domain, enabled },
|
|
394
403
|
});
|
|
395
404
|
await ctx.store.upsertIdentity(ctx.tenantId, { domain, autoRenew: enabled });
|
|
396
|
-
return { domain, autoRenew: enabled, message: enabled ? "
|
|
405
|
+
return { domain, autoRenew: enabled, message: enabled ? t("Auto-renew turned on") : t("Auto-renew turned off") };
|
|
397
406
|
}
|
|
398
407
|
/** 读某域 NS 现状:注册商 + 当前委派(zone 源 NS)+ CF 分配的目标 NS。供 `domain ns`(无参)查看 / 排障。 */
|
|
399
408
|
export async function getDomainNameservers(ctx, domain) {
|
|
@@ -405,7 +414,11 @@ export async function getDomainNameservers(ctx, domain) {
|
|
|
405
414
|
const active = zone?.status === "active";
|
|
406
415
|
return {
|
|
407
416
|
domain: d,
|
|
408
|
-
registrar: id?.status === "
|
|
417
|
+
registrar: id?.status === "handle"
|
|
418
|
+
? t("(free handle, platform subdomain)")
|
|
419
|
+
: id?.status === "external"
|
|
420
|
+
? t("(imported; registrar elsewhere)")
|
|
421
|
+
: (id?.registrar ?? t("(unknown / not managed)")),
|
|
409
422
|
status: id?.status,
|
|
410
423
|
zoneStatus: zone?.status,
|
|
411
424
|
// 委派真相以 zoneStatus 为准:active = CF 已在注册局委派里确认到自己的 NS(即已在 CF)。
|
|
@@ -414,8 +427,8 @@ export async function getDomainNameservers(ctx, domain) {
|
|
|
414
427
|
// ⚠️ original_name_servers 是「建 zone 时 CF 看到的旧 NS」—— 历史值,zone active 后即过时,别当「当前 NS」(正是 §9 那个坑)。
|
|
415
428
|
originalNameservers: zone?.original_name_servers ?? id?.nameservers,
|
|
416
429
|
hint: active
|
|
417
|
-
? "zoneStatus=active →
|
|
418
|
-
: "zoneStatus≠active → NS
|
|
430
|
+
? t("zoneStatus=active → the domain is delegated to Cloudflare (current NS = cloudflareNameservers); originalNameservers is the pre-migration value, for reference only.")
|
|
431
|
+
: t("zoneStatus≠active → the NS has not taken effect on CF yet. Verify real delegation against authoritative DNS (dns.google); do not trust the raw fields. Change the NS: `clize domain ns <domain> <ns…>`."),
|
|
419
432
|
};
|
|
420
433
|
}
|
|
421
434
|
/**
|
|
@@ -427,12 +440,15 @@ export async function getDomainNameservers(ctx, domain) {
|
|
|
427
440
|
export async function setDomainNameservers(ctx, domain, nameservers) {
|
|
428
441
|
const d = domain.toLowerCase();
|
|
429
442
|
if (!nameservers.length)
|
|
430
|
-
throw new Error("
|
|
443
|
+
throw new Error(t("At least one nameserver is required (omit the ns argument to only view the current state)"));
|
|
431
444
|
const id = await ctx.store.getIdentity(ctx.tenantId, d);
|
|
432
445
|
const reg = ctx.providers.registrar;
|
|
446
|
+
// 免费 handle:平台子域,NS 由平台 zone 决定,没有「改 NS」这回事。
|
|
447
|
+
if (id?.status === "handle")
|
|
448
|
+
throw new Error(t `${d} is a free handle (platform subdomain); its NS is set by the platform zone and cannot change. For custom NS use your own domain (clize domain buy / import).`);
|
|
433
449
|
// 外部接入域:clize 没有原注册商权限,改不了 —— 给出目标 NS、引导用户去原注册商改。
|
|
434
450
|
if (id?.status === "external")
|
|
435
|
-
throw new Error(`${d}
|
|
451
|
+
throw new Error(t `${d} is an imported domain; clize has no access to its registrar and cannot change the NS programmatically. Change the nameservers at the registrar where you bought it to: ${nameservers.join(", ")}.`);
|
|
436
452
|
// 判真实注册商:registrar 字段(注册时回填 / 对账校正)优先,zone 源 NS 指向 vercel-dns 兜底。
|
|
437
453
|
const apex = d.split(".").slice(-2).join(".");
|
|
438
454
|
const zoneId = await ctx.cf.findZoneId(apex).catch(() => undefined);
|
|
@@ -441,9 +457,9 @@ export async function setDomainNameservers(ctx, domain, nameservers) {
|
|
|
441
457
|
: false;
|
|
442
458
|
const isVercel = id?.registrar === "vercel" || onVercelNs;
|
|
443
459
|
if (id?.registrar === "cloudflare" && !isVercel)
|
|
444
|
-
throw new Error(`${d}
|
|
460
|
+
throw new Error(t `${d} is registered at Cloudflare Registrar; its NS is locked to Cloudflare and cannot point to a third party (a CF Registrar restriction). To manage DNS yourself, set records directly on CF with \`clize dns\`.`);
|
|
445
461
|
if (!reg.setNameservers)
|
|
446
|
-
throw new Error(`${d}
|
|
462
|
+
throw new Error(t `${d}'s registrar does not support changing the NS programmatically (possibly a record from before the fix) — run the registrar reconciliation first, or confirm it was really registered through clize.`);
|
|
447
463
|
await reg.setNameservers(d, nameservers);
|
|
448
464
|
await ctx.store
|
|
449
465
|
.appendAudit(ctx.tenantId, {
|
|
@@ -458,10 +474,10 @@ export async function setDomainNameservers(ctx, domain, nameservers) {
|
|
|
458
474
|
domain: d,
|
|
459
475
|
nameservers,
|
|
460
476
|
registrar: id?.registrar ?? "vercel",
|
|
461
|
-
message:
|
|
477
|
+
message: t `Set the NS of ${d} to: ${nameservers.join(", ")} (registry update + propagation take a few minutes; verify against dns.google, not the registrar's own fields).`,
|
|
462
478
|
...(offCloudflare
|
|
463
479
|
? {
|
|
464
|
-
warning: "⚠️ NS
|
|
480
|
+
warning: t("⚠️ The NS now points away from Cloudflare — the domain's clize mailboxes (inbound) and site stop working until the NS points back at CF's nameservers."),
|
|
465
481
|
}
|
|
466
482
|
: {}),
|
|
467
483
|
};
|
|
@@ -482,20 +498,20 @@ export async function removeDomain(ctx, domain, opts = {}) {
|
|
|
482
498
|
const d = domain.toLowerCase();
|
|
483
499
|
const id = await ctx.store.getIdentity(ctx.tenantId, d);
|
|
484
500
|
if (!id)
|
|
485
|
-
throw new ClizeError(`${d}
|
|
501
|
+
throw new ClizeError(t `${d} is not in your clize account (see clize domain list)`, 404);
|
|
486
502
|
const mailboxes = (await ctx.store.listMailboxesOnDomain?.(ctx.tenantId, d)) ?? [];
|
|
487
503
|
const carrying = [];
|
|
488
504
|
if (id.site?.url || id.site?.customDomain)
|
|
489
|
-
carrying.push(
|
|
505
|
+
carrying.push(t `a site (${id.site.customDomain || id.site.url})`);
|
|
490
506
|
if (id.email?.inboundReady)
|
|
491
|
-
carrying.push("
|
|
507
|
+
carrying.push(t("inbound email"));
|
|
492
508
|
if (id.email?.outboundReady)
|
|
493
|
-
carrying.push("
|
|
509
|
+
carrying.push(t("sending domain"));
|
|
494
510
|
if (mailboxes.length)
|
|
495
|
-
carrying.push(`${mailboxes.length}
|
|
511
|
+
carrying.push(t `${mailboxes.length} mailbox(es) (${mailboxes.map((m) => m.address).join(", ")})`);
|
|
496
512
|
if (carrying.length && !opts.force)
|
|
497
|
-
throw new ClizeError(`${d}
|
|
498
|
-
|
|
513
|
+
throw new ClizeError(t `${d} still runs: ${carrying.join(" · ")}. Once removed, clize no longer knows this domain — the health check and outage alerts go with it,` +
|
|
514
|
+
t("while the site / mailboxes keep running, which is a silent outage of your own making. Tear them down first, then remove; to remove regardless add --force."), 409);
|
|
499
515
|
const addresses = await ctx.store.listAddresses(ctx.tenantId, d);
|
|
500
516
|
for (const a of addresses)
|
|
501
517
|
await ctx.store.removeAddress(ctx.tenantId, a.address);
|
|
@@ -512,8 +528,9 @@ export async function removeDomain(ctx, domain, opts = {}) {
|
|
|
512
528
|
removed: true,
|
|
513
529
|
...(addresses.length ? { addressesRemoved: addresses.length } : {}),
|
|
514
530
|
...(carrying.length ? { wasCarrying: carrying } : {}),
|
|
515
|
-
message: `✓ ${d}
|
|
516
|
-
|
|
531
|
+
message: t `✓ ${d} removed from clize: identity / address records / health records cleared; it no longer appears in status or domain list and no longer alerts.
|
|
532
|
+
` +
|
|
533
|
+
t `The domain itself is untouched — NS unchanged, DNS kept, registration kept, CF zone kept. To add it back: clize domain import ${d}.`,
|
|
517
534
|
};
|
|
518
535
|
}
|
|
519
536
|
/** 从注册商拉取真实已注册域名列表(含到期时间,用于防过期巡检)。 */
|
|
@@ -530,10 +547,23 @@ export async function assetsHealth(ctx, opts = {}) {
|
|
|
530
547
|
genAssetsHealth(ctx),
|
|
531
548
|
domainHealthSummary(ctx),
|
|
532
549
|
]);
|
|
533
|
-
|
|
550
|
+
// 覆盖口径:巡检账是全租户的,domainCount 在检出项目时是项目口径 —— 只有全租户视图下
|
|
551
|
+
// 「巡了几个 / 一共几个」才可比,对不上才解释(对得上时一个数字自明,不占 token)。
|
|
552
|
+
const scoped = Boolean(overview.spentScope);
|
|
553
|
+
const domainCount = Number(overview.domainCount ?? 0);
|
|
554
|
+
const checked = health ? Number(health.checkedCount ?? 0) : 0;
|
|
555
|
+
const health2 = health && !scoped && checked < domainCount
|
|
556
|
+
? {
|
|
557
|
+
...health,
|
|
558
|
+
checkedScope: t `${checked}/${domainCount} — the sweep runs every 30 minutes; newly added domains join the next round (nothing is skipped)`,
|
|
559
|
+
}
|
|
560
|
+
: health;
|
|
561
|
+
return { ...overview, registered, gen, ...(health2 ? { health: health2 } : {}) };
|
|
534
562
|
}
|
|
535
563
|
/** 巡检健康汇总:读 domain_health 账(平台 cron 每 30 分钟写),零探测零网络成本。
|
|
536
564
|
* 正常态只回 checkedCount;有异常才展开 issues —— 与 configHealth 同哲学(高频响应省 token)。
|
|
565
|
+
* 巡检范围 = 全部纳管域(2026-09-01 起含平台 handle 与 pending;见 worker.sweepDomainHealth),
|
|
566
|
+
* 所以正常态 checkedCount 应当等于 domainCount;对不上由 assetsHealth 补一句 checkedScope。
|
|
537
567
|
* 本地 File store 无巡检表 → undefined,字段整个不出现。 */
|
|
538
568
|
async function domainHealthSummary(ctx) {
|
|
539
569
|
if (!ctx.store.listDomainHealth)
|
package/dist/core/domains.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/core/domains.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/core/domains.ts"],"names":[],"mappings":"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"}
|
package/dist/core/email-tx.js
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
// 在 worker 里(需要 exec.waitUntil / D1Store)。这样这部分可脱离 D1 单测。
|
|
6
6
|
// ============================================================
|
|
7
7
|
import { ClizeError } from "../lib/errors.js";
|
|
8
|
+
/** 一次事务性发信请求(worker 从 body 收,归一后交给发送)。 */
|
|
9
|
+
import { t } from "../i18n/t.js";
|
|
8
10
|
const EMAIL_RE = /^[^@\s]+@[^@\s]+\.[^@\s]+$/;
|
|
9
11
|
function asArray(v) {
|
|
10
12
|
if (!v)
|
|
@@ -18,20 +20,20 @@ function asArray(v) {
|
|
|
18
20
|
export function normalizeTransactional(input) {
|
|
19
21
|
const from = (input.from || "").trim();
|
|
20
22
|
if (!EMAIL_RE.test(from))
|
|
21
|
-
throw new ClizeError("from
|
|
23
|
+
throw new ClizeError(t("from is not a valid email address"), 400);
|
|
22
24
|
const recipients = asArray(input.to).map((s) => s.toLowerCase());
|
|
23
25
|
if (!recipients.length)
|
|
24
|
-
throw new ClizeError("
|
|
26
|
+
throw new ClizeError(t("At least one to recipient is required"), 400);
|
|
25
27
|
const bad = recipients.find((r) => !EMAIL_RE.test(r));
|
|
26
28
|
if (bad)
|
|
27
|
-
throw new ClizeError(
|
|
29
|
+
throw new ClizeError(t `Recipient address is not valid: ${bad}`, 400);
|
|
28
30
|
if (recipients.length > 50)
|
|
29
|
-
throw new ClizeError("
|
|
31
|
+
throw new ClizeError(t("At most 50 to recipients per call (split larger batches into several calls)"), 400);
|
|
30
32
|
const subject = (input.subject || "").trim();
|
|
31
33
|
if (!subject)
|
|
32
|
-
throw new ClizeError("
|
|
34
|
+
throw new ClizeError(t("subject required"), 400);
|
|
33
35
|
if (!input.html && !input.text)
|
|
34
|
-
throw new ClizeError("html
|
|
36
|
+
throw new ClizeError(t("Provide at least one of html or text"), 400);
|
|
35
37
|
const listId = (input.list || "").trim().slice(0, 120);
|
|
36
38
|
const msg = {
|
|
37
39
|
from,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-tx.js","sourceRoot":"","sources":["../../src/core/email-tx.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uCAAuC;AACvC,6CAA6C;AAC7C,2EAA2E;AAC3E,2DAA2D;AAC3D,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"email-tx.js","sourceRoot":"","sources":["../../src/core/email-tx.ts"],"names":[],"mappings":"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"}
|
package/dist/core/email.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { resolveZone } from "../lib/zone.js";
|
|
2
2
|
import { assertDomainInProject } from "./projects.js";
|
|
3
3
|
/** 免费 handle 根域(与 handle.ts 一致)。 */
|
|
4
|
+
import { t } from "../i18n/t.js";
|
|
4
5
|
const HANDLE_ROOT = process.env.CLIZE_HANDLE_ROOT || "clize.app";
|
|
5
6
|
/** 发件地址 → 它代表的「自然域」(resolveHostedSender 的逆运算,串台护栏按它查归属):
|
|
6
7
|
* `<slug>@mail.<HANDLE_ROOT>` → `<slug>.<HANDLE_ROOT>`;`x@mail.<domain>` → `<domain>`;其余 → @ 后原样。 */
|
|
@@ -60,16 +61,16 @@ export async function setupEmail(ctx, domain) {
|
|
|
60
61
|
});
|
|
61
62
|
return {
|
|
62
63
|
domain,
|
|
63
|
-
inbound: "Cloudflare Email Routing
|
|
64
|
+
inbound: t("Cloudflare Email Routing enabled (MX/SPF written)"),
|
|
64
65
|
outbound: sending,
|
|
65
|
-
note: "
|
|
66
|
+
note: t("Sending records were written to DNS and await verification; run again later to trigger it."),
|
|
66
67
|
};
|
|
67
68
|
}
|
|
68
69
|
/** 防重发窗口(分钟):窗口内同收件人 + 同主题视为疑似重试。 */
|
|
69
70
|
const DUP_SEND_WINDOW_MIN = 10;
|
|
70
71
|
export async function sendEmail(ctx, msg, opts) {
|
|
71
72
|
if (!msg.text && !msg.html)
|
|
72
|
-
throw new Error("text
|
|
73
|
+
throw new Error(t("Provide at least one of text or html"));
|
|
73
74
|
// 串台护栏:检出项目时,发件身份必须属于当前项目(防 agent 在 A 项目目录用 B 项目身份给客户发信)。
|
|
74
75
|
const natural = senderNaturalDomain(msg.from || "");
|
|
75
76
|
if (natural)
|
|
@@ -81,9 +82,9 @@ export async function sendEmail(ctx, msg, opts) {
|
|
|
81
82
|
const cutoff = Date.now() - DUP_SEND_WINDOW_MIN * 60_000;
|
|
82
83
|
const dup = (await ctx.store.listSent(ctx.tenantId)).find((s) => s.to === toStr && s.subject === msg.subject && Date.parse(s.ts) > cutoff);
|
|
83
84
|
if (dup)
|
|
84
|
-
throw new Error(
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
throw new Error(t `Possible duplicate: a mail with the same subject was sent to ${toStr} within the last ${DUP_SEND_WINDOW_MIN} minutes (${dup.ts}).` +
|
|
86
|
+
t("If the previous send reported an error it was most likely delivered anyway (verify with clize email thread); do not resend blindly;") +
|
|
87
|
+
t("to really send another one, add --allow-duplicate."));
|
|
87
88
|
}
|
|
88
89
|
if (ctx.tenant.dryRun) {
|
|
89
90
|
await ctx.store.appendAudit(ctx.tenantId, {
|
|
@@ -96,7 +97,7 @@ export async function sendEmail(ctx, msg, opts) {
|
|
|
96
97
|
},
|
|
97
98
|
dryRun: true,
|
|
98
99
|
});
|
|
99
|
-
return { dryRun: true, message: "
|
|
100
|
+
return { dryRun: true, message: t("Rehearsal mode: nothing was sent. Set DRY_RUN=false to execute.") };
|
|
100
101
|
}
|
|
101
102
|
const res = await ctx.providers.emailOutbound().send(msg);
|
|
102
103
|
await ctx.store.appendSent(ctx.tenantId, {
|
|
@@ -154,7 +155,7 @@ export function getMessage(ctx, domain, id) {
|
|
|
154
155
|
export async function routeEmail(ctx, from, to) {
|
|
155
156
|
const domain = from.split("@")[1];
|
|
156
157
|
if (!domain)
|
|
157
|
-
throw new Error(
|
|
158
|
+
throw new Error(t `Invalid address: ${from} (expected something like support@hello.clize.app)`);
|
|
158
159
|
const zoneId = await resolveZone(ctx, domain);
|
|
159
160
|
const result = await ctx.providers.emailInbound.addRoute({ zoneId, from, to });
|
|
160
161
|
await ctx.store.appendAudit(ctx.tenantId, {
|
|
@@ -196,7 +197,7 @@ export async function emailThread(ctx, domain, contact) {
|
|
|
196
197
|
return all;
|
|
197
198
|
return {
|
|
198
199
|
thread: all.slice(-THREAD_CAP), // 对话续上要的是最近的
|
|
199
|
-
truncated:
|
|
200
|
+
truncated: t `Only the latest ${THREAD_CAP}/${all.length}; read older ones by id with clize email show ${domain} <id>`,
|
|
200
201
|
};
|
|
201
202
|
}
|
|
202
203
|
/** 配置某地址的入站 webhook(来信 POST 到 url)。重部署含 webhook 逻辑的 worker + 写 KV 配置。 */
|
|
@@ -204,13 +205,13 @@ export async function setEmailWebhook(ctx, address, url) {
|
|
|
204
205
|
await setupInbox(ctx, address); // 确保(重)部署含 webhook 逻辑的 worker + 路由
|
|
205
206
|
await ctx.providers.emailInbound.setWebhook(address, url);
|
|
206
207
|
await ctx.store.appendAudit(ctx.tenantId, { action: "email_webhook", detail: { address, url } });
|
|
207
|
-
return { address, webhook: url, message:
|
|
208
|
+
return { address, webhook: url, message: t `Mail to ${address} will POST its envelope to ${url}` };
|
|
208
209
|
}
|
|
209
210
|
/** 开启 agent 自持收信:把发往 address 的邮件捕获到 agent 收件箱(Email Worker + KV),可选同时转发。 */
|
|
210
211
|
export async function setupInbox(ctx, address, forwardTo) {
|
|
211
212
|
const domain = address.split("@")[1];
|
|
212
213
|
if (!domain)
|
|
213
|
-
throw new Error(
|
|
214
|
+
throw new Error(t `Invalid address: ${address} (expected something like support@hello.clize.app)`);
|
|
214
215
|
const zoneId = await resolveZone(ctx, domain);
|
|
215
216
|
const result = await ctx.providers.emailInbound.setupInbox({ address, zoneId, forwardTo });
|
|
216
217
|
await ctx.store.appendAudit(ctx.tenantId, {
|
|
@@ -219,7 +220,7 @@ export async function setupInbox(ctx, address, forwardTo) {
|
|
|
219
220
|
});
|
|
220
221
|
return {
|
|
221
222
|
...result,
|
|
222
|
-
message:
|
|
223
|
+
message: t `Agent inbound enabled: mail to ${address} lands in the inbox; read it with \`clize email inbox ${domain}\`${forwardTo ? t `; also forwarded to ${forwardTo}` : ""}`,
|
|
223
224
|
};
|
|
224
225
|
}
|
|
225
226
|
//# sourceMappingURL=email.js.map
|