cabal-version:      3.0
name:               siza-eval
version:            0.1.0.0
synopsis:           Neuro-symbolic eval harness: drive siza with a local model.
description:        Runs a local Ollama model (gpt-oss:20b) as the siza agent
                    against a live Sabela notebook, scores task success with an
                    objective grader cell, and reports the pass rate. Phase 1 is
                    the baseline (no type gate); the gate is the Phase 2 variable.
build-type:         Simple
license:            MIT
author:             DataHaskell

common warnings
    ghc-options: -Wall

library
    import:           warnings
    hs-source-dirs:   src
    default-language: Haskell2010
    default-extensions: OverloadedStrings, LambdaCase, ScopedTypeVariables
    exposed-modules:  Eval.Ollama
                      Eval.Provider
                      Eval.Preflight
                      Eval.Tools
                      Eval.Bench
                      Eval.BenchReport
                      Eval.ColdStart
                      Eval.Applicability
                      Eval.FitCheck
                      Eval.Episode
                      Eval.ReportGuard
                      Eval.Gate
                      Eval.GateReport
                      Eval.GateResult
                      Eval.Provenance
                      Eval.GateMetrics
                      Eval.TranscriptLint
                      Eval.ElisionLint
                      Eval.VerdictLint
                      Eval.VerifierLeakLint
                      Eval.Discover
                      Eval.Exemplars
                      Eval.Sample
                      Eval.Agent
                      Eval.HoleFit
                      Eval.Messages
                      Eval.Owned
                      Eval.Render
                      Eval.Repair
                      Eval.Salvage
                      Eval.Scaffold
                      Eval.Transcript
                      Eval.Task
                      Eval.TaskSet
                      Eval.Corpus
                      Eval.Corpus.Tasks
                      Eval.Corpus.Capability
                      Eval.Corpus.Reasoning
                      Eval.Corpus.Reasoning.Competition
                      Eval.Corpus.Reasoning.Design
                      Eval.Corpus.Reasoning.Logic
    build-depends:    base >= 4 && < 5
                    , siza-client
                    , sabela:sabela-contract >= 0.1 && < 0.2
                    , http-client >= 0.7 && < 0.10
                    , http-client-tls >= 0.3 && < 0.4
                    , aeson >= 2.0 && < 3
                    , bytestring >= 0.10 && < 0.13
                    , text >= 1.2 && < 3
                    , time >= 1.9 && < 2
                    , containers >= 0.6.7 && < 0.9
                    , process >= 1.6 && < 1.7
                    , directory >= 1.3 && < 1.4
                    , filepath >= 1.4 && < 1.6

executable siza-eval
    import:           warnings
    hs-source-dirs:   app
    main-is:          Main.hs
    default-language: Haskell2010
    default-extensions: OverloadedStrings, LambdaCase, ScopedTypeVariables
    ghc-options:      -threaded -rtsopts "-with-rtsopts=-N"
    build-depends:    base >= 4 && < 5
                    , siza-eval
                    , siza-client
                    , sabela:sabela-contract >= 0.1 && < 0.2
                    , http-client >= 0.7 && < 0.10
                    , http-client-tls >= 0.3 && < 0.4
                    , aeson >= 2.0 && < 3
                    , bytestring >= 0.10 && < 0.13
                    , text >= 1.2 && < 3
                    , time >= 1.9 && < 2
                    , directory >= 1.3 && < 1.4

executable siza-bench
    import:           warnings
    hs-source-dirs:   bench
    main-is:          Main.hs
    default-language: Haskell2010
    default-extensions: OverloadedStrings, LambdaCase, ScopedTypeVariables
    ghc-options:      -threaded -rtsopts "-with-rtsopts=-N"
    build-depends:    base >= 4 && < 5
                    , siza-eval
                    , siza-client
                    , http-client-tls >= 0.3 && < 0.4
                    , text >= 1.2 && < 3

executable siza-gate
    import:           warnings
    hs-source-dirs:   gate
    main-is:          Main.hs
    default-language: Haskell2010
    default-extensions: OverloadedStrings, LambdaCase, ScopedTypeVariables
    ghc-options:      -threaded -rtsopts "-with-rtsopts=-N"
    build-depends:    base >= 4 && < 5
                    , siza-eval
                    , siza-client
                    , http-client-tls >= 0.3 && < 0.4
                    , text >= 1.2 && < 3

test-suite siza-eval-test
    import:           warnings
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          Main.hs
    other-modules:    Test.ApplicabilitySpec
                      Test.ColdStartSpec
                      Test.FitCheckSpec
                      Test.BenchSpec
                      Test.CapabilityBaselineSpec
                      Test.CapabilityCorpusSpec
                      Test.EpisodeSpec
                      Test.GuardGridSpec
                      Test.GateLeverSpec
                      Test.GateResultSpec
                      Test.RegressionFloorSpec
                      Test.RelinkProbeSpec
                      Test.TranscriptLintSpec
                      Test.ElisionLintSpec
                      Test.WrapUpLintSpec
                      Test.VerdictLintSpec
                      Test.VerifierLeakLintSpec
                      Test.VerifyHonestySpec
                      Test.LintDumpSpec
                      Test.OutcomeDistillLintSpec
                      Test.BudgetRetrySpec
                      Test.AgentPromptSpec
                      Test.CodePathSpec
                      Test.SchemaMatchSpec
                      Test.RecoveredCallLintSpec
                      Test.OllamaBodySpec
                      Test.ProviderMapSpec
                      Test.PreflightSpec
                      Test.DiscoverSpec
                      Test.GradeRenderSpec
                      Test.HoleFitSpec
                      Test.GrammarSpec
                      Test.HealthGateSpec
                      Test.ReasoningCorpusSpec
                      Test.RepairBudgetSpec
                      Test.RepairSpec
                      Test.SalvageSpec
                      Test.ScaffoldSpec
                      Test.ProposerStepSpec
                      Test.ExemplarsSpec
                      Test.SampleVerifySpec
                      Test.SpecVerifierSpec
                      Test.TaskSpec
                      Test.ToolsSpec
                      Test.TranscriptSpec
    default-language: Haskell2010
    default-extensions: OverloadedStrings, LambdaCase, ScopedTypeVariables
    ghc-options:      -threaded
    build-depends:    base >= 4 && < 5
                    , siza-eval
                    , siza-client
                    , sabela:sabela-contract >= 0.1 && < 0.2
                    , aeson >= 2.0 && < 3
                    , containers >= 0.6.7 && < 0.9
                    , http-client >= 0.7 && < 0.10
                    , directory >= 1.3 && < 1.4
                    , filepath >= 1.4 && < 1.6
                    , text >= 1.2 && < 3
                    , time >= 1.9 && < 2
                    , hspec >= 2 && < 3
