@chenchaolong/plugin-trade-compliance-workbench 1.0.78 → 1.0.80

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.
@@ -4207,8 +4207,8 @@ function normalizeCustomerContractAnalysisInput(value, enforceInvariant = true)
4207
4207
  return { reviewedText, extractionStatus: value.extractionStatus };
4208
4208
  }
4209
4209
  function normalizeCustomerContractDraftClause(value, options = {}) {
4210
- const sourceText = firstStringValue(value, ['sourceText', 'originalText', 'sourceContent']);
4211
- const reviewedText = firstStringValue(value, ['reviewedText', 'translatedText', 'clauseSummary', 'summary', 'originalText']);
4210
+ const sourceText = firstStringValue(value, ['sourceText', 'originalText', 'sourceContent', 'originalClause', 'clauseOriginalText', 'rawText', 'source', 'evidence', 'quote']);
4211
+ const reviewedText = firstStringValue(value, ['reviewedText', 'translatedText', 'clauseSummary', 'summary', 'originalText', 'text', 'content', 'clauseText', 'reviewedTextZh', 'translation', 'translatedClause', 'extractedText']);
4212
4212
  const hasReviewableText = Boolean(sourceText || reviewedText || firstStringValue(value, ['sourceContent']));
4213
4213
  const extractionStatus = options.inferFoundFromText && hasReviewableText ? 'FOUND' : value.extractionStatus ?? (hasReviewableText ? 'FOUND' : 'NOT_FOUND');
4214
4214
  const normalized = normalizeCustomerContractAnalysisInput({ extractionStatus, reviewedText });
@@ -4221,17 +4221,46 @@ function normalizeCustomerContractDraftClause(value, options = {}) {
4221
4221
  };
4222
4222
  }
4223
4223
  function normalizeCustomerContractDraftPayload(payload) {
4224
+ const clauses = Array.isArray(payload.clauses) ? payload.clauses.map(clause => {
4225
+ if (!clause || typeof clause !== 'object' || Array.isArray(clause))
4226
+ return clause;
4227
+ return normalizeCustomerContractDraftClause(clause, { inferFoundFromText: true });
4228
+ }) : payload.clauses;
4224
4229
  const normalized = {
4225
4230
  ...payload,
4226
- clauses: Array.isArray(payload.clauses) ? payload.clauses.map(clause => {
4227
- if (!clause || typeof clause !== 'object' || Array.isArray(clause))
4228
- return clause;
4229
- return normalizeCustomerContractDraftClause(clause, { inferFoundFromText: true });
4230
- }) : payload.clauses
4231
+ clauses,
4232
+ analyses: normalizeCustomerContractDraftAnalyses(payload.analyses, Array.isArray(payload.clauses) ? payload.clauses : [])
4231
4233
  };
4232
4234
  assertCustomerContractImportDraftPayload(normalized);
4233
4235
  return normalized;
4234
4236
  }
4237
+ function normalizeCustomerContractDraftAnalyses(analyses, rawClauses) {
4238
+ const result = Array.isArray(analyses) ? [...analyses] : [];
4239
+ const knownTypes = new Set(result
4240
+ .filter(value => value && typeof value === 'object' && !Array.isArray(value))
4241
+ .map(value => value.clauseType));
4242
+ for (const clause of rawClauses) {
4243
+ if (!clause || typeof clause !== 'object' || Array.isArray(clause))
4244
+ continue;
4245
+ const analysis = customerContractAnalysisFromRecord(clause);
4246
+ if (!analysis || knownTypes.has(analysis.clauseType))
4247
+ continue;
4248
+ knownTypes.add(analysis.clauseType);
4249
+ result.push(analysis);
4250
+ }
4251
+ return result;
4252
+ }
4253
+ function customerContractAnalysisFromRecord(value) {
4254
+ if (!ClauseTypes.includes(value.clauseType))
4255
+ return null;
4256
+ if (!RiskLevels.includes(value.riskLevel))
4257
+ return null;
4258
+ const riskMessageZh = firstStringValue(value, ['riskMessageZh', 'riskMessage', 'riskDescription', 'risk']);
4259
+ const suggestionZh = firstStringValue(value, ['suggestionZh', 'suggestion', 'recommendation', 'advice']);
4260
+ if (!riskMessageZh || !suggestionZh)
4261
+ return null;
4262
+ return { clauseType: value.clauseType, riskLevel: value.riskLevel, riskMessageZh, suggestionZh };
4263
+ }
4235
4264
  function assertCustomerContractImportDraftPayload(payload) {
4236
4265
  const customer = payload.customer && typeof payload.customer === 'object' && !Array.isArray(payload.customer) ? payload.customer : {};
4237
4266
  const contract = payload.contract && typeof payload.contract === 'object' && !Array.isArray(payload.contract) ? payload.contract : {};