45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
package glossary
|
|
|
|
import (
|
|
"context"
|
|
|
|
"gitea.maximumdirect.net/eric/audita/internal/framework/contracts"
|
|
"gitea.maximumdirect.net/eric/audita/internal/framework/proposal_generation"
|
|
"gitea.maximumdirect.net/eric/audita/internal/framework/proposals"
|
|
"gitea.maximumdirect.net/eric/audita/internal/prompts"
|
|
builtinvalidators "gitea.maximumdirect.net/eric/audita/internal/validators"
|
|
)
|
|
|
|
type Module struct {
|
|
validators []contracts.Validator
|
|
}
|
|
|
|
func New() (*Module, error) {
|
|
chain, err := builtinvalidators.ResolveBuiltInChain("glossary", builtinvalidators.NewBuiltInRegistry())
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &Module{
|
|
validators: chain,
|
|
}, nil
|
|
}
|
|
|
|
func (m *Module) Key() string { return "glossary" }
|
|
|
|
func (m *Module) ReplacementPolicy() proposals.ReplacementPolicy {
|
|
// Update repeated term occurrences.
|
|
return proposals.ReplacementPolicyReplaceAll
|
|
}
|
|
|
|
func (m *Module) Validators() []contracts.Validator {
|
|
return append([]contracts.Validator(nil), m.validators...)
|
|
}
|
|
|
|
func (m *Module) Propose(ctx context.Context, req contracts.ProposalRequest) (contracts.ProposalResult, error) {
|
|
return proposal_generation.ExecuteModuleProposal(ctx, proposal_generation.ModuleProposalRequest{
|
|
ProposalRequest: req,
|
|
PromptID: prompts.PromptIDModuleGlossaryProposal,
|
|
BuildMessages: BuildProposalMessages,
|
|
})
|
|
}
|