forked from cleveragents/cleveragents-core
d8d08facde
Implements byte-size budget enforcement for the ACMS context assembly pipeline. enforce_size_budget() filters context fragments against max_file_size (per-fragment) and max_total_size (cumulative) limits defined in a ContextView. New domain models BudgetViolation and BudgetEnforcementResult provide structured violation reporting. Pipeline integration in ACMSPipeline.assemble() applies enforcement as a pre-filter when a context_view is provided. Review feedback addressed: - Fixed PR milestone to v3.4.0 (matching ticket #847) - Rebased branch onto latest master - Added CHANGELOG.md entry - Extracted duplicated enforcement logic into _apply_budget_enforcement() shared method on ACMSPipeline, called by both parent and subclass - Fixed _make_fragment return type from object to ContextFragment - Moved all imports to top of files (acms_pipeline.py, steps file) - Added errors="replace" to encode("utf-8") for surrogate safety - Documented thread-safety caveat on last_enforcement_result property - Added short-circuit early return when both limits are None - Added multi-byte Unicode content test scenario - Added total_size assertions to key scenarios - Added violation type verification to mixed limits scenario - Merged duplicate singular/plural step definitions - Added edge case scenarios (empty list, all exceed, exact boundary) - Fixed misleading docstring in ContextAssemblyPipeline.assemble() - Re-exported VALID_PHASES through core __init__.py public API ISSUES CLOSED: #847
66 lines
2.8 KiB
Plaintext
66 lines
2.8 KiB
Plaintext
*** Settings ***
|
|
Documentation Integration smoke tests for ACMS v1 context assembly pipeline
|
|
Resource ${CURDIR}/common.resource
|
|
Suite Setup Setup Test Environment
|
|
Suite Teardown Cleanup Test Environment
|
|
|
|
*** Variables ***
|
|
${HELPER} ${CURDIR}/helper_acms_pipeline.py
|
|
|
|
*** Test Cases ***
|
|
Create Context Fragment
|
|
[Documentation] Create a ContextFragment and verify defaults
|
|
${result}= Run Process ${PYTHON} ${HELPER} fragment-create cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} acms-fragment-ok
|
|
|
|
Calculate Budget Available Tokens
|
|
[Documentation] Create ContextBudget and verify available_tokens
|
|
${result}= Run Process ${PYTHON} ${HELPER} budget-calc cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} acms-budget-ok
|
|
|
|
Assemble With Relevance Strategy
|
|
[Documentation] Assemble fragments with relevance strategy
|
|
${result}= Run Process ${PYTHON} ${HELPER} assemble-relevance cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} acms-assemble-relevance-ok
|
|
|
|
Assemble With Recency Strategy
|
|
[Documentation] Assemble fragments with recency strategy
|
|
${result}= Run Process ${PYTHON} ${HELPER} assemble-recency cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} acms-assemble-recency-ok
|
|
|
|
Assemble With Tiered Strategy
|
|
[Documentation] Assemble fragments with tiered strategy
|
|
${result}= Run Process ${PYTHON} ${HELPER} assemble-tiered cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} acms-assemble-tiered-ok
|
|
|
|
Verify Payload Budget Check
|
|
[Documentation] Verify is_within_budget property on assembled payload
|
|
${result}= Run Process ${PYTHON} ${HELPER} payload-budget-check cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} acms-payload-budget-ok
|
|
|
|
Assemble With Size Budget Context View
|
|
[Documentation] Verify max_file_size pre-filter and enforcement metadata
|
|
${result}= Run Process ${PYTHON} ${HELPER} assemble-size-budget cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} acms-assemble-size-budget-ok
|