From 9c419c32093c59b9157b084b16301c0758b6b84a Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 21 Feb 2025 15:35:11 +0800 Subject: [PATCH] Add assistant script loading mechanism - Implement loading of assistant TypeScript index files - Filter and load only src/index.ts files from assistants directory - Generate unique IDs for assistant scripts using file path - Extend application walk method to support assistant script loading --- script/script.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/script/script.go b/script/script.go index f983e843..15d25c81 100644 --- a/script/script.go +++ b/script/script.go @@ -2,6 +2,7 @@ package script import ( "fmt" + "strings" "github.com/yaoapp/gou/application" v8 "github.com/yaoapp/gou/runtime/v8" @@ -25,6 +26,27 @@ func Load(cfg config.Config) error { return err } + // Load assistants + err = application.App.Walk("assistants", func(root, file string, isdir bool) error { + if isdir { + return nil + } + + // Keep the src.index only + if !strings.HasSuffix(file, "src/index.ts") { + return nil + } + + id := fmt.Sprintf("assistants.%s", share.ID(root, file)) + id = strings.TrimSuffix(id, ".src.index") + _, err := v8.Load(file, id) + return err + }, exts...) + + if err != nil { + return err + } + return application.App.Walk("services", func(root, file string, isdir bool) error { if isdir { return nil