generalize continuity plugin engine and generic adapter
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
import {
|
||||
normalizeContinuityEngineInput,
|
||||
createContinuityEngineContract,
|
||||
} from '../continuity/engine.mjs';
|
||||
import { evaluateContinuity, buildContinuityGateBlock } from '../continuity/evaluator.mjs';
|
||||
|
||||
function isNonEmptyString(value) {
|
||||
@@ -29,7 +33,7 @@ export function buildApprovedPlanContinuityInput(wrapperResult, autoChainPlanRes
|
||||
const taskBoundaryStop = wrapperResult?.taskBoundaryStop === true || replyClosureState === 'completed';
|
||||
const highRiskStop = wrapperResult?.highRiskStop === true;
|
||||
|
||||
return {
|
||||
return normalizeContinuityEngineInput({
|
||||
planId: wrapperResult?.planId ?? 'hook-preflight-approved-plan',
|
||||
currentTask: wrapperResult?.currentTask ?? wrapperResult?.requiredNextAction ?? 'hook-preflight-task',
|
||||
taskState: wrapperResult?.taskState ?? (plannerDerivedAction ? 'complete' : null),
|
||||
@@ -40,7 +44,11 @@ export function buildApprovedPlanContinuityInput(wrapperResult, autoChainPlanRes
|
||||
sameApprovedPlan,
|
||||
taskBoundaryStop,
|
||||
highRiskStop,
|
||||
};
|
||||
metadata: {
|
||||
adapterSource: 'force-recall',
|
||||
classification: wrapperResult?.classification ?? null,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function createForceRecallContinuityAdapter(config = {}) {
|
||||
@@ -50,10 +58,22 @@ export function createForceRecallContinuityAdapter(config = {}) {
|
||||
return {
|
||||
evaluate({ wrapperResult, autoChainPlanResult = null }) {
|
||||
const input = buildApprovedPlanContinuityInput(wrapperResult, autoChainPlanResult);
|
||||
if (!input) return { input: null, result: null, block: '' };
|
||||
const result = evaluateContinuity(input, { legalTerminalStates });
|
||||
const block = buildContinuityGateBlock(result, { legalTerminalStates, label });
|
||||
return { input, result, block };
|
||||
if (!input) {
|
||||
return createContinuityEngineContract({
|
||||
input: null,
|
||||
evaluation: null,
|
||||
block: '',
|
||||
options: { adapterName: 'force-recall', label },
|
||||
});
|
||||
}
|
||||
const evaluation = evaluateContinuity(input, { legalTerminalStates });
|
||||
const block = buildContinuityGateBlock(evaluation, { legalTerminalStates, label });
|
||||
return createContinuityEngineContract({
|
||||
input,
|
||||
evaluation,
|
||||
block,
|
||||
options: { adapterName: 'force-recall', label },
|
||||
});
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user