The platform added `argumentType` on injector contract fields (`io.openaev.database.model.ContractElement`) and its backing `io.openaev.database.model.PrimitiveType` enum, merged in openaev#7124. It lets a contract field declare its chaining/semantic type (e.g. "username", "host") so downstream chaining can auto-link matching outputs to it.
The Python client (`pyoaev`) has no equivalent, so injectors built with this SDK cannot declare `argumentType` on their contract fields.
Proposed change
- Mirror `io.openaev.database.model.PrimitiveType` label-for-label in `pyoaev/contracts/contract_config.py`.
- Add `ContractElement.argumentType: Optional[PrimitiveType] = None`, matching the platform's field name so a contract pushed from this client needs no translation on the other end.
- Backward compatible: the platform normalizes a missing/null/empty `argumentType` to `PrimitiveType.Text` on its own.
The platform added `argumentType` on injector contract fields (`io.openaev.database.model.ContractElement`) and its backing `io.openaev.database.model.PrimitiveType` enum, merged in openaev#7124. It lets a contract field declare its chaining/semantic type (e.g. "username", "host") so downstream chaining can auto-link matching outputs to it.
The Python client (`pyoaev`) has no equivalent, so injectors built with this SDK cannot declare `argumentType` on their contract fields.
Proposed change