Adopt Promptkit at application boundaries
This commit is contained in:
@@ -11,7 +11,7 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"gitea.maximumdirect.net/eric/scriptorium"
|
||||
"gitea.maximumdirect.net/eric/promptkit"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -25,7 +25,7 @@ const fallbackArtifactContentType = "text/plain"
|
||||
// NewRestrictedArtifactReader creates the HTTP artifact reader for a rooted
|
||||
// filesystem and optional byte limit. An empty root permits inline artifacts
|
||||
// but denies file references; a zero limit permits artifacts of any size.
|
||||
func NewRestrictedArtifactReader(root string, maxBytes int64) (scriptorium.ArtifactReader, error) {
|
||||
func NewRestrictedArtifactReader(root string, maxBytes int64) (promptkit.ArtifactReader, error) {
|
||||
if maxBytes < 0 {
|
||||
return nil, fmt.Errorf("artifact size limit must be greater than or equal to 0")
|
||||
}
|
||||
@@ -46,9 +46,9 @@ type restrictedArtifactReader struct {
|
||||
maxBytes int64
|
||||
}
|
||||
|
||||
var _ scriptorium.ArtifactReader = (*restrictedArtifactReader)(nil)
|
||||
var _ promptkit.ArtifactReader = (*restrictedArtifactReader)(nil)
|
||||
|
||||
func (r *restrictedArtifactReader) Read(ctx context.Context, ref scriptorium.ArtifactRef) (*scriptorium.Artifact, error) {
|
||||
func (r *restrictedArtifactReader) Read(ctx context.Context, ref promptkit.ArtifactRef) (*promptkit.Artifact, error) {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return nil, ctx.Err()
|
||||
@@ -56,22 +56,22 @@ func (r *restrictedArtifactReader) Read(ctx context.Context, ref scriptorium.Art
|
||||
}
|
||||
|
||||
switch ref.Type {
|
||||
case scriptorium.ArtifactRefInline:
|
||||
case promptkit.ArtifactRefInline:
|
||||
return readInlineArtifact(ref)
|
||||
case scriptorium.ArtifactRefFile:
|
||||
case promptkit.ArtifactRefFile:
|
||||
return r.readFileArtifact(ref)
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported artifact reference type %q", ref.Type)
|
||||
}
|
||||
}
|
||||
|
||||
func readInlineArtifact(ref scriptorium.ArtifactRef) (*scriptorium.Artifact, error) {
|
||||
func readInlineArtifact(ref promptkit.ArtifactRef) (*promptkit.Artifact, error) {
|
||||
if ref.Body == "" {
|
||||
return nil, errors.New("inline artifact body is required")
|
||||
}
|
||||
|
||||
body := []byte(ref.Body)
|
||||
return &scriptorium.Artifact{
|
||||
return &promptkit.Artifact{
|
||||
ContentType: fallbackArtifactContentType,
|
||||
Body: body,
|
||||
Size: int64(len(body)),
|
||||
@@ -80,7 +80,7 @@ func readInlineArtifact(ref scriptorium.ArtifactRef) (*scriptorium.Artifact, err
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (r *restrictedArtifactReader) readFileArtifact(ref scriptorium.ArtifactRef) (*scriptorium.Artifact, error) {
|
||||
func (r *restrictedArtifactReader) readFileArtifact(ref promptkit.ArtifactRef) (*promptkit.Artifact, error) {
|
||||
if ref.URI == "" {
|
||||
return nil, errors.New("file artifact path is required")
|
||||
}
|
||||
@@ -119,7 +119,7 @@ func (r *restrictedArtifactReader) resolveLexicalPath(rawPath string) (string, e
|
||||
return absCandidate, nil
|
||||
}
|
||||
|
||||
func readArtifactFile(path string, maxBytes int64) (*scriptorium.Artifact, error) {
|
||||
func readArtifactFile(path string, maxBytes int64) (*promptkit.Artifact, error) {
|
||||
file, err := os.Open(path)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to read file %s: %w", path, err)
|
||||
@@ -150,7 +150,7 @@ func readArtifactFile(path string, maxBytes int64) (*scriptorium.Artifact, error
|
||||
if contentType == "" {
|
||||
contentType = fallbackArtifactContentType
|
||||
}
|
||||
return &scriptorium.Artifact{
|
||||
return &promptkit.Artifact{
|
||||
Name: filepath.Base(path),
|
||||
ContentType: contentType,
|
||||
Body: body,
|
||||
|
||||
Reference in New Issue
Block a user