@resolveio/server-lib 22.3.193 → 22.3.195
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/package.json +1 -1
- package/util/ai-run-evidence-adapters.js +187 -17
- package/util/ai-run-evidence-adapters.js.map +1 -1
- package/util/ai-runner-manager-policy.d.ts +47 -0
- package/util/ai-runner-manager-policy.js +174 -0
- package/util/ai-runner-manager-policy.js.map +1 -1
- package/util/support-runner-v5.d.ts +47 -0
- package/util/support-runner-v5.js +218 -20
- package/util/support-runner-v5.js.map +1 -1
package/package.json
CHANGED
|
@@ -272,6 +272,57 @@ function managerNoBlindLoopGateFromHistory(history, budgetSource, now) {
|
|
|
272
272
|
}
|
|
273
273
|
};
|
|
274
274
|
}
|
|
275
|
+
function managerRecoveryExecutionProofGate(proof, now) {
|
|
276
|
+
if (!proof || !Object.keys(proof).length) {
|
|
277
|
+
return undefined;
|
|
278
|
+
}
|
|
279
|
+
var validation = (0, ai_runner_manager_policy_1.validateResolveIOAIManagerRecoveryExecutionProofContract)(proof);
|
|
280
|
+
var normalized = validation.normalized;
|
|
281
|
+
var statusText = cleanText(normalized.status, 120);
|
|
282
|
+
var gateStatus = validation.valid && normalized.canContinueRun === true && statusText === 'proof_ready'
|
|
283
|
+
? 'pass'
|
|
284
|
+
: statusText === 'manual_handoff'
|
|
285
|
+
? 'warn'
|
|
286
|
+
: 'blocked';
|
|
287
|
+
return {
|
|
288
|
+
key: 'manager_recovery_execution_proof',
|
|
289
|
+
label: 'Manager recovery execution proof',
|
|
290
|
+
status: gateStatus,
|
|
291
|
+
reason: normalized.blockers[0] || validation.blockers[0] || statusText || 'Manager recovery execution proof recorded.',
|
|
292
|
+
evidenceRefs: normalized.artifactPaths,
|
|
293
|
+
recordedAt: isoNow(now || normalized.createdAt),
|
|
294
|
+
metadata: {
|
|
295
|
+
contractId: normalized.contractId,
|
|
296
|
+
directiveId: normalized.directiveId,
|
|
297
|
+
surface: normalized.surface,
|
|
298
|
+
dispatchAction: normalized.dispatchAction,
|
|
299
|
+
phase: normalized.phase,
|
|
300
|
+
status: statusText,
|
|
301
|
+
canContinueRun: normalized.canContinueRun,
|
|
302
|
+
canRunProductRepair: normalized.canRunProductRepair,
|
|
303
|
+
canRunExpensiveModel: normalized.canRunExpensiveModel,
|
|
304
|
+
canResetLoopBudget: normalized.canResetLoopBudget,
|
|
305
|
+
proofRequiredBeforeContinuation: normalized.proofRequiredBeforeContinuation,
|
|
306
|
+
requiresNewEvidence: normalized.requiresNewEvidence,
|
|
307
|
+
newEvidence: normalized.newEvidence,
|
|
308
|
+
materialEvidence: normalized.materialEvidence,
|
|
309
|
+
evidenceStrength: normalized.evidenceStrength,
|
|
310
|
+
evidenceSignals: normalized.evidenceSignals,
|
|
311
|
+
startingFailureClass: normalized.startingFailureClass,
|
|
312
|
+
startingBlockerFingerprint: normalized.startingBlockerFingerprint,
|
|
313
|
+
startingEvidenceHash: normalized.startingEvidenceHash,
|
|
314
|
+
latestFailureClass: normalized.latestFailureClass,
|
|
315
|
+
latestBlockerFingerprint: normalized.latestBlockerFingerprint,
|
|
316
|
+
latestEvidenceHash: normalized.latestEvidenceHash,
|
|
317
|
+
requiredEvidence: normalized.requiredEvidence,
|
|
318
|
+
missingEvidence: normalized.missingEvidence,
|
|
319
|
+
changedFiles: normalized.changedFiles,
|
|
320
|
+
blockers: Array.from(new Set(__spreadArray(__spreadArray([], __read(normalized.blockers), false), __read(validation.blockers), false))),
|
|
321
|
+
nextAllowedAction: normalized.nextAllowedAction,
|
|
322
|
+
forbiddenActions: normalized.forbiddenActions
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
}
|
|
275
326
|
function supportManagerNoBlindLoopGate(job, evidence, now) {
|
|
276
327
|
return managerNoBlindLoopGateFromHistory(supportManagerFailureRecords(job, evidence), job.supportV5Budget || job.support_v5_budget || evidence.supportV5Budget || evidence.support_v5_budget, now);
|
|
277
328
|
}
|
|
@@ -1622,6 +1673,8 @@ function buildSupportQaEvidence(input) {
|
|
|
1622
1673
|
var ticket = input.ticket || {};
|
|
1623
1674
|
var qaCursor = plainObject(job.supportQaValidationCursor || job.support_qa_validation_cursor);
|
|
1624
1675
|
var autonomousDecision = plainObject(job.supportV5AutonomousDecision || job.support_v5_autonomous_decision);
|
|
1676
|
+
var ticketAutomation = plainObject(ticket.automation);
|
|
1677
|
+
var ticketManager = plainObject(ticketAutomation.manager || ticket.manager);
|
|
1625
1678
|
var preflightGate = supportPreflightGateObject(ticket, job, __assign(__assign({}, plainObject(input.qaEvidence)), { supportV5AutonomousDecision: autonomousDecision }));
|
|
1626
1679
|
var businessProofReadiness = plainObject(autonomousDecision.businessProofReadiness
|
|
1627
1680
|
|| autonomousDecision.business_proof_readiness
|
|
@@ -1631,6 +1684,20 @@ function buildSupportQaEvidence(input) {
|
|
|
1631
1684
|
|| autonomousDecision.customer_reply_policy
|
|
1632
1685
|
|| job.customerReplyPolicy
|
|
1633
1686
|
|| job.customer_reply_policy);
|
|
1687
|
+
var customerReplyReadiness = plainObject(autonomousDecision.customerReplyReadiness
|
|
1688
|
+
|| autonomousDecision.customer_reply_readiness
|
|
1689
|
+
|| customerReplyPolicy.readinessContract
|
|
1690
|
+
|| customerReplyPolicy.readiness_contract
|
|
1691
|
+
|| job.customerReplyReadiness
|
|
1692
|
+
|| job.customer_reply_readiness);
|
|
1693
|
+
var managerRecoveryExecutionProof = plainObject(job.managerRecoveryExecutionProof
|
|
1694
|
+
|| job.manager_recovery_execution_proof
|
|
1695
|
+
|| job.supportManagerRecoveryExecutionProof
|
|
1696
|
+
|| job.support_manager_recovery_execution_proof
|
|
1697
|
+
|| autonomousDecision.recoveryExecutionProof
|
|
1698
|
+
|| autonomousDecision.recovery_execution_proof
|
|
1699
|
+
|| ticketManager.last_recovery_execution_proof
|
|
1700
|
+
|| ticketManager.recovery_execution_proof);
|
|
1634
1701
|
var humanReviewPacket = plainObject(autonomousDecision.humanReviewPacket
|
|
1635
1702
|
|| autonomousDecision.human_review_packet
|
|
1636
1703
|
|| customerReplyPolicy.humanReviewPacket
|
|
@@ -1651,6 +1718,12 @@ function buildSupportQaEvidence(input) {
|
|
|
1651
1718
|
else if (Object.keys(humanReviewPacket).length) {
|
|
1652
1719
|
evidence.customerReplyPolicy = { humanReviewPacket: humanReviewPacket };
|
|
1653
1720
|
}
|
|
1721
|
+
if (Object.keys(customerReplyReadiness).length) {
|
|
1722
|
+
evidence.customerReplyReadiness = customerReplyReadiness;
|
|
1723
|
+
}
|
|
1724
|
+
if (Object.keys(managerRecoveryExecutionProof).length) {
|
|
1725
|
+
evidence.managerRecoveryExecutionProof = managerRecoveryExecutionProof;
|
|
1726
|
+
}
|
|
1654
1727
|
if (Object.keys(preflightGate).length) {
|
|
1655
1728
|
evidence.supportV5PreflightGate = preflightGate;
|
|
1656
1729
|
applySupportPreflightGateToQaEvidence(evidence, preflightGate);
|
|
@@ -1874,6 +1947,47 @@ function supportCustomerReplyPolicyGate(policy, now) {
|
|
|
1874
1947
|
}
|
|
1875
1948
|
};
|
|
1876
1949
|
}
|
|
1950
|
+
function supportCustomerReplyReadinessGate(contract, now) {
|
|
1951
|
+
if (!contract || !Object.keys(contract).length) {
|
|
1952
|
+
return undefined;
|
|
1953
|
+
}
|
|
1954
|
+
var validation = (0, support_runner_v5_1.validateResolveIOSupportCustomerReplyReadinessContract)(contract);
|
|
1955
|
+
var normalized = validation.normalized;
|
|
1956
|
+
var status = cleanText(normalized.status, 120);
|
|
1957
|
+
var gateStatus = normalized.canSendCustomerReply
|
|
1958
|
+
? 'blocked'
|
|
1959
|
+
: validation.valid && (status === 'draft_ready' || status === 'clarification_required')
|
|
1960
|
+
? 'warn'
|
|
1961
|
+
: 'blocked';
|
|
1962
|
+
return {
|
|
1963
|
+
key: 'support_customer_reply_readiness',
|
|
1964
|
+
label: 'Support customer reply readiness',
|
|
1965
|
+
status: gateStatus,
|
|
1966
|
+
reason: normalized.reason || validation.blockers.join('; ') || status || 'Support customer reply readiness recorded.',
|
|
1967
|
+
evidenceRefs: normalized.evidenceRefs,
|
|
1968
|
+
recordedAt: isoNow(now || normalized.createdAt),
|
|
1969
|
+
metadata: {
|
|
1970
|
+
contractId: normalized.contractId,
|
|
1971
|
+
status: status,
|
|
1972
|
+
policyAction: normalized.policyAction,
|
|
1973
|
+
reviewType: normalized.reviewType,
|
|
1974
|
+
primaryCommand: normalized.primaryCommand,
|
|
1975
|
+
canDraftCustomerReply: normalized.canDraftCustomerReply,
|
|
1976
|
+
canSendCustomerReply: normalized.canSendCustomerReply,
|
|
1977
|
+
requiresHumanApproval: normalized.requiresHumanApproval,
|
|
1978
|
+
proofBacked: normalized.proofBacked,
|
|
1979
|
+
businessProofReady: normalized.businessProofReady,
|
|
1980
|
+
releaseReady: normalized.releaseReady,
|
|
1981
|
+
diagnosisReady: normalized.diagnosisReady,
|
|
1982
|
+
issueClassProbePlanReady: normalized.issueClassProbePlanReady,
|
|
1983
|
+
clarificationRequired: normalized.clarificationRequired,
|
|
1984
|
+
blockers: Array.from(new Set(__spreadArray(__spreadArray([], __read(normalized.blockers), false), __read(validation.blockers), false))),
|
|
1985
|
+
requiredEvidence: normalized.requiredEvidence,
|
|
1986
|
+
nextCommands: normalized.nextCommands,
|
|
1987
|
+
forbiddenActions: normalized.forbiddenActions
|
|
1988
|
+
}
|
|
1989
|
+
};
|
|
1990
|
+
}
|
|
1877
1991
|
function supportNextActionContractObject(ticket, job, evidence) {
|
|
1878
1992
|
var ticketAutomation = plainObject(ticket.automation);
|
|
1879
1993
|
var ticketManager = plainObject(ticketAutomation.manager || ticket.manager);
|
|
@@ -3121,7 +3235,7 @@ function applyAssistantAnswerQualityGate(qa, decision, now) {
|
|
|
3121
3235
|
}
|
|
3122
3236
|
function buildSupportAIRunFromEvidence(input) {
|
|
3123
3237
|
var e_32, _a, e_33, _b;
|
|
3124
|
-
var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51;
|
|
3238
|
+
var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72;
|
|
3125
3239
|
var ticket = input.ticket || {};
|
|
3126
3240
|
var job = input.job || {};
|
|
3127
3241
|
var evidence = buildSupportQaEvidence(input);
|
|
@@ -3133,8 +3247,8 @@ function buildSupportAIRunFromEvidence(input) {
|
|
|
3133
3247
|
addSourceId(sourceIds, 'jobId', job._id || job.id || job.jobId);
|
|
3134
3248
|
addSourceId(sourceIds, 'buildPlanId', job.buildPlanId || ticket.buildPlanId);
|
|
3135
3249
|
try {
|
|
3136
|
-
for (var
|
|
3137
|
-
var event_1 =
|
|
3250
|
+
for (var _73 = __values(asArray(input.taskEvents)), _74 = _73.next(); !_74.done; _74 = _73.next()) {
|
|
3251
|
+
var event_1 = _74.value;
|
|
3138
3252
|
pushEvent(events, {
|
|
3139
3253
|
type: event_1.type === 'human_intervention' ? 'human_intervention' : 'log',
|
|
3140
3254
|
category: cleanText(event_1.category || event_1.phase || event_1.type, 160),
|
|
@@ -3151,13 +3265,13 @@ function buildSupportAIRunFromEvidence(input) {
|
|
|
3151
3265
|
catch (e_32_1) { e_32 = { error: e_32_1 }; }
|
|
3152
3266
|
finally {
|
|
3153
3267
|
try {
|
|
3154
|
-
if (
|
|
3268
|
+
if (_74 && !_74.done && (_a = _73.return)) _a.call(_73);
|
|
3155
3269
|
}
|
|
3156
3270
|
finally { if (e_32) throw e_32.error; }
|
|
3157
3271
|
}
|
|
3158
3272
|
try {
|
|
3159
|
-
for (var
|
|
3160
|
-
var aiJob =
|
|
3273
|
+
for (var _75 = __values(asArray(input.aiJobs)), _76 = _75.next(); !_76.done; _76 = _75.next()) {
|
|
3274
|
+
var aiJob = _76.value;
|
|
3161
3275
|
pushEvent(events, {
|
|
3162
3276
|
type: aiJob.model ? 'model_call' : 'log',
|
|
3163
3277
|
category: cleanText(aiJob.category || aiJob.phase || aiJob.runner, 160),
|
|
@@ -3175,7 +3289,7 @@ function buildSupportAIRunFromEvidence(input) {
|
|
|
3175
3289
|
catch (e_33_1) { e_33 = { error: e_33_1 }; }
|
|
3176
3290
|
finally {
|
|
3177
3291
|
try {
|
|
3178
|
-
if (
|
|
3292
|
+
if (_76 && !_76.done && (_b = _75.return)) _b.call(_75);
|
|
3179
3293
|
}
|
|
3180
3294
|
finally { if (e_33) throw e_33.error; }
|
|
3181
3295
|
}
|
|
@@ -3219,6 +3333,22 @@ function buildSupportAIRunFromEvidence(input) {
|
|
|
3219
3333
|
metadata: customerReplyPolicyGate.metadata
|
|
3220
3334
|
});
|
|
3221
3335
|
}
|
|
3336
|
+
var customerReplyReadiness = plainObject(evidence.customerReplyReadiness
|
|
3337
|
+
|| evidence.customer_reply_readiness
|
|
3338
|
+
|| customerReplyPolicy.readinessContract
|
|
3339
|
+
|| customerReplyPolicy.readiness_contract);
|
|
3340
|
+
var customerReplyReadinessGate = supportCustomerReplyReadinessGate(customerReplyReadiness, input.now);
|
|
3341
|
+
if (customerReplyReadinessGate) {
|
|
3342
|
+
gates.push(customerReplyReadinessGate);
|
|
3343
|
+
pushEvent(events, {
|
|
3344
|
+
type: 'human_intervention',
|
|
3345
|
+
category: 'support_customer_reply_readiness',
|
|
3346
|
+
message: customerReplyReadinessGate.reason,
|
|
3347
|
+
artifactPaths: customerReplyReadinessGate.evidenceRefs,
|
|
3348
|
+
recordedAt: customerReplyReadinessGate.recordedAt,
|
|
3349
|
+
metadata: customerReplyReadinessGate.metadata
|
|
3350
|
+
});
|
|
3351
|
+
}
|
|
3222
3352
|
var nextActionContract = supportNextActionContractObject(ticket, job, evidence);
|
|
3223
3353
|
var nextActionContractRequired = supportNextActionContractRequired(ticket, job, evidence);
|
|
3224
3354
|
var nextActionContractGate = supportNextActionContractGate(nextActionContract, input.now, nextActionContractRequired);
|
|
@@ -3233,6 +3363,19 @@ function buildSupportAIRunFromEvidence(input) {
|
|
|
3233
3363
|
metadata: nextActionContractGate.metadata
|
|
3234
3364
|
});
|
|
3235
3365
|
}
|
|
3366
|
+
var managerRecoveryExecutionProof = plainObject(evidence.managerRecoveryExecutionProof || evidence.manager_recovery_execution_proof);
|
|
3367
|
+
var recoveryExecutionProofGate = managerRecoveryExecutionProofGate(managerRecoveryExecutionProof, input.now);
|
|
3368
|
+
if (recoveryExecutionProofGate) {
|
|
3369
|
+
gates.push(recoveryExecutionProofGate);
|
|
3370
|
+
pushEvent(events, {
|
|
3371
|
+
type: 'log',
|
|
3372
|
+
category: 'manager_recovery_execution_proof',
|
|
3373
|
+
message: recoveryExecutionProofGate.reason,
|
|
3374
|
+
artifactPaths: recoveryExecutionProofGate.evidenceRefs,
|
|
3375
|
+
recordedAt: recoveryExecutionProofGate.recordedAt,
|
|
3376
|
+
metadata: recoveryExecutionProofGate.metadata
|
|
3377
|
+
});
|
|
3378
|
+
}
|
|
3236
3379
|
var ticketAutomation = plainObject(ticket.automation);
|
|
3237
3380
|
var ticketManagerState = plainObject(ticketAutomation.manager || ticket.manager);
|
|
3238
3381
|
var rootCauseEntryContract = evidenceObject(job.supportRootCauseEntryContract, job.support_root_cause_entry_contract, job.rootCauseEntryContract, ticket.supportRootCauseEntryContract, ticket.rootCauseEntryContract, ticketManagerState.root_cause_entry_contract, ticketManagerState.rootCauseEntryContract, evidence.rootCauseEntryContract, evidence.root_cause_entry_contract);
|
|
@@ -3469,24 +3612,51 @@ function buildSupportAIRunFromEvidence(input) {
|
|
|
3469
3612
|
sameFailureCount: Number(((_36 = nextActionContractGate.metadata) === null || _36 === void 0 ? void 0 : _36.sameFailureCount) || 0),
|
|
3470
3613
|
blockers: cleanStringList((_37 = nextActionContractGate.metadata) === null || _37 === void 0 ? void 0 : _37.blockers, 20, 500)
|
|
3471
3614
|
} : undefined,
|
|
3615
|
+
managerRecoveryExecutionProof: recoveryExecutionProofGate ? {
|
|
3616
|
+
status: cleanText((_38 = recoveryExecutionProofGate.metadata) === null || _38 === void 0 ? void 0 : _38.status, 120),
|
|
3617
|
+
gateStatus: recoveryExecutionProofGate.status,
|
|
3618
|
+
canContinueRun: ((_39 = recoveryExecutionProofGate.metadata) === null || _39 === void 0 ? void 0 : _39.canContinueRun) === true,
|
|
3619
|
+
canRunProductRepair: ((_40 = recoveryExecutionProofGate.metadata) === null || _40 === void 0 ? void 0 : _40.canRunProductRepair) === true,
|
|
3620
|
+
canRunExpensiveModel: ((_41 = recoveryExecutionProofGate.metadata) === null || _41 === void 0 ? void 0 : _41.canRunExpensiveModel) === true,
|
|
3621
|
+
canResetLoopBudget: ((_42 = recoveryExecutionProofGate.metadata) === null || _42 === void 0 ? void 0 : _42.canResetLoopBudget) === true,
|
|
3622
|
+
newEvidence: ((_43 = recoveryExecutionProofGate.metadata) === null || _43 === void 0 ? void 0 : _43.newEvidence) === true,
|
|
3623
|
+
materialEvidence: ((_44 = recoveryExecutionProofGate.metadata) === null || _44 === void 0 ? void 0 : _44.materialEvidence) === true,
|
|
3624
|
+
evidenceStrength: cleanText((_45 = recoveryExecutionProofGate.metadata) === null || _45 === void 0 ? void 0 : _45.evidenceStrength, 120),
|
|
3625
|
+
nextAllowedAction: cleanText((_46 = recoveryExecutionProofGate.metadata) === null || _46 === void 0 ? void 0 : _46.nextAllowedAction, 180),
|
|
3626
|
+
missingEvidence: cleanStringList((_47 = recoveryExecutionProofGate.metadata) === null || _47 === void 0 ? void 0 : _47.missingEvidence, 20, 500),
|
|
3627
|
+
blockers: cleanStringList((_48 = recoveryExecutionProofGate.metadata) === null || _48 === void 0 ? void 0 : _48.blockers, 20, 500)
|
|
3628
|
+
} : undefined,
|
|
3472
3629
|
customerReplyPolicy: Object.keys(customerReplyPolicy).length ? {
|
|
3473
3630
|
action: cleanText(customerReplyPolicy.action, 120),
|
|
3474
3631
|
safety: cleanText(customerReplyPolicy.safety, 120),
|
|
3475
3632
|
canDraftCustomerReply: customerReplyPolicy.canDraftCustomerReply === true || customerReplyPolicy.can_draft_customer_reply === true,
|
|
3476
3633
|
canSendCustomerReply: customerReplyPolicy.canSendCustomerReply === true || customerReplyPolicy.can_send_customer_reply === true,
|
|
3477
3634
|
reason: cleanText(customerReplyPolicy.reason, 1000),
|
|
3478
|
-
reviewType: cleanText(((
|
|
3479
|
-
|| ((
|
|
3480
|
-
|| ((
|
|
3481
|
-
primaryAction: cleanText(((
|
|
3482
|
-
|| ((
|
|
3483
|
-
|| ((
|
|
3635
|
+
reviewType: cleanText(((_49 = customerReplyPolicy.humanReviewPacket) === null || _49 === void 0 ? void 0 : _49.reviewType)
|
|
3636
|
+
|| ((_50 = customerReplyPolicy.human_review_packet) === null || _50 === void 0 ? void 0 : _50.review_type)
|
|
3637
|
+
|| ((_51 = customerReplyPolicy.human_review_packet) === null || _51 === void 0 ? void 0 : _51.reviewType), 160),
|
|
3638
|
+
primaryAction: cleanText(((_52 = customerReplyPolicy.humanReviewPacket) === null || _52 === void 0 ? void 0 : _52.primaryAction)
|
|
3639
|
+
|| ((_53 = customerReplyPolicy.human_review_packet) === null || _53 === void 0 ? void 0 : _53.primary_action)
|
|
3640
|
+
|| ((_54 = customerReplyPolicy.human_review_packet) === null || _54 === void 0 ? void 0 : _54.primaryAction), 160),
|
|
3484
3641
|
clarificationContract: customerReplyPolicy.clarificationContract || customerReplyPolicy.clarification_contract ? {
|
|
3485
|
-
status: cleanText(((
|
|
3486
|
-
missingField: cleanText(((
|
|
3487
|
-
oneQuestionOnly: ((
|
|
3488
|
-
parksTicketUntilCustomerReply: ((
|
|
3642
|
+
status: cleanText(((_55 = customerReplyPolicy.clarificationContract) === null || _55 === void 0 ? void 0 : _55.status) || ((_56 = customerReplyPolicy.clarification_contract) === null || _56 === void 0 ? void 0 : _56.status), 120),
|
|
3643
|
+
missingField: cleanText(((_57 = customerReplyPolicy.clarificationContract) === null || _57 === void 0 ? void 0 : _57.missingField) || ((_58 = customerReplyPolicy.clarification_contract) === null || _58 === void 0 ? void 0 : _58.missing_field), 120),
|
|
3644
|
+
oneQuestionOnly: ((_59 = customerReplyPolicy.clarificationContract) === null || _59 === void 0 ? void 0 : _59.oneQuestionOnly) === true || ((_60 = customerReplyPolicy.clarification_contract) === null || _60 === void 0 ? void 0 : _60.one_question_only) === true,
|
|
3645
|
+
parksTicketUntilCustomerReply: ((_61 = customerReplyPolicy.clarificationContract) === null || _61 === void 0 ? void 0 : _61.parksTicketUntilCustomerReply) === true || ((_62 = customerReplyPolicy.clarification_contract) === null || _62 === void 0 ? void 0 : _62.parks_ticket_until_customer_reply) === true
|
|
3489
3646
|
} : undefined
|
|
3647
|
+
} : undefined,
|
|
3648
|
+
customerReplyReadiness: customerReplyReadinessGate ? {
|
|
3649
|
+
status: cleanText((_63 = customerReplyReadinessGate.metadata) === null || _63 === void 0 ? void 0 : _63.status, 120),
|
|
3650
|
+
gateStatus: customerReplyReadinessGate.status,
|
|
3651
|
+
primaryCommand: cleanText((_64 = customerReplyReadinessGate.metadata) === null || _64 === void 0 ? void 0 : _64.primaryCommand, 180),
|
|
3652
|
+
policyAction: cleanText((_65 = customerReplyReadinessGate.metadata) === null || _65 === void 0 ? void 0 : _65.policyAction, 120),
|
|
3653
|
+
canDraftCustomerReply: ((_66 = customerReplyReadinessGate.metadata) === null || _66 === void 0 ? void 0 : _66.canDraftCustomerReply) === true,
|
|
3654
|
+
canSendCustomerReply: ((_67 = customerReplyReadinessGate.metadata) === null || _67 === void 0 ? void 0 : _67.canSendCustomerReply) === true,
|
|
3655
|
+
requiresHumanApproval: ((_68 = customerReplyReadinessGate.metadata) === null || _68 === void 0 ? void 0 : _68.requiresHumanApproval) === true,
|
|
3656
|
+
proofBacked: ((_69 = customerReplyReadinessGate.metadata) === null || _69 === void 0 ? void 0 : _69.proofBacked) === true,
|
|
3657
|
+
businessProofReady: ((_70 = customerReplyReadinessGate.metadata) === null || _70 === void 0 ? void 0 : _70.businessProofReady) === true,
|
|
3658
|
+
releaseReady: ((_71 = customerReplyReadinessGate.metadata) === null || _71 === void 0 ? void 0 : _71.releaseReady) === true,
|
|
3659
|
+
blockers: cleanStringList((_72 = customerReplyReadinessGate.metadata) === null || _72 === void 0 ? void 0 : _72.blockers, 20, 500)
|
|
3490
3660
|
} : undefined
|
|
3491
3661
|
}
|
|
3492
3662
|
});
|