Skip to content

[SDK] Core types & provider interface for .harness() #199

@santoshkumarradha

Description

@santoshkumarradha

Overview

Define all foundational types for the .harness() feature: HarnessConfig, HarnessOptions, HarnessResult, RawResult, Metrics, Message, and the HarnessProvider protocol/interface. Also implement the provider factory skeleton.

Branch: feat/harness-v2
Design doc: docs/design/harness-v2-design.md (Sections 6, 7, 4.4)

Scope

Python (sdk/python/agentfield/harness/)

  • __init__.py — public API exports
  • _result.pyHarnessResult, RawResult, Metrics, Message dataclasses
  • providers/_base.pyHarnessProvider Protocol class
  • providers/_factory.pybuild_provider() skeleton (raises for unknown providers)
  • providers/__init__.py — exports
  • Add HarnessConfig to sdk/python/agentfield/types.py (alongside AIConfig)
  • Unit tests for all types (construction, defaults, validation)
  • Unit tests for config resolution (constructor defaults + per-call overrides)

TypeScript (sdk/typescript/src/harness/)

  • types.ts — all type/interface definitions
  • providers/base.tsHarnessProvider interface
  • providers/factory.tsbuildProvider() skeleton
  • providers/index.ts — exports
  • index.ts — public API exports
  • Unit tests for types and factory

Acceptance Criteria

  • All types match the design doc
  • HarnessConfig.provider is required (no default)
  • Config resolution: per-call overrides > constructor defaults
  • Factory raises/throws for unknown provider names
  • All tests pass, no lint errors

Dependencies

TDD Approach

Write tests for type construction, validation, and config resolution BEFORE implementing the types.

Metadata

Metadata

Labels

ai-friendlyWell-documented task suitable for AI-assisted developmentarea:harnessCoding agent harness integrationenhancementNew feature or requestsdk:pythonPython SDK relatedsdk:typescriptTypeScript SDK related

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions