@chenchaolong/plugin-trade-compliance-workbench 0.1.34 → 0.1.35

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.
@@ -5,6 +5,7 @@ export declare const TRADE_COMPLIANCE_REMOTE_ENTRY_KEY = "trade-compliance-workb
5
5
  export declare const TRADE_COMPLIANCE_FEATURE = "trade_compliance_workbench";
6
6
  export declare const TRADE_COMPLIANCE_MIDDLEWARE_NAME = "TradeComplianceWorkbenchMiddleware";
7
7
  export declare const TRADE_COMPLIANCE_TEMPLATE_PROVIDER_KEY = "tradeComplianceWorkbenchTemplates";
8
+ export declare const AGENT_DETAIL_SIDEBAR_SLOT = "detail.sidebar";
8
9
  export declare const AGENT_WORKBENCH_MAIN_SLOT = "agent.workbench.main";
9
10
  export declare const AGENT_WORKBENCH_FIXED_SLOT = "agent.workbench.fixed";
10
11
  export declare const TRADE_COMPLIANCE_TOOL_NAMES: readonly ["trade_compliance_save_controlled_goods_extraction", "trade_compliance_save_supplier_contract_extraction", "trade_compliance_enrich_product", "trade_compliance_match_controlled_goods", "trade_compliance_save_sales_contract_extraction", "trade_compliance_prepare_customs_workbook", "trade_compliance_record_generated_workbook"];
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,oDAAoD,CAAA;AAC7F,eAAO,MAAM,6BAA6B,+BAA+B,CAAA;AACzE,eAAO,MAAM,yBAAyB,+BAA+B,CAAA;AACrE,eAAO,MAAM,iCAAiC,+BAA+B,CAAA;AAC7E,eAAO,MAAM,wBAAwB,+BAA+B,CAAA;AACpE,eAAO,MAAM,gCAAgC,uCAAuC,CAAA;AACpF,eAAO,MAAM,sCAAsC,sCAAsC,CAAA;AACzF,eAAO,MAAM,yBAAyB,yBAAyB,CAAA;AAC/D,eAAO,MAAM,0BAA0B,0BAA0B,CAAA;AAEjE,eAAO,MAAM,2BAA2B,kVAQ9B,CAAA;AAEV,eAAO,MAAM,qBAAqB,4SACiP,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,oDAAoD,CAAA;AAC7F,eAAO,MAAM,6BAA6B,+BAA+B,CAAA;AACzE,eAAO,MAAM,yBAAyB,+BAA+B,CAAA;AACrE,eAAO,MAAM,iCAAiC,+BAA+B,CAAA;AAC7E,eAAO,MAAM,wBAAwB,+BAA+B,CAAA;AACpE,eAAO,MAAM,gCAAgC,uCAAuC,CAAA;AACpF,eAAO,MAAM,sCAAsC,sCAAsC,CAAA;AACzF,eAAO,MAAM,yBAAyB,mBAAmB,CAAA;AACzD,eAAO,MAAM,yBAAyB,yBAAyB,CAAA;AAC/D,eAAO,MAAM,0BAA0B,0BAA0B,CAAA;AAEjE,eAAO,MAAM,2BAA2B,kVAQ9B,CAAA;AAEV,eAAO,MAAM,qBAAqB,4SACiP,CAAA"}
@@ -5,6 +5,7 @@ export const TRADE_COMPLIANCE_REMOTE_ENTRY_KEY = 'trade-compliance-workbench';
5
5
  export const TRADE_COMPLIANCE_FEATURE = 'trade_compliance_workbench';
6
6
  export const TRADE_COMPLIANCE_MIDDLEWARE_NAME = 'TradeComplianceWorkbenchMiddleware';
7
7
  export const TRADE_COMPLIANCE_TEMPLATE_PROVIDER_KEY = 'tradeComplianceWorkbenchTemplates';
8
+ export const AGENT_DETAIL_SIDEBAR_SLOT = 'detail.sidebar';
8
9
  export const AGENT_WORKBENCH_MAIN_SLOT = 'agent.workbench.main';
9
10
  export const AGENT_WORKBENCH_FIXED_SLOT = 'agent.workbench.fixed';
10
11
  export const TRADE_COMPLIANCE_TOOL_NAMES = [
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,iDAAiD,CAAA;AAC7F,MAAM,CAAC,MAAM,6BAA6B,GAAG,4BAA4B,CAAA;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAA;AACrE,MAAM,CAAC,MAAM,iCAAiC,GAAG,4BAA4B,CAAA;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,4BAA4B,CAAA;AACpE,MAAM,CAAC,MAAM,gCAAgC,GAAG,oCAAoC,CAAA;AACpF,MAAM,CAAC,MAAM,sCAAsC,GAAG,mCAAmC,CAAA;AACzF,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAA;AAC/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAA;AAEjE,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,mDAAmD;IACnD,oDAAoD;IACpD,iCAAiC;IACjC,yCAAyC;IACzC,iDAAiD;IACjD,2CAA2C;IAC3C,4CAA4C;CACpC,CAAA;AAEV,MAAM,CAAC,MAAM,qBAAqB,GAChC,iRAAiR,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,iDAAiD,CAAA;AAC7F,MAAM,CAAC,MAAM,6BAA6B,GAAG,4BAA4B,CAAA;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAA;AACrE,MAAM,CAAC,MAAM,iCAAiC,GAAG,4BAA4B,CAAA;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,4BAA4B,CAAA;AACpE,MAAM,CAAC,MAAM,gCAAgC,GAAG,oCAAoC,CAAA;AACpF,MAAM,CAAC,MAAM,sCAAsC,GAAG,mCAAmC,CAAA;AACzF,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAA;AACzD,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAA;AAC/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAA;AAEjE,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,mDAAmD;IACnD,oDAAoD;IACpD,iCAAiC;IACjC,yCAAyC;IACzC,iDAAiD;IACjD,2CAA2C;IAC3C,4CAA4C;CACpC,CAAA;AAEV,MAAM,CAAC,MAAM,qBAAqB,GAChC,iRAAiR,CAAA"}
@@ -1,15 +1,29 @@
1
- import type { XpertExtensionViewManifest, XpertRemoteComponentEntry, XpertRemoteComponentViewSchema, XpertResolvedViewHostContext, XpertViewActionRequest, XpertViewActionResult, XpertViewDataResult, XpertViewQuery } from '@xpert-ai/contracts';
2
- import { IXpertViewExtensionProvider, XpertViewFileActionFile } from '@xpert-ai/plugin-sdk';
1
+ import type { XpertExtensionViewManifest, XpertResolvedViewHostContext, XpertViewActionRequest, XpertViewActionResult, XpertViewDataResult, XpertViewQuery } from '@xpert-ai/contracts';
2
+ import { IXpertViewExtensionProvider } from '@xpert-ai/plugin-sdk';
3
3
  import { TradeComplianceWorkbenchService } from './trade-compliance-workbench.service.js';
4
+ type ReviewRow = {
5
+ id: string;
6
+ recordKind: string;
7
+ type: string;
8
+ typeLabel: string;
9
+ statusLabel: string;
10
+ title: string;
11
+ supplierName?: string;
12
+ productName?: string;
13
+ model?: string;
14
+ hsCode?: string;
15
+ taxRefundRate?: string;
16
+ englishName?: string;
17
+ sourceLocation?: string;
18
+ };
4
19
  export declare class TradeComplianceWorkbenchViewProvider implements IXpertViewExtensionProvider {
5
20
  private readonly service;
6
21
  constructor(service: TradeComplianceWorkbenchService);
7
22
  supports(context: XpertResolvedViewHostContext): boolean;
8
23
  getViewManifests(_context: XpertResolvedViewHostContext, slot: string): XpertExtensionViewManifest[];
9
- getRemoteComponentEntry(_context: XpertResolvedViewHostContext, viewKey: string, component: XpertRemoteComponentViewSchema['component']): Promise<XpertRemoteComponentEntry>;
10
- getViewData(context: XpertResolvedViewHostContext, _viewKey: string, _query: XpertViewQuery): Promise<XpertViewDataResult>;
24
+ getViewData(context: XpertResolvedViewHostContext, _viewKey: string, query: XpertViewQuery): Promise<XpertViewDataResult<ReviewRow>>;
11
25
  executeViewAction(context: XpertResolvedViewHostContext, _viewKey: string, actionKey: string, request: XpertViewActionRequest): Promise<XpertViewActionResult>;
12
- executeViewFileAction(context: XpertResolvedViewHostContext, viewKey: string, actionKey: string, request: XpertViewActionRequest, file: XpertViewFileActionFile): Promise<XpertViewActionResult>;
13
26
  private materializeConfirmedReviewItem;
14
27
  }
28
+ export {};
15
29
  //# sourceMappingURL=trade-compliance-workbench-view.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trade-compliance-workbench-view.provider.d.ts","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench-view.provider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,2BAA2B,EAG3B,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAW7B,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAA;AAiBzF,qBAEa,oCAAqC,YAAW,2BAA2B;IAC1E,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,+BAA+B;IAErE,QAAQ,CAAC,OAAO,EAAE,4BAA4B;IAI9C,gBAAgB,CAAC,QAAQ,EAAE,4BAA4B,EAAE,IAAI,EAAE,MAAM,GAAG,0BAA0B,EAAE;IAwG9F,uBAAuB,CAC3B,QAAQ,EAAE,4BAA4B,EACtC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,8BAA8B,CAAC,WAAW,CAAC,GACrD,OAAO,CAAC,yBAAyB,CAAC;IAwB/B,WAAW,CACf,OAAO,EAAE,4BAA4B,EACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,mBAAmB,CAAC;IA0BzB,iBAAiB,CACrB,OAAO,EAAE,4BAA4B,EACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;IA0K3B,qBAAqB,CACzB,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;YAmGnB,8BAA8B;CA+C7C"}
1
+ {"version":3,"file":"trade-compliance-workbench-view.provider.d.ts","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench-view.provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,2BAA2B,EAE5B,MAAM,sBAAsB,CAAA;AAU7B,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAA;AAMzF,KAAK,SAAS,GAAG;IACf,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,qBAEa,oCAAqC,YAAW,2BAA2B;IAC1E,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,+BAA+B;IAErE,QAAQ,CAAC,OAAO,EAAE,4BAA4B;IAI9C,gBAAgB,CAAC,QAAQ,EAAE,4BAA4B,EAAE,IAAI,EAAE,MAAM,GAAG,0BAA0B,EAAE;IAgF9F,WAAW,CACf,OAAO,EAAE,4BAA4B,EACrC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAsBpC,iBAAiB,CACrB,OAAO,EAAE,4BAA4B,EACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;YA0BnB,8BAA8B;CA+C7C"}
@@ -1,19 +1,10 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { Injectable } from '@nestjs/common';
3
- import { readFile } from 'fs/promises';
4
- import { createRequire } from 'module';
5
- import { dirname, join } from 'path';
6
- import { fileURLToPath } from 'url';
7
- import { renderRemoteReactIframeHtml, ViewExtensionProvider } from '@xpert-ai/plugin-sdk';
8
- import { AGENT_WORKBENCH_FIXED_SLOT, AGENT_WORKBENCH_MAIN_SLOT, TRADE_COMPLIANCE_FEATURE, TRADE_COMPLIANCE_ICON, TRADE_COMPLIANCE_PLUGIN_NAME, TRADE_COMPLIANCE_PROVIDER_KEY, TRADE_COMPLIANCE_REMOTE_ENTRY_KEY, TRADE_COMPLIANCE_VIEW_KEY } from './constants.js';
3
+ import { ViewExtensionProvider } from '@xpert-ai/plugin-sdk';
4
+ import { AGENT_DETAIL_SIDEBAR_SLOT, AGENT_WORKBENCH_FIXED_SLOT, AGENT_WORKBENCH_MAIN_SLOT, TRADE_COMPLIANCE_ICON, TRADE_COMPLIANCE_PLUGIN_NAME, TRADE_COMPLIANCE_PROVIDER_KEY, TRADE_COMPLIANCE_VIEW_KEY } from './constants.js';
9
5
  import { TradeComplianceWorkbenchService } from './trade-compliance-workbench.service.js';
10
- import { buildCustomsWorkbookModel, buildCustomsWorkbookTemplateFileName, createCustomsWorkbookFromTemplateBuffer, readCustomsWorkbookTemplateSheetNames } from './trade-compliance-workbook.js';
11
- import { parseControlledGoodsFile } from './controlled-goods-file-parser.js';
12
- const __filename = fileURLToPath(import.meta.url);
13
- const __dirname = dirname(__filename);
14
- const requireFromHere = createRequire(__filename);
15
6
  const text = (en_US, zh_Hans) => ({ en_US, zh_Hans });
16
- const CONTROLLED_GOODS_BATCH_SIZE = 40;
7
+ const SUPPORTED_SLOTS = new Set([AGENT_DETAIL_SIDEBAR_SLOT, AGENT_WORKBENCH_MAIN_SLOT, AGENT_WORKBENCH_FIXED_SLOT]);
17
8
  let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewProvider {
18
9
  constructor(service) {
19
10
  this.service = service;
@@ -22,14 +13,14 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
22
13
  return context.hostType === 'agent';
23
14
  }
24
15
  getViewManifests(_context, slot) {
25
- if (slot !== AGENT_WORKBENCH_MAIN_SLOT && slot !== AGENT_WORKBENCH_FIXED_SLOT) {
16
+ if (!SUPPORTED_SLOTS.has(slot)) {
26
17
  return [];
27
18
  }
28
19
  return [
29
20
  {
30
21
  key: TRADE_COMPLIANCE_VIEW_KEY,
31
- title: text('Trade Compliance Workbench', '外贸合规工作台'),
32
- description: text('Manage controlled goods, supplier products, and generated customs workbooks.', '管理管控商品、供应商商品和生成的报关资料。'),
22
+ title: text('Trade Compliance Review', '外贸合规审核'),
23
+ description: text('Review extracted controlled goods, supplier products, and customs workbook records saved by the assistant.', '审核智能体识别并保存的管控商品、供应商商品和报关资料记录。'),
33
24
  icon: {
34
25
  type: 'svg',
35
26
  value: TRADE_COMPLIANCE_ICON
@@ -38,23 +29,31 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
38
29
  slot,
39
30
  order: 40,
40
31
  refreshable: true,
41
- activation: {
42
- requiredFeatures: [TRADE_COMPLIANCE_FEATURE]
43
- },
44
32
  source: {
45
33
  provider: TRADE_COMPLIANCE_PROVIDER_KEY,
46
34
  plugin: TRADE_COMPLIANCE_PLUGIN_NAME
47
35
  },
48
36
  view: {
49
- type: 'remote_component',
50
- runtime: 'react',
51
- protocolVersion: 1,
52
- component: {
53
- isolation: 'iframe',
54
- entry: TRADE_COMPLIANCE_REMOTE_ENTRY_KEY
37
+ type: 'table',
38
+ columns: [
39
+ { key: 'recordKind', label: text('Kind', '类型'), dataType: 'tag', width: '88px' },
40
+ { key: 'typeLabel', label: text('Record Type', '记录类型'), dataType: 'tag', width: '104px' },
41
+ { key: 'statusLabel', label: text('Status', '状态'), dataType: 'status', width: '88px' },
42
+ { key: 'title', label: text('Title', '标题'), dataType: 'text', searchable: true, sortable: true },
43
+ { key: 'supplierName', label: text('Supplier', '供应商'), dataType: 'text', searchable: true },
44
+ { key: 'productName', label: text('Product', '商品'), dataType: 'text', searchable: true },
45
+ { key: 'model', label: text('Model', '型号'), dataType: 'text', searchable: true },
46
+ { key: 'hsCode', label: text('HS Code', '海关编码'), dataType: 'text', searchable: true, sortable: true },
47
+ { key: 'taxRefundRate', label: text('Refund Rate', '退税率'), dataType: 'text' },
48
+ { key: 'sourceLocation', label: text('Source', '来源'), dataType: 'text' }
49
+ ],
50
+ pagination: {
51
+ enabled: true,
52
+ pageSize: 20
55
53
  },
56
- dataSource: {
57
- mode: 'platform'
54
+ search: {
55
+ enabled: true,
56
+ placeholder: text('Search product, supplier, HS code, or source', '搜索商品、供应商、海关编码或来源')
58
57
  }
59
58
  },
60
59
  dataSource: {
@@ -62,377 +61,72 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
62
61
  querySchema: {
63
62
  supportsPagination: true,
64
63
  supportsSearch: true,
65
- supportsParameters: true,
64
+ supportsSort: true,
66
65
  defaultPageSize: 20
67
66
  },
68
67
  cache: {
69
68
  enabled: false
70
69
  }
71
70
  },
72
- clientCommands: [
73
- {
74
- key: 'assistant.chat.send_message',
75
- label: text('Send to Assistant Chat', '发送到 Assistant 对话')
76
- }
77
- ],
78
71
  actions: [
79
72
  { key: 'refresh', label: text('Refresh', '刷新'), icon: 'ri-refresh-line', placement: 'toolbar', actionType: 'refresh' },
73
+ { key: 'confirm_review_item', label: text('Confirm', '确认'), icon: 'ri-check-line', placement: 'row', actionType: 'invoke' },
74
+ { key: 'reject_review_item', label: text('Reject', '驳回'), icon: 'ri-close-line', placement: 'row', actionType: 'invoke' },
80
75
  {
81
- key: 'upload_controlled_goods_file',
82
- label: text('Upload Controlled Goods File', '上传管控商品文件'),
83
- icon: 'ri-upload-cloud-line',
84
- placement: 'toolbar',
85
- actionType: 'invoke',
86
- transport: 'file'
87
- },
88
- {
89
- key: 'upload_supplier_contract',
90
- label: text('Upload Supplier Contract', '上传供应商合同'),
91
- icon: 'ri-file-list-3-line',
92
- placement: 'toolbar',
93
- actionType: 'invoke',
94
- transport: 'file'
95
- },
96
- {
97
- key: 'upload_sales_contract',
98
- label: text('Upload Sales Contract', '上传购销合同'),
99
- icon: 'ri-file-excel-2-line',
100
- placement: 'toolbar',
76
+ key: 'delete_review_item',
77
+ label: text('Delete', '删除'),
78
+ icon: 'ri-delete-bin-line',
79
+ placement: 'row',
101
80
  actionType: 'invoke',
102
- transport: 'file'
103
- },
104
- { key: 'confirm_review_item', label: text('Confirm Item', '确认单条'), icon: 'ri-check-line', actionType: 'invoke' },
105
- { key: 'confirm_review_items', label: text('Confirm Selected', '批量确认'), icon: 'ri-check-double-line', actionType: 'invoke' },
106
- { key: 'reject_review_item', label: text('Reject Item', '驳回单条'), icon: 'ri-close-line', actionType: 'invoke' },
107
- { key: 'reject_review_items', label: text('Reject Selected', '批量驳回'), icon: 'ri-close-circle-line', actionType: 'invoke' },
108
- { key: 'save_controlled_goods', label: text('Save Controlled Goods', '保存管控商品'), icon: 'ri-save-line', actionType: 'invoke' },
109
- { key: 'save_supplier_product', label: text('Save Supplier Product', '保存供应商商品'), icon: 'ri-save-line', actionType: 'invoke' },
110
- { key: 'update_review_item', label: text('Update Review Item', '更新审核项'), icon: 'ri-edit-line', actionType: 'invoke' },
111
- { key: 'delete_review_item', label: text('Delete Review Item', '删除审核项'), icon: 'ri-delete-bin-line', actionType: 'invoke' },
112
- { key: 'update_controlled_goods', label: text('Update Controlled Goods', '更新管控商品'), icon: 'ri-edit-line', actionType: 'invoke' },
113
- { key: 'delete_controlled_goods', label: text('Delete Controlled Goods', '删除管控商品'), icon: 'ri-delete-bin-line', actionType: 'invoke' },
114
- { key: 'update_supplier_product', label: text('Update Supplier Product', '更新供应商商品'), icon: 'ri-edit-line', actionType: 'invoke' },
115
- { key: 'delete_supplier_product', label: text('Delete Supplier Product', '删除供应商商品'), icon: 'ri-delete-bin-line', actionType: 'invoke' },
116
- { key: 'delete_customs_workbook', label: text('Delete Workbook', '删除销售发票'), icon: 'ri-delete-bin-line', actionType: 'invoke' },
117
- { key: 'download_customs_workbook', label: text('Download Workbook', '下载销售发票'), icon: 'ri-download-line', actionType: 'invoke' },
118
- { key: 'generate_customs_workbook', label: text('Generate Workbook', '生成报关资料'), icon: 'ri-file-excel-line', actionType: 'invoke' }
81
+ confirm: {
82
+ title: text('Delete review item', '删除审核记录'),
83
+ message: text('Delete this review item?', '确认删除这条审核记录吗?')
84
+ }
85
+ }
119
86
  ]
120
87
  }
121
88
  ];
122
89
  }
123
- async getRemoteComponentEntry(_context, viewKey, component) {
124
- if (viewKey !== TRADE_COMPLIANCE_VIEW_KEY || component.entry !== TRADE_COMPLIANCE_REMOTE_ENTRY_KEY) {
125
- return {
126
- html: '<!doctype html><html><body>Unsupported trade compliance component.</body></html>',
127
- contentType: 'text/html; charset=utf-8'
128
- };
129
- }
130
- const appScript = await readFile(join(__dirname, 'remote-components', TRADE_COMPLIANCE_REMOTE_ENTRY_KEY, 'app.js'), 'utf8');
131
- const reactUmd = await readPackageFile('react', 'umd/react.production.min.js');
132
- const reactDomUmd = await readPackageFile('react-dom', 'umd/react-dom.production.min.js');
133
- return {
134
- html: renderRemoteReactIframeHtml({
135
- title: 'Trade Compliance Workbench',
136
- lang: 'zh-Hans',
137
- reactUmd,
138
- reactDomUmd,
139
- appScript
140
- }),
141
- contentType: 'text/html; charset=utf-8'
142
- };
143
- }
144
- async getViewData(context, _viewKey, _query) {
90
+ async getViewData(context, _viewKey, query) {
145
91
  const scope = scopeFromContext(context);
146
- const [reviewItems, controlledGoods, products, workbookGenerations] = await Promise.all([
147
- this.service.listReviewItems(scope),
148
- this.service.listControlledGoods(scope),
149
- this.service.listProducts(scope),
150
- this.service.listWorkbookGenerations(scope)
151
- ]);
92
+ const reviewItems = await this.service.listReviewItems(scope);
93
+ const rows = reviewItems.map(toReviewTableRow);
94
+ const searched = applySearch(rows, query.search);
95
+ const sorted = applySort(searched, query.sortBy, query.sortDirection);
96
+ const page = query.page ?? 1;
97
+ const pageSize = query.pageSize ?? 20;
98
+ const offset = Math.max(page - 1, 0) * pageSize;
152
99
  return {
153
- items: reviewItems,
154
- total: reviewItems.length,
100
+ items: sorted.slice(offset, offset + pageSize),
101
+ total: searched.length,
155
102
  summary: {
156
- reviewItems,
157
- controlledGoods,
158
- products,
159
- workbookGenerations,
160
103
  counts: {
161
- reviewItems: reviewItems.length,
162
- controlledGoods: controlledGoods.length,
163
- products: products.length,
164
- workbookGenerations: workbookGenerations.length
104
+ reviewItems: rows.length,
105
+ visibleReviewItems: searched.length
165
106
  }
166
107
  }
167
108
  };
168
109
  }
169
110
  async executeViewAction(context, _viewKey, actionKey, request) {
170
111
  const scope = scopeFromContext(context);
112
+ const itemId = request.targetId;
113
+ if (actionKey === 'refresh') {
114
+ return { success: true, message: text('Refreshed', '已刷新'), refresh: true };
115
+ }
116
+ if (!itemId) {
117
+ return failure('targetId is required', '缺少 targetId');
118
+ }
171
119
  if (actionKey === 'confirm_review_item') {
172
- const itemId = readString(request.input, 'itemId');
173
- if (!itemId) {
174
- return failure('itemId is required', '缺少 itemId');
175
- }
176
- const item = await this.service.confirmReviewItem(scope, itemId, readRecord(request.input, 'confirmedData'));
120
+ const item = await this.service.confirmReviewItem(scope, itemId);
177
121
  return success(await this.materializeConfirmedReviewItem(scope, item));
178
122
  }
179
- if (actionKey === 'confirm_review_items') {
180
- const itemIds = readStringArray(request.input, 'itemIds');
181
- const items = await this.service.confirmReviewItems(scope, itemIds);
182
- return success(await Promise.all(items.map((item) => this.materializeConfirmedReviewItem(scope, item))));
183
- }
184
123
  if (actionKey === 'reject_review_item') {
185
- const itemId = readString(request.input, 'itemId');
186
- if (!itemId) {
187
- return failure('itemId is required', '缺少 itemId');
188
- }
189
124
  return success(await this.service.rejectReviewItem(scope, itemId));
190
125
  }
191
- if (actionKey === 'reject_review_items') {
192
- const itemIds = readStringArray(request.input, 'itemIds');
193
- return success(await this.service.rejectReviewItems(scope, itemIds));
194
- }
195
- if (actionKey === 'update_review_item') {
196
- const itemId = readString(request.input, 'itemId');
197
- const confirmedData = readRecord(request.input, 'confirmedData');
198
- if (!itemId || !confirmedData)
199
- return failure('itemId and confirmedData are required', '缺少 itemId 或更新数据');
200
- return success(await this.service.updateReviewItem(scope, itemId, confirmedData));
201
- }
202
126
  if (actionKey === 'delete_review_item') {
203
- const itemId = readString(request.input, 'itemId');
204
- if (!itemId)
205
- return failure('itemId is required', '缺少 itemId');
206
127
  return success(await this.service.deleteReviewItem(scope, itemId));
207
128
  }
208
- if (actionKey === 'refresh') {
209
- return { success: true, message: text('Refreshed', '已刷新'), refresh: true };
210
- }
211
- if (actionKey === 'save_controlled_goods') {
212
- const productName = readString(request.input, 'productName');
213
- if (!productName) {
214
- return failure('productName is required', '缺少商品名称');
215
- }
216
- return success(await this.service.saveControlledGoods(scope, {
217
- productName,
218
- hsCode: readString(request.input, 'hsCode'),
219
- keywords: readStringArray(request.input, 'keywords'),
220
- controlNote: readString(request.input, 'controlNote'),
221
- enabled: readBoolean(request.input, 'enabled') ?? true,
222
- sourceFileName: readString(request.input, 'sourceFileName'),
223
- sourceLocation: readString(request.input, 'sourceLocation')
224
- }));
225
- }
226
- if (actionKey === 'save_supplier_product') {
227
- const supplierName = readString(request.input, 'supplierName');
228
- const productName = readString(request.input, 'productName');
229
- if (!supplierName || !productName) {
230
- return failure('supplierName and productName are required', '缺少供应商或商品名称');
231
- }
232
- return success(await this.service.saveSupplierProduct(scope, {
233
- supplierName,
234
- supplierCreditCode: readString(request.input, 'supplierCreditCode'),
235
- supplierAddress: readString(request.input, 'supplierAddress'),
236
- productName,
237
- model: readString(request.input, 'model'),
238
- description: readString(request.input, 'description'),
239
- quantity: readNumber(request.input, 'quantity'),
240
- unit: readString(request.input, 'unit'),
241
- taxInclusiveUnitPrice: readNumber(request.input, 'taxInclusiveUnitPrice'),
242
- taxInclusiveTotalAmount: readNumber(request.input, 'taxInclusiveTotalAmount'),
243
- contractHsCode: readString(request.input, 'contractHsCode'),
244
- enrichedHsCode: readString(request.input, 'enrichedHsCode'),
245
- taxRefundRate: readString(request.input, 'taxRefundRate'),
246
- englishName: readString(request.input, 'englishName'),
247
- controlledStatus: readControlledGoodsStatus(request.input, 'controlledStatus'),
248
- controlNote: readString(request.input, 'controlNote')
249
- }));
250
- }
251
- if (actionKey === 'update_controlled_goods') {
252
- const id = readString(request.input, 'id');
253
- if (!id)
254
- return failure('id is required', '缺少 id');
255
- return success(await this.service.updateControlledGoods(scope, id, {
256
- productName: readString(request.input, 'productName'),
257
- hsCode: readString(request.input, 'hsCode'),
258
- keywords: readStringArray(request.input, 'keywords'),
259
- controlNote: readString(request.input, 'controlNote'),
260
- enabled: readBoolean(request.input, 'enabled'),
261
- sourceFileName: readString(request.input, 'sourceFileName'),
262
- sourceLocation: readString(request.input, 'sourceLocation')
263
- }));
264
- }
265
- if (actionKey === 'delete_controlled_goods') {
266
- const id = readString(request.input, 'id');
267
- if (!id)
268
- return failure('id is required', '缺少 id');
269
- return success(await this.service.deleteControlledGoods(scope, id));
270
- }
271
- if (actionKey === 'update_supplier_product') {
272
- const id = readString(request.input, 'id');
273
- if (!id)
274
- return failure('id is required', '缺少 id');
275
- return success(await this.service.updateSupplierProduct(scope, id, {
276
- supplierName: readString(request.input, 'supplierName'),
277
- productName: readString(request.input, 'productName'),
278
- model: readString(request.input, 'model'),
279
- description: readString(request.input, 'description'),
280
- quantity: readNumber(request.input, 'quantity'),
281
- unit: readString(request.input, 'unit'),
282
- contractHsCode: readString(request.input, 'contractHsCode'),
283
- enrichedHsCode: readString(request.input, 'enrichedHsCode'),
284
- taxRefundRate: readString(request.input, 'taxRefundRate'),
285
- englishName: readString(request.input, 'englishName'),
286
- controlledStatus: readControlledGoodsStatus(request.input, 'controlledStatus'),
287
- controlNote: readString(request.input, 'controlNote')
288
- }));
289
- }
290
- if (actionKey === 'delete_supplier_product') {
291
- const id = readString(request.input, 'id');
292
- if (!id)
293
- return failure('id is required', '缺少 id');
294
- return success(await this.service.deleteSupplierProduct(scope, id));
295
- }
296
- if (actionKey === 'delete_customs_workbook') {
297
- const id = readString(request.input, 'id');
298
- if (!id)
299
- return failure('id is required', '缺少 id');
300
- return success(await this.service.deleteWorkbookGeneration(scope, id));
301
- }
302
- if (actionKey === 'download_customs_workbook') {
303
- const id = readString(request.input, 'id');
304
- if (!id)
305
- return failure('id is required', '缺少 id');
306
- const item = await this.service.getWorkbookGeneration(scope, id);
307
- const template = await readFile(join(__dirname, '..', 'assets', 'customs-workbook-template.xls'));
308
- const source = normalizeWorkbookSource({
309
- ...(item.workbookData || {}),
310
- invoiceNo: item.invoiceNo,
311
- contractNo: item.contractNo,
312
- sourceFileName: item.sourceFileName
313
- });
314
- const workbook = await createCustomsWorkbookFromTemplateBuffer(buildCustomsWorkbookModel(source, {}), template);
315
- return success({
316
- fileName: workbook.fileName || item.fileName,
317
- mimeType: workbook.mimeType,
318
- bookType: workbook.bookType,
319
- base64: workbook.buffer.toString('base64')
320
- });
321
- }
322
- if (actionKey === 'generate_customs_workbook') {
323
- const now = new Date();
324
- const invoiceNo = readString(request.input, 'invoiceNo') ?? `INV-${now.toISOString().slice(0, 10).replace(/-/g, '')}`;
325
- const template = await readFile(join(__dirname, '..', 'assets', 'customs-workbook-template.xls'));
326
- const result = await this.service.recordWorkbookGeneration(scope, {
327
- sourceFileName: readString(request.input, 'sourceFileName') ?? readString(request.input, 'contractName'),
328
- invoiceNo,
329
- contractNo: readString(request.input, 'contractNo'),
330
- fileName: buildCustomsWorkbookTemplateFileName(invoiceNo),
331
- sheetNames: readCustomsWorkbookTemplateSheetNames(template),
332
- workbookData: readRecord(request.input, 'workbookData') ?? {
333
- invoiceNo,
334
- contractNo: readString(request.input, 'contractNo'),
335
- generatedFrom: 'trade-compliance-workbench'
336
- }
337
- });
338
- return success(result);
339
- }
340
- return {
341
- success: true,
342
- message: text('Action accepted', '操作已接收'),
343
- refresh: true
344
- };
345
- }
346
- async executeViewFileAction(context, viewKey, actionKey, request, file) {
347
- if (viewKey !== TRADE_COMPLIANCE_VIEW_KEY) {
348
- return failure('Unsupported view', '不支持的视图');
349
- }
350
- const scope = scopeFromContext(context);
351
- const fileName = getFileDisplayName(file, request.input);
352
- const assistantFile = viewFileToAssistantFile(file, fileName, roleForUploadAction(actionKey) ?? 'source_file', request.input);
353
- if (!hasAssistantReadableFileHandle(assistantFile)) {
354
- return failure('Uploaded file was not registered as an assistant-readable workspace file.', '文件未写入智能体工作空间,请重新上传后再解析。');
355
- }
356
- if (actionKey === 'upload_controlled_goods_file') {
357
- const parsed = await parseControlledGoodsFile({
358
- buffer: getFileBuffer(file),
359
- fileName,
360
- mimeType: getFileMimeType(file)
361
- });
362
- const result = await this.service.createReviewBatch(scope, {
363
- type: 'controlled_goods_file',
364
- sourceFileName: fileName,
365
- metadata: {
366
- fileName,
367
- size: getFileSize(file),
368
- mimeType: getFileMimeType(file),
369
- candidateCount: parsed.candidates.length,
370
- textLength: parsed.textLength
371
- },
372
- items: []
373
- });
374
- if (parsed.candidates.length > 0) {
375
- const chunks = chunkArray(parsed.candidates, CONTROLLED_GOODS_BATCH_SIZE);
376
- return parsingStarted({
377
- messages: chunks.map((candidates, index) => buildAssistantCommand({
378
- action: 'parse_controlled_goods_file',
379
- file: assistantFile,
380
- fileName,
381
- role: 'controlled_goods_file',
382
- batchId: result.batch.id,
383
- messageId: `trade-compliance:parse_controlled_goods_file:${result.batch.id}:${index + 1}`,
384
- text: buildControlledGoodsCandidateBatchPrompt(fileName, result.batch.id, candidates, index, chunks.length, parsed.candidates.length)
385
- })),
386
- batchId: result.batch.id,
387
- role: 'controlled_goods_file',
388
- expectedCount: parsed.candidates.length
389
- });
390
- }
391
- return parsingStarted({
392
- ...buildAssistantCommand({
393
- action: 'parse_controlled_goods_file',
394
- file: assistantFile,
395
- fileName,
396
- role: 'controlled_goods_file',
397
- batchId: result.batch.id,
398
- text: buildControlledGoodsParsePrompt(fileName, result.batch.id)
399
- }),
400
- expectedCount: 0
401
- });
402
- }
403
- if (actionKey === 'upload_supplier_contract') {
404
- const result = await this.service.createReviewBatch(scope, {
405
- type: 'supplier_contract',
406
- sourceFileName: fileName,
407
- metadata: { fileName, size: getFileSize(file), mimeType: getFileMimeType(file) },
408
- items: []
409
- });
410
- return parsingStarted(buildAssistantCommand({
411
- action: 'parse_supplier_contract',
412
- file: assistantFile,
413
- fileName,
414
- role: 'supplier_contract',
415
- batchId: result.batch.id,
416
- text: buildSupplierContractParsePrompt(fileName, result.batch.id)
417
- }));
418
- }
419
- if (actionKey === 'upload_sales_contract') {
420
- const result = await this.service.createReviewBatch(scope, {
421
- type: 'sales_contract',
422
- sourceFileName: fileName,
423
- metadata: { fileName, size: getFileSize(file), mimeType: getFileMimeType(file) },
424
- items: []
425
- });
426
- return parsingStarted(buildAssistantCommand({
427
- action: 'parse_sales_contract',
428
- file: assistantFile,
429
- fileName,
430
- role: 'sales_contract',
431
- batchId: result.batch.id,
432
- text: buildSalesContractParsePrompt(fileName, result.batch.id)
433
- }));
434
- }
435
- return failure('Unsupported file action', '不支持的文件操作');
129
+ return failure(`Unsupported action: ${actionKey}`, '不支持的操作');
436
130
  }
437
131
  async materializeConfirmedReviewItem(scope, item) {
438
132
  const data = mergeReviewData(item.defaultData, item.extractedData, item.confirmedData);
@@ -486,10 +180,6 @@ TradeComplianceWorkbenchViewProvider = __decorate([
486
180
  __metadata("design:paramtypes", [TradeComplianceWorkbenchService])
487
181
  ], TradeComplianceWorkbenchViewProvider);
488
182
  export { TradeComplianceWorkbenchViewProvider };
489
- async function readPackageFile(packageName, filePath) {
490
- const packageRoot = dirname(requireFromHere.resolve(`${packageName}/package.json`));
491
- return readFile(join(packageRoot, filePath), 'utf8');
492
- }
493
183
  function scopeFromContext(context) {
494
184
  return {
495
185
  tenantId: context.tenantId,
@@ -499,20 +189,76 @@ function scopeFromContext(context) {
499
189
  userId: context.userId
500
190
  };
501
191
  }
502
- function success(data) {
192
+ function toReviewTableRow(item) {
193
+ const data = mergeReviewData(item.defaultData, item.extractedData, item.confirmedData);
503
194
  return {
504
- success: true,
505
- message: text('Saved', '已保存'),
506
- data,
507
- refresh: true
195
+ id: item.id ?? '',
196
+ recordKind: '审核记录',
197
+ type: item.type ?? '',
198
+ typeLabel: typeLabel(item.type),
199
+ statusLabel: statusLabel(item.reviewStatus),
200
+ title: item.title ?? readString(data, 'productName') ?? readString(data, 'fileName') ?? '-',
201
+ supplierName: readString(data, 'supplierName'),
202
+ productName: readString(data, 'productName'),
203
+ model: readString(data, 'model'),
204
+ hsCode: readString(data, 'enrichedHsCode') ?? readString(data, 'contractHsCode') ?? readString(data, 'hsCode'),
205
+ taxRefundRate: readString(data, 'taxRefundRate'),
206
+ englishName: readString(data, 'englishName'),
207
+ sourceLocation: item.sourceLocation ?? readString(data, 'sourceLocation') ?? readString(data, 'sourceFileName')
508
208
  };
509
209
  }
510
- function parsingStarted(data) {
210
+ function applySearch(rows, search) {
211
+ const keyword = normalizeText(search);
212
+ if (!keyword)
213
+ return rows;
214
+ return rows.filter((row) => [
215
+ row.recordKind,
216
+ row.typeLabel,
217
+ row.statusLabel,
218
+ row.title,
219
+ row.supplierName,
220
+ row.productName,
221
+ row.model,
222
+ row.hsCode,
223
+ row.taxRefundRate,
224
+ row.englishName,
225
+ row.sourceLocation
226
+ ].some((value) => normalizeText(value).includes(keyword)));
227
+ }
228
+ function applySort(rows, sortBy, direction) {
229
+ if (!sortBy)
230
+ return rows;
231
+ const multiplier = direction === 'desc' ? -1 : 1;
232
+ return [...rows].sort((left, right) => {
233
+ const leftValue = normalizeText(Reflect.get(left, sortBy));
234
+ const rightValue = normalizeText(Reflect.get(right, sortBy));
235
+ return leftValue.localeCompare(rightValue, 'zh-Hans') * multiplier;
236
+ });
237
+ }
238
+ function typeLabel(type) {
239
+ if (type === 'controlled_goods')
240
+ return '管控商品';
241
+ if (type === 'supplier_product')
242
+ return '供应商商品';
243
+ if (type === 'customs_workbook')
244
+ return '报关资料';
245
+ return type ?? '-';
246
+ }
247
+ function statusLabel(status) {
248
+ if (status === 'confirmed')
249
+ return '已确认';
250
+ if (status === 'rejected')
251
+ return '已驳回';
252
+ if (status === 'needs_revision')
253
+ return '需修订';
254
+ return '待审核';
255
+ }
256
+ function success(data) {
511
257
  return {
512
258
  success: true,
513
- message: text('Parsing request sent to assistant', '已发送给智能体解析'),
259
+ message: text('Saved', '已保存'),
514
260
  data,
515
- refresh: false
261
+ refresh: true
516
262
  };
517
263
  }
518
264
  function failure(en_US, zh_Hans) {
@@ -527,10 +273,6 @@ function readString(input, key) {
527
273
  ? String(Reflect.get(input, key))
528
274
  : undefined;
529
275
  }
530
- function readRecord(input, key) {
531
- const value = typeof input === 'object' && input != null ? Reflect.get(input, key) : undefined;
532
- return typeof value === 'object' && value != null && !Array.isArray(value) ? value : undefined;
533
- }
534
276
  function readStringArray(input, key) {
535
277
  const value = typeof input === 'object' && input != null ? Reflect.get(input, key) : undefined;
536
278
  return Array.isArray(value) ? value.filter((item) => typeof item === 'string') : [];
@@ -561,277 +303,10 @@ function readControlledGoodsStatus(input, key) {
561
303
  ? value
562
304
  : undefined;
563
305
  }
564
- function roleForUploadAction(actionKey) {
565
- if (actionKey === 'upload_controlled_goods_file')
566
- return 'controlled_goods_file';
567
- if (actionKey === 'upload_supplier_contract')
568
- return 'supplier_contract';
569
- if (actionKey === 'upload_sales_contract')
570
- return 'sales_contract';
571
- return null;
572
- }
573
- function normalizeWorkbookSource(input) {
574
- const itemsValue = Array.isArray(input.items) ? input.items : [];
575
- return {
576
- invoiceNo: stringValue(input.invoiceNo),
577
- contractNo: stringValue(input.contractNo),
578
- date: stringValue(input.date),
579
- buyerName: stringValue(input.buyerName),
580
- buyerAddress: stringValue(input.buyerAddress),
581
- sellerName: stringValue(input.sellerName),
582
- sellerEnglishName: stringValue(input.sellerEnglishName) ?? stringValue(input.sellerName),
583
- sellerEnglishAddress: stringValue(input.sellerEnglishAddress),
584
- paymentTerm: stringValue(input.paymentTerm),
585
- tradeTerm: stringValue(input.tradeTerm),
586
- origin: stringValue(input.origin),
587
- destination: stringValue(input.destination),
588
- currency: stringValue(input.currency) ?? '人民币',
589
- exchangeRate: numberValue(input.exchangeRate),
590
- packageType: stringValue(input.packageType),
591
- supervisionMode: stringValue(input.supervisionMode),
592
- taxExemptionNature: stringValue(input.taxExemptionNature ?? input.taxNature),
593
- domesticSourceLocation: stringValue(input.domesticSourceLocation),
594
- bankBeneficiary: stringValue(input.bankBeneficiary),
595
- bankName: stringValue(input.bankName),
596
- bankAddress: stringValue(input.bankAddress),
597
- bankAccountNo: stringValue(input.bankAccountNo),
598
- cnapsCode: stringValue(input.cnapsCode),
599
- swiftCode: stringValue(input.swiftCode),
600
- items: itemsValue
601
- .filter((item) => typeof item === 'object' && item != null && !Array.isArray(item))
602
- .map((item) => ({
603
- productName: stringValue(item.productName),
604
- englishName: stringValue(item.englishName),
605
- model: stringValue(item.model),
606
- description: stringValue(item.description),
607
- quantity: numberValue(item.quantity),
608
- unit: stringValue(item.unit),
609
- unitPrice: numberValue(item.unitPrice ?? item.taxInclusiveUnitPrice),
610
- amount: numberValue(item.amount ?? item.taxInclusiveTotalAmount),
611
- hsCode: stringValue(item.hsCode ?? item.contractHsCode ?? item.enrichedHsCode),
612
- cartonNo: stringValue(item.cartonNo),
613
- dimension: stringValue(item.dimension),
614
- netWeight: numberValue(item.netWeight),
615
- grossWeight: numberValue(item.grossWeight)
616
- }))
617
- };
618
- }
619
- function stringValue(value) {
620
- return value === undefined || value === null || value === '' ? undefined : String(value);
621
- }
622
- function numberValue(value) {
623
- if (typeof value === 'number' && Number.isFinite(value))
624
- return value;
625
- if (typeof value === 'string' && value.trim()) {
626
- const parsed = Number(value.replace(/,/g, ''));
627
- return Number.isFinite(parsed) ? parsed : undefined;
628
- }
629
- return undefined;
630
- }
631
306
  function mergeReviewData(...records) {
632
307
  return Object.assign({}, ...records.filter(Boolean));
633
308
  }
634
- function getFileDisplayName(file, input) {
635
- return readString(input, 'name') ?? readString(input, 'fileName') ?? getFileName(file) ?? 'uploaded-document';
636
- }
637
- function getFileName(file) {
638
- const record = file;
639
- return typeof record.name === 'string'
640
- ? record.name
641
- : typeof record.originalname === 'string'
642
- ? record.originalname
643
- : typeof record.originalName === 'string'
644
- ? record.originalName
645
- : undefined;
646
- }
647
- function getFileMimeType(file) {
648
- const record = file;
649
- return typeof record.mimetype === 'string'
650
- ? record.mimetype
651
- : typeof record.type === 'string'
652
- ? record.type
653
- : undefined;
654
- }
655
- function getFileSize(file) {
656
- const record = file;
657
- return typeof record.size === 'number' ? record.size : undefined;
658
- }
659
- function getFileBuffer(file) {
660
- const record = file;
661
- const buffer = record.buffer;
662
- if (Buffer.isBuffer(buffer))
663
- return buffer;
664
- if (buffer instanceof ArrayBuffer)
665
- return Buffer.from(buffer);
666
- if (ArrayBuffer.isView(buffer))
667
- return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength);
668
- return undefined;
669
- }
670
- function chunkArray(items, size) {
671
- const chunks = [];
672
- for (let index = 0; index < items.length; index += size) {
673
- chunks.push(items.slice(index, index + size));
674
- }
675
- return chunks;
676
- }
677
- function buildAssistantCommand(input) {
678
- const files = [input.file];
679
- const workspacePath = input.file.workspacePath ?? input.file.filePath;
680
- const references = files
681
- .map((file) => toChatReference(file, input.fileName, input.role))
682
- .filter((item) => Boolean(item));
683
- return {
684
- commandKey: 'assistant.chat.send_message',
685
- payload: {
686
- text: input.text,
687
- clientMessageId: input.messageId ?? `trade-compliance:${input.action}:${input.batchId ?? Date.now()}`,
688
- files,
689
- attachments: files.map(toChatAttachment).filter((item) => Boolean(item)),
690
- references,
691
- followUpMode: 'queue',
692
- state: {
693
- tradeComplianceWorkbench: {
694
- action: input.action,
695
- batchId: input.batchId,
696
- sourceFileName: input.fileName,
697
- workspacePath
698
- }
699
- }
700
- },
701
- batchId: input.batchId,
702
- role: input.role
703
- };
704
- }
705
- function hasAssistantReadableFileHandle(file) {
706
- return Boolean(file.fileAssetId || file.fileId || file.workspacePath || file.filePath);
707
- }
708
- function viewFileToAssistantFile(file, fileName, role, input) {
709
- const record = file;
710
- const inputRecord = typeof input === 'object' && input != null ? input : {};
711
- const workspaceFile = readRecord(inputRecord, 'workspaceFile') ?? {};
712
- const workspacePath = readOptionalFileString(workspaceFile, 'workspacePath') ??
713
- readOptionalFileString(workspaceFile, 'filePath') ??
714
- readOptionalFileString(inputRecord, 'workspacePath') ??
715
- readOptionalFileString(inputRecord, 'filePath');
716
- const fileAssetId = readOptionalFileString(inputRecord, 'fileAssetId') ??
717
- readOptionalFileString(inputRecord, 'fileId') ??
718
- readOptionalFileString(record, 'fileAssetId') ??
719
- readOptionalFileString(record, 'fileId');
720
- const fileId = fileAssetId;
721
- const storageFileId = readOptionalFileString(inputRecord, 'storageFileId') ?? readOptionalFileString(record, 'storageFileId');
722
- return {
723
- id: fileAssetId ?? storageFileId,
724
- fileId,
725
- fileAssetId,
726
- storageFileId,
727
- workspacePath,
728
- filePath: workspacePath,
729
- fileUrl: readOptionalFileString(workspaceFile, 'fileUrl') ?? readOptionalFileString(workspaceFile, 'url'),
730
- url: readOptionalFileString(workspaceFile, 'fileUrl') ?? readOptionalFileString(workspaceFile, 'url'),
731
- name: readOptionalFileString(workspaceFile, 'name') ?? readOptionalFileString(inputRecord, 'name') ?? fileName,
732
- originalName: readOptionalFileString(workspaceFile, 'originalName') ?? readOptionalFileString(inputRecord, 'originalName') ?? fileName,
733
- mimeType: readOptionalFileString(workspaceFile, 'mimeType') ?? readOptionalFileString(inputRecord, 'mimeType') ?? getFileMimeType(file),
734
- mimetype: readOptionalFileString(workspaceFile, 'mimeType') ?? readOptionalFileString(inputRecord, 'mimeType') ?? getFileMimeType(file),
735
- size: readNumber(workspaceFile, 'size') ?? readNumber(inputRecord, 'size') ?? getFileSize(file),
736
- role
737
- };
738
- }
739
- function readOptionalFileString(record, key) {
740
- const value = record[key];
741
- return typeof value === 'string' && value.trim() ? value.trim() : undefined;
742
- }
743
- function toChatAttachment(file) {
744
- const id = file.fileAssetId ?? file.fileId ?? file.id ?? file.storageFileId ?? file.workspacePath;
745
- if (!id)
746
- return null;
747
- return {
748
- type: 'file',
749
- id,
750
- name: file.name,
751
- mime_type: file.mimeType ?? 'application/octet-stream',
752
- workspacePath: file.workspacePath,
753
- filePath: file.filePath
754
- };
755
- }
756
- function toChatReference(file, fileName, role) {
757
- const fileId = file.fileAssetId ?? file.fileId;
758
- const workspacePath = file.workspacePath ?? file.filePath;
759
- if (!fileId && !workspacePath)
760
- return null;
761
- return {
762
- type: 'quote',
763
- label: fileName,
764
- source: 'Trade Compliance Workbench uploaded document',
765
- text: [
766
- `role=${role}`,
767
- `name=${fileName}`,
768
- `fileId=${fileId}`,
769
- `workspacePath=${workspacePath ?? '-'}`,
770
- `mimeType=${file.mimeType ?? '-'}`,
771
- `size=${file.size ?? '-'}`
772
- ].join('\n')
773
- };
774
- }
775
- function buildControlledGoodsParsePrompt(fileName, batchId) {
776
- return [
777
- `请解析我刚上传的管控商品文件《${fileName}》。`,
778
- '文件已写入智能体工作空间,请优先根据 state.tradeComplianceWorkbench.workspacePath 使用 SandboxFile 等沙箱文件工具按路径读取;如果同时存在附件能力,也可以使用 file_preview、file_search、file_read 等文件理解工具读取。',
779
- '目标:识别文件中的管控商品、关键词、海关编码、管控说明、来源页码或条款。',
780
- `请调用工具 trade_compliance_save_controlled_goods_extraction 保存待审核结果,batchId 必须传 ${batchId ?? '-'}。如果内容很多需要分批调用工具,每次都必须使用同一个 batchId。`,
781
- '每个 items 条目的 type 必须是 controlled_goods;extractedData 中请包含 productName、hsCode、keywords、controlNote;sourceLocation 记录证据位置。',
782
- '不要只回复文字,必须调用工具把识别结果写入插件。回复中的识别数量必须等于工具实际保存的 items 总数。'
783
- ].join('\n');
784
- }
785
- function buildControlledGoodsCandidateBatchPrompt(fileName, batchId, candidates, batchIndex, batchTotal, totalCount) {
786
- const start = batchIndex * CONTROLLED_GOODS_BATCH_SIZE + 1;
787
- const lines = candidates.map((candidate, index) => {
788
- const number = start + index;
789
- const parts = [
790
- `候选行 ${number}/${totalCount}`,
791
- `序号:${candidate.sequence}`,
792
- candidate.category ? `分类:${candidate.category}` : undefined,
793
- candidate.sourceLocation ? `来源:${candidate.sourceLocation}` : undefined,
794
- candidate.hsCodes.length ? `HS Code:${candidate.hsCodes.join(', ')}` : undefined,
795
- `原文:${candidate.rawText}`
796
- ].filter(Boolean);
797
- return parts.join('\n');
798
- });
799
- return [
800
- `请处理管控商品文件《${fileName}》的候选行批次 ${batchIndex + 1}/${batchTotal}。`,
801
- '插件已经从原始文件中预提取出候选行;原始文件已写入智能体工作空间,请优先根据 state.tradeComplianceWorkbench.workspacePath 使用 SandboxFile 等沙箱文件工具按路径核对来源,不要重新从整份文件自由扩展识别范围。',
802
- `本批必须只处理下面 ${candidates.length} 条候选行,保存数量应等于候选行数量;除非某一行明确不是商品或管控条目,否则不要丢弃。`,
803
- `请调用 trade_compliance_save_controlled_goods_extraction 保存待审核结果,batchId 必须传 ${batchId}。`,
804
- '每个 items 条目的 type 必须是 controlled_goods;title 使用商品名称或 HS Code。',
805
- 'extractedData 必须包含 productName、hsCode、keywords、controlNote、enabled;enabled 默认 true。',
806
- 'sourceLocation 使用候选行的来源页码/工作表/行号;confidence 使用 0 到 1 的数字。',
807
- '所有外语都翻译成中文,除非 HS Code、CAS、型号、标准号等特定语义必须保留外语或代码。',
808
- '不要只回复文字,必须调用工具写入工作台;回复中的识别数量必须等于本批工具实际保存的 items 数量。',
809
- '',
810
- lines.join('\n\n')
811
- ].join('\n');
812
- }
813
- function buildSupplierContractParsePrompt(fileName, batchId) {
814
- return [
815
- `请解析我刚上传的供应商合同《${fileName}》。`,
816
- '文件已写入智能体工作空间,请优先根据 state.tradeComplianceWorkbench.workspacePath 使用 SandboxFile 等沙箱文件工具按路径读取;如果同时存在附件能力,也可以使用 file_preview、file_search、file_read 等文件理解工具读取。',
817
- '目标:识别供应商信息和商品信息,商品信息包括商品名称、型号、描述、数量、单位、含税单价、含税金额、合同里的海关编码。',
818
- '对每个商品必须调用 trade_compliance_enrich_product 获取海关编码、退税率、英文品名;该工具会请求 https://hsbianma.com/search?keywords=...&filterFailureCode=true&displayenname=true 并从返回 HTML 的结果表格读取数据。',
819
- '不要调用其他海关编码接口,也不要只根据模型知识生成编码;如果 trade_compliance_enrich_product 返回 error,请把 error 写入 controlNote 并继续保存待审核记录。',
820
- '再结合已有管控商品记录调用 trade_compliance_match_controlled_goods 判断是否为管控商品。',
821
- `最后必须调用 trade_compliance_save_supplier_contract_extraction 保存待审核结果,batchId 必须传 ${batchId ?? '-'};只有调用该保存工具后,工作台左侧供应商商品列表才会出现记录。`,
822
- '每个 items 条目的 type 必须是 supplier_product;extractedData/defaultData 中请包含 supplierName、supplierCreditCode、supplierAddress、productName、model、description、quantity、unit、taxInclusiveUnitPrice、taxInclusiveTotalAmount、contractHsCode、enrichedHsCode、taxRefundRate、englishName、controlledStatus、controlNote。',
823
- '不要只回复文字,必须调用工具把识别结果写入插件;回复中必须逐字报告工具返回的 savedItemCount、visibleReviewItemCount、visibleBatchItemCount。',
824
- '只有 savedItemCount 大于 0 且 visibleBatchItemCount 大于 0 时,才能说已提交到工作台;否则必须报告保存失败或不可见,并说明工具返回值。'
825
- ].join('\n');
826
- }
827
- function buildSalesContractParsePrompt(fileName, batchId) {
828
- return [
829
- `请解析我刚上传的购销合同《${fileName}》。`,
830
- '文件已写入智能体工作空间,请优先根据 state.tradeComplianceWorkbench.workspacePath 使用 SandboxFile 等沙箱文件工具按路径读取;如果同时存在附件能力,也可以使用 file_preview、file_search、file_read 等文件理解工具读取。',
831
- '目标:识别销售发票和报关资料所需字段,包括发票号、合同号、买方、卖方、币种、贸易术语、付款方式、商品明细、数量、单价、金额、包装、毛重、净重等。',
832
- `请调用 trade_compliance_save_sales_contract_extraction 保存待审核结果,batchId 可记录为 ${batchId ?? '-'}。`,
833
- '每个 items 条目的 type 必须是 customs_workbook;extractedData 中请包含 invoiceNo、contractNo、buyerName、sellerName、currency、items 等字段。',
834
- '不要只回复文字,必须调用工具把识别结果写入插件。'
835
- ].join('\n');
309
+ function normalizeText(value) {
310
+ return String(value ?? '').trim().toLowerCase();
836
311
  }
837
312
  //# sourceMappingURL=trade-compliance-workbench-view.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trade-compliance-workbench-view.provider.js","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench-view.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trade-compliance-workbench-view.provider.js","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench-view.provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chenchaolong/plugin-trade-compliance-workbench",
3
- "version": "0.1.34",
3
+ "version": "0.1.35",
4
4
  "description": "Trade Compliance Workbench app plugin for controlled goods review, supplier product management, and customs workbook generation.",
5
5
  "author": {
6
6
  "name": "XpertAI",
@@ -35,7 +35,7 @@
35
35
  "scripts": {
36
36
  "build": "tsc -p tsconfig.lib.json && node scripts/copy-assets.mjs",
37
37
  "lint": "echo \"(todo) add lint\"",
38
- "test": "tsc -p tsconfig.spec.json --noEmit && tsc -p tsconfig.lib.json && node scripts/verify-remote-app.mjs && node scripts/verify-service-dedupe.mjs && node scripts/verify-real-enrichment.mjs && node scripts/verify-workbook-template.mjs && node scripts/verify-middleware-workbook-template.mjs"
38
+ "test": "tsc -p tsconfig.spec.json --noEmit && tsc -p tsconfig.lib.json && node scripts/verify-new-platform-view.mjs && node scripts/verify-service-dedupe.mjs && node scripts/verify-real-enrichment.mjs && node scripts/verify-workbook-template.mjs && node scripts/verify-middleware-workbook-template.mjs"
39
39
  },
40
40
  "xpert": {
41
41
  "plugin": {