@chenchaolong/plugin-trade-compliance-workbench 1.0.118 → 1.0.120
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/dist/lib/adapters/pdf-page-renderer.d.ts.map +1 -1
- package/dist/lib/adapters/pdf-page-renderer.js +33 -90
- package/dist/lib/adapters/pdf-page-renderer.js.map +1 -1
- package/dist/lib/constants.d.ts +2 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +2 -0
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/import-jobs/import-command.builder.js +1 -1
- package/dist/lib/import-jobs/import-command.builder.js.map +1 -1
- package/dist/lib/remote-components/trade-compliance-workbench/app.css +1 -1
- package/dist/lib/remote-components/trade-compliance-workbench/app.js +8 -8
- package/dist/lib/remote-components/trade-compliance-workbench/preview-source.mjs +25 -0
- package/dist/lib/remote-components/trade-compliance-workbench/preview.js +341 -0
- package/dist/lib/remote-ui/app-source.d.ts.map +1 -1
- package/dist/lib/remote-ui/app-source.js +38 -31
- package/dist/lib/remote-ui/app-source.js.map +1 -1
- package/dist/lib/remote-ui/components/source-file-preview.d.ts +37 -0
- package/dist/lib/remote-ui/components/source-file-preview.d.ts.map +1 -0
- package/dist/lib/remote-ui/components/source-file-preview.js +115 -0
- package/dist/lib/remote-ui/components/source-file-preview.js.map +1 -0
- package/dist/lib/remote-ui/contract-import.d.ts +1 -0
- package/dist/lib/remote-ui/contract-import.d.ts.map +1 -1
- package/dist/lib/remote-ui/contract-import.js +2 -0
- package/dist/lib/remote-ui/contract-import.js.map +1 -1
- package/dist/lib/remote-ui/contracts.d.ts +1 -0
- package/dist/lib/remote-ui/contracts.d.ts.map +1 -1
- package/dist/lib/remote-ui/customer-contract-contracts.d.ts +7 -0
- package/dist/lib/remote-ui/customer-contract-contracts.d.ts.map +1 -1
- package/dist/lib/remote-ui/pages/catalogs.d.ts +1 -1
- package/dist/lib/remote-ui/pages/catalogs.d.ts.map +1 -1
- package/dist/lib/remote-ui/pages/catalogs.js +2 -0
- package/dist/lib/remote-ui/pages/catalogs.js.map +1 -1
- package/dist/lib/remote-ui/pages/contracts.d.ts.map +1 -1
- package/dist/lib/remote-ui/pages/contracts.js +2 -1
- package/dist/lib/remote-ui/pages/contracts.js.map +1 -1
- package/dist/lib/remote-ui/pages/procurement.d.ts +2 -1
- package/dist/lib/remote-ui/pages/procurement.d.ts.map +1 -1
- package/dist/lib/remote-ui/pages/procurement.js +32 -9
- package/dist/lib/remote-ui/pages/procurement.js.map +1 -1
- package/dist/lib/remote-ui/procurement-contracts.d.ts +10 -7
- package/dist/lib/remote-ui/procurement-contracts.d.ts.map +1 -1
- package/dist/lib/remote-ui/styles.css +21 -0
- package/dist/lib/workbench-view.provider.d.ts +1 -29
- package/dist/lib/workbench-view.provider.d.ts.map +1 -1
- package/dist/lib/workbench-view.provider.js +8 -27
- package/dist/lib/workbench-view.provider.js.map +1 -1
- package/dist/lib/workbench.middleware.d.ts.map +1 -1
- package/dist/lib/workbench.middleware.js +38 -22
- package/dist/lib/workbench.middleware.js.map +1 -1
- package/dist/lib/workbench.service.d.ts +12 -0
- package/dist/lib/workbench.service.d.ts.map +1 -1
- package/dist/lib/workbench.service.js +70 -17
- package/dist/lib/workbench.service.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-page-renderer.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/pdf-page-renderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pdf-page-renderer.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/pdf-page-renderer.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,aAAa,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAC1H,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,EAAE,CAAohB;AACnnB,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC,CAQxL"}
|
|
@@ -5,19 +5,9 @@ import { tmpdir } from 'node:os';
|
|
|
5
5
|
import { basename, join } from 'node:path';
|
|
6
6
|
import { promisify } from 'node:util';
|
|
7
7
|
const execFileAsync = promisify(execFile);
|
|
8
|
-
export function selectPdfVisualPages(input) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (pageCount <= maxPages)
|
|
12
|
-
return Array.from({ length: pageCount }, (_, index) => index + 1);
|
|
13
|
-
const headCount = Math.max(1, maxPages - 2);
|
|
14
|
-
const pages = new Set();
|
|
15
|
-
for (let page = 1; page <= Math.min(headCount, pageCount); page++)
|
|
16
|
-
pages.add(page);
|
|
17
|
-
pages.add(pageCount - 1);
|
|
18
|
-
pages.add(pageCount);
|
|
19
|
-
return [...pages].filter(page => page >= 1 && page <= pageCount).sort((left, right) => left - right);
|
|
20
|
-
}
|
|
8
|
+
export function selectPdfVisualPages(input) { const pageCount = Math.max(0, Math.floor(input.pageCount)); const maxPages = Math.max(1, Math.floor(input.maxPages ?? 8)); if (pageCount <= maxPages)
|
|
9
|
+
return Array.from({ length: pageCount }, (_, index) => index + 1); const headCount = Math.max(1, maxPages - 2); const pages = new Set(); for (let page = 1; page <= Math.min(headCount, pageCount); page++)
|
|
10
|
+
pages.add(page); pages.add(pageCount - 1); pages.add(pageCount); return [...pages].filter(page => page >= 1 && page <= pageCount).sort((left, right) => left - right); }
|
|
21
11
|
export async function renderPdfVisualPages(input) {
|
|
22
12
|
const parser = new PDFParse({ data: input.buffer });
|
|
23
13
|
try {
|
|
@@ -29,91 +19,44 @@ export async function renderPdfVisualPages(input) {
|
|
|
29
19
|
const jpegPages = await renderJpegPagesWithPdftoppm(input.buffer, input.fileName, selectedPages);
|
|
30
20
|
if (jpegPages.length === selectedPages.length)
|
|
31
21
|
return { pageCount, pages: jpegPages };
|
|
32
|
-
const screenshot = await parser.getScreenshot({
|
|
33
|
-
partial: selectedPages,
|
|
34
|
-
desiredWidth: input.desiredWidth ?? 1000,
|
|
35
|
-
imageBuffer: true,
|
|
36
|
-
imageDataUrl: false
|
|
37
|
-
});
|
|
22
|
+
const screenshot = await parser.getScreenshot({ partial: selectedPages, desiredWidth: input.desiredWidth ?? 1000, imageBuffer: true, imageDataUrl: false });
|
|
38
23
|
const images = Array.isArray(screenshot.pages) ? screenshot.pages : [];
|
|
39
|
-
return {
|
|
40
|
-
pageCount,
|
|
41
|
-
pages: images
|
|
42
|
-
.map((page) => {
|
|
43
|
-
const pageNumber = Number(page.pageNumber ?? page.page ?? page.num ?? 0);
|
|
44
|
-
const buffer = Buffer.from(page.data ?? page.buffer ?? []);
|
|
45
|
-
if (!pageNumber || !buffer.length)
|
|
46
|
-
return null;
|
|
47
|
-
return {
|
|
48
|
-
pageNumber,
|
|
49
|
-
fileName: pageImageName(input.fileName, pageNumber),
|
|
50
|
-
mimeType: 'image/png',
|
|
51
|
-
buffer
|
|
52
|
-
};
|
|
53
|
-
})
|
|
54
|
-
.filter((page) => Boolean(page))
|
|
55
|
-
};
|
|
24
|
+
return { pageCount, pages: images.map((page) => { const pageNumber = Number(page.pageNumber ?? page.page ?? page.num ?? 0); const buffer = Buffer.from(page.data ?? page.buffer ?? []); return pageNumber && buffer.length ? { pageNumber, fileName: pageImageName(input.fileName, pageNumber), mimeType: 'image/png', buffer } : null; }).filter((page) => Boolean(page)) };
|
|
56
25
|
}
|
|
57
26
|
finally {
|
|
58
27
|
await parser.destroy();
|
|
59
28
|
}
|
|
60
29
|
}
|
|
61
|
-
async function renderJpegPagesWithPdftoppm(buffer, fileName, selectedPages) {
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
await
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
timeout: 30_000,
|
|
74
|
-
maxBuffer: 1024 * 1024
|
|
75
|
-
});
|
|
76
|
-
const rendered = (await readdir(directory)).find(name => name.startsWith(`page-${pageNumber}-`) && name.endsWith('.jpg'));
|
|
77
|
-
if (!rendered)
|
|
78
|
-
return [];
|
|
79
|
-
pages.push({
|
|
80
|
-
pageNumber,
|
|
81
|
-
fileName: pageImageName(fileName, pageNumber, 'jpg'),
|
|
82
|
-
mimeType: 'image/jpeg',
|
|
83
|
-
buffer: await readFile(join(directory, rendered))
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
return pages;
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
return [];
|
|
90
|
-
}
|
|
91
|
-
finally {
|
|
92
|
-
await rm(directory, { recursive: true, force: true });
|
|
30
|
+
async function renderJpegPagesWithPdftoppm(buffer, fileName, selectedPages) { const pdftoppm = await findPdftoppm(); if (!pdftoppm)
|
|
31
|
+
return []; const directory = await mkdtemp(join(tmpdir(), 'tcw-pdf-pages-')); try {
|
|
32
|
+
const pdfPath = join(directory, 'source.pdf');
|
|
33
|
+
await writeFile(pdfPath, buffer);
|
|
34
|
+
const pages = [];
|
|
35
|
+
for (const pageNumber of selectedPages) {
|
|
36
|
+
const prefix = join(directory, `page-${pageNumber}`);
|
|
37
|
+
await execFileAsync(pdftoppm, ['-jpeg', '-r', '110', '-f', String(pageNumber), '-l', String(pageNumber), pdfPath, prefix], { timeout: 30_000, maxBuffer: 1024 * 1024 });
|
|
38
|
+
const rendered = (await readdir(directory)).find(name => name.startsWith(`page-${pageNumber}-`) && name.endsWith('.jpg'));
|
|
39
|
+
if (!rendered)
|
|
40
|
+
return [];
|
|
41
|
+
pages.push({ pageNumber, fileName: pageImageName(fileName, pageNumber, 'jpg'), mimeType: 'image/jpeg', buffer: await readFile(join(directory, rendered)) });
|
|
93
42
|
}
|
|
43
|
+
return pages;
|
|
94
44
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
45
|
+
catch {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
await rm(directory, { recursive: true, force: true });
|
|
50
|
+
} }
|
|
51
|
+
async function findPdftoppm() { const candidates = [process.env.TRADE_COMPLIANCE_PDFTOPPM_PATH, 'pdftoppm', '/opt/homebrew/bin/pdftoppm', '/usr/local/bin/pdftoppm', '/usr/bin/pdftoppm'].filter((value) => Boolean(value)); for (const candidate of candidates) {
|
|
52
|
+
try {
|
|
53
|
+
await execFileAsync(candidate, ['-v'], { timeout: 5_000, maxBuffer: 128 * 1024 });
|
|
54
|
+
return candidate;
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (candidate === 'pdftoppm' && error?.code === 99)
|
|
106
58
|
return candidate;
|
|
107
|
-
}
|
|
108
|
-
catch (error) {
|
|
109
|
-
if (candidate === 'pdftoppm' && error?.code === 99)
|
|
110
|
-
return candidate;
|
|
111
|
-
}
|
|
112
59
|
}
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
function pageImageName(fileName, pageNumber, extension = 'png') {
|
|
116
|
-
const base = basename(fileName).replace(/\.[^.]+$/, '') || 'document';
|
|
117
|
-
return `${base}-page-${pageNumber}.${extension}`;
|
|
118
|
-
}
|
|
60
|
+
} return null; }
|
|
61
|
+
function pageImageName(fileName, pageNumber, extension = 'png') { const base = basename(fileName).replace(/\.[^.]+$/, '') || 'document'; return `${base}-page-${pageNumber}.${extension}`; }
|
|
119
62
|
//# sourceMappingURL=pdf-page-renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-page-renderer.js","sourceRoot":"","sources":["../../../src/lib/adapters/pdf-page-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"pdf-page-renderer.js","sourceRoot":"","sources":["../../../src/lib/adapters/pdf-page-renderer.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/constants.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export declare const VIEW_PROVIDER_KEY = "trade-compliance-workbench-view-provid
|
|
|
5
5
|
export declare const REMOTE_ENTRY_KEY = "trade-compliance-workbench";
|
|
6
6
|
export declare const MIDDLEWARE_NAME = "tradeComplianceWorkbench";
|
|
7
7
|
export declare const CATALOG_REVIEW_BATCH_LIMIT = 100;
|
|
8
|
+
export declare const CATALOG_REVIEW_LEASE_MS: number;
|
|
9
|
+
export declare const CATALOG_TRANSLATION_REVIEW_LEASE_MS: number;
|
|
8
10
|
export declare const TOOL_NAMES: {
|
|
9
11
|
readonly saveControlledCatalog: "trade_compliance_save_controlled_catalog";
|
|
10
12
|
readonly saveSanctionCatalog: "trade_compliance_save_sanction_catalog";
|
|
@@ -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;;;;;;;;;;;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"}
|
|
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,uBAAuB,QAAc,CAAA;AAClD,eAAO,MAAM,mCAAmC,QAAc,CAAA;AAC9D,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"}
|
package/dist/lib/constants.js
CHANGED
|
@@ -5,6 +5,8 @@ export const VIEW_PROVIDER_KEY = 'trade-compliance-workbench-view-provider';
|
|
|
5
5
|
export const REMOTE_ENTRY_KEY = 'trade-compliance-workbench';
|
|
6
6
|
export const MIDDLEWARE_NAME = 'tradeComplianceWorkbench';
|
|
7
7
|
export const CATALOG_REVIEW_BATCH_LIMIT = 100;
|
|
8
|
+
export const CATALOG_REVIEW_LEASE_MS = 10 * 60_000;
|
|
9
|
+
export const CATALOG_TRANSLATION_REVIEW_LEASE_MS = 15 * 60_000;
|
|
8
10
|
export const TOOL_NAMES = {
|
|
9
11
|
saveControlledCatalog: 'trade_compliance_save_controlled_catalog',
|
|
10
12
|
saveSanctionCatalog: 'trade_compliance_save_sanction_catalog',
|
|
@@ -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,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"}
|
|
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,uBAAuB,GAAG,EAAE,GAAG,MAAM,CAAA;AAClD,MAAM,CAAC,MAAM,mCAAmC,GAAG,EAAE,GAAG,MAAM,CAAA;AAC9D,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"}
|
|
@@ -62,7 +62,7 @@ export function buildCatalogObserverCommand(task) {
|
|
|
62
62
|
return {
|
|
63
63
|
commandKey: 'assistant.chat.send_message',
|
|
64
64
|
payload: {
|
|
65
|
-
text: `目录文件“${task.sourceFileName}”正在由确定性代码管线解析。不要读取或重新解析原文件。请调用 ${TOOL_NAMES.waitImportProgress} 持续报告真实进度;若 reviewPendingCount 大于 0,循环调用 ${TOOL_NAMES.nextReviewBatch} 领取最多 ${CATALOG_REVIEW_BATCH_LIMIT}
|
|
65
|
+
text: `目录文件“${task.sourceFileName}”正在由确定性代码管线解析。不要读取或重新解析原文件。请调用 ${TOOL_NAMES.waitImportProgress} 持续报告真实进度;若 reviewPendingCount 大于 0,循环调用 ${TOOL_NAMES.nextReviewBatch} 领取最多 ${CATALOG_REVIEW_BATCH_LIMIT} 个局部来源块。若 ${TOOL_NAMES.nextReviewBatch} 返回 leaseToken 为空但包含 retryAfterMs、leaseExpiresAt 或 instruction,说明复核块仍被其他调用占用:必须等待 retryAfterMs 后重新调用 ${TOOL_NAMES.nextReviewBatch}(可先调用 ${TOOL_NAMES.waitImportProgress} 等待,单次最多 10 秒),不能把 items 为空当成复核完成,也不能结束任务;reviewPendingCount 大于 0 时不能因 leaseToken 为空而结束。对 reasons 包含 TRANSLATION_REQUIRED 的记录,优先调用 ${TOOL_NAMES.translateStructuredBatch} 批量翻译,再调用 ${TOOL_NAMES.submitReviewBatch} 提交 ACCEPT;翻译工具未返回完整字段时,必须依据复核块原文自行翻译可确认字段并提交 ACCEPT,纯 TRANSLATION_REQUIRED 记录不得因翻译工具缺失而保留不提交。工具调用优先:禁止在提交前输出大段翻译说明或逐条复述数据。管控商品必须填写中文 productName,保留 originalProductName 和 originalControlDescription,并设置 translationSource 为 AGENT_TRANSLATED;公司制裁目录必须保留原始公司名称;非翻译缺失导致无法业务确认的记录必须 REJECT。任务成功、失败或无待复核块后,用中文简要汇总真实计数。固定参数:${JSON.stringify({ importTaskId: task.id })}`,
|
|
66
66
|
clientMessageId: `trade-compliance:observer:${task.id}`,
|
|
67
67
|
followUpMode: 'queue',
|
|
68
68
|
state: { tradeComplianceWorkbench: { actionKey: 'observe_catalog_import', importTaskId: task.id } }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-command.builder.js","sourceRoot":"","sources":["../../../src/lib/import-jobs/import-command.builder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"import-command.builder.js","sourceRoot":"","sources":["../../../src/lib/import-jobs/import-command.builder.ts"],"names":[],"mappings":"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"}
|