v0.11.0 — A module Phase 2+3
·
280 commits
to master
since this release
A Module Phase 2+3: Content Transforms, Schemas & Contracts
Completes the A (Artifact) module, adding content transforms, LLM-aware loading, tool factories, declarative schemas, and contract validation.
Phase 2: Content Transforms & Tool Integration
- Post-snapshot transforms:
A.as_json(key),A.as_csv(key),A.as_text(key)— parse artifact content after loading into state - Pre-publish transforms:
A.from_json(key),A.from_csv(key),A.from_markdown(key)— serialize state before publishing as artifact - LLM-aware loading:
A.for_llm(filename)— CTransform that injects artifact content directly into LLM context (no state bridging) - Tool factories:
A.tool.save/load/list/version— generate ADKFunctionToolinstances for LLM-driven artifact interaction - Batch ops:
A.publish_many(),A.snapshot_many()— create multiple ATransforms from(filename, key)pairs
Phase 3: Schema, Contracts & Visualization
- ArtifactSchema: Declarative artifact contracts using
Produces("file.md")/Consumes("data.csv")annotations, built onDeclarativeMetaclass - Pass 16: Contract checker validates consumed artifacts have upstream producers; warns on MIME mismatches
- Visualization: ArtifactNodes render as hexagons in Mermaid; artifact flow tracked with data flow edges
- Prelude: Exports
ArtifactSchema,Produces,Consumes(44 total prelude exports)
Example
from adk_fluent.prelude import *
class ResearchArtifacts(ArtifactSchema):
findings: str = Produces("findings.json", mime="application/json")
source: str = Consumes("raw_data.csv", mime="text/csv")
pipeline = (
Agent("loader")
>> A.snapshot("raw_data.csv", into_key="rows")
>> A.as_csv("rows")
>> Agent("researcher")
.artifact_schema(ResearchArtifacts)
.tools(A.tool.save("save_findings"))
>> A.from_json("result")
>> A.publish("findings.json", from_key="result")
)Stats
- 58 new tests (2232 total)
- 0 Pyright errors
- 18 files changed, +1304 lines