@deployxai/dxc 0.1.8 → 0.1.13

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.
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __dxcCreateRequire } from "node:module"; const require = __dxcCreateRequire(import.meta.url);
2
2
  import {
3
3
  sourceFetchResultSchema
4
- } from "./chunk-UQRFCGHR.js";
4
+ } from "./chunk-RONRJJBC.js";
5
5
 
6
6
  // apps/cli/src/source.ts
7
7
  import { createHash } from "node:crypto";
@@ -1733,12 +1733,14 @@ var MAXIMUM_RSS_BYTES = 2 * 1024 * 1024;
1733
1733
  var MAXIMUM_REDIRECTS = 3;
1734
1734
  var MAXIMUM_RSS_ITEMS = 100;
1735
1735
  var SourceCliError = class extends Error {
1736
- constructor(code, message) {
1736
+ constructor(code, message, recovery) {
1737
1737
  super(message);
1738
1738
  this.code = code;
1739
+ this.recovery = recovery;
1739
1740
  this.name = "SourceCliError";
1740
1741
  }
1741
1742
  code;
1743
+ recovery;
1742
1744
  };
1743
1745
  function asArray(value) {
1744
1746
  return Array.isArray(value) ? value : value === void 0 ? [] : [value];
@@ -2043,14 +2045,19 @@ var SourceCli = class {
2043
2045
  }
2044
2046
  async #assertPublicRemote(url) {
2045
2047
  if (url.hostname.toLowerCase() === "localhost") {
2046
- throw new SourceCliError("DXC_SOURCE_URL_BLOCKED", "\u6765\u6E90\u5730\u5740\u4E0D\u80FD\u6307\u5411\u672C\u673A\u6216\u79C1\u7F51\u5730\u5740\u3002");
2048
+ throw new SourceCliError(
2049
+ "DXC_SOURCE_URL_BLOCKED",
2050
+ `\u6765\u6E90\u57DF\u540D ${url.hostname} \u6307\u5411\u672C\u673A\uFF0C\u5DF2\u5728\u8BF7\u6C42\u524D\u963B\u65AD\u3002`,
2051
+ "\u4E0D\u8981\u7ED5\u8FC7\u672C\u673A\u3001\u79C1\u7F51\u6216\u4E91\u5143\u6570\u636E\u4FDD\u62A4\uFF1B\u82E5\u8FD9\u662F\u516C\u5F00\u8D44\u6599\uFF0C\u8BF7\u786E\u8BA4\u6700\u7EC8 HTTPS URL \u548C\u91CD\u5B9A\u5411\u76EE\u6807\uFF0C\u6216\u7531\u5BBF\u4E3B\u53D7\u63A7\u6D4F\u89C8\u5668\u8BFB\u53D6\u540E\u4F5C\u4E3A\u6709\u6765\u6E90\u8BB0\u5F55\u7684\u672C\u5730\u6750\u6599\u7EE7\u7EED\u3002"
2052
+ );
2047
2053
  }
2048
2054
  const literalAddress = url.hostname.replaceAll(/^\[|\]$/gu, "");
2049
2055
  const literalFamily = isIP(literalAddress);
2050
2056
  if (literalFamily !== 0 && isBlockedAddress(literalAddress, literalFamily)) {
2051
2057
  throw new SourceCliError(
2052
2058
  "DXC_SOURCE_URL_BLOCKED",
2053
- "\u6765\u6E90\u5730\u5740\u4E0D\u80FD\u6307\u5411\u672C\u673A\u3001\u79C1\u7F51\u6216\u4E91\u5143\u6570\u636E\u5730\u5740\u3002"
2059
+ `\u6765\u6E90\u57DF\u540D ${url.hostname} \u4F7F\u7528\u672C\u673A\u3001\u79C1\u7F51\u6216\u4E91\u5143\u6570\u636E\u5730\u5740\uFF0C\u5DF2\u5728\u8BF7\u6C42\u524D\u963B\u65AD\u3002`,
2060
+ "\u4E0D\u8981\u7ED5\u8FC7\u672C\u673A\u3001\u79C1\u7F51\u6216\u4E91\u5143\u6570\u636E\u4FDD\u62A4\uFF1B\u82E5\u8FD9\u662F\u516C\u5F00\u8D44\u6599\uFF0C\u8BF7\u6539\u7528\u5176\u516C\u5F00 HTTPS \u57DF\u540D\uFF0C\u6216\u7531\u5BBF\u4E3B\u53D7\u63A7\u6D4F\u89C8\u5668\u8BFB\u53D6\u540E\u4F5C\u4E3A\u6709\u6765\u6E90\u8BB0\u5F55\u7684\u672C\u5730\u6750\u6599\u7EE7\u7EED\u3002"
2054
2061
  );
2055
2062
  }
2056
2063
  const addresses = await this.#lookup(url.hostname, { all: true, verbatim: true }).catch(() => {
@@ -2059,7 +2066,8 @@ var SourceCli = class {
2059
2066
  if (addresses.length === 0 || addresses.some((address) => isBlockedAddress(address.address, address.family))) {
2060
2067
  throw new SourceCliError(
2061
2068
  "DXC_SOURCE_URL_BLOCKED",
2062
- "\u6765\u6E90\u5730\u5740\u4E0D\u80FD\u6307\u5411\u672C\u673A\u3001\u79C1\u7F51\u6216\u4E91\u5143\u6570\u636E\u5730\u5740\u3002"
2069
+ `\u6765\u6E90\u57DF\u540D ${url.hostname} \u7684 DNS \u7ED3\u679C\u5305\u542B\u672C\u673A\u3001\u79C1\u7F51\u6216\u4E91\u5143\u6570\u636E\u5730\u5740\uFF0C\u5DF2\u5728\u8BF7\u6C42\u524D\u963B\u65AD\u3002`,
2070
+ "\u5148\u6838\u5BF9\u8BE5\u57DF\u540D\u7684\u516C\u5F00 DNS \u548C\u91CD\u5B9A\u5411\u94FE\uFF1B\u4E0D\u8981\u5F3A\u5236\u8DF3\u8FC7\u6821\u9A8C\u3002\u82E5\u5BBF\u4E3B\u7F51\u7EDC\u4F7F\u7528\u79C1\u6709\u4EE3\u7406\u89E3\u6790\uFF0C\u8BF7\u7531\u53D7\u63A7\u6D4F\u89C8\u5668\u8BFB\u53D6\u5E76\u628A\u6709\u754C\u5185\u5BB9\u4F5C\u4E3A\u6709\u6765\u6E90\u8BB0\u5F55\u7684\u672C\u5730\u6750\u6599\u7EE7\u7EED\u3002"
2063
2071
  );
2064
2072
  }
2065
2073
  }
@@ -319,7 +319,8 @@ var sourceFetchErrorResultSchema = z2.object({
319
319
  "DXC_SOURCE_URL_BLOCKED",
320
320
  "DXC_SOURCE_URL_INVALID"
321
321
  ]).or(z2.literal("DXC_SOURCE_FAILED")),
322
- message: z2.string().trim().min(1).max(500)
322
+ message: z2.string().trim().min(1).max(500),
323
+ recovery: z2.string().trim().min(1).max(800).optional()
323
324
  }).strict(),
324
325
  ok: z2.literal(false)
325
326
  }).strict();
@@ -596,6 +597,17 @@ var publishingPreviewLinkSchema = z4.object({
596
597
  snapshotHash: sha256Schema,
597
598
  url: z4.url()
598
599
  }).strict();
600
+ var publishingPreviewSelectionStateSchema = z4.object({
601
+ rootSnapshotHash: sha256Schema,
602
+ rootSnapshotId: z4.uuid(),
603
+ selectedSnapshotHash: sha256Schema,
604
+ selectedSnapshotId: z4.uuid(),
605
+ selectionRevision: z4.number().int().nonnegative(),
606
+ templateId: wechatTemplateIdSchema,
607
+ updatedAt: z4.iso.datetime(),
608
+ viewed: z4.boolean(),
609
+ viewedAt: z4.iso.datetime().nullable()
610
+ }).strict();
599
611
  var createPublishingApprovalRequestSchema = z4.object({
600
612
  accountId: z4.uuid(),
601
613
  confirmed: z4.literal(true),
@@ -621,7 +633,8 @@ var publishingApprovalSchema = z4.object({
621
633
  }
622
634
  });
623
635
  var createPublishingDraftIntentRequestSchema = z4.object({
624
- approvalId: z4.uuid()
636
+ approvalId: z4.uuid(),
637
+ previousIntentId: z4.uuid().optional()
625
638
  }).strict();
626
639
  var publishingDraftStatusSchema = z4.enum([
627
640
  "QUEUED",
@@ -1077,8 +1090,9 @@ var visualGenerationPlanSchema = z5.object({
1077
1090
  chargesQuota: z5.boolean(),
1078
1091
  dataTransit: z5.enum(["local-only", "agent-provider", "dxc-cloud"]),
1079
1092
  executionLocation: z5.enum(["local-device", "agent-hosted"]),
1080
- maxAttempts: z5.literal(1),
1081
- plannedAssets: z5.array(visualGenerationPlannedAssetSchema).min(1).max(20)
1093
+ maxAttempts: z5.number().int().min(1).max(2),
1094
+ plannedAssets: z5.array(visualGenerationPlannedAssetSchema).min(1).max(20),
1095
+ retryPolicy: z5.enum(["never", "verified-no-asset-no-charge-once"])
1082
1096
  }).strict().superRefine((value, context) => {
1083
1097
  if (value.plannedAssets.filter((asset) => asset.role === "cover").length > 1) {
1084
1098
  context.addIssue({
@@ -1087,6 +1101,13 @@ var visualGenerationPlanSchema = z5.object({
1087
1101
  path: ["plannedAssets"]
1088
1102
  });
1089
1103
  }
1104
+ if (value.maxAttempts === 1 && value.retryPolicy !== "never" || value.maxAttempts === 2 && value.retryPolicy !== "verified-no-asset-no-charge-once") {
1105
+ context.addIssue({
1106
+ code: "custom",
1107
+ message: "maxAttempts=1 requires retryPolicy=never; maxAttempts=2 requires verified-no-asset-no-charge-once",
1108
+ path: ["retryPolicy"]
1109
+ });
1110
+ }
1090
1111
  });
1091
1112
  var visualPlanGenerationProposalFrontmatterSchema = z5.object({
1092
1113
  assetsDirectory: portableRelativePathSchema,
@@ -1145,6 +1166,9 @@ var deliveryStageArtifactFrontmatterSchema = z5.object({
1145
1166
  intentId: z5.uuid().nullable(),
1146
1167
  mediaId: z5.string().trim().min(1).max(256).nullable().optional(),
1147
1168
  previewExpiresAt: z5.iso.datetime(),
1169
+ previewSelectionRevision: z5.number().int().nonnegative(),
1170
+ retryAttempt: z5.number().int().nonnegative().default(0),
1171
+ retryOfIntentId: z5.uuid().nullable().optional(),
1148
1172
  rootSnapshotHash: z5.string().regex(/^[a-f0-9]{64}$/u),
1149
1173
  rootSnapshotId: z5.uuid(),
1150
1174
  selectedSnapshotHash: z5.string().regex(/^[a-f0-9]{64}$/u),
@@ -1159,6 +1183,13 @@ var deliveryStageArtifactFrontmatterSchema = z5.object({
1159
1183
  path: ["state"]
1160
1184
  });
1161
1185
  }
1186
+ if (value.retryAttempt === 0 && value.retryOfIntentId !== void 0 && value.retryOfIntentId !== null || value.retryAttempt > 0 && (value.retryOfIntentId === void 0 || value.retryOfIntentId === null)) {
1187
+ context.addIssue({
1188
+ code: "custom",
1189
+ message: "retryAttempt and retryOfIntentId must describe the same retry generation",
1190
+ path: ["retryOfIntentId"]
1191
+ });
1192
+ }
1162
1193
  });
1163
1194
  function contentStageArtifactFrontmatterSchema(stage) {
1164
1195
  switch (stage) {
@@ -1464,6 +1495,7 @@ var contentProjectStatusResultSchema = z5.object({
1464
1495
  recoveryPlan: z5.array(
1465
1496
  z5.object({
1466
1497
  action: z5.literal("rerun-stage"),
1498
+ command: z5.string().trim().min(1).max(500),
1467
1499
  reason: z5.enum([
1468
1500
  "artifact-changed",
1469
1501
  "artifact-empty",
@@ -1532,7 +1564,8 @@ var contentProjectCommandSchema = z5.enum([
1532
1564
  "project.init",
1533
1565
  "project.resolve",
1534
1566
  "project.status",
1535
- "project.checkpoint"
1567
+ "project.checkpoint",
1568
+ "project.preview"
1536
1569
  ]);
1537
1570
  var contentProjectErrorResultSchema = z5.object({
1538
1571
  command: contentProjectCommandSchema,
@@ -2250,8 +2283,10 @@ export {
2250
2283
  publishingArticleSchema,
2251
2284
  publishingRenderSnapshotSchema,
2252
2285
  publishingPreviewLinkSchema,
2286
+ publishingPreviewSelectionStateSchema,
2253
2287
  createPublishingApprovalRequestSchema,
2254
2288
  publishingApprovalSchema,
2289
+ createPublishingDraftIntentRequestSchema,
2255
2290
  publishingDraftIntentResponseSchema,
2256
2291
  CONTENT_WORKFLOW_ID,
2257
2292
  CONTENT_ARTIFACT_KINDS,
@@ -27,7 +27,7 @@ import {
27
27
  readPrivateFile,
28
28
  writePrivateBuffer,
29
29
  writePrivateJson
30
- } from "./chunk-UQRFCGHR.js";
30
+ } from "./chunk-RONRJJBC.js";
31
31
 
32
32
  // apps/cli/src/knowledge.ts
33
33
  import { createHash as createHash2, randomUUID } from "node:crypto";
@@ -2,7 +2,7 @@ import { createRequire as __dxcCreateRequire } from "node:module"; const require
2
2
  import {
3
3
  SourceCli,
4
4
  SourceCliError
5
- } from "./chunk-QPHUHGHV.js";
5
+ } from "./chunk-DDKUG5EV.js";
6
6
  import {
7
7
  CONTENT_MONITOR_SCHEMA_VERSION,
8
8
  LocalStateError,
@@ -14,7 +14,7 @@ import {
14
14
  contentMonitorStatusResultSchema,
15
15
  ensurePrivateRegularFile,
16
16
  sourceFetchKindSchema
17
- } from "./chunk-UQRFCGHR.js";
17
+ } from "./chunk-RONRJJBC.js";
18
18
 
19
19
  // apps/cli/src/monitor.ts
20
20
  import { createHash, randomUUID as systemRandomUUID } from "node:crypto";