feat: wire minimal governance contract path
This commit is contained in:
@@ -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,
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -1,2 +1,3 @@
|
||||
export { evaluatePolicyPack, evaluatePolicies } from './policy-evaluator.mjs';
|
||||
export { planDecisionExecution } from './decision-runner.mjs';
|
||||
export { executeGovernanceContract } from './execute-governance-contract.mjs';
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user