Files
temp/robot/acms_fusion.robot
freemo a41fc02f11 feat(acms): add strategy coordinator and fusion engine
Implement StrategyCoordinator and FusionEngine as named facades over
the existing ACMS pipeline components, providing clean public APIs
for parallel strategy execution with proportional budget allocation
and fragment fusion with dedup/conflict resolution/knapsack packing.

Key changes:
- Add StrategyCoordinator with parallel execution and confidence-based budget allocation
- Add FusionEngine with URI+hash dedup, max-depth conflict resolution, greedy knapsack packing
- Add budget overage guard with lowest-relevance fragment dropping
- Add per-strategy max caps enforcement
- Wire into existing ContextAssemblyPipeline
- Add Behave BDD tests, Robot integration tests, ASV benchmarks
- Add docs/reference/acms_fusion.md

ISSUES CLOSED: #192
2026-03-10 15:09:03 +00:00

82 lines
3.6 KiB
Plaintext

*** Settings ***
Documentation Integration smoke tests for ACMS Strategy Coordinator and Fusion Engine
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER} ${CURDIR}/helper_acms_fusion.py
*** Test Cases ***
StrategyCoordinator Coordinates Strategies
[Documentation] StrategyCoordinator selects, allocates, and executes strategies
${result}= Run Process ${PYTHON} ${HELPER} coord-basic cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} coord-basic-ok
StrategyCoordinator Budget Allocation
[Documentation] StrategyCoordinator allocates budget proportionally to confidence
${result}= Run Process ${PYTHON} ${HELPER} coord-budget cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} coord-budget-ok
StrategyCoordinator Per-Strategy Max Caps
[Documentation] StrategyCoordinator enforces per-strategy max token caps
${result}= Run Process ${PYTHON} ${HELPER} coord-caps cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} coord-caps-ok
StrategyCoordinator Circuit Breaker
[Documentation] StrategyCoordinator reports circuit-broken strategies
${result}= Run Process ${PYTHON} ${HELPER} coord-circuit cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} coord-circuit-ok
FusionEngine Dedup
[Documentation] FusionEngine deduplicates fragments by URI + content hash
${result}= Run Process ${PYTHON} ${HELPER} fuse-dedup cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} fuse-dedup-ok
FusionEngine Depth Resolution
[Documentation] FusionEngine resolves detail depth conflicts
${result}= Run Process ${PYTHON} ${HELPER} fuse-depth cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} fuse-depth-ok
FusionEngine Knapsack Packing
[Documentation] FusionEngine packs fragments within budget using greedy knapsack
${result}= Run Process ${PYTHON} ${HELPER} fuse-pack cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} fuse-pack-ok
FusionEngine Budget Overage Guard
[Documentation] FusionEngine drops lowest-relevance fragments on budget overage
${result}= Run Process ${PYTHON} ${HELPER} fuse-overage cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} fuse-overage-ok
Integration Coordinator Then Fusion
[Documentation] StrategyCoordinator output feeds into FusionEngine
${result}= Run Process ${PYTHON} ${HELPER} integration cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} integration-ok