Refactor the Model base class, MethodDefinition, and MethodExecutionService to use Definitions and unified Data instead of ModelInputs and 4 artifact types.
Key Changes
- Update
src/domain/models/model.ts:
MethodDefinition.execute(): Change signature from (input: ModelInput, context: MethodContext) to (definition: Definition, context: MethodContext)
MethodContext: Replace 4 repository fields with single dataRepository: UnifiedDataRepository
- Add
definitionRepository: DefinitionRepository to context
- Update
ModelDefinition:
- Replace
inputAttributesSchema with support for JsonSchema inputs
- Remove
resourceAttributesSchema, dataAttributesSchema (no longer needed)
- Update
MethodResult:
- Remove:
resource?, data?, file?, logs?, deleteResource?, deleteData?, deleteFile?, deleteLogs?
- Add:
dataOutputs: Array<{ name: string, content: Uint8Array, metadata: DataMetadata }>
- Update
src/domain/models/method_execution_service.ts:
- Accept Definition instead of ModelInput
- Validate definition attributes against method schema
- Write data artifacts with ownership (store definition in metadata)
- Auto-increment data versions on each write
- Create ModelOutput referencing data artifacts
Acceptance Criteria
Dependencies
Files to Update
src/domain/models/model.ts
src/domain/models/method_execution_service.ts
src/domain/models/method_execution_service_test.ts
Refactor the Model base class, MethodDefinition, and MethodExecutionService to use Definitions and unified Data instead of ModelInputs and 4 artifact types.
Key Changes
src/domain/models/model.ts:MethodDefinition.execute(): Change signature from(input: ModelInput, context: MethodContext)to(definition: Definition, context: MethodContext)MethodContext: Replace 4 repository fields with singledataRepository: UnifiedDataRepositorydefinitionRepository: DefinitionRepositoryto contextModelDefinition:inputAttributesSchemawith support for JsonSchema inputsresourceAttributesSchema,dataAttributesSchema(no longer needed)MethodResult:resource?,data?,file?,logs?,deleteResource?,deleteData?,deleteFile?,deleteLogs?dataOutputs: Array<{ name: string, content: Uint8Array, metadata: DataMetadata }>src/domain/models/method_execution_service.ts:Acceptance Criteria
Dependencies
Files to Update
src/domain/models/model.tssrc/domain/models/method_execution_service.tssrc/domain/models/method_execution_service_test.ts