Skip to content

Issue 5: Update Model base class and method execution #120

@adamhjk

Description

@adamhjk

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

  • Methods receive Definition instead of ModelInput
  • Method execution creates unified Data with proper metadata
  • Data versioning works automatically
  • Ownership validation enforced
  • Unit tests updated and passing
  • Integration test: execute method, verify data created with correct metadata

Dependencies

Files to Update

  • src/domain/models/model.ts
  • src/domain/models/method_execution_service.ts
  • src/domain/models/method_execution_service_test.ts

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions