@clize/clize 0.31.1 → 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.
Files changed (114) hide show
  1. package/README.md +19 -17
  2. package/dist/cli.js +487 -375
  3. package/dist/cli.js.map +1 -1
  4. package/dist/core/addresses.js +12 -11
  5. package/dist/core/addresses.js.map +1 -1
  6. package/dist/core/analytics.js +6 -5
  7. package/dist/core/analytics.js.map +1 -1
  8. package/dist/core/authz.js +6 -5
  9. package/dist/core/authz.js.map +1 -1
  10. package/dist/core/billing.js +83 -12
  11. package/dist/core/billing.js.map +1 -1
  12. package/dist/core/credentials.js +3 -1
  13. package/dist/core/credentials.js.map +1 -1
  14. package/dist/core/dns.js +3 -2
  15. package/dist/core/dns.js.map +1 -1
  16. package/dist/core/domain-health.js +74 -50
  17. package/dist/core/domain-health.js.map +1 -1
  18. package/dist/core/domains.js +102 -45
  19. package/dist/core/domains.js.map +1 -1
  20. package/dist/core/email-tx.js +8 -6
  21. package/dist/core/email-tx.js.map +1 -1
  22. package/dist/core/email.js +13 -12
  23. package/dist/core/email.js.map +1 -1
  24. package/dist/core/env-detect.js +7 -14
  25. package/dist/core/env-detect.js.map +1 -1
  26. package/dist/core/handle.js +33 -30
  27. package/dist/core/handle.js.map +1 -1
  28. package/dist/core/install.js +114 -56
  29. package/dist/core/install.js.map +1 -1
  30. package/dist/core/media.js +37 -36
  31. package/dist/core/media.js.map +1 -1
  32. package/dist/core/payments.js +5 -4
  33. package/dist/core/payments.js.map +1 -1
  34. package/dist/core/projects.js +38 -26
  35. package/dist/core/projects.js.map +1 -1
  36. package/dist/core/redirect.js +4 -3
  37. package/dist/core/redirect.js.map +1 -1
  38. package/dist/core/seo-classify.js +23 -8
  39. package/dist/core/seo-classify.js.map +1 -1
  40. package/dist/core/seo.js +6 -0
  41. package/dist/core/seo.js.map +1 -1
  42. package/dist/core/serve.js +2 -1
  43. package/dist/core/serve.js.map +1 -1
  44. package/dist/core/setup.js +11 -9
  45. package/dist/core/setup.js.map +1 -1
  46. package/dist/core/shop.js +17 -16
  47. package/dist/core/shop.js.map +1 -1
  48. package/dist/core/site.js +2 -1
  49. package/dist/core/site.js.map +1 -1
  50. package/dist/core/sites.js +53 -40
  51. package/dist/core/sites.js.map +1 -1
  52. package/dist/core/triage.js +39 -5
  53. package/dist/core/triage.js.map +1 -1
  54. package/dist/core/video.js +45 -43
  55. package/dist/core/video.js.map +1 -1
  56. package/dist/github.js +4 -3
  57. package/dist/github.js.map +1 -1
  58. package/dist/i18n/t.js +65 -0
  59. package/dist/i18n/t.js.map +1 -0
  60. package/dist/i18n/zh.js +1265 -0
  61. package/dist/i18n/zh.js.map +1 -0
  62. package/dist/index.js +61 -40
  63. package/dist/index.js.map +1 -1
  64. package/dist/lib/cloudflare.js +8 -7
  65. package/dist/lib/cloudflare.js.map +1 -1
  66. package/dist/lib/crypto.js +2 -1
  67. package/dist/lib/crypto.js.map +1 -1
  68. package/dist/lib/vercel.js +2 -1
  69. package/dist/lib/vercel.js.map +1 -1
  70. package/dist/lib/zone.js +2 -1
  71. package/dist/lib/zone.js.map +1 -1
  72. package/dist/mcp-profiles.js +5 -1
  73. package/dist/mcp-profiles.js.map +1 -1
  74. package/dist/providers/deploy/cloudflare.js +3 -2
  75. package/dist/providers/deploy/cloudflare.js.map +1 -1
  76. package/dist/providers/email/cloudflare-inbound.js +4 -3
  77. package/dist/providers/email/cloudflare-inbound.js.map +1 -1
  78. package/dist/providers/email/cloudflare-outbound.js +2 -1
  79. package/dist/providers/email/cloudflare-outbound.js.map +1 -1
  80. package/dist/providers/email/resend.js +3 -2
  81. package/dist/providers/email/resend.js.map +1 -1
  82. package/dist/providers/email/ses.js +3 -2
  83. package/dist/providers/email/ses.js.map +1 -1
  84. package/dist/providers/index.js +3 -2
  85. package/dist/providers/index.js.map +1 -1
  86. package/dist/providers/media/google.js +10 -9
  87. package/dist/providers/media/google.js.map +1 -1
  88. package/dist/providers/media/kie.js +12 -11
  89. package/dist/providers/media/kie.js.map +1 -1
  90. package/dist/providers/media/kunavo.js +10 -9
  91. package/dist/providers/media/kunavo.js.map +1 -1
  92. package/dist/providers/media/openai.js +5 -4
  93. package/dist/providers/media/openai.js.map +1 -1
  94. package/dist/providers/media/suno.js +7 -6
  95. package/dist/providers/media/suno.js.map +1 -1
  96. package/dist/providers/registrar/routing.js +2 -1
  97. package/dist/providers/registrar/routing.js.map +1 -1
  98. package/dist/providers/registrar/vercel.js +2 -1
  99. package/dist/providers/registrar/vercel.js.map +1 -1
  100. package/dist/providers/seo/dataforseo.js +5 -4
  101. package/dist/providers/seo/dataforseo.js.map +1 -1
  102. package/dist/providers/seo/gsc.js +5 -4
  103. package/dist/providers/seo/gsc.js.map +1 -1
  104. package/dist/remote.js +25 -22
  105. package/dist/remote.js.map +1 -1
  106. package/dist/selfcheck.js +23 -22
  107. package/dist/selfcheck.js.map +1 -1
  108. package/dist/state/file-store.js +17 -16
  109. package/dist/state/file-store.js.map +1 -1
  110. package/package.json +4 -3
  111. package/skills/clize/SKILL.md +171 -143
  112. package/skills/clize-seo/SKILL.md +52 -3
  113. package/skills/clize-site-build/SKILL.md +97 -41
  114. package/skills/clize-site-debug/SKILL.md +73 -45
@@ -8,12 +8,13 @@ import fs from "node:fs";
8
8
  import path from "node:path";
9
9
  import { randomBytes } from "node:crypto";
10
10
  import { projectFilter, requireProjectId } from "./projects.js";
11
+ import { t } from "../i18n/t.js";
11
12
  const ASSET_DIR = "clize-assets";
12
13
  const DEFAULT_IMAGE_MODEL = "gpt-image-2";
13
14
  /** 文生图 / 图生图。返回 MediaJob(含落盘 path);未 --confirm 且不在预批额度内 → 只返报价。 */
14
15
  export async function genImage(ctx, params, opts = {}) {
15
16
  if (!params.prompt?.trim())
16
- throw new Error("prompt —— prompt 由你()写,clize 不代笔。");
17
+ throw new Error(t("prompt missing you (the brain) write the prompt; clize does not write it for you."));
17
18
  // 项目归属先行解析(fail fast):检出名无效要在花钱生成之前就报。
18
19
  const projectId = await requireProjectId(ctx);
19
20
  const model = params.model || DEFAULT_IMAGE_MODEL;
@@ -41,8 +42,8 @@ export async function genImage(ctx, params, opts = {}) {
41
42
  ? { capUsd: budget.capUsd, spentUsd: round2(budget.spentUsd), remainingUsd: round2(remaining) }
42
43
  : null,
43
44
  message: budget
44
- ? `📋 报价约 $${estUsd.toFixed(2)};预批额度只剩 $${remaining.toFixed(2)},不够本次。加 --confirm,或 clize gen budget set <更大额度>。`
45
- : `📋 报价约 $${estUsd.toFixed(2)}(${n} )。确认后加 --confirm 才生成;或先 clize gen budget set <usd> 预批额度,额度内免逐次确认。`,
45
+ ? t `📋 Quote about $${estUsd.toFixed(2)}; only $${remaining.toFixed(2)} of the pre-approved budget is left, not enough for this. Add --confirm, or clize gen budget set <a larger amount>.`
46
+ : t `📋 Quote about $${estUsd.toFixed(2)} (${n} image(s)). Add --confirm after approval to generate; or pre-approve a budget with clize gen budget set <usd> and skip per-call confirmation within it.`,
46
47
  };
47
48
  }
48
49
  // 3) 演练模式(只记审计,不真生成)
@@ -60,7 +61,7 @@ export async function genImage(ctx, params, opts = {}) {
60
61
  n,
61
62
  wouldCostUsd: round2(estUsd),
62
63
  currency,
63
- message: "演练模式:未真正生成。设 DRY_RUN=false 后执行。",
64
+ message: t("Rehearsal mode: nothing was generated. Set DRY_RUN=false to execute."),
64
65
  };
65
66
  }
66
67
  // 4) 生成(G1 = 本地算力 + 你自带的 model key;费用走你自己的 provider 账户,clize 不碰钱包。
@@ -92,7 +93,7 @@ export async function genImage(ctx, params, opts = {}) {
92
93
  return pollUntilDone(ctx, job, provider, params.out, !!budget, DEFAULT_TIMEOUT_SEC);
93
94
  }
94
95
  if (result.state !== "succeeded" || !result.artifacts.length)
95
- throw new Error(`生成未成功${result.error ? `:${result.error}` : ""}(内容拦截 / provider 错误 —— 作数据看待,别盲目重试)`);
96
+ throw new Error(t `Generation did not succeed${result.error ? `:${result.error}` : ""} (content block / provider error treat as data; do not blindly retry)`);
96
97
  // 5) 落盘(输出契约:字节落 ./clize-assets 或 --out,项目本地,deploy 能直接捡到)
97
98
  const id = genId();
98
99
  const files = writeArtifacts(result.artifacts, { id, out: params.out });
@@ -122,7 +123,7 @@ export async function genImage(ctx, params, opts = {}) {
122
123
  await ctx.store.upsertJob(ctx.tenantId, job).catch(() => { });
123
124
  return {
124
125
  ...job,
125
- hint: "图已落盘 —— 你可以 Read 这些 path 自己看,不满意改 prompt 重生成;满意了 deploy 进站或当邮件附件。",
126
+ hint: t("Images written to disk — Read these paths to look yourself; adjust the prompt and regenerate if unhappy; once satisfied deploy them into a site or attach them to an email."),
126
127
  };
127
128
  }
128
129
  // 列表上限:媒体资产只增不减,无上限的 list 会随使用量线性撑大 agent transcript(同 status 的 cap)。
@@ -135,14 +136,14 @@ export async function listAssets(ctx, modality) {
135
136
  return {
136
137
  count: all.length,
137
138
  ...(all.length > GEN_LIST_CAP
138
- ? { truncated: `仅列最近 ${GEN_LIST_CAP}/${all.length};--modality 收窄,或 clize gen show <id> 看单条` }
139
+ ? { truncated: t `Only the latest ${GEN_LIST_CAP}/${all.length}; narrow with --modality, or clize gen show <id> for one` }
139
140
  : {}),
140
141
  assets: jobs.map((j) => ({
141
142
  id: j.id,
142
143
  modality: j.modality,
143
144
  model: j.model,
144
145
  state: j.state,
145
- files: (j.files ?? []).map((f) => f.path ?? f.url ?? (f.bytes != null ? `${f.bytes}B(已回传本地)` : null)),
146
+ files: (j.files ?? []).map((f) => f.path ?? f.url ?? (f.bytes != null ? t `${f.bytes}B (already downloaded locally)` : null)),
146
147
  costUsd: j.costUsd,
147
148
  createdAt: j.createdAt,
148
149
  prompt: clip(j.prompt),
@@ -153,7 +154,7 @@ export async function listAssets(ctx, modality) {
153
154
  export async function getAsset(ctx, id) {
154
155
  const job = await ctx.store.getJob(ctx.tenantId, id);
155
156
  if (!job)
156
- throw new Error(`未找到生成任务 ${id}(clize gen list 看全部)`);
157
+ throw new Error(t `Generation job ${id} not found (clize gen list shows them all)`);
157
158
  return job;
158
159
  }
159
160
  /** 查预批额度。 */
@@ -162,24 +163,24 @@ export async function genBudget(ctx) {
162
163
  if (!b)
163
164
  return {
164
165
  budget: null,
165
- message: "未设预批额度。clize gen budget set <usd> 预批一个,额度内生成免逐次 --confirm",
166
+ message: t("No pre-approved budget. Set one with clize gen budget set <usd>; generations within it skip per-call --confirm."),
166
167
  };
167
168
  return {
168
169
  capUsd: b.capUsd,
169
170
  spentUsd: round2(b.spentUsd),
170
171
  remainingUsd: round2(Math.max(0, b.capUsd - b.spentUsd)),
171
172
  setAt: b.setAt,
172
- message: "额度内生成免逐次 --confirm;超额自动恢复要 --confirm",
173
+ message: t("Generations within the budget skip per-call --confirm; beyond it --confirm is required again."),
173
174
  };
174
175
  }
175
176
  /** 设 / 重置预批额度(spent 归零)。 */
176
177
  export async function setGenBudget(ctx, capUsd) {
177
178
  if (!(capUsd >= 0))
178
- throw new Error("额度需为非负数,如 clize gen budget set 2.00");
179
+ throw new Error(t("The budget must be a non-negative number, e.g. clize gen budget set 2.00"));
179
180
  const b = await ctx.store.setGenBudget(ctx.tenantId, round2(capUsd));
180
181
  return {
181
182
  ...b,
182
- message: `已预批 $${b.capUsd.toFixed(2)};额度内生成免逐次 --confirm(已花 $0.00 / 上限 $${b.capUsd.toFixed(2)})。`,
183
+ message: t `Pre-approved $${b.capUsd.toFixed(2)}; generations within it skip per-call --confirm (spent $0.00 / limit $${b.capUsd.toFixed(2)}).`,
183
184
  };
184
185
  }
185
186
  const DEFAULT_VIDEO_MODEL = "veo";
@@ -233,14 +234,14 @@ export async function genJobs(ctx) {
233
234
  count: all.length,
234
235
  running: all.filter((j) => j.state === "running" || j.state === "queued").length,
235
236
  ...(all.length > GEN_LIST_CAP
236
- ? { truncated: `仅列 ${GEN_LIST_CAP}/${all.length}(running 全在内);历史资产:clize gen list` }
237
+ ? { truncated: t `Only ${GEN_LIST_CAP}/${all.length} listed (every running job included); past assets: clize gen list` }
237
238
  : {}),
238
239
  jobs: jobs.map((j) => ({
239
240
  id: j.id,
240
241
  modality: j.modality,
241
242
  model: j.model,
242
243
  state: j.state,
243
- files: (j.files ?? []).map((f) => f.path ?? f.url ?? (f.bytes != null ? `${f.bytes}B(已回传本地)` : null)),
244
+ files: (j.files ?? []).map((f) => f.path ?? f.url ?? (f.bytes != null ? t `${f.bytes}B (already downloaded locally)` : null)),
244
245
  costUsd: j.costUsd,
245
246
  createdAt: j.createdAt,
246
247
  prompt: clip(j.prompt),
@@ -251,12 +252,12 @@ export async function genJobs(ctx) {
251
252
  export async function genJobStatus(ctx, id) {
252
253
  const job = await ctx.store.getJob(ctx.tenantId, id);
253
254
  if (!job)
254
- throw new Error(`未找到生成任务 ${id}(clize gen jobs 看全部)`);
255
+ throw new Error(t `Generation job ${id} not found (clize gen jobs shows them all)`);
255
256
  if (job.state !== "running" && job.state !== "queued")
256
257
  return withHint(job);
257
258
  const provider = ctx.providers.media(job.model);
258
259
  if (!provider.poll || !job.providerJobId)
259
- return { ...job, note: "该任务无法轮询( provider job id);可能是旧记录。" };
260
+ return { ...job, note: t("This job cannot be polled (no provider job id); possibly an old record.") };
260
261
  let r;
261
262
  try {
262
263
  r = await provider.poll(job.providerJobId);
@@ -264,7 +265,7 @@ export async function genJobStatus(ctx, id) {
264
265
  catch (e) {
265
266
  return {
266
267
  ...job,
267
- note: `轮询出错:${e instanceof Error ? e.message : String(e)};稍后再 clize gen status ${id}。`,
268
+ note: t `Polling error: ${e instanceof Error ? e.message : String(e)}; try clize gen status ${id} again later.`,
268
269
  };
269
270
  }
270
271
  if (r.state === "succeeded" && r.artifacts.length) {
@@ -272,14 +273,14 @@ export async function genJobStatus(ctx, id) {
272
273
  return withHint(await completeJob(ctx, job, r, undefined, !!budget));
273
274
  }
274
275
  if (r.state === "failed")
275
- return withHint(await failJob(ctx, job, r.error ?? "provider 报失败"));
276
- return { ...job, note: "仍在生成,稍后再 clize gen status" };
276
+ return withHint(await failJob(ctx, job, r.error ?? t("the provider reported a failure")));
277
+ return { ...job, note: t("Still generating; run clize gen status again later.") };
277
278
  }
278
279
  /** 删任务记录 + best-effort 删本地文件。 */
279
280
  export async function genRm(ctx, id) {
280
281
  const job = await ctx.store.getJob(ctx.tenantId, id);
281
282
  if (!job)
282
- throw new Error(`未找到生成任务 ${id}`);
283
+ throw new Error(t `Generation job ${id} not found`);
283
284
  const removed = [];
284
285
  for (const f of job.files ?? []) {
285
286
  if (!f.path)
@@ -296,7 +297,7 @@ export async function genRm(ctx, id) {
296
297
  return {
297
298
  id,
298
299
  removed,
299
- message: `已删任务 ${id}${removed.length ? ` + ${removed.length} 个本地文件` : ""}`,
300
+ message: t `Deleted job ${id}${removed.length ? t ` + ${removed.length} local file(s)` : ""}`,
300
301
  };
301
302
  }
302
303
  /** 托管(remote)结果落盘:图 base64 内联 / 视频音乐透传 URL → 本地文件,返回带 path 的最终对象。 */
@@ -317,15 +318,15 @@ export async function materializeRemote(job, out) {
317
318
  const files = writeArtifacts(artifacts, { id: String(job.id ?? genId()), out });
318
319
  const { artifacts: _a, download: _d, ...rest } = job;
319
320
  const hint = job.modality === "image"
320
- ? "图已落盘 —— 你可 Read 自看自判;满意了 deploy 进站或当邮件附件。"
321
- : "已落盘 —— 你看不了视频 / 听不了音乐,把 path 摆给用户、等他判断。";
321
+ ? t("Image written to disk — Read it and judge yourself; once satisfied deploy it into a site or attach it to an email.")
322
+ : t("Written to disk — you cannot watch video / listen to music; hand the path to the user and let them judge.");
322
323
  return { ...rest, files, hint };
323
324
  }
324
325
  // ---- 内部 ----
325
326
  /** 提交异步生成(视频 / 音乐):报价 → 💰 闸 → 提交 →(默认)long-poll 到完成 /(--async)返 job id。 */
326
327
  async function submitAsync(ctx, req, out, opts) {
327
328
  if (!req.prompt?.trim())
328
- throw new Error("prompt —— prompt 由你()写,clize 不代笔。");
329
+ throw new Error(t("prompt missing you (the brain) write the prompt; clize does not write it for you."));
329
330
  // 项目归属先行解析(fail fast):检出名无效要在提交 provider 任务之前就报。
330
331
  const projectId = await requireProjectId(ctx);
331
332
  const { modality, model } = req;
@@ -341,7 +342,7 @@ async function submitAsync(ctx, req, out, opts) {
341
342
  budget: budget
342
343
  ? { capUsd: budget.capUsd, spentUsd: round2(budget.spentUsd), remainingUsd: round2(remaining) }
343
344
  : null,
344
- message: `📋 报价约 $${estUsd.toFixed(2)}(${modality}${modality === "video" ? ",按秒计费、要跑几分钟" : ""})。确认后加 --confirm 才生成;或先 clize gen budget set <usd> 预批。`,
345
+ message: t `📋 Quote about $${estUsd.toFixed(2)} (${modality}${modality === "video" ? t(", billed per second, takes a few minutes") : ""}). Add --confirm after approval to generate; or pre-approve with clize gen budget set <usd>.`,
345
346
  };
346
347
  }
347
348
  // 2) 演练
@@ -359,13 +360,13 @@ async function submitAsync(ctx, req, out, opts) {
359
360
  model,
360
361
  wouldCostUsd: round2(estUsd),
361
362
  currency,
362
- message: "演练模式:未真正生成。设 DRY_RUN=false 后执行。",
363
+ message: t("Rehearsal mode: nothing was generated. Set DRY_RUN=false to execute."),
363
364
  };
364
365
  }
365
366
  // 3) 提交
366
367
  const submitted = await provider.generate(req);
367
368
  if (submitted.state === "failed")
368
- throw new Error(`提交失败${submitted.error ? `:${submitted.error}` : ""}(作数据看待,别盲目重试)`);
369
+ throw new Error(t `Submission failed${submitted.error ? `:${submitted.error}` : ""} (treat as data; do not blindly retry)`);
369
370
  const now = new Date().toISOString();
370
371
  const job = {
371
372
  id: genId(),
@@ -394,7 +395,7 @@ async function submitAsync(ctx, req, out, opts) {
394
395
  if (opts.async)
395
396
  return {
396
397
  ...job,
397
- message: `已提交,后台生成中。回头 clize gen status ${job.id} 拉结果(clize gen jobs 看进度)。`,
398
+ message: t `Submitted; generating in the background. Fetch the result later with clize gen status ${job.id} (clize gen jobs shows progress).`,
398
399
  };
399
400
  // 默认 --wait:long-poll 到完成 / 超时
400
401
  return pollUntilDone(ctx, job, provider, out, !!budget, opts.timeoutSec ?? DEFAULT_TIMEOUT_SEC);
@@ -402,7 +403,7 @@ async function submitAsync(ctx, req, out, opts) {
402
403
  /** long-poll 直到 succeeded/failed/超时。超时返回 running 提示(任务在 clize 侧没断,可 gen status 重连)。 */
403
404
  async function pollUntilDone(ctx, job, provider, out, budgetSet, timeoutSec) {
404
405
  if (!provider.poll || !job.providerJobId)
405
- return { ...job, note: "provider 不支持轮询;用 clize gen status 查询。" };
406
+ return { ...job, note: t("The provider does not support polling; check with clize gen status.") };
406
407
  const start = Date.now();
407
408
  for (;;) {
408
409
  await sleep(POLL_INTERVAL_MS);
@@ -416,8 +417,8 @@ async function pollUntilDone(ctx, job, provider, out, budgetSet, timeoutSec) {
416
417
  if (r?.state === "succeeded" && r.artifacts.length)
417
418
  return withHint(await completeJob(ctx, job, r, out, budgetSet));
418
419
  if (r?.state === "failed") {
419
- await failJob(ctx, job, r.error ?? "provider 报失败");
420
- throw new Error(`生成失败${r.error ? `:${r.error}` : ""}(作数据看待,别盲目重试)`);
420
+ await failJob(ctx, job, r.error ?? t("the provider reported a failure"));
421
+ throw new Error(t `Generation failed${r.error ? `:${r.error}` : ""} (treat as data; do not blindly retry)`);
421
422
  }
422
423
  if (Date.now() - start >= timeoutSec * 1000)
423
424
  // timedOut=true + next:机器可读 —— 任务没失败也没丢,别重新提交,照 next 轮询。
@@ -425,7 +426,7 @@ async function pollUntilDone(ctx, job, provider, out, budgetSet, timeoutSec) {
425
426
  ...job,
426
427
  timedOut: true,
427
428
  next: `clize gen status ${job.id}`,
428
- message: `已等 ${timeoutSec}s 仍在生成 —— 任务在 clize 侧没断。回头 clize gen status ${job.id} 拉结果。`,
429
+ message: t `Still generating after ${timeoutSec}s the job is intact on the clize side. Fetch the result later with clize gen status ${job.id}.`,
429
430
  };
430
431
  }
431
432
  }
@@ -461,8 +462,8 @@ function withHint(job) {
461
462
  if (job.state !== "succeeded")
462
463
  return { ...job };
463
464
  const hint = job.modality === "image"
464
- ? "图已落盘 —— 你可 Read 自看自判;满意了 deploy 进站或当邮件附件。"
465
- : "已落盘 —— 你看不了视频 / 听不了音乐,把 path 摆给用户、等他判断,别替他下结论。";
465
+ ? t("Image written to disk — Read it and judge yourself; once satisfied deploy it into a site or attach it to an email.")
466
+ : t("Written to disk — you cannot watch video / listen to music; hand the path to the user and let them judge, do not conclude for them.");
466
467
  return { ...job, hint };
467
468
  }
468
469
  function sleep(ms) {
@@ -503,7 +504,7 @@ function b64ToBytes(b64) {
503
504
  async function fetchBytes(url) {
504
505
  const r = await fetch(url);
505
506
  if (!r.ok)
506
- throw new Error(`下载结果失败 ${r.status}`);
507
+ throw new Error(t `Result download failed ${r.status}`);
507
508
  return new Uint8Array(await r.arrayBuffer());
508
509
  }
509
510
  //# sourceMappingURL=media.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/core/media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/core/media.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  /** 连接 Stripe 的唯一入口:web dashboard 计费页。
2
2
  * Connect onboarding 要本人登录 Stripe 填 KYC,CLI / agent 做不了也不该做 ——
3
3
  * 所有「去连接」的指路(CLI / worker 报错 / status hint)都收敛到这一个常量。 */
4
+ import { t } from "../i18n/t.js";
4
5
  export const CONNECT_URL = "https://clize.ai/app#/billing";
5
6
  /** 平台抽成比例:租户覆盖值(platformFeePct)优先,否则平台默认(connectFeePct)。 */
6
7
  export function feePctFor(ctx, override) {
@@ -22,11 +23,11 @@ export async function connectStatus(ctx) {
22
23
  // 三态。任何一态都不提 CLI 连接命令:连接只在网页做(要登录 Stripe 填 KYC)。
23
24
  hint: c.accountId
24
25
  ? c.chargesEnabled
25
- ? "可收款。clize pay link --amount <usd> 生成收款链接(缺省自动进你的 Stripe)"
26
- : "已连接但未完成 Stripe onboarding;去 Stripe 完成验证后即可收款,在此之前收款自动进 clize 余额。"
26
+ ? t("Ready to take payments. clize pay link --amount <usd> creates a payment link (lands in your Stripe by default).")
27
+ : t("Connected but Stripe onboarding is incomplete; finish verification at Stripe to take payments, until then they land in your clize balance.")
27
28
  : platformReady
28
- ? `未连接 —— 收款自动进 clize 余额(clize balance 查看)。要让钱直接进你自己的 Stripe,请本人到 ${CONNECT_URL} 连接。`
29
- : "平台暂未开通 Stripe Connect,收款自动进 clize 余额(clize balance 查看)",
29
+ ? t `Not connected — payments land in your clize balance (see clize balance). To receive money in your own Stripe, connect it yourself at ${CONNECT_URL}.`
30
+ : t("Stripe Connect is not enabled on the platform yet; payments land in your clize balance (see clize balance)."),
30
31
  };
31
32
  }
32
33
  /** 本商家代收单列表(最新在前)。 */
@@ -1 +1 @@
1
- {"version":3,"file":"payments.js","sourceRoot":"","sources":["../../src/core/payments.ts"],"names":[],"mappings":"AASA;;0DAE0D;AAC1D,MAAM,CAAC,MAAM,WAAW,GAAG,+BAA+B,CAAC;AAE3D,4DAA4D;AAC5D,MAAM,UAAU,SAAS,CAAC,GAAY,EAAE,QAAiB;IACvD,OAAO,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;AACxD,CAAC;AAED;;0DAE0D;AAC1D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY;IAC9C,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;IAC1D,OAAO;QACL,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACxB,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,yBAAyB;QACjD,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;QAChC,oBAAoB,EAAE,aAAa;QACnC,UAAU,EAAE,WAAW;QACvB,iDAAiD;QACjD,IAAI,EAAE,CAAC,CAAC,SAAS;YACf,CAAC,CAAC,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,2DAA2D;gBAC7D,CAAC,CAAC,kEAAkE;YACtE,CAAC,CAAC,aAAa;gBACb,CAAC,CAAC,kEAAkE,WAAW,MAAM;gBACrF,CAAC,CAAC,yDAAyD;KAChE,CAAC;AACJ,CAAC;AAED,sBAAsB;AACtB,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAY,EAAE,KAAK,GAAG,EAAE;IACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"payments.js","sourceRoot":"","sources":["../../src/core/payments.ts"],"names":[],"mappings":"AASA;;0DAE0D;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjC,MAAM,CAAC,MAAM,WAAW,GAAG,+BAA+B,CAAC;AAE3D,4DAA4D;AAC5D,MAAM,UAAU,SAAS,CAAC,GAAY,EAAE,QAAiB;IACvD,OAAO,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;AACxD,CAAC;AAED;;0DAE0D;AAC1D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY;IAC9C,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;IAC1D,OAAO;QACL,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACxB,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,yBAAyB;QACjD,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;QAChC,oBAAoB,EAAE,aAAa;QACnC,UAAU,EAAE,WAAW;QACvB,iDAAiD;QACjD,IAAI,EAAE,CAAC,CAAC,SAAS;YACf,CAAC,CAAC,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,CAAC,CAAC,iHAAiH,CAAC;gBACtH,CAAC,CAAC,CAAC,CAAC,4IAA4I,CAAC;YACnJ,CAAC,CAAC,aAAa;gBACb,CAAC,CAAC,CAAC,CAAA,wIAAwI,WAAW,GAAG;gBACzJ,CAAC,CAAC,CAAC,CAAC,6GAA6G,CAAC;KACvH,CAAC;AACJ,CAAC;AAED,sBAAsB;AACtB,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAY,EAAE,KAAK,GAAG,EAAE;IACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;AACzE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { ClizeError } from "../lib/errors.js";
2
2
  /** slug 规整:小写、非字母数字转连字符、去首尾连字符。 */
3
+ import { t } from "../i18n/t.js";
3
4
  function slugify(s) {
4
5
  return s
5
6
  .toLowerCase()
@@ -27,12 +28,12 @@ export async function listProjects(ctx) {
27
28
  export async function createProject(ctx, opts) {
28
29
  const name = (opts.name || "").trim();
29
30
  if (!name)
30
- throw new ClizeError("项目名不能为空", 400);
31
+ throw new ClizeError(t("The project name cannot be empty"), 400);
31
32
  const slug = (opts.slug ? opts.slug : slugify(name)).trim();
32
33
  if (!slug)
33
- throw new ClizeError("项目标识(slug)不能为空", 400);
34
+ throw new ClizeError(t("The project slug cannot be empty"), 400);
34
35
  if (await ctx.store.getProject(ctx.tenantId, slug))
35
- throw new ClizeError(`项目 "${slug}" 已存在`, 409);
36
+ throw new ClizeError(t `Project "${slug}" already exists`, 409);
36
37
  return ctx.store.createProject(ctx.tenantId, { name, slug });
37
38
  }
38
39
  /** 「将建未建」哨兵 id:checkout 检出的项目还没落库(init 即项目,首次写资源才建)时,
@@ -53,8 +54,19 @@ export async function currentProjectId(ctx) {
53
54
  return p.id;
54
55
  if (ctx.projectSlugSource === "checkout")
55
56
  return PENDING_PROJECT_ID;
56
- throw new ClizeError(`项目 "${ctx.projectSlug}" 不存在(-p 单次指定要求项目已存在,防打错字;` +
57
- `clize projects 看列表,clize projects new "<名字>" 新建)`, 404);
57
+ throw new ClizeError(t `Project "${ctx.projectSlug}" does not exist (-p requires an existing project, to catch typos; ` +
58
+ t("clize projects lists them, clize projects new \"<name>\" creates one)"), 404);
59
+ }
60
+ /** 当前检出项目下的域名集合 —— status「谁在等」/ email list / email search 的项目作用域用
61
+ * (design/cli-experience-plan.md B2)。未检出 → undefined(全租户);checkout 未建(PENDING)→ []
62
+ * (空项目视图);-p 指向不存在的项目 → currentProjectId 已抛 404(与 workspaceStatus 同闸,不静默回退全租户)。 */
63
+ export async function projectDomains(ctx) {
64
+ const id = await currentProjectId(ctx);
65
+ if (!id)
66
+ return undefined;
67
+ if (id === PENDING_PROJECT_ID)
68
+ return [];
69
+ return (await ctx.store.listIdentities(ctx.tenantId, id)).map((i) => i.domain.toLowerCase());
58
70
  }
59
71
  /** 写路径:解析当前检出项目的 id,资源创建(buy / claim / import / gen)的归属必须确定。
60
72
  * flag 来源(-p)不存在 → currentProjectId 已报错(读写同闸);
@@ -100,16 +112,16 @@ export async function moveDomain(ctx, domain, targetSlug) {
100
112
  const d = domain.toLowerCase();
101
113
  const identity = await ctx.store.getIdentity(ctx.tenantId, d);
102
114
  if (!identity)
103
- throw new ClizeError(`未找到域名 ${d}(clize domain list 看全部)`, 404);
115
+ throw new ClizeError(t `Domain ${d} not found (clize domain list shows them all)`, 404);
104
116
  const target = targetSlug === "default"
105
117
  ? await ctx.store.ensureDefaultProject(ctx.tenantId)
106
118
  : await ctx.store.getProject(ctx.tenantId, targetSlug);
107
119
  if (!target)
108
- throw new ClizeError(`项目 "${targetSlug}" 不存在(clize projects 看列表)`, 404);
120
+ throw new ClizeError(t `Project "${targetSlug}" does not exist (see clize projects)`, 404);
109
121
  const def = await ctx.store.ensureDefaultProject(ctx.tenantId);
110
122
  const fromId = identity.projectId ?? def.id;
111
123
  if (fromId === target.id)
112
- return { domain: d, project: target.slug, message: `${d} 已在项目 "${target.slug}",无需移动。` };
124
+ return { domain: d, project: target.slug, message: t `${d} is already in project "${target.slug}"; nothing to move.` };
113
125
  const fromSlug = (await ctx.store.listProjects(ctx.tenantId)).find((p) => p.id === fromId)?.slug ?? "default";
114
126
  await ctx.store.upsertIdentity(ctx.tenantId, { domain: d, projectId: target.id });
115
127
  await ctx.store.appendAudit(ctx.tenantId, {
@@ -120,7 +132,7 @@ export async function moveDomain(ctx, domain, targetSlug) {
120
132
  domain: d,
121
133
  from: fromSlug,
122
134
  to: target.slug,
123
- message: `已把 ${d} 挪到项目 "${target.slug}"(它的邮箱地址跟着走;媒体资产不动)。`,
135
+ message: t `Moved ${d} to project "${target.slug}" (its mailboxes moved with it; media assets stay).`,
124
136
  };
125
137
  }
126
138
  /** 改项目显示名 / slug。default 不能改 slug(它是无归属旧资源的兜底锚点)。 */
@@ -128,16 +140,16 @@ export async function renameProject(ctx, slug, patch) {
128
140
  const name = patch.name?.trim() || undefined;
129
141
  const newSlug = patch.slug?.trim() || undefined;
130
142
  if (!name && !newSlug)
131
- throw new ClizeError("指定 --name / --slug 至少一个", 400);
143
+ throw new ClizeError(t("Specify at least one of --name / --slug"), 400);
132
144
  const existing = slug === "default"
133
145
  ? await ctx.store.ensureDefaultProject(ctx.tenantId)
134
146
  : await ctx.store.getProject(ctx.tenantId, slug);
135
147
  if (!existing)
136
- throw new ClizeError(`项目 "${slug}" 不存在(clize projects 看列表)`, 404);
148
+ throw new ClizeError(t `Project "${slug}" does not exist (see clize projects)`, 404);
137
149
  if (newSlug && slug === "default")
138
- throw new ClizeError("default 项目不能改 slug(它是无归属旧资源的兜底锚点);改 --name 可以", 400);
150
+ throw new ClizeError(t("The default project's slug cannot change (it anchors legacy resources without an owner); --name can"), 400);
139
151
  if (newSlug && newSlug !== slug && (await ctx.store.getProject(ctx.tenantId, newSlug)))
140
- throw new ClizeError(`项目 "${newSlug}" 已存在`, 409);
152
+ throw new ClizeError(t `Project "${newSlug}" already exists`, 409);
141
153
  const rec = await ctx.store.updateProject(ctx.tenantId, slug, { name, slug: newSlug });
142
154
  await ctx.store.appendAudit(ctx.tenantId, {
143
155
  action: "project_rename",
@@ -147,31 +159,31 @@ export async function renameProject(ctx, slug, patch) {
147
159
  slug: rec.slug,
148
160
  name: rec.name,
149
161
  ...(newSlug && newSlug !== slug
150
- ? { note: `slug 已改;检出过 "${slug}" 的目录要重新 clize use ${rec.slug}` }
162
+ ? { note: t `Slug changed; directories checked out under "${slug}" need clize use ${rec.slug} again` }
151
163
  : {}),
152
164
  };
153
165
  }
154
166
  /** 删项目。default 不可删;非空项目必须 --into 指定资源去向(域名 + 媒体资产归并过去,绝不级联删资源)。 */
155
167
  export async function removeProject(ctx, slug, opts = {}) {
156
168
  if (slug === "default")
157
- throw new ClizeError("default 项目不能删(它是无归属旧资源的兜底锚点)", 400);
169
+ throw new ClizeError(t("The default project cannot be removed (it anchors legacy resources without an owner)"), 400);
158
170
  const target = await ctx.store.getProject(ctx.tenantId, slug);
159
171
  if (!target)
160
- throw new ClizeError(`项目 "${slug}" 不存在(clize projects 看列表)`, 404);
172
+ throw new ClizeError(t `Project "${slug}" does not exist (see clize projects)`, 404);
161
173
  const domains = await ctx.store.listIdentities(ctx.tenantId, target.id);
162
174
  const jobs = (await ctx.store.listJobs(ctx.tenantId).catch(() => [])).filter((j) => j.projectId === target.id);
163
175
  let movedTo;
164
176
  if (domains.length || jobs.length) {
165
177
  if (!opts.into)
166
- throw new ClizeError(`项目 "${slug}" 非空(${domains.length} 个域名、${jobs.length} 个媒体资产);` +
167
- `用 --into <项目> 指定资源去向( --into default),不会级联删除资源`, 400);
178
+ throw new ClizeError(t `Project "${slug}" is not empty (${domains.length} domain(s), ${jobs.length} media asset(s)); ` +
179
+ t("use --into <project> to say where its resources go (e.g. --into default); resources are never cascade-deleted"), 400);
168
180
  const into = opts.into === "default"
169
181
  ? await ctx.store.ensureDefaultProject(ctx.tenantId)
170
182
  : await ctx.store.getProject(ctx.tenantId, opts.into);
171
183
  if (!into)
172
- throw new ClizeError(`归并目标项目 "${opts.into}" 不存在`, 404);
184
+ throw new ClizeError(t `Target project "${opts.into}" does not exist`, 404);
173
185
  if (into.id === target.id)
174
- throw new ClizeError("不能把项目归并到它自己", 400);
186
+ throw new ClizeError(t("A project cannot be merged into itself"), 400);
175
187
  for (const d of domains)
176
188
  await ctx.store.upsertIdentity(ctx.tenantId, { domain: d.domain, projectId: into.id });
177
189
  for (const j of jobs)
@@ -189,8 +201,8 @@ export async function removeProject(ctx, slug, opts = {}) {
189
201
  ? { movedTo, movedDomains: domains.length, movedJobs: jobs.length }
190
202
  : {}),
191
203
  message: movedTo
192
- ? `已删项目 "${slug}";${domains.length} 个域名、${jobs.length} 个媒体资产已归并到 "${movedTo}"。检出过它的目录要重新 clize use。`
193
- : `已删空项目 "${slug}"。检出过它的目录要重新 clize use。`,
204
+ ? t `Removed project "${slug}"; ${domains.length} domain(s) and ${jobs.length} media asset(s) merged into "${movedTo}". Directories checked out on it need clize use again.`
205
+ : t `Removed the empty project "${slug}". Directories checked out on it need clize use again.`,
194
206
  };
195
207
  }
196
208
  /** 串台护栏:检出项目时,domain 必须归属当前项目,否则拒绝 ——
@@ -211,8 +223,8 @@ export async function assertDomainInProject(ctx, domain, action) {
211
223
  return;
212
224
  const owner = (await ctx.store.listProjects(ctx.tenantId)).find((p) => p.id === pid);
213
225
  const ownerSlug = owner?.slug ?? "default";
214
- throw new ClizeError(`${domain} 属于项目 "${ownerSlug}",当前检出的是 "${ctx.projectSlug}" —— 防串台,已拦下(${action})。` +
215
- `确认要跨项目操作就显式指定:加 -p ${ownerSlug},或 cd 到该项目目录(clize use ${ownerSlug})。`, 409);
226
+ throw new ClizeError(t `${domain} belongs to project "${ownerSlug}" but "${ctx.projectSlug}" is checked out — blocked to prevent cross-project mistakes (${action}).` +
227
+ t `To operate across projects say so explicitly: add -p ${ownerSlug}, or cd into that project's directory (clize use ${ownerSlug}).`, 409);
216
228
  }
217
229
  /** deploy 专用的项目归属解析:「跟随域名」—— 部署目标域全局唯一、所属由服务端为真相,
218
230
  * 故按它真实所属项目走,而不是死守可能陈旧的本地 clize.json 检出。
@@ -237,8 +249,8 @@ export async function resolveDeployProject(ctx, domain) {
237
249
  return { project: ownerSlug, rerouted: false };
238
250
  // 检出与域所属不符:
239
251
  if (ctx.projectSlugSource === "flag")
240
- throw new ClizeError(`${domain} 属于项目 "${ownerSlug}",但 -p 点名了 "${ctx.projectSlug}" —— 显式指定的项目对不上,已拦下(deploy)。` +
241
- `要部署到 ${domain} 就去掉 -p(按域自动路由),或改 -p ${ownerSlug}。`, 409);
252
+ throw new ClizeError(t `${domain} belongs to project "${ownerSlug}" but -p named "${ctx.projectSlug}" the explicit project does not match; blocked (deploy).` +
253
+ t `To deploy to ${domain}, drop -p (routing follows the domain) or use -p ${ownerSlug}.`, 409);
242
254
  // 来自 clize.json 的陈旧检出 → 跟随域名,自动路由,不打断。
243
255
  return { project: ownerSlug, rerouted: true, checkout: ctx.projectSlug };
244
256
  }