20 lines
443 B
Go
20 lines
443 B
Go
package promptdef
|
|
|
|
import (
|
|
"crypto/sha256"
|
|
"encoding/hex"
|
|
"encoding/json"
|
|
|
|
"gitea.maximumdirect.net/eric/promptkit/internal/domain"
|
|
)
|
|
|
|
// HashDefinition hashes an execution-ready prompt, including captured content.
|
|
func HashDefinition(definition *domain.PromptDefinition) (string, error) {
|
|
bytes, err := json.Marshal(definition)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
sum := sha256.Sum256(bytes)
|
|
return hex.EncodeToString(sum[:]), nil
|
|
}
|