feat: wire minimal governance contract path

This commit is contained in:
Eve
2026-05-08 09:34:15 +08:00
parent ec32eb2cc7
commit 702386a122
7 changed files with 208 additions and 3 deletions

View File

@@ -0,0 +1,38 @@
import { evaluatePolicies } from './policy-evaluator.mjs';
import { planDecisionExecution } from './decision-runner.mjs';
export function executeGovernanceContract({
event,
evidence = [],
capabilityDescriptor = {},
policyPacks = [],
context = {},
} = {}) {
const evaluation = evaluatePolicies({
event,
evidence,
capabilityDescriptor,
policyPacks,
context,
});
const planning = planDecisionExecution({
decision: evaluation.decision,
capabilityDescriptor,
});
return {
evaluation,
planning,
contract: {
runtime: capabilityDescriptor?.metadata?.id ?? capabilityDescriptor?.runtime?.name ?? 'unknown-runtime',
policy_id: evaluation.decision.policy_id,
decision: evaluation.decision.decision,
adapter_actions: planning.enforcement_intent.runtime_adapter_required,
package_actions: planning.enforcement_intent.package_core_actions,
blocked_actions: planning.enforcement_intent.blocked_actions.map((action) => action.action),
delivery_state: planning.receipt.delivery_state,
receipt_status: planning.receipt.status,
},
};
}

View File

@@ -1,2 +1,3 @@
export { evaluatePolicyPack, evaluatePolicies } from './policy-evaluator.mjs';
export { planDecisionExecution } from './decision-runner.mjs';
export { executeGovernanceContract } from './execute-governance-contract.mjs';

View File

@@ -29,7 +29,7 @@ export const packageBoundaries = {
]
};
export { evaluatePolicyPack, evaluatePolicies, planDecisionExecution } from './core/index.mjs';
export { evaluatePolicyPack, evaluatePolicies, planDecisionExecution, executeGovernanceContract } from './core/index.mjs';
export {
createRuntimeBinding,
runWatchdogAdapter,