All notable changes to Project Aura are documented here.
Format: Keep a Changelog — Added, Changed, Fixed, Removed
Versioning: Semantic Versioning
Changes on feature branches not yet merged to
main.
docs/USE_CASES.md— 16 procurement use cases: 3 core demo scenarios, 8 SSA contract type scenarios, and 5 extended real-world scenarios (volume discounts, mandate splits, geo-restrictions, payment thresholds, audit trails)
test/architect-e2e— E2E integration test for the full Scout → Sentinel → Closer pipeline (#2)feat/kagent-manifest— Kubernetes Agent CRD review andkagent apply --dry-runvalidation (#1)
Policy Engine feature branch (#15). Adds three-stage governance rules for procurement.
tools/policy_store.py—PolicyStoresingleton with 6 default rules (SPENDING_LIMIT, GEO_RESTRICTION, CATEGORY_ALLOWLIST, APPROVAL_THRESHOLD, CERTIFICATION_REQUIRED, RATE_LIMIT); atomic JSON persistence totmp/policies.json;ReviewStorefor human-in-the-loop payment review queuetools/policy_tools.py— Three evaluation functions consumed by agents:evaluate_procurement_policy(request)— pre-flight gate (category, spending, rate limits)evaluate_vendor_policy(vendor, amount)— vendor gate (geo-restriction, certifications, approval thresholds)evaluate_payment_policy(mandate, user_id)— payment gate (approval thresholds, daily spend limits)RateLimitStore— sliding-window per-user rate limiting (in-memory)DailySpendStore— per-user daily spend accumulation (in-memory)
agents/governor.py— New pre-flightLlmAgent; inserted first in the pipeline before Scout; outputs POLICY_CLEAR / POLICY_WARNINGS / POLICY_REVIEW_REQUIRED / POLICY_BLOCKED
agents/architect.py— Updated pipeline:Governor → Scout → Sentinel → Closer(previouslyScout → Sentinel → Closer)agents/sentinel.py— Addedevaluate_vendor_policytool; now runs both BMS compliance check AND vendor policy check per vendoragents/closer.py— Addedevaluate_payment_policytool; checksgovernor_resultsandsentinel_resultsfor policy/compliance blocks before any payment settlement
GET /policies— list all policy rulesPOST /policies— create rule (requiresX-Admin-Tokenheader)GET /policies/{rule_id}— get single rulePUT /policies/{rule_id}— partial update (requiresX-Admin-Token)DELETE /policies/{rule_id}— delete rule, returns 204 (requiresX-Admin-Token)GET /reviews— list pending payment reviewsPOST /reviews/{id}/approve— approve a review (requiresX-Admin-Token)POST /reviews/{id}/reject— reject a review (requiresX-Admin-Token)
aura-admin-tokenKubernetes Secret manifest forAURA_ADMIN_TOKEN- Governor Agent CRD with
evaluate_procurement_policyMCP tool - All agents (Scout, Sentinel, Closer, Architect) updated with
AURA_ADMIN_TOKENenv var - Sentinel and Closer updated with new policy tool registrations
tests/test_policy_tools.py— 27 new unit tests covering all 6 rule types, rate limiting, daily spend, snapshot hashing, and disabled-rule bypass
docs/AGENT_FLOW.md— Rewritten with three Mermaid sequence diagrams: Happy Path, Policy Block (Governor halts pre-flight), Compliance Block (Sentinel → Closer aborts)
0.1.0-hackathon — 2026-03-11
Hackathon prototype delivered at Google AI Agent Labs Oslo 2026 — Team 6. All core agent logic, tooling, infrastructure, and documentation complete.
architect.py— RootLlmAgentorchestrator; parses procurement intent, chains Scout → Sentinel → Closer viaSequentialAgentscout.py— UCP vendor discovery agent; callsdiscover_vendors(), flags risky vendors (countryXX, suspicious pricing), writesscout_resultsto session statesentinel.py— KYC/AML compliance gate; runs every vendor throughverify_vendor_compliance(), outputsCOMPLIANCE_BLOCKEDon any rejectioncloser.py— AP2 payment settlement agent; generatesIntentMandate(W3C VC), settles viasettle_cart_mandate(), aborts if Sentinel blocked
ucp_tools.py—discover_vendors(query)— mock UCP vendor database of 4 vendors (including deliberately blacklistedShadowHardware), sorted by unit pricecompliance_tools.py—verify_vendor_compliance(vendor_name)— BMS KYC/AML mock; deterministic 64-charComplianceHashfor approved vendors;AML_BLACKLISTrejection for ShadowHardwareap2_tools.py—generate_intent_mandate()+settle_cart_mandate()— AP2 mock with W3C VCIntentMandatestructure, ECDSA-P256 proof, 5000 USD cap,AP2-*settlement IDs
main.py— FastAPI server (port 8080) with Google ADKRunner;POST /run(sync) +POST /run/stream(SSE);GET /healthliveness probe;InMemorySessionServicefor session state
Dockerfile— Multi-stage Python 3.12 build; non-rootaurauser; healthcheck on/healthkagent.yaml—kagent.dev/v1alpha2manifests for all 4 agents + sharedModelConfig(Vertex AI Gemini 2.5 Flash,us-central1) +ClusterIPService.env/.env.example— GCP project config (ai-agent-labs-oslo-26-team-6,us-central1)
ci.yml— ruff lint → pytest → Docker build (runtime stage); triggers on every push and PR tomaincd.yml— GCP Artifact Registry push +kagent apply; triggers on push tomain;workflow_dispatchwithskip_deploysafety input
test_ucp_tools.py— 9 tests: vendor count, sort order, ShadowHardwareXXflag, required fields, query-agnostic behaviourtest_compliance_tools.py— 17 tests: blacklist (exact + case variants + whitespace), 64-char hex hash, determinism within hour, unique hashes per vendortest_ap2_tools.py— 27 tests: mandate structure, UUID ID, amount cap, ECDSA proof, settlement ID format, missing-hash guard, wrong-type guardconftest.py— pytest asyncio mode +integrationmarker- Total: 91 tests, 0 failures
ARCHITECTURE.md— System diagram (Mermaid), component table, data flow, technology stackAGENT_FLOW.md— Sequence diagrams: happy path + compliance-blocked pathDATA_MODEL.md— Class diagram + JSON examples for all 4 data structuresDEPLOYMENT.md— Kagent install, GCP setup, Docker build/push, verification commands, cloud-agnostic model swap guidePROTOCOLS.md— UCP, AP2, BMS protocol explanations; mock-vs-real integration pathsDEMO_SCRIPT.md— Full pitch script with timing, live demo steps, judge Q&Adocs/README.md— Index of all documentation files
README.md— Agent squad table, quick-start guide, Mermaid flowchart, docs indexpyproject.toml— pytest config (asyncio_mode=auto,testpaths,--tb=short -v)requirements.txt—google-adk,google-cloud-aiplatform,fastapi,uvicorn,cryptography,pydantic,pytest,pytest-asyncio,httpxLICENSE— Apache 2.0.gitignore— Python, venv, IDE, Zone.Identifier metadata exclusions.github/pull_request_template.md— Summary, type checkboxes, compliance checklistdashboard/— Streamlit presentation dashboard for live demo
- 6 labels:
agent,infra,testing,ci-cd,compliance,docs - 2 milestones:
Demo Day — Mar 11 2026,v0.1 Post-Hackathon - 8 issues (#1–#8) covering all components, with labels, milestones, and linked branches
- 8 feature branches:
feat/kagent-manifest,test/architect-e2e,test/scout-unit,test/sentinel-unit,test/closer-unit,feat/ci-pipeline,feat/cd-pipeline,chore/pr-template
0.0.1 — 2026-03-11
Initial scaffolding commit.
- Project structure:
agents/,tools/,tests/,docs/ __init__.pystubs for all packages- Initial
requirements.txt