@chenchaolong/plugin-trade-compliance-workbench 1.0.64 → 1.0.65

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 (45) hide show
  1. package/README.md +22 -3
  2. package/dist/index.d.ts +52 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/lib/adapters/translation.provider.d.ts +7 -0
  5. package/dist/lib/adapters/translation.provider.d.ts.map +1 -1
  6. package/dist/lib/adapters/translation.provider.js +127 -0
  7. package/dist/lib/adapters/translation.provider.js.map +1 -1
  8. package/dist/lib/catalog-import/catalog-import.pipeline.d.ts +1 -1
  9. package/dist/lib/catalog-import/catalog-import.pipeline.d.ts.map +1 -1
  10. package/dist/lib/catalog-import/catalog-import.pipeline.js +8 -5
  11. package/dist/lib/catalog-import/catalog-import.pipeline.js.map +1 -1
  12. package/dist/lib/catalog-import/confidence.js +8 -1
  13. package/dist/lib/catalog-import/confidence.js.map +1 -1
  14. package/dist/lib/catalog-import/docx.parser.d.ts.map +1 -1
  15. package/dist/lib/catalog-import/docx.parser.js +15 -1
  16. package/dist/lib/catalog-import/docx.parser.js.map +1 -1
  17. package/dist/lib/constants.d.ts +1 -0
  18. package/dist/lib/constants.d.ts.map +1 -1
  19. package/dist/lib/constants.js +1 -0
  20. package/dist/lib/constants.js.map +1 -1
  21. package/dist/lib/domain/catalog-localization.d.ts +1 -1
  22. package/dist/lib/domain/catalog-localization.d.ts.map +1 -1
  23. package/dist/lib/domain/catalog-localization.js +3 -1
  24. package/dist/lib/domain/catalog-localization.js.map +1 -1
  25. package/dist/lib/import-jobs/agent-handoff.dispatcher.d.ts.map +1 -1
  26. package/dist/lib/import-jobs/agent-handoff.dispatcher.js +6 -2
  27. package/dist/lib/import-jobs/agent-handoff.dispatcher.js.map +1 -1
  28. package/dist/lib/import-jobs/import-command.builder.js +1 -1
  29. package/dist/lib/import-jobs/import-command.builder.js.map +1 -1
  30. package/dist/lib/trade-compliance.config.d.ts +52 -0
  31. package/dist/lib/trade-compliance.config.d.ts.map +1 -1
  32. package/dist/lib/trade-compliance.config.js +13 -3
  33. package/dist/lib/trade-compliance.config.js.map +1 -1
  34. package/dist/lib/workbench.middleware.d.ts +34 -1
  35. package/dist/lib/workbench.middleware.d.ts.map +1 -1
  36. package/dist/lib/workbench.middleware.js +10 -2
  37. package/dist/lib/workbench.middleware.js.map +1 -1
  38. package/dist/lib/workbench.service.d.ts +8 -0
  39. package/dist/lib/workbench.service.d.ts.map +1 -1
  40. package/dist/lib/workbench.service.js +127 -21
  41. package/dist/lib/workbench.service.js.map +1 -1
  42. package/package.json +6 -1
  43. package/scripts/verify-catalog-e2e.mjs +250 -0
  44. package/scripts/verify-catalog-samples.mjs +61 -0
  45. package/scripts/verify-qwen-translation.mjs +46 -0
package/README.md CHANGED
@@ -77,10 +77,29 @@ pnpm seed:demo
77
77
  - `TRADE_COMPLIANCE_MAX_UPLOAD_MB`:上传上限,默认 20
78
78
  - `TRADE_COMPLIANCE_HS_BASE_URL`:HS编码网地址,默认 `https://hsbianma.com`
79
79
  - `TRADE_COMPLIANCE_HS_TIMEOUT_MS`:海关编码查询超时
80
- - `TRADE_COMPLIANCE_TRANSLATION_ENDPOINT`:可选 AI 翻译 HTTP 适配器
81
- - `TRADE_COMPLIANCE_TRANSLATION_API_KEY`:可选翻译服务密钥
80
+ - `TRADE_COMPLIANCE_TRANSLATION_ENDPOINT`:OpenAI 兼容翻译接口,默认千问兼容地址
81
+ - `TRADE_COMPLIANCE_TRANSLATION_API_KEY`:翻译服务密钥,必须通过插件 `secret` 字段或运行环境注入
82
+ - `TRADE_COMPLIANCE_TRANSLATION_MODEL`:翻译模型,默认 `qwen3.6-flash`
83
+ - `TRADE_COMPLIANCE_TRANSLATION_TARGET_LANGUAGE`:默认 `zh-CN`
84
+ - `TRADE_COMPLIANCE_TRANSLATION_BATCH_SIZE`:单个模型请求记录数,默认 10,最大 100
85
+ - `TRADE_COMPLIANCE_TRANSLATION_CONCURRENCY`:并发请求数,默认 5,最大 20
86
+ - `TRADE_COMPLIANCE_TRANSLATION_TIMEOUT_MS`:单个请求超时,默认 120000
82
87
 
83
- 翻译适配器接收 `{ "text": "...", "targetLanguage": "English" }`,响应可使用 `translation` 或 `text` 字段。翻译失败时目标动态单元格留空并记录非阻断警告。
88
+ 目录快速管线会自动翻译纯翻译复核块,管控商品保留名称和管控说明原文,制裁公司保留法定名称和别名,只翻译制裁原因与备注。翻译失败的记录会释放回待复核队列,不会写入伪翻译或丢失来源证据。销售文件仍兼容原有单文本翻译适配器。
89
+
90
+ 真实千问连通性验证不会输出密钥:
91
+
92
+ ```bash
93
+ TRADE_COMPLIANCE_TRANSLATION_API_KEY='<plugin-secret>' pnpm verify:qwen-translation
94
+ ```
95
+
96
+ 使用真实 PostgreSQL、真实千问和两份目录文件执行解析、翻译、复核、发布及来源证据端到端验收:
97
+
98
+ ```bash
99
+ TRADE_COMPLIANCE_TEST_POSTGRES_URL='<postgres-url>' \
100
+ TRADE_COMPLIANCE_TRANSLATION_API_KEY='<plugin-secret>' \
101
+ pnpm verify:catalog-e2e -- '<controlled-catalog.pdf>' '<sanction-catalog.docx>'
102
+ ```
84
103
 
85
104
  ## 完整验证
86
105
 
package/dist/index.d.ts CHANGED
@@ -84,15 +84,27 @@ declare const plugin: {
84
84
  translation: import("zod").ZodOptional<import("zod").ZodObject<{
85
85
  endpoint: import("zod").ZodOptional<import("zod").ZodString>;
86
86
  apiKey: import("zod").ZodOptional<import("zod").ZodString>;
87
+ model: import("zod").ZodDefault<import("zod").ZodString>;
88
+ targetLanguage: import("zod").ZodDefault<import("zod").ZodString>;
89
+ batchSize: import("zod").ZodDefault<import("zod").ZodNumber>;
90
+ concurrency: import("zod").ZodDefault<import("zod").ZodNumber>;
87
91
  timeoutMs: import("zod").ZodDefault<import("zod").ZodNumber>;
88
92
  }, "strip", import("zod").ZodTypeAny, {
89
93
  timeoutMs: number;
94
+ model: string;
95
+ targetLanguage: string;
96
+ batchSize: number;
97
+ concurrency: number;
90
98
  endpoint?: string | undefined;
91
99
  apiKey?: string | undefined;
92
100
  }, {
93
101
  timeoutMs?: number | undefined;
94
102
  endpoint?: string | undefined;
95
103
  apiKey?: string | undefined;
104
+ model?: string | undefined;
105
+ targetLanguage?: string | undefined;
106
+ batchSize?: number | undefined;
107
+ concurrency?: number | undefined;
96
108
  }>>;
97
109
  ocr: import("zod").ZodOptional<import("zod").ZodObject<{
98
110
  endpoint: import("zod").ZodDefault<import("zod").ZodString>;
@@ -122,6 +134,10 @@ declare const plugin: {
122
134
  } | undefined;
123
135
  translation?: {
124
136
  timeoutMs: number;
137
+ model: string;
138
+ targetLanguage: string;
139
+ batchSize: number;
140
+ concurrency: number;
125
141
  endpoint?: string | undefined;
126
142
  apiKey?: string | undefined;
127
143
  } | undefined;
@@ -145,6 +161,10 @@ declare const plugin: {
145
161
  timeoutMs?: number | undefined;
146
162
  endpoint?: string | undefined;
147
163
  apiKey?: string | undefined;
164
+ model?: string | undefined;
165
+ targetLanguage?: string | undefined;
166
+ batchSize?: number | undefined;
167
+ concurrency?: number | undefined;
148
168
  } | undefined;
149
169
  ocr?: {
150
170
  timeoutMs?: number | undefined;
@@ -231,6 +251,34 @@ declare const plugin: {
231
251
  };
232
252
  secret: boolean;
233
253
  };
254
+ model: {
255
+ type: string;
256
+ title: {
257
+ en_US: string;
258
+ zh_Hans: string;
259
+ };
260
+ };
261
+ targetLanguage: {
262
+ type: string;
263
+ title: {
264
+ en_US: string;
265
+ zh_Hans: string;
266
+ };
267
+ };
268
+ batchSize: {
269
+ type: string;
270
+ title: {
271
+ en_US: string;
272
+ zh_Hans: string;
273
+ };
274
+ };
275
+ concurrency: {
276
+ type: string;
277
+ title: {
278
+ en_US: string;
279
+ zh_Hans: string;
280
+ };
281
+ };
234
282
  timeoutMs: {
235
283
  type: string;
236
284
  title: {
@@ -291,6 +339,10 @@ declare const plugin: {
291
339
  } | undefined;
292
340
  translation?: {
293
341
  timeoutMs: number;
342
+ model: string;
343
+ targetLanguage: string;
344
+ batchSize: number;
345
+ concurrency: number;
294
346
  endpoint?: string | undefined;
295
347
  apiKey?: string | undefined;
296
348
  } | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAM1E,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAeI,GAAG;;;;;;;;;iBASE,GAAG;gBACJ,GAAG;CACtB,CAAA;AAED,eAAe,MAAM,CAAA;AACrB,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,kCAAkC,CAAA;AAChD,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,yCAAyC,CAAA;AACvD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,+CAA+C,CAAA;AAC7D,cAAc,6CAA6C,CAAA;AAC3D,cAAc,2CAA2C,CAAA;AACzD,cAAc,oDAAoD,CAAA;AAClE,cAAc,+CAA+C,CAAA;AAC7D,cAAc,yCAAyC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAM1E,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAeI,GAAG;;;;;;;;;iBASE,GAAG;gBACJ,GAAG;CACtB,CAAA;AAED,eAAe,MAAM,CAAA;AACrB,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,kCAAkC,CAAA;AAChD,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,yCAAyC,CAAA;AACvD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,+CAA+C,CAAA;AAC7D,cAAc,6CAA6C,CAAA;AAC3D,cAAc,2CAA2C,CAAA;AACzD,cAAc,oDAAoD,CAAA;AAClE,cAAc,+CAA+C,CAAA;AAC7D,cAAc,yCAAyC,CAAA"}
@@ -4,11 +4,18 @@ export type TranslationRequestOptions = {
4
4
  deadline?: number;
5
5
  organizationId?: string;
6
6
  };
7
+ export type StructuredTranslationRecord = {
8
+ recordId: string;
9
+ fields: Record<string, string | null | undefined>;
10
+ };
7
11
  export declare class TranslationProvider {
8
12
  private readonly configResolver?;
9
13
  constructor(configResolver?: IPluginConfigResolver | undefined);
10
14
  translate(value: string, targetLanguage: 'Chinese' | 'English', options?: TranslationRequestOptions): Promise<string | null>;
11
15
  toChinese(value: string, options?: TranslationRequestOptions): Promise<string | null>;
12
16
  toEnglish(value: string, options?: TranslationRequestOptions): Promise<string | null>;
17
+ translateBatch(records: StructuredTranslationRecord[], options?: TranslationRequestOptions): Promise<StructuredTranslationRecord[]>;
18
+ private translateChunk;
19
+ private requestTranslationChunk;
13
20
  }
14
21
  //# sourceMappingURL=translation.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"translation.provider.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/translation.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAG/F,MAAM,MAAM,yBAAyB,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5G,qBACa,mBAAmB;IACgC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAf,cAAc,CAAC,EAAE,qBAAqB,YAAA;IAE/G,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,GAAG,SAAS,EAAE,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyBhI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAErF,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAG5F"}
1
+ {"version":3,"file":"translation.provider.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/translation.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAG/F,MAAM,MAAM,yBAAyB,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAC5G,MAAM,MAAM,2BAA2B,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;CAAE,CAAA;AAGjH,qBACa,mBAAmB;IACgC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAf,cAAc,CAAC,EAAE,qBAAqB,YAAA;IAE/G,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,GAAG,SAAS,EAAE,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkChI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAErF,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIrF,cAAc,CAAC,OAAO,EAAE,2BAA2B,EAAE,EAAE,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC;YAc/H,cAAc;YA2Bd,uBAAuB;CA6CtC"}
@@ -16,6 +16,11 @@ let TranslationProvider = class TranslationProvider {
16
16
  return null;
17
17
  if (options.signal?.aborted)
18
18
  return null;
19
+ if (isChatCompletionsEndpoint(endpoint) && config.apiKey) {
20
+ const translated = await this.translateChunk([{ recordId: 'single', fields: { text } }], { ...config, targetLanguage: targetLanguage === 'Chinese' ? config.targetLanguage : 'en' }, options);
21
+ const value = translated[0]?.fields.text;
22
+ return typeof value === 'string' && value.trim() ? value.trim() : null;
23
+ }
19
24
  const remaining = options.deadline == null ? config.timeoutMs : Math.min(config.timeoutMs, options.deadline - Date.now());
20
25
  if (remaining <= 0)
21
26
  return null;
@@ -43,6 +48,93 @@ let TranslationProvider = class TranslationProvider {
43
48
  async toEnglish(value, options) {
44
49
  return this.translate(value, 'English', options);
45
50
  }
51
+ async translateBatch(records, options = {}) {
52
+ if (records.length === 0)
53
+ return [];
54
+ const config = resolveTradeComplianceConfig(this.configResolver, options.organizationId).translation;
55
+ if (!config.endpoint || !config.apiKey)
56
+ return [];
57
+ const chunks = chunk(records, config.batchSize);
58
+ const results = [];
59
+ for (let index = 0; index < chunks.length; index += config.concurrency) {
60
+ const group = chunks.slice(index, index + config.concurrency);
61
+ const translated = await Promise.all(group.map(items => this.translateChunk(items, config, options)));
62
+ results.push(...translated.flat());
63
+ }
64
+ return results;
65
+ }
66
+ async translateChunk(records, config, options) {
67
+ const requested = new Map(records.map(record => [record.recordId, requiredTranslationFields(record.fields)]));
68
+ const translated = new Map();
69
+ let pending = pendingTranslationRecords(records, requested, translated);
70
+ for (let attempt = 0; attempt < 2 && pending.length > 0; attempt += 1) {
71
+ const partial = await this.requestTranslationChunk(pending, config, options);
72
+ for (const record of partial) {
73
+ const current = translated.get(record.recordId) ?? {};
74
+ for (const [field, value] of Object.entries(record.fields)) {
75
+ const source = requested.get(record.recordId)?.[field];
76
+ if (source && typeof value === 'string' && validTranslatedValue(source, value, config.targetLanguage))
77
+ current[field] = value.trim();
78
+ }
79
+ translated.set(record.recordId, current);
80
+ }
81
+ pending = pendingTranslationRecords(records, requested, translated);
82
+ }
83
+ const incomplete = new Set(pending.map(record => record.recordId));
84
+ return records.flatMap(record => {
85
+ const fields = translated.get(record.recordId);
86
+ return fields && !incomplete.has(record.recordId) ? [{ recordId: record.recordId, fields }] : [];
87
+ });
88
+ }
89
+ async requestTranslationChunk(records, config, options) {
90
+ const remaining = options.deadline == null ? config.timeoutMs : Math.min(config.timeoutMs, options.deadline - Date.now());
91
+ if (remaining <= 0 || options.signal?.aborted || !config.endpoint || !config.apiKey)
92
+ return [];
93
+ const controller = new AbortController();
94
+ const abortFromCaller = () => controller.abort(options.signal?.reason);
95
+ options.signal?.addEventListener('abort', abortFromCaller, { once: true });
96
+ const timeout = setTimeout(() => controller.abort(), remaining);
97
+ try {
98
+ const response = await fetch(config.endpoint, {
99
+ method: 'POST',
100
+ headers: { 'content-type': 'application/json', authorization: `Bearer ${config.apiKey}` },
101
+ body: JSON.stringify({
102
+ model: config.model,
103
+ temperature: 0,
104
+ response_format: { type: 'json_object' },
105
+ messages: [
106
+ { role: 'system', content: `你是外贸合规术语翻译器。将字段翻译为${config.targetLanguage}。保留 recordId,不翻译编码、日期和公司法定原名。只返回 JSON:{"records":[{"recordId":"...","fields":{"字段名":"译文"}}]}。不得添加记录,不得遗漏 recordId。` },
107
+ { role: 'user', content: JSON.stringify({ records }) }
108
+ ]
109
+ }),
110
+ signal: controller.signal
111
+ });
112
+ if (!response.ok)
113
+ return [];
114
+ const payload = await response.json();
115
+ const content = payload.choices?.[0]?.message?.content;
116
+ const parsed = typeof content === 'string' ? JSON.parse(content) : content;
117
+ if (!Array.isArray(parsed?.records))
118
+ return [];
119
+ const requested = new Map(records.map(record => [record.recordId, record]));
120
+ return parsed.records.flatMap((item) => {
121
+ if (typeof item?.recordId !== 'string' || !item.fields || typeof item.fields !== 'object')
122
+ return [];
123
+ const source = requested.get(item.recordId);
124
+ if (!source)
125
+ return [];
126
+ const fields = Object.fromEntries(Object.entries(item.fields).filter(([field, value]) => Object.prototype.hasOwnProperty.call(source.fields, field) && (typeof value === 'string' || value === null)));
127
+ return [{ recordId: item.recordId, fields }];
128
+ });
129
+ }
130
+ catch {
131
+ return [];
132
+ }
133
+ finally {
134
+ clearTimeout(timeout);
135
+ options.signal?.removeEventListener('abort', abortFromCaller);
136
+ }
137
+ }
46
138
  };
47
139
  TranslationProvider = __decorate([
48
140
  Injectable(),
@@ -51,4 +143,39 @@ TranslationProvider = __decorate([
51
143
  __metadata("design:paramtypes", [Object])
52
144
  ], TranslationProvider);
53
145
  export { TranslationProvider };
146
+ function chunk(items, size) {
147
+ const result = [];
148
+ for (let index = 0; index < items.length; index += size)
149
+ result.push(items.slice(index, index + size));
150
+ return result;
151
+ }
152
+ function requiredTranslationFields(fields) {
153
+ return Object.fromEntries(Object.entries(fields).flatMap(([field, value]) => typeof value === 'string' && value.trim() ? [[field, value]] : []));
154
+ }
155
+ function pendingTranslationRecords(records, requested, translated) {
156
+ return records.flatMap(record => {
157
+ const completed = translated.get(record.recordId) ?? {};
158
+ const fields = Object.fromEntries(Object.entries(requested.get(record.recordId) ?? {}).filter(([field]) => !completed[field]));
159
+ return Object.keys(fields).length > 0 ? [{ recordId: record.recordId, fields }] : [];
160
+ });
161
+ }
162
+ function validTranslatedValue(source, translated, targetLanguage) {
163
+ const value = translated.trim();
164
+ if (!value)
165
+ return false;
166
+ const target = targetLanguage.toLowerCase();
167
+ if (target.startsWith('zh') && /[A-Za-zА-Яа-яЁё]/u.test(source))
168
+ return /\p{Script=Han}/u.test(value);
169
+ if (target.startsWith('en') && /\p{Script=Han}/u.test(source))
170
+ return /[A-Za-z]/u.test(value);
171
+ return true;
172
+ }
173
+ function isChatCompletionsEndpoint(endpoint) {
174
+ try {
175
+ return new URL(endpoint).pathname.replace(/\/+$/, '').endsWith('/chat/completions');
176
+ }
177
+ catch {
178
+ return false;
179
+ }
180
+ }
54
181
  //# sourceMappingURL=translation.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"translation.provider.js","sourceRoot":"","sources":["../../../src/lib/adapters/translation.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translation.provider.js","sourceRoot":"","sources":["../../../src/lib/adapters/translation.provider.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ type FastReadyObserver = (summary: {
10
10
  totalCandidates: number;
11
11
  reviewCount: number;
12
12
  }) => Promise<void>;
13
- type FastCatalogService = Pick<TradeComplianceWorkbenchService, 'beginFastCatalogImport' | 'appendFastCatalogBatch' | 'finalizeFastCatalogImport'>;
13
+ type FastCatalogService = Pick<TradeComplianceWorkbenchService, 'beginFastCatalogImport' | 'appendFastCatalogBatch' | 'autoTranslateCatalogReviewBlocks' | 'finalizeFastCatalogImport'>;
14
14
  export declare class CatalogImportPipeline {
15
15
  private readonly service;
16
16
  private readonly storage;
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-import.pipeline.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog-import/catalog-import.pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAwB,KAAK,0BAA0B,EAAE,KAAK,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAKpI,KAAK,eAAe,GAAG,IAAI,CACzB,UAAU,EACV,IAAI,GAAG,cAAc,GAAG,cAAc,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,gBAAgB,CAClG,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,yBAAyB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAA;AAC9F,KAAK,iBAAiB,GAAG,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAErH,KAAK,kBAAkB,GAAG,IAAI,CAC5B,+BAA+B,EAC/B,wBAAwB,GAAG,wBAAwB,GAAG,2BAA2B,CAClF,CAAA;AAED,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAHZ,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,EACjD,MAAM,GAAE,aAAoC,EAC5C,WAAW,CAAC,EAAE,iBAAiB,YAAA;IAG5C,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe;;;;;;;YA2C1C,WAAW;CAkB1B"}
1
+ {"version":3,"file":"catalog-import.pipeline.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog-import/catalog-import.pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAwB,KAAK,0BAA0B,EAAE,KAAK,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAKpI,KAAK,eAAe,GAAG,IAAI,CACzB,UAAU,EACV,IAAI,GAAG,cAAc,GAAG,cAAc,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,gBAAgB,CAClG,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,yBAAyB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAA;AAC9F,KAAK,iBAAiB,GAAG,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAErH,KAAK,kBAAkB,GAAG,IAAI,CAC5B,+BAA+B,EAC/B,wBAAwB,GAAG,wBAAwB,GAAG,kCAAkC,GAAG,2BAA2B,CACvH,CAAA;AAED,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAHZ,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,EACjD,MAAM,GAAE,aAAoC,EAC5C,WAAW,CAAC,EAAE,iBAAiB,YAAA;IAG5C,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe;;;;;;;YA8C1C,WAAW;CAkB1B"}
@@ -21,11 +21,6 @@ export class CatalogImportPipeline {
21
21
  totalCandidates: parsed.accepted.length + parsed.reviewBlocks.length + parsed.skipped.length,
22
22
  inferenceMetadata: parsed.inferences
23
23
  });
24
- await this.onFastReady?.({
25
- taskId: task.id,
26
- totalCandidates: parsed.accepted.length + parsed.reviewBlocks.length + parsed.skipped.length,
27
- reviewCount: parsed.reviewBlocks.length
28
- });
29
24
  let cursor = Math.min(state.committedCursor, parsed.accepted.length);
30
25
  if (parsed.accepted.length === 0) {
31
26
  await this.appendBatch(scope, task.id, [], parsed.reviewBlocks, parsed.skipped, 0, 0);
@@ -38,7 +33,15 @@ export class CatalogImportPipeline {
38
33
  cursor = endCursor;
39
34
  }
40
35
  }
36
+ const translation = await this.service.autoTranslateCatalogReviewBlocks(scope, task.id);
41
37
  await this.service.finalizeFastCatalogImport(scope, task.id);
38
+ if (translation.remaining > 0) {
39
+ await this.onFastReady?.({
40
+ taskId: task.id,
41
+ totalCandidates: parsed.accepted.length + parsed.reviewBlocks.length + parsed.skipped.length,
42
+ reviewCount: translation.remaining
43
+ });
44
+ }
42
45
  return { kind: 'COMPLETED' };
43
46
  }
44
47
  async appendBatch(scope, taskId, candidates, reviewBlocks, skipped, startCursor, endCursor) {
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-import.pipeline.js","sourceRoot":"","sources":["../../../src/lib/catalog-import/catalog-import.pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-import.pipeline.js","sourceRoot":"","sources":["../../../src/lib/catalog-import/catalog-import.pipeline.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ export function classifyCandidate(candidate) {
47
47
  if (failure) {
48
48
  return { confidence: 'LOW', autoPersist: false, reasons: [failure] };
49
49
  }
50
- if (candidate.kind === 'CONTROLLED' && candidate.values.translationRequired === true) {
50
+ if (candidate.values.translationRequired === true || requiresTranslation(candidate)) {
51
51
  return { confidence: 'MEDIUM', autoPersist: false, reasons: ['TRANSLATION_REQUIRED'] };
52
52
  }
53
53
  const reviewReasons = candidate.signals.filter(signal => REVIEW_SIGNALS.has(signal));
@@ -64,4 +64,11 @@ export function classifyCandidate(candidate) {
64
64
  }
65
65
  return { confidence: 'HIGH', autoPersist: true, reasons: ['VERIFIABLE_STRUCTURE'] };
66
66
  }
67
+ function requiresTranslation(candidate) {
68
+ if (candidate.kind === 'CONTROLLED')
69
+ return false;
70
+ return [candidate.values.sanctionReason, candidate.values.remarks]
71
+ .filter((value) => typeof value === 'string' && value.trim().length > 0)
72
+ .some(value => /[A-Za-zА-Яа-яЁё]/u.test(value) && !/^[\d\s.,;:()\-/]+$/u.test(value));
73
+ }
67
74
  //# sourceMappingURL=confidence.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"confidence.js","sourceRoot":"","sources":["../../../src/lib/catalog-import/confidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confidence.js","sourceRoot":"","sources":["../../../src/lib/catalog-import/confidence.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"docx.parser.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog-import/docx.parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAG1E,MAAM,MAAM,qBAAqB,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAA;AAmDnE,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsEhG"}
1
+ {"version":3,"file":"docx.parser.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog-import/docx.parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAG1E,MAAM,MAAM,qBAAqB,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAA;AA+DnE,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsEhG"}
@@ -34,6 +34,20 @@ function normalizeListingDate(input) {
34
34
  const [, day, month, year] = match;
35
35
  return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
36
36
  }
37
+ function countryFromIdentifyingInformation(input) {
38
+ const raw = input.trim();
39
+ if (!raw)
40
+ return undefined;
41
+ if (!raw.includes('\n') && !/^[^:\n]{2,64}:/.test(raw))
42
+ return raw.length <= 255 ? raw : undefined;
43
+ for (const label of ['Place of registration', 'Country of registration', 'Principal place of business']) {
44
+ const match = new RegExp(`^${label}:\\s*(.+)$`, 'im').exec(raw);
45
+ const value = match?.[1]?.trim();
46
+ if (value && value.length <= 255 && !/\d|https?:|www\.|@/i.test(value))
47
+ return value;
48
+ }
49
+ return undefined;
50
+ }
37
51
  function parseNames(raw) {
38
52
  const lines = raw.split(/\n+/).map(item => item.trim()).filter(Boolean);
39
53
  const companyName = lines.shift() ?? '';
@@ -100,7 +114,7 @@ export async function parseDocxCatalog(input) {
100
114
  values: {
101
115
  companyName: names.companyName,
102
116
  aliases: names.aliases,
103
- countryOrRegion: value(mapping, row.cells, 'countryOrRegion') || undefined,
117
+ countryOrRegion: countryFromIdentifyingInformation(value(mapping, row.cells, 'countryOrRegion')),
104
118
  sanctionReason: value(mapping, row.cells, 'sanctionReason') || undefined,
105
119
  effectiveDate: normalizedDate ?? (rawDate || undefined)
106
120
  },
@@ -1 +1 @@
1
- {"version":3,"file":"docx.parser.js","sourceRoot":"","sources":["../../../src/lib/catalog-import/docx.parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docx.parser.js","sourceRoot":"","sources":["../../../src/lib/catalog-import/docx.parser.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare const TOOL_NAMES: {
14
14
  readonly waitImportProgress: "trade_compliance_wait_import_progress";
15
15
  readonly nextReviewBatch: "trade_compliance_next_review_batch";
16
16
  readonly submitReviewBatch: "trade_compliance_submit_review_batch";
17
+ readonly translateStructuredBatch: "trade_compliance_translate_structured_batch";
17
18
  readonly searchHsCode: "trade_compliance_search_hs_code";
18
19
  };
19
20
  export declare const MAIN_SLOT = "agent.workbench.main";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,oDAAoD,CAAA;AAC5E,eAAO,MAAM,OAAO,+BAA+B,CAAA;AACnD,eAAO,MAAM,QAAQ,+BAA+B,CAAA;AACpD,eAAO,MAAM,iBAAiB,6CAA6C,CAAA;AAC3E,eAAO,MAAM,gBAAgB,+BAA+B,CAAA;AAC5D,eAAO,MAAM,eAAe,6BAA6B,CAAA;AACzD,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAC7C,eAAO,MAAM,UAAU;;;;;;;;;;CAUb,CAAA;AACV,eAAO,MAAM,SAAS,yBAAyB,CAAA;AAC/C,eAAO,MAAM,UAAU,0BAA0B,CAAA;AACjD,eAAO,MAAM,gBAAgB,aAAa,CAAA;AAE1C,eAAO,MAAM,IAAI,2SAAmS,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,oDAAoD,CAAA;AAC5E,eAAO,MAAM,OAAO,+BAA+B,CAAA;AACnD,eAAO,MAAM,QAAQ,+BAA+B,CAAA;AACpD,eAAO,MAAM,iBAAiB,6CAA6C,CAAA;AAC3E,eAAO,MAAM,gBAAgB,+BAA+B,CAAA;AAC5D,eAAO,MAAM,eAAe,6BAA6B,CAAA;AACzD,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAC7C,eAAO,MAAM,UAAU;;;;;;;;;;;CAWb,CAAA;AACV,eAAO,MAAM,SAAS,yBAAyB,CAAA;AAC/C,eAAO,MAAM,UAAU,0BAA0B,CAAA;AACjD,eAAO,MAAM,gBAAgB,aAAa,CAAA;AAE1C,eAAO,MAAM,IAAI,2SAAmS,CAAA"}
@@ -14,6 +14,7 @@ export const TOOL_NAMES = {
14
14
  waitImportProgress: 'trade_compliance_wait_import_progress',
15
15
  nextReviewBatch: 'trade_compliance_next_review_batch',
16
16
  submitReviewBatch: 'trade_compliance_submit_review_batch',
17
+ translateStructuredBatch: 'trade_compliance_translate_structured_batch',
17
18
  searchHsCode: 'trade_compliance_search_hs_code'
18
19
  };
19
20
  export const MAIN_SLOT = 'agent.workbench.main';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,iDAAiD,CAAA;AAC5E,MAAM,CAAC,MAAM,OAAO,GAAG,4BAA4B,CAAA;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,4BAA4B,CAAA;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,0CAA0C,CAAA;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAA4B,CAAA;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAA;AACzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAA;AAC7C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,qBAAqB,EAAE,0CAA0C;IACjE,mBAAmB,EAAE,wCAAwC;IAC7D,iBAAiB,EAAE,sCAAsC;IACzD,yBAAyB,EAAE,+CAA+C;IAC1E,8BAA8B,EAAE,oDAAoD;IACpF,kBAAkB,EAAE,uCAAuC;IAC3D,eAAe,EAAE,oCAAoC;IACrD,iBAAiB,EAAE,sCAAsC;IACzD,YAAY,EAAE,iCAAiC;CACvC,CAAA;AACV,MAAM,CAAC,MAAM,SAAS,GAAG,sBAAsB,CAAA;AAC/C,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAA;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAA;AAE1C,MAAM,CAAC,MAAM,IAAI,GAAG,gSAAgS,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,iDAAiD,CAAA;AAC5E,MAAM,CAAC,MAAM,OAAO,GAAG,4BAA4B,CAAA;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,4BAA4B,CAAA;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,0CAA0C,CAAA;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAA4B,CAAA;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAA;AACzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAA;AAC7C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,qBAAqB,EAAE,0CAA0C;IACjE,mBAAmB,EAAE,wCAAwC;IAC7D,iBAAiB,EAAE,sCAAsC;IACzD,yBAAyB,EAAE,+CAA+C;IAC1E,8BAA8B,EAAE,oDAAoD;IACpF,kBAAkB,EAAE,uCAAuC;IAC3D,eAAe,EAAE,oCAAoC;IACrD,iBAAiB,EAAE,sCAAsC;IACzD,wBAAwB,EAAE,6CAA6C;IACvE,YAAY,EAAE,iCAAiC;CACvC,CAAA;AACV,MAAM,CAAC,MAAM,SAAS,GAAG,sBAAsB,CAAA;AAC/C,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAA;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAA;AAE1C,MAAM,CAAC,MAAM,IAAI,GAAG,gSAAgS,CAAA"}
@@ -10,5 +10,5 @@ export interface CatalogLocalizationInputIssue {
10
10
  field: keyof CatalogLocalizationInput;
11
11
  message: string;
12
12
  }
13
- export declare function catalogLocalizationInputIssues(row: CatalogLocalizationInput): CatalogLocalizationInputIssue[];
13
+ export declare function catalogLocalizationInputIssues(row: CatalogLocalizationInput, allowServiceTranslation?: boolean): CatalogLocalizationInputIssue[];
14
14
  //# sourceMappingURL=catalog-localization.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-localization.d.ts","sourceRoot":"","sources":["../../../src/lib/domain/catalog-localization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAE3D,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,iBAAiB,CAAC,EAAE,wBAAwB,CAAA;CAC7C;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,MAAM,wBAAwB,CAAA;IACrC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,wBAAwB,GAAG,6BAA6B,EAAE,CAc7G"}
1
+ {"version":3,"file":"catalog-localization.d.ts","sourceRoot":"","sources":["../../../src/lib/domain/catalog-localization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAE3D,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,iBAAiB,CAAC,EAAE,wBAAwB,CAAA;CAC7C;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,MAAM,wBAAwB,CAAA;IACrC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,wBAAwB,EAAE,uBAAuB,UAAQ,GAAG,6BAA6B,EAAE,CAe9I"}
@@ -1,4 +1,6 @@
1
- export function catalogLocalizationInputIssues(row) {
1
+ export function catalogLocalizationInputIssues(row, allowServiceTranslation = false) {
2
+ if (row.translationSource === 'SERVICE_TRANSLATED' && allowServiceTranslation)
3
+ return [];
2
4
  if (row.translationSource !== 'SOURCE_CHINESE' && row.translationSource !== 'AGENT_TRANSLATED') {
3
5
  return [{ field: 'translationSource', message: '调用方翻译来源只能是 SOURCE_CHINESE 或 AGENT_TRANSLATED' }];
4
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-localization.js","sourceRoot":"","sources":["../../../src/lib/domain/catalog-localization.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,8BAA8B,CAAC,GAA6B;IAC1E,IAAI,GAAG,CAAC,iBAAiB,KAAK,gBAAgB,IAAI,GAAG,CAAC,iBAAiB,KAAK,kBAAkB,EAAE,CAAC;QAC/F,OAAO,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAA;IAClG,CAAC;IACD,IAAI,GAAG,CAAC,iBAAiB,KAAK,gBAAgB;QAAE,OAAO,EAAE,CAAA;IAEzD,MAAM,MAAM,GAAoC,EAAE,CAAA;IAClD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAChF,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAA;IAC1F,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;AAC7D,CAAC"}
1
+ {"version":3,"file":"catalog-localization.js","sourceRoot":"","sources":["../../../src/lib/domain/catalog-localization.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,8BAA8B,CAAC,GAA6B,EAAE,uBAAuB,GAAG,KAAK;IAC3G,IAAI,GAAG,CAAC,iBAAiB,KAAK,oBAAoB,IAAI,uBAAuB;QAAE,OAAO,EAAE,CAAA;IACxF,IAAI,GAAG,CAAC,iBAAiB,KAAK,gBAAgB,IAAI,GAAG,CAAC,iBAAiB,KAAK,kBAAkB,EAAE,CAAC;QAC/F,OAAO,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAA;IAClG,CAAC;IACD,IAAI,GAAG,CAAC,iBAAiB,KAAK,gBAAgB;QAAE,OAAO,EAAE,CAAA;IAEzD,MAAM,MAAM,GAAoC,EAAE,CAAA;IAClD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAChF,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAA;IAC1F,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;AAC7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-handoff.dispatcher.d.ts","sourceRoot":"","sources":["../../../src/lib/import-jobs/agent-handoff.dispatcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAEV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,gBAAgB,CAAA;AAEvB,eAAO,MAAM,6CAA6C,+CACZ,CAAA;AAS9C,qBACa,sBAAsB;IAK/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJhC,OAAO,CAAC,wBAAwB,CAAC,CAA0B;gBAIxC,aAAa,EAAE,4BAA4B;IAG9D,YAAY,CACV,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,wBAAwB,CAAC;IA+DrC,QAAQ,CACZ,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAK3B"}
1
+ {"version":3,"file":"agent-handoff.dispatcher.d.ts","sourceRoot":"","sources":["../../../src/lib/import-jobs/agent-handoff.dispatcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAEV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,gBAAgB,CAAA;AAEvB,eAAO,MAAM,6CAA6C,+CACZ,CAAA;AAS9C,qBACa,sBAAsB;IAK/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJhC,OAAO,CAAC,wBAAwB,CAAC,CAA0B;gBAIxC,aAAa,EAAE,4BAA4B;IAG9D,YAAY,CACV,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,wBAAwB,CAAC;IAmErC,QAAQ,CACZ,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAK3B"}
@@ -39,7 +39,9 @@ let AgentHandoffDispatcher = class AgentHandoffDispatcher {
39
39
  targetAgent: targetAssistantId,
40
40
  source: 'api',
41
41
  requestedLane: 'main',
42
- handoffQueue: 'batch'
42
+ handoffQueue: 'batch',
43
+ policyTimeoutMs: '1800000',
44
+ policyIdleTimeoutMs: '600000'
43
45
  },
44
46
  payload: {
45
47
  request,
@@ -61,7 +63,9 @@ let AgentHandoffDispatcher = class AgentHandoffDispatcher {
61
63
  targetAgent: targetAssistantId,
62
64
  source: 'api',
63
65
  requestedLane: 'main',
64
- handoffQueue: 'batch'
66
+ handoffQueue: 'batch',
67
+ policyTimeoutMs: '1800000',
68
+ policyIdleTimeoutMs: '600000'
65
69
  },
66
70
  context: callbackContext
67
71
  }