diff --git a/go.mod b/go.mod index 1179836..04d38d1 100644 --- a/go.mod +++ b/go.mod @@ -17,8 +17,8 @@ require ( github.com/google/uuid v1.6.0 github.com/jung-kurt/gofpdf v1.16.2 github.com/modelcontextprotocol/go-sdk v1.2.0 - github.com/mudler/cogito v0.9.3 - github.com/mudler/localrecall v0.5.4 + github.com/mudler/cogito v0.9.2-0.20260225234859-b76691637703 + github.com/mudler/localrecall v0.5.9-0.20260314221856-96d63875cc47 github.com/mudler/skillserver v0.0.5-0.20260221145827-0639a82c8f49 github.com/mudler/xlog v0.0.5 github.com/onsi/ginkgo/v2 v2.27.5 @@ -27,6 +27,7 @@ require ( github.com/robfig/cron/v3 v3.0.1 github.com/sashabaranov/go-openai v1.41.2 github.com/slack-go/slack v0.17.3 + github.com/spf13/cobra v1.10.2 github.com/thoj/go-ircevent v0.0.0-20210723090443-73e444401d64 github.com/tmc/langchaingo v0.1.14 github.com/traefik/yaegi v0.16.1 @@ -95,7 +96,6 @@ require ( github.com/shopspring/decimal v1.4.0 // indirect github.com/skeema/knownhosts v1.3.1 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.10.2 // indirect github.com/spf13/pflag v1.0.9 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/yosida95/uritemplate/v3 v3.0.2 // indirect diff --git a/go.sum b/go.sum index d562b5f..079b69f 100644 --- a/go.sum +++ b/go.sum @@ -297,10 +297,10 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM= github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw= -github.com/mudler/cogito v0.9.3 h1:epVhDzNmzqmwiUCrGSpuRryV8nNXsZUFhcDMTbBHXJI= -github.com/mudler/cogito v0.9.3/go.mod h1:6sfja3lcu2nWRzEc0wwqGNu/eCG3EWgij+8s7xyUeQ4= -github.com/mudler/localrecall v0.5.4 h1:hVPGHRDBOkGUJYL6Zm37sG8uoZObc8jtIJlDY/+NVb4= -github.com/mudler/localrecall v0.5.4/go.mod h1:TZVXQI840MqjDtilBLc7kfmnctK4oNf1IR+cE68zno8= +github.com/mudler/cogito v0.9.2-0.20260225234859-b76691637703 h1:DVYONTwYj14uNvT1wumq3lV2Kl4cQ9vl+NAlkMHpdp4= +github.com/mudler/cogito v0.9.2-0.20260225234859-b76691637703/go.mod h1:6sfja3lcu2nWRzEc0wwqGNu/eCG3EWgij+8s7xyUeQ4= +github.com/mudler/localrecall v0.5.9-0.20260314221856-96d63875cc47 h1:fHIkLJgfcYDF4bhwVZdfFcQB2HVw93ClOQSKRci8qQs= +github.com/mudler/localrecall v0.5.9-0.20260314221856-96d63875cc47/go.mod h1:TZVXQI840MqjDtilBLc7kfmnctK4oNf1IR+cE68zno8= github.com/mudler/skillserver v0.0.5-0.20260221145827-0639a82c8f49 h1:dAF1ALXqqapRZo80x56BIBBcPrPbRNerbd66rdyO8J4= github.com/mudler/skillserver v0.0.5-0.20260221145827-0639a82c8f49/go.mod h1:z3yFhcL9bSykmmh6xgGu0hyoItd4CnxgtWMEWw8uFJU= github.com/mudler/xlog v0.0.5 h1:2unBuVC5rNGhCC86UaA94TElWFml80NL5XLK+kAmNuU= diff --git a/webui/collections/inprocess.go b/webui/collections/inprocess.go index 71f5838..661cb4b 100644 --- a/webui/collections/inprocess.go +++ b/webui/collections/inprocess.go @@ -195,6 +195,16 @@ func (b *backendInProcess) ListSources(collection string) ([]SourceInfo, error) return out, nil } +func (b *backendInProcess) GetEntryFilePath(collection, entry string) (string, error) { + b.state.Mu.RLock() + kb, exists := b.state.Collections[collection] + b.state.Mu.RUnlock() + if !exists { + return "", fmt.Errorf("collection not found: %s", collection) + } + return kb.GetEntryFilePath(entry) +} + func (b *backendInProcess) EntryExists(collection, entry string) bool { b.state.Mu.RLock() kb, exists := b.state.Collections[collection] diff --git a/webui/collections/types.go b/webui/collections/types.go index 4471ae3..16bd552 100644 --- a/webui/collections/types.go +++ b/webui/collections/types.go @@ -35,6 +35,9 @@ type Backend interface { RemoveSource(collection, url string) error ListSources(collection string) ([]SourceInfo, error) EntryExists(collection, entry string) bool + // GetEntryFilePath returns the filesystem path of the stored file for the + // given entry. This is used to serve the original uploaded binary file. + GetEntryFilePath(collection, entry string) (string, error) } // Config holds the configuration for the in-process collections backend.