52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import plugin, {
|
|
runForceRecallContinuityAdapter,
|
|
runGenericPreflightContinuityAdapter,
|
|
validateContinuityConfig,
|
|
} from '../src/index.mjs';
|
|
|
|
const configResult = validateContinuityConfig(plugin.defaultConfig);
|
|
assert.equal(configResult.ok, true);
|
|
|
|
const smoke = runForceRecallContinuityAdapter({
|
|
config: plugin.defaultConfig,
|
|
wrapperResult: {
|
|
classification: 'long_task',
|
|
planId: 'plan-smoke',
|
|
currentTask: 'task-8',
|
|
replyClosureState: 'completed',
|
|
dispatchReceipt: null,
|
|
},
|
|
autoChainPlanResult: {
|
|
derivedAction: 'continue_task_9',
|
|
dispatchMode: 'message_subagent',
|
|
},
|
|
});
|
|
|
|
assert.equal(smoke.result.ok, false);
|
|
assert.equal(smoke.result.reason, 'missing_auto_next_dispatch');
|
|
assert.match(smoke.block, /APPROVED_PLAN_CONTINUITY_GATE/);
|
|
assert.equal(smoke.meta.adapterName, 'force-recall');
|
|
|
|
const genericSmoke = runGenericPreflightContinuityAdapter({
|
|
config: plugin.defaultConfig,
|
|
source: {
|
|
planId: 'plan-generic-smoke',
|
|
currentTask: 'task-9',
|
|
taskState: 'complete',
|
|
nextTaskKnown: true,
|
|
sameApprovedPlan: true,
|
|
taskBoundaryStop: true,
|
|
nextTaskId: 'task-10',
|
|
nextDerivedAction: { type: 'message_subagent', task: 'continue' },
|
|
replyClosureState: 'completed',
|
|
dispatchReceipt: null,
|
|
},
|
|
});
|
|
|
|
assert.equal(genericSmoke.result.ok, false);
|
|
assert.equal(genericSmoke.result.reason, 'missing_auto_next_dispatch');
|
|
assert.match(genericSmoke.block, /APPROVED_PLAN_CONTINUITY_GATE/);
|
|
assert.equal(genericSmoke.meta.adapterName, 'generic-preflight');
|
|
console.log('continuity.smoke.test.mjs PASS');
|