22 lines
1.9 KiB
JavaScript
22 lines
1.9 KiB
JavaScript
#!/usr/bin/env node
|
|
import assert from 'node:assert/strict';
|
|
import { worldRuntimeUrl } from '../../WORLD-RUNTIME-BRIDGE.mjs';
|
|
const { createBrainState } = await import(worldRuntimeUrl('brain-core.mjs'));
|
|
import { parseRequirementDecision, requirementWorkorder } from './shuangyan-requirement.mjs';
|
|
|
|
const state = createBrainState({ brainId: 'GLW-2.0-BRAIN-SHUANGYAN-PERSONA-0001' });
|
|
state.concepts.S0001 = { gist: '历史语言源', lifecycle: 'ACTIVE' };
|
|
const origin = { session_id: 's1', event_id: 'CODEXLIVE2ORIGINP1', source_sha256: 'a'.repeat(64) };
|
|
const authorization = { session_id: 's1', event_id: 'CODEXLIVE2AUTH P1', source_sha256: 'b'.repeat(64) };
|
|
const decision = { decision: 'CREATE_REQUIREMENT', objective: '回顾 Notion 语言世界演化', rationale: '需先核对历史来源', requested_capabilities: ['来源索引', '脑内候选判断'], acceptance_criteria: ['证据分层', '脑决定是否吸收'], evidence_concept_ids: ['S0001'], executor_persona_id: 'ICE-P-ZY001' };
|
|
const order = requirementWorkorder({ state, origin, authorization, decision });
|
|
assert.equal(order.workorder_kind, 'PERSONA_BRAIN_REQUIREMENT');
|
|
assert.equal(order.proposed_executor_persona_id, 'ICE-P-ZY001');
|
|
assert.equal(order.reality_write_authority_granted, false);
|
|
assert.equal(order.scope_attestation, 'BRAIN_JUDGED_REQUIREMENT_NOT_EXECUTION');
|
|
assert.equal(requirementWorkorder({ state, origin, authorization, decision: { ...decision, evidence_concept_ids: ['UNKNOWN'] } }), null);
|
|
assert.equal(requirementWorkorder({ state, origin, authorization, decision: { ...decision, requested_capabilities: [] } }), null);
|
|
assert.equal(requirementWorkorder({ state, origin, authorization: { ...authorization, session_id: 'other' }, decision }), null);
|
|
assert.equal(parseRequirementDecision('```json\n{"decision":"HOLD"}\n```').decision, 'HOLD');
|
|
assert.equal(parseRequirementDecision('{"decision":"EXECUTE"}'), null);
|
|
console.log(JSON.stringify({ state: 'PASS', checks: 9, fixture_only: true }));
|