diff --git a/data/bindata.go b/data/bindata.go
index 46228ab4..f40d39f7 100644
--- a/data/bindata.go
+++ b/data/bindata.go
@@ -261,7 +261,7 @@ func initEnv() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.env", size: 219, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.env", size: 219, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -281,7 +281,7 @@ func initVscodeSettingsJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/settings.json", size: 4666, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/settings.json", size: 4666, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -301,7 +301,7 @@ func initVscodeTypesRuntimeConsoleDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/console.d.ts", size: 221, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/console.d.ts", size: 221, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -321,7 +321,7 @@ func initVscodeTypesRuntimeExceptionDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/exception.d.ts", size: 738, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/exception.d.ts", size: 738, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -341,7 +341,7 @@ func initVscodeTypesRuntimeFsDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/fs.d.ts", size: 8554, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/fs.d.ts", size: 8554, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -361,7 +361,7 @@ func initVscodeTypesRuntimeGlobalDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/global.d.ts", size: 1759, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/global.d.ts", size: 1759, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -381,7 +381,7 @@ func initVscodeTypesRuntimeHttpDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/http.d.ts", size: 6179, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/http.d.ts", size: 6179, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -401,7 +401,7 @@ func initVscodeTypesRuntimeIoDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/io.d.ts", size: 587, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/io.d.ts", size: 587, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -421,7 +421,7 @@ func initVscodeTypesRuntimeLogDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/log.d.ts", size: 1692, mode: os.FileMode(493), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/log.d.ts", size: 1692, mode: os.FileMode(493), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -441,7 +441,7 @@ func initVscodeTypesRuntimeNeoDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/neo.d.ts", size: 3750, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/neo.d.ts", size: 3750, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -461,7 +461,7 @@ func initVscodeTypesRuntimeProcessFsDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/process/fs.d.ts", size: 11133, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/process/fs.d.ts", size: 11133, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -481,7 +481,7 @@ func initVscodeTypesRuntimeProcessHttpDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/process/http.d.ts", size: 5653, mode: os.FileMode(493), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/process/http.d.ts", size: 5653, mode: os.FileMode(493), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -501,7 +501,7 @@ func initVscodeTypesRuntimeProcessModelDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/process/model.d.ts", size: 6656, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/process/model.d.ts", size: 6656, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -521,7 +521,7 @@ func initVscodeTypesRuntimeProcessDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/process.d.ts", size: 23165, mode: os.FileMode(493), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/process.d.ts", size: 23165, mode: os.FileMode(493), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -541,7 +541,7 @@ func initVscodeTypesRuntimeQueryDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/query.d.ts", size: 6124, mode: os.FileMode(493), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/query.d.ts", size: 6124, mode: os.FileMode(493), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -561,7 +561,7 @@ func initVscodeTypesRuntimeStoreDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/store.d.ts", size: 2251, mode: os.FileMode(493), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/store.d.ts", size: 2251, mode: os.FileMode(493), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -581,7 +581,7 @@ func initVscodeTypesRuntimeSuiDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/sui.d.ts", size: 1713, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/sui.d.ts", size: 1713, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -601,7 +601,7 @@ func initVscodeTypesRuntimeTimeDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime/time.d.ts", size: 711, mode: os.FileMode(493), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime/time.d.ts", size: 711, mode: os.FileMode(493), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -621,7 +621,7 @@ func initVscodeTypesRuntimeDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/runtime.d.ts", size: 424, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/runtime.d.ts", size: 424, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -641,7 +641,7 @@ func initVscodeTypesSuiDTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/.vscode/types/sui.d.ts", size: 8931, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/.vscode/types/sui.d.ts", size: 8931, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -661,7 +661,7 @@ func initAppYao() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/app.yao", size: 3115, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/app.yao", size: 3115, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -681,7 +681,7 @@ func initDataReadmeMd() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/data/README.md", size: 41, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/data/README.md", size: 41, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -701,7 +701,7 @@ func initDataTemplatesDefault__assetsReadmeMd() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/data/templates/default/__assets/README.md", size: 33, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/data/templates/default/__assets/README.md", size: 33, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -721,7 +721,7 @@ func initDataTemplatesDefault__assetsImagesIconsAppPng() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/data/templates/default/__assets/images/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/data/templates/default/__assets/images/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -741,7 +741,7 @@ func initDataTemplatesDefault__assetsImagesLogosLogo_colorSvg() (*asset, error)
return nil, err
}
- info := bindataFileInfo{name: "init/data/templates/default/__assets/images/logos/logo_color.svg", size: 2909, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/data/templates/default/__assets/images/logos/logo_color.svg", size: 2909, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -761,7 +761,7 @@ func initDataTemplatesDefault__assetsImagesLogosWordmarkSvg() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/data/templates/default/__assets/images/logos/wordmark.svg", size: 3615, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/data/templates/default/__assets/images/logos/wordmark.svg", size: 3615, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -781,7 +781,7 @@ func initDataTemplatesDefault__dataJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/data/templates/default/__data.json", size: 30, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/data/templates/default/__data.json", size: 30, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -801,7 +801,7 @@ func initDataTemplatesDefault__documentHtml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/data/templates/default/__document.html", size: 492, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/data/templates/default/__document.html", size: 492, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -821,7 +821,7 @@ func initDataTemplatesDefaultIndexIndexCss() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/data/templates/default/index/index.css", size: 2896, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/data/templates/default/index/index.css", size: 2896, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -841,7 +841,7 @@ func initDataTemplatesDefaultIndexIndexHtml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/data/templates/default/index/index.html", size: 2361, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/data/templates/default/index/index.html", size: 2361, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -861,7 +861,7 @@ func initDataTemplatesDefaultIndexIndexJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/data/templates/default/index/index.json", size: 31, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/data/templates/default/index/index.json", size: 31, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -881,7 +881,7 @@ func initDbReadmeMd() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/db/README.md", size: 84, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/db/README.md", size: 84, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -901,7 +901,7 @@ func initFlowsMenuFlowYao() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/flows/menu.flow.yao", size: 813, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/flows/menu.flow.yao", size: 813, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -921,7 +921,7 @@ func initFormsAccountFormYao() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/forms/account.form.yao", size: 1194, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/forms/account.form.yao", size: 1194, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -941,7 +941,7 @@ func initIconsAppIcns() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/icons/app.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/icons/app.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -961,7 +961,7 @@ func initIconsAppIco() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/icons/app.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/icons/app.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -981,7 +981,7 @@ func initIconsAppPng() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1001,7 +1001,7 @@ func initLoginsAdminLoginYao() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/logins/admin.login.yao", size: 302, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/logins/admin.login.yao", size: 302, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1021,7 +1021,7 @@ func initLogsReadmeMd() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/logs/README.md", size: 28, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/logs/README.md", size: 28, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1041,7 +1041,7 @@ func initModelsAdminUserModYao() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/models/admin/user.mod.yao", size: 6416, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/models/admin/user.mod.yao", size: 6416, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1061,7 +1061,7 @@ func initModelsTestsPetModYao() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/models/tests/pet.mod.yao", size: 525, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/models/tests/pet.mod.yao", size: 525, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1081,7 +1081,7 @@ func initNeoNeoYml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/neo/neo.yml", size: 724, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/neo/neo.yml", size: 724, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1101,7 +1101,7 @@ func initPublicReadmeMd() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/public/README.md", size: 108, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/public/README.md", size: 108, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1121,7 +1121,7 @@ func initPublicAssetsReadmeMd() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/public/assets/README.md", size: 33, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/public/assets/README.md", size: 33, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1141,7 +1141,7 @@ func initPublicAssetsImagesIconsAppPng() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/public/assets/images/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/public/assets/images/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1161,7 +1161,7 @@ func initPublicAssetsImagesLogosLogo_colorSvg() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/public/assets/images/logos/logo_color.svg", size: 2909, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/public/assets/images/logos/logo_color.svg", size: 2909, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1181,7 +1181,7 @@ func initPublicAssetsImagesLogosWordmarkSvg() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/public/assets/images/logos/wordmark.svg", size: 3615, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/public/assets/images/logos/wordmark.svg", size: 3615, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1201,7 +1201,7 @@ func initPublicAssetsLibsuiMinJs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/public/assets/libsui.min.js", size: 12569, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/public/assets/libsui.min.js", size: 12569, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1221,7 +1221,7 @@ func initPublicAssetsLibsuiMinJsMap() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/public/assets/libsui.min.js.map", size: 38553, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/public/assets/libsui.min.js.map", size: 38553, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1241,7 +1241,7 @@ func initPublicIndexCfg() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/public/index.cfg", size: 85, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/public/index.cfg", size: 85, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1261,7 +1261,7 @@ func initPublicIndexSui() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/public/index.sui", size: 5682, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/public/index.sui", size: 5682, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1281,7 +1281,7 @@ func initScriptsAccountTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/scripts/account.ts", size: 2521, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/scripts/account.ts", size: 2521, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1301,7 +1301,7 @@ func initScriptsAiNeoTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/scripts/ai/neo.ts", size: 375, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/scripts/ai/neo.ts", size: 375, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1321,7 +1321,7 @@ func initScriptsTestsTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/scripts/tests.ts", size: 1044, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/scripts/tests.ts", size: 1044, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1341,7 +1341,7 @@ func initScriptsUtilsTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/scripts/utils.ts", size: 1230, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/scripts/utils.ts", size: 1230, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1361,7 +1361,7 @@ func initSuisWebSuiYao() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/suis/web.sui.yao", size: 675, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/suis/web.sui.yao", size: 675, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1381,7 +1381,7 @@ func initTablesAccountTabYao() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/tables/account.tab.yao", size: 5597, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/tables/account.tab.yao", size: 5597, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1401,12 +1401,12 @@ func initTsconfigJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "init/tsconfig.json", size: 178, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "init/tsconfig.json", size: 178, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
-var _libsuiAgentTs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x5b\xdd\x73\x1b\x39\x72\x7f\xd7\x5f\xd1\x66\xb9\x94\x19\x87\x4b\xca\x7b\x77\x79\xa0\x96\xd6\xaa\xe4\xbd\x5b\x5d\xca\x6b\x97\xe5\xab\x54\xca\x51\xc9\xd0\x4c\x93\xc4\x69\x08\xcc\x01\xa0\x3e\x22\xf1\x7f\x4f\xa1\x81\x99\x01\x30\x43\x4a\x4e\x6d\x52\xe7\x17\x73\x80\x46\xa3\xd1\x1f\xbf\x6e\x7c\x68\xfa\xe6\xcd\x01\xbc\x81\xff\x64\x12\x4e\xcf\xe1\x74\x89\xc2\xc0\xa7\x8d\x42\xf8\x2b\xbb\x65\x17\x85\xe2\xb5\x81\x8b\xf7\xff\x6e\x69\x7e\x66\x1b\xb3\x92\x0a\x3e\xb0\xfb\x9f\xd6\xec\xfe\x67\xfe\x8f\x1b\x36\x29\xe4\xfa\x1d\x75\xae\x19\x17\x86\x71\x81\x0a\x56\xc6\xd4\x7a\x36\x9d\x3e\x30\xc9\xea\x5a\x5b\x9a\x03\x78\x33\x3d\x38\xf0\x93\x7d\x40\xad\xd9\x12\x41\x1b\xb5\x29\x8c\x9d\x6c\x21\x15\x30\x9a\x5b\xa1\xae\xa5\xd0\xa8\x69\x04\x17\x06\xd5\x82\x15\xe8\x24\x6b\x06\x3e\x1e\x00\x18\xbc\x37\x33\xcb\x82\x8b\xe5\xb1\xfd\x7e\xa8\xf1\x24\x6c\x28\xa5\xb0\x0d\xd7\x52\x56\xc8\x84\x6d\xe1\xfa\x4a\xa0\x8c\xdb\x98\xd6\x5c\x1b\x26\xcc\x15\x2f\xa3\xe1\x5d\x87\x60\x6b\xdc\xd1\xc5\x6e\x99\x61\x2a\xea\xac\x95\xac\xf5\xc9\x0c\x3e\x63\x21\x55\xf9\x93\xeb\x18\x03\x13\x0f\xef\x48\x4c\x29\xab\x74\x2a\x81\x77\xb1\x50\x25\x56\x86\xc5\x4d\xb5\xc2\x5b\x2e\x37\xfa\x6a\x87\xc0\xdb\x56\xbb\xef\xa5\x40\xc0\x5b\xab\xcc\x92\x19\xd6\x69\x99\x34\x6a\xd5\xe4\x94\x69\xe9\xde\x5b\x82\x79\xa4\xdc\xaf\x97\xc7\x2d\xab\x5f\x88\xcb\x8a\x89\xb2\x42\x05\x8b\x8d\x28\x0c\x97\x82\x54\x9d\xda\xc7\x8f\xfe\xd5\xd3\x5a\x0b\x65\x6b\xd7\x36\x8b\xf8\xe7\x33\xb8\x95\xbc\x24\x89\xbb\xe1\x56\x98\xa1\xb1\x7a\x16\x0b\x1b\x8e\x8e\x84\x24\x99\xc0\xac\x98\x81\x82\x09\xb8\x46\xa8\xb8\x36\x28\xb0\x04\x23\x93\x95\xbb\x11\x73\x18\xf9\x49\x46\xf0\x04\x23\xeb\x2e\xa3\x1d\x4b\xd7\xa0\xc8\x9a\x34\x4b\xb2\x70\x22\xfc\xb5\xa1\xb3\xb2\x7b\xae\x27\xb3\x44\x29\x81\x53\x06\xcb\xa5\xa5\x14\x15\xd3\xda\x47\xdf\x23\x59\x9b\xdf\x32\x83\xb0\x92\xda\xc4\xce\xe5\xda\x8d\xbc\x41\x31\xd4\x41\x76\xd7\xb3\x58\xaa\x90\x20\x74\x9f\x21\x06\xc5\x8a\xf5\x42\xa1\x65\xde\x30\xbe\x90\x1b\x55\x20\x3c\x81\xd8\x54\x55\x34\x5a\x0a\x17\x97\x83\xde\x7f\x00\x40\xda\x05\x78\xe3\xd7\x5a\x48\xe1\xdc\x53\x2a\xd7\xfc\x73\xcd\x14\x5b\x83\xac\xc9\xd1\x1c\x11\x17\xdc\x70\x56\xf1\xff\x66\xd4\xe8\xfa\x34\xd1\x4f\x0f\x20\xe4\x91\x0d\xad\x6e\xec\x47\x78\x4f\xfa\x48\x1f\x39\xa9\x19\xc0\xac\xb8\x9e\x58\x2d\xc3\xdc\x93\xb9\xaf\xa7\x27\x18\x4d\x59\xcd\xa7\x57\x57\x0f\x4c\x4e\x05\xca\xd1\x71\x37\x80\xd4\xdf\x8d\xa0\xcf\xa0\xdb\x19\x01\xe6\xf0\xb8\x0d\x5a\x43\xd9\x60\x1e\x19\x22\xa0\xf2\xfa\xef\x98\xfb\x86\x90\xbd\x65\xdd\x68\xbe\x19\xe6\x14\x1f\x0c\xf3\x0d\x4f\x4f\x5e\x8a\x6d\xa4\xfe\xbf\xa0\x40\x45\xfe\x40\x16\x87\xf3\xf7\x5e\xff\x0a\xcd\x46\x09\x0d\xa7\xb0\x11\xfc\x1f\x1b\x6c\xba\x81\x0b\x30\x2b\x42\xea\x35\x33\x20\x17\xce\x53\xbe\x1a\xbe\x46\x6d\xd8\xba\xbe\xbc\xfa\xaa\x98\x28\xe5\xfa\xb2\xb5\x4c\xe3\x15\x6b\x76\x83\x67\x2b\x66\xce\xdf\x67\x79\x63\x15\xaf\x7f\x32\x1e\xb8\x81\x30\x87\x0f\xcc\xac\x26\xee\x2b\xcb\x27\x46\x5e\x10\x6d\xf6\x87\x7f\xcb\x27\x7a\x73\xed\x46\x66\x3f\x8e\xe1\xed\x9f\xf2\xe3\x60\x3c\x29\xfb\x3d\x33\x38\x11\xf2\x2e\xf3\x5d\x6e\x25\xf0\x8d\xe4\x7c\xfd\x68\xf4\xf6\xea\xf5\xa3\xe3\xbd\xfd\xd6\xd7\xc8\x67\x5c\x5a\xc0\x50\xc0\x84\x47\x4f\x1f\xfc\x91\x63\xba\x9e\x0e\x72\xc0\x48\x0f\x34\x94\xc3\xb2\x0e\x52\xa4\xf2\x98\x92\x47\x0c\x1a\x30\xfd\x73\x0b\xa6\xd2\xb7\x91\x7a\x89\x7f\x62\x8a\x2f\x2b\x6c\x23\xc1\x7a\x4c\xe1\xf2\x65\xb1\x62\x5c\x70\xb1\x6c\xd5\xfd\x51\xfc\xf4\x0b\xe0\xbd\x41\x51\xea\x00\xe8\xde\x65\xa4\x0e\xe2\x3c\x83\x5f\xc6\xf4\xe5\xc5\x98\x41\x37\xa2\x13\xfd\x24\x45\xf3\x08\xb0\x0e\x00\xf2\x59\x80\x55\x00\x7c\x01\x99\x53\xcc\x7c\x1e\xa0\x6a\x13\x63\x51\x54\x4c\x7c\x2f\xcc\x5b\x55\x30\x3d\x00\x94\x00\x5b\xc0\x4a\x63\xca\xdc\xa9\x74\x90\xb3\xed\x8a\xd9\x46\x30\x4b\x3c\x43\xcf\xb0\x63\xfb\x7e\x70\x66\x15\x5c\x91\x31\xa8\x22\x69\xd5\xeb\x3a\xb2\x3c\x58\xb4\x0f\xc7\x54\x1c\x3d\x29\x2a\xa9\xb1\x71\xc4\xe1\xb0\xdd\x0e\xcc\x5c\xb9\x79\x9b\x42\x2c\x72\x1c\x2e\xea\x8d\x81\x2f\x36\xa6\x1b\x15\x4a\xe5\x5b\xe5\xf5\xdf\xb1\x30\x70\xc7\xcd\x8a\xea\x22\x60\xa2\xf4\x40\xc0\x2a\x60\xc6\xb0\x62\xb5\xb6\x3a\x8a\x38\x32\xb5\xd4\x70\x5a\x96\xbc\xa1\x53\xcb\x0d\x51\x59\x9f\xac\x6d\x42\x32\x72\x40\x0f\x4c\x3f\x88\x82\x84\xcd\x68\x76\xef\x0b\xe7\xf6\xf7\x18\x26\x93\x89\xe5\x3b\xb3\x90\xff\xf5\x32\x9f\xc1\x27\x25\xd7\x5c\xe3\x4f\x36\x05\x44\x41\x9f\x64\xf8\xb6\xfc\x80\x39\xd8\x1a\xc4\x12\x56\x68\xa0\x62\xda\x9c\x36\x58\x69\x31\xd5\xeb\x34\x86\x7a\xab\x57\x6b\x71\x0f\x2e\x2e\x33\x8d\x7b\xa4\xb6\x94\x7b\x31\xb1\x2b\xee\xf6\x92\x6f\x29\xa9\x01\x4c\xa7\x76\x9d\x05\x6a\xed\x2d\x42\xf0\xeb\x94\x46\xab\xf0\xdf\xa1\xae\xce\x5c\xd3\x71\xe7\x4d\x0f\x35\xca\x85\x67\x40\xce\xee\x66\x0c\xdc\xdd\xb3\xb1\x6a\xf0\x05\xb0\xa3\xde\x46\x21\xf3\x0c\xf5\x84\x5c\x64\xdb\x38\xa7\x9d\xda\xb5\x07\x8e\x02\x87\x87\xd0\x6b\x9c\x54\x28\x96\x66\x05\xef\xe0\xa8\x13\xa9\x9d\x26\x1a\x3e\x1f\x18\xbd\x66\x75\x96\x75\x0d\x39\xcc\xdf\x41\xd6\xb1\x01\x70\xd6\xe9\x28\x26\xb6\x61\x1c\x10\x6c\x54\x15\xf5\x6f\x54\x15\x76\x5b\x05\x46\xfd\xb6\x21\x24\xf0\x92\x5e\xf5\x08\xc3\x8e\x70\xc0\xf5\x83\xb1\x0e\x1a\x50\x52\x4b\xc4\x53\x21\x33\x58\x5e\x31\x13\x73\x6c\x9b\x43\xe2\x05\xaf\x90\xfc\x35\xa0\xf4\x6d\x11\x4f\x97\xf3\x63\x86\xae\x2d\x24\x8b\x43\x20\xa0\x0d\x3b\xc2\x01\x25\x6a\xda\xd1\x51\x35\x14\xd0\x07\xed\x1d\xf9\x36\x6f\xf1\x6b\xeb\x11\xab\xf1\xf5\xd3\xb2\x6c\x4a\xbd\x06\x23\x42\x87\x77\xf1\xdd\x95\x24\x8f\x16\x15\xc2\x32\x65\xec\xb0\x67\x7b\x9c\x92\x0b\xf3\x99\xdd\xc1\x1c\x50\x14\xb2\xc4\xbf\x7d\x3e\x3f\x93\xeb\x5a\x0a\x14\x26\xfb\xeb\xc5\xc7\xdf\x26\x2e\x20\xf8\xe2\x21\xf3\xe4\x79\xde\xe3\x71\xff\x7d\x3c\xee\x13\x1e\x4d\x6d\xd7\x15\x7a\xd1\x0c\xb6\x8c\x29\x9b\xee\xa6\x58\x7b\x7a\x72\xdf\x61\xa1\x13\x8e\x6a\xed\xf1\x89\x80\x77\x0e\xdf\x0e\x43\x13\xcd\x5f\x3f\xf6\x2a\x44\x57\xa2\x34\x0c\xb4\x61\x66\xa3\xaf\x50\x94\xb5\xe4\x14\xd1\xdf\xfc\x18\x5b\xad\x6e\xa7\xae\xff\xc4\x2b\x65\xfe\xfa\xb1\xd3\xe6\xf6\xd0\x2f\xb3\x69\xbd\x77\xad\xb4\x34\x3b\xb3\xfd\x7f\x7b\xe8\x97\x62\x89\x68\x89\xdb\xd7\x8f\xb1\xd4\xb1\x40\xbb\x24\xf9\x3f\x17\x21\x90\xc1\x25\xfa\x5f\x94\x92\x8a\xea\x69\x9b\x96\x32\xb4\x9f\x94\x7d\x08\x5f\xda\xc4\xac\x1e\x62\xc4\xd2\xdd\x51\x83\x1d\x7c\xc7\xb8\x81\x05\x9a\x62\x95\x25\xba\x1e\xc3\x63\x1c\xed\x25\x0a\xbb\x1d\xd1\x33\x18\x71\x51\x54\x9b\x12\x47\x61\x8c\xad\x90\x95\xa8\xf4\x0c\x1e\xe1\xb4\x28\xb0\x36\x33\x18\xb1\xba\xae\x78\x41\xdb\x97\xe9\xdf\xb5\x14\x23\xd8\x86\x71\xe6\x57\xd5\x80\x71\x23\xd7\xc4\x49\x42\xa9\xe0\xc7\xa3\x23\xeb\x65\xc3\x5d\x6f\x73\x5f\xd2\x04\x8c\xdc\x12\x4b\xb7\xbf\x77\xcb\x6b\x07\x5b\x11\xb2\x7c\x52\x30\xbb\xdc\xac\x8f\xc3\xed\xbe\xfd\xdb\xaf\x5f\xbe\x7c\x82\xd7\x8f\xc9\xb4\xdb\x6f\x09\x4a\xb4\x5f\x36\xd5\x91\x05\x3e\xb4\x55\xde\xe8\x37\x34\x77\x52\xdd\xb8\xf6\x31\xd4\x15\x32\x8d\x64\x10\xb6\x64\x5c\x40\xc5\x0c\xaa\xd1\x71\xa4\x02\x2b\xf7\x49\x53\x2a\xe6\x91\x05\x12\xf6\x96\xb2\x21\xec\x78\x84\xb5\xa3\xa5\x6f\x28\x4e\x26\xde\x64\x3a\x1b\xfd\xf1\xe8\xed\x28\xdf\xcb\x7b\x74\x81\x5a\xdb\x1a\x1d\xef\x6b\xae\xb0\x9c\xc1\x27\x27\x7c\x25\x97\x5c\x38\xf1\x47\xdf\x3b\xe9\x1f\xf6\x4f\x1a\x74\x00\x8c\xac\x07\x69\x0d\x25\x0a\x1e\x4c\x5f\xac\xb0\xb8\x81\x07\xb9\x51\x50\xa3\x5a\x73\x12\x52\xdb\x72\xf0\x7f\x2f\xd8\x9f\x8e\x8e\x9e\xd7\x86\xba\x45\x05\x3e\xc2\xec\xae\x44\xa3\xba\xe5\x05\x02\xd7\x60\x70\x5d\x4b\xc5\x14\xaf\x1e\x60\x23\xd8\x2d\xe3\x15\xbb\xae\xf0\xbb\xd5\xf3\xc7\xef\x52\xcf\x79\x2b\x82\x90\x06\x16\x72\x23\x06\xb5\x54\x48\xb1\xe0\xcb\x8d\xa2\x08\xdc\x27\x92\x2d\x38\x5c\xe9\xf5\xe5\xa1\x76\xd0\x32\x7a\xb9\x38\x67\x52\x08\x74\xbb\xba\x05\xe3\xd5\xb0\xc5\x84\x0f\x87\xa2\x25\x0e\x05\x4a\x03\x78\x1d\x6f\xc4\xe6\xe1\x86\xe7\x6b\xbb\xd3\xba\xdc\xb5\x87\x6a\xe2\x29\x66\x13\xaf\x28\xee\x8b\x80\xa0\x39\x65\x0d\x17\x3d\x8e\xfb\xa9\x92\x1a\x11\xc1\x28\xee\x72\xa7\xad\x33\x30\x6a\x93\x0c\xb2\x1b\xb5\x7e\xfb\x36\x0f\xf5\xd0\x18\x88\x40\x0a\x3c\x28\x93\x41\xf2\x1e\x90\xff\x73\x28\x89\xe2\xc3\xba\x62\xe0\xfe\x3b\xe1\xee\xff\x57\x8b\xd1\x5e\x25\x4c\x85\xcd\x06\xcb\x57\xc4\xd1\x0e\x27\xda\xad\xb6\x79\x9f\x36\xb1\x78\x17\x9e\x03\x66\x41\xaa\xa4\x3d\xe8\x59\x98\x24\xad\x80\x81\x54\xdd\x56\x18\x75\x9b\x38\x50\x4f\xa4\x90\x35\xd5\x5d\x2e\x1f\x3d\xb6\xdb\x13\xea\xeb\x0e\x0d\xb2\x47\x97\xd4\xb6\x36\xc1\xda\x5f\xad\xd4\xdb\x28\xe1\xa7\x29\xbf\x59\x80\x3b\xbf\xc2\xf2\xca\xa7\x46\x2a\x09\x6b\xa6\x34\x52\xd2\x09\xb4\xe7\x9c\xe2\x55\x34\x60\x20\xd1\xfe\x8e\x4e\xe8\x67\x4c\xfd\x70\xe7\x94\x89\x17\xba\x9b\x85\xd8\x49\xae\x71\xc9\x45\xdf\xd9\xe2\x16\x14\xc9\x28\xaa\xd1\xa3\x16\xba\xd5\xe8\xfb\x5f\xdc\xb2\x6b\xdb\x91\xee\xc0\x77\xf5\xb9\x0d\x77\xdc\x2b\xf0\x6e\xe6\x82\xe0\x2e\x99\x1e\x2b\xc3\x22\xcf\x87\x79\x6c\xdd\x48\x63\xd3\x29\x38\x85\x02\x73\x08\xdd\xb8\x94\x3b\xd2\x6f\xff\x35\x1b\x71\x97\x05\x1c\x6d\x92\x02\x5a\xf5\xd3\x86\x55\xd7\xac\xb0\x71\xae\xf8\x9a\xa9\x87\x31\xf9\xe4\x15\x37\xb8\x1e\xfb\x99\xc6\x80\xf7\x46\x31\x2b\x5f\xc4\xc4\x2b\xb5\x3b\xa1\x8d\x85\xf0\x62\x1e\x1e\xc2\xa9\x52\xec\x61\xc2\x35\xfd\xef\xdb\xf3\x54\xa4\x76\xab\x41\xdd\x5d\xd6\x4e\xa9\x1a\xb4\x6a\x0e\x87\x47\x09\xde\x40\x07\x47\x7e\xf1\xfd\x7e\x92\x7b\x36\xc0\x1a\x3a\x8d\xcc\xba\x9f\x34\x8d\x2d\xe9\x07\x58\x41\xa3\xb8\x59\xf3\x83\xa8\x79\x39\x48\xdb\xea\x76\xd6\xfd\x74\xfa\x1b\xa2\xf6\xea\x1f\xe8\x21\x83\xf4\x3b\x06\xb8\xec\x86\x5f\x68\x21\xf8\xd5\xab\x7e\x28\x74\x70\xdb\xfd\x6b\x0e\xbc\x26\xf5\x46\xaf\xb2\xc8\x50\xf9\xf1\x30\x6d\x93\x6f\x52\xe2\x84\x9a\x4a\x66\x29\xb0\xef\x14\xed\x46\x20\xb8\x5f\x4b\xa0\x89\x4e\x54\x2f\x07\x8f\x4b\xd3\xb5\xfa\xce\x93\x49\x7b\x3d\xd7\x13\x9c\x00\x3b\x39\xfe\x6c\x55\x92\x7c\x37\xc0\xb6\x8b\x66\x9b\x04\xf0\x19\x55\x51\x7c\x01\x77\x08\x02\xe9\x66\xcf\x1f\xbf\x00\xa3\xa4\xe4\xa5\xea\x01\xa5\x5e\xc9\x4d\x55\x9e\x11\xe9\x6f\x78\x37\x5c\xbe\xb9\xb0\x7f\x35\x9f\x77\x19\x11\x0e\x0f\x13\x91\x33\xb2\xb5\xf5\xb9\xcc\x1d\x37\xcf\xe7\x2e\xc3\x1d\x1e\x42\xd6\xc4\x14\xc5\x47\x9e\xe7\xb9\xfd\x98\x4e\xad\xc4\xc4\xad\x58\x31\xb1\xc4\xd2\x16\xea\x34\xd8\x96\xcd\x76\x2c\x13\x25\x98\x15\x2a\x5f\x48\xdf\x1b\x4b\x41\x4c\xa2\xd9\x5b\xff\xf1\xc7\x70\x76\x6e\xbb\x2b\x8c\x57\x11\x5d\x33\xf5\xe4\x6f\x78\x7c\x4d\x99\xfd\x00\x6f\x2f\xe3\x2b\x2a\xab\x89\xb0\x21\xef\x4d\xe5\x60\xd9\x2e\xfd\x15\xa1\x71\x7e\x6c\x57\xfb\x51\x54\x0f\x8d\x59\x02\xa3\x58\x2d\x70\xf3\x2f\x9a\xda\xec\x8a\x6d\xc5\xce\x1c\x8c\xc3\xa6\x2e\x99\xc1\xc4\xdc\x7f\xa3\x46\xb2\x46\x8a\xd2\x9d\x85\xe6\xd4\x95\x42\xbd\x1f\xda\x8a\x0f\x5c\xb8\xd4\xc0\xa5\x48\xc0\x3e\x5e\x62\x74\xda\xfc\xfc\x95\xdd\x10\x1b\x8b\x7b\xbb\x19\xb9\x1d\x46\x92\x10\x77\x33\x73\x29\x31\x8f\xf4\xbe\x8b\xb5\xa3\x8d\x98\xbb\xa6\x48\x3b\x96\xff\x70\x3c\xa4\xe8\x31\x9d\xc2\x07\xa6\x6e\xe8\x78\x8f\x8c\xd0\x58\x92\x69\xef\xbf\xd6\xa2\x80\xf7\x5c\x1b\xdd\xcb\x5f\xa9\x83\xbd\x83\x23\xeb\x29\xfb\x1d\xd0\xc1\x6d\x1f\xc6\xf6\x8e\x1a\xcc\x72\x93\xc9\x64\xef\xa0\x5d\x60\x3e\x04\xf4\xdb\x14\xa2\x52\x35\x9d\xf5\xbd\x9d\xee\x62\x58\x55\x81\x54\x7c\xc9\x05\xab\x28\xa0\x51\x19\x8e\x7a\xa0\x96\x10\x01\x2a\xf5\x56\xf3\x5c\xc6\x76\xf9\x9a\xc2\xc1\xf6\x5b\xc2\x1e\xcd\x40\x01\xb7\x3f\xbb\x85\x85\x57\x1b\xd6\x1a\x49\xd4\x36\x96\x17\x4a\xae\xc9\x3f\xda\x55\xf6\x21\x18\x76\xd5\xa6\xe9\x01\xf6\x9e\xd8\x7b\x7a\x82\x8d\x28\x71\xc1\x05\xee\x61\xe2\xee\x0f\xf6\x46\xde\xcb\x18\x35\x37\x3f\xcf\x44\xda\x6e\x66\x69\xf2\x8f\x53\x7f\x67\xec\x24\x45\x26\x59\x3f\xa2\x4b\x7d\xee\x7c\x41\x8a\x6f\xd1\xd5\xc5\xe4\x18\x28\xf7\x76\x77\xc9\xa0\x69\x8f\xd6\x0b\xcf\xe1\x72\xe1\xf7\x29\x16\x5e\x58\x2a\xec\x2a\x14\xe2\x32\xa1\x5f\x24\xa4\x65\xc1\x5f\xd0\x40\xb1\x51\xca\xae\xb6\x51\x47\x76\x87\x70\x23\xe4\x5d\x07\x50\x70\x8d\x05\xdb\x68\xb4\xc5\x03\x1d\xc7\x60\xd9\xcb\xa8\xec\x5a\xde\x62\xde\x2b\x1f\x3c\xf3\x2b\x26\xf4\x1d\xa9\x64\x2f\xb2\xa4\xb9\xe8\x02\x4d\xfb\x7a\x2b\xcc\x48\x65\x02\xca\x7d\xc0\x7c\x3b\xbc\xef\x68\x9f\x82\x75\xbb\xe2\x3d\x02\xfd\x78\xd9\xdf\x5b\xa4\x1c\x26\x71\x12\xec\x79\x45\xb4\xfe\xc9\xe0\x53\xb4\xde\xe6\x06\x7a\x72\x4e\x76\xe5\xcf\xfd\x55\x9f\xdf\xb6\x35\x8b\x2d\xe4\xba\xae\x90\xf6\x46\xae\x04\x5b\x54\x6c\x69\xdd\x5f\xa3\xc9\x13\x95\x0e\x39\x39\x6d\xf0\xf0\xde\x3c\xbb\x4c\x7f\x79\x65\xff\xdb\xe7\x9f\xcd\x86\xf1\x79\x7e\x61\xb9\xb2\x9f\x9f\x2b\x20\x9f\xb7\x83\xdd\x3e\xce\x1d\xb4\x3f\x97\xa2\x28\x93\xdb\x7c\xd4\xba\xa2\x40\xd9\xfa\x4d\x93\xd2\xa3\x51\xf4\xa0\xa5\x42\x03\x3c\xf0\xb0\xc0\xd3\x8f\x81\xc3\xbb\x39\x1c\x1d\x03\xff\xe1\x87\x5d\x58\x32\xe0\xa3\xfc\x32\x45\x82\xc0\xfd\x77\x96\x00\x31\x95\xb3\xec\xb5\x42\x76\xd3\xdf\x81\x04\x33\x35\xb7\x8f\xbe\x69\x1c\x64\xf9\x34\xad\xa7\x86\x48\x74\xf8\x7b\x40\xe3\x8b\x80\x71\x17\x2c\x3e\x0f\x84\x17\x37\xbc\xb6\xde\x50\xa0\xd6\x5c\x2c\xad\xc2\x84\x6c\x5f\x01\x18\xd9\x94\xd9\xb1\x4a\x5f\x91\xa3\xdb\x22\xde\x39\x94\xfd\xe5\x1c\x7a\xe0\xe0\xa9\xab\xad\x1d\x31\x5f\x40\x7b\xd8\x99\xf0\x1d\x74\xe2\xf8\x78\xc5\xac\xb8\xb8\x19\xd1\xf5\x69\xd7\x26\x65\xd5\x3b\x70\xd9\xe9\xfb\x83\x85\x5f\x36\x48\x4c\xe7\x04\xf9\xc0\x16\xbf\x9c\xed\xaa\x4f\x06\xcf\xcf\x60\xe8\xc4\xac\x5f\x24\xc6\x4f\x31\x9e\x59\xc6\x60\x08\x87\xbf\x07\x21\x91\x0c\x17\x5e\xbc\x07\x3a\x1e\x40\x38\x42\x44\xda\xa7\xbd\x10\xfa\x52\x3d\x76\x15\x68\x0e\xff\x3a\x00\x8c\xdd\xd4\x13\x6d\x98\x32\xfa\x3f\xb8\x59\x65\xa3\xff\x52\xe9\x9d\xce\xbe\x49\x69\xb8\xc2\xba\x62\x05\xd2\xd8\xb1\x9d\xef\x99\x50\x7d\x91\xb2\x5f\x04\xe8\xbd\x98\x42\x51\xf6\xaa\x8b\xf6\xcd\x9e\x0a\x88\x93\xe2\x2d\x9e\x3c\x3c\x95\x6f\xee\x34\x50\x25\x97\x0c\x16\x62\x64\x85\x13\xba\x07\xc8\x46\x7f\xa6\x3b\x24\xf7\x18\x4b\xe9\x36\x03\xce\x46\x63\xb0\x43\x07\xce\xf9\xe3\x03\x75\xf4\x37\xe3\x19\xde\x26\x47\xe3\xc1\xcd\xb9\xed\xec\x38\xf5\xb1\xa7\x7d\x59\xd4\x09\x1d\x5e\xc1\x44\x9c\xa8\x2b\x7c\xdd\xd6\x3d\xd2\x3e\x6d\x1f\x9b\x84\x5b\x71\x4a\x31\x0b\x5e\x21\x6c\xea\x4a\xb2\x72\xf0\xd1\x7f\x30\xd4\xce\xea\x8a\xfc\xee\x71\x32\xbd\x09\x8a\xff\x0c\x20\xfc\x8e\x9f\xfc\x74\xed\xfe\x65\x8f\xd8\xac\xaf\x1d\x4a\x87\xef\x78\x3a\xb2\xf6\xc1\x4e\xc0\x71\xe0\x85\xf4\xce\xbf\x22\x08\x5e\xd6\x0c\x3e\xd6\x3f\x0f\x5f\x8b\x0d\xfe\x41\x44\xc1\xaa\x6a\x50\x2f\xe1\x23\xb2\xc1\xbf\x88\x08\xde\x5e\x9d\xcc\x52\x5d\x7e\xbd\xec\x8b\x41\x20\x9c\xcc\x3c\x6e\x9e\xd3\x23\x37\x2b\x54\xc0\x9a\xeb\x16\xe9\x7f\x3b\x81\x4b\xf7\xde\x2b\x79\x68\xef\xd8\xda\xca\xf0\xc9\x0f\xa3\x9f\xed\xa3\x8c\x44\x60\xfb\xef\x59\xa1\x1b\x47\x6f\x1c\x6b\xef\x13\xf1\xbe\xd6\xdc\xf3\x6f\x12\x61\x25\xb5\x89\x8c\xd5\x7b\x55\x3f\x64\x6a\xff\x80\x65\xd7\x5f\x78\x6c\x0f\xfe\x27\x00\x00\xff\xff\x8a\x35\xc3\x81\x52\x33\x00\x00")
+var _libsuiAgentTs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x3b\x5d\x73\x23\x37\x72\xef\xfa\x15\xbd\x2c\x95\x42\x6e\x68\x52\xeb\xbb\xcb\x03\x65\xae\xac\xd2\xfa\xce\xba\xd4\xda\x5b\xd6\x5e\xa5\x52\x1b\x95\x16\x9a\x69\x8a\xb0\x86\xc0\x18\x00\xf5\x11\x8a\xff\x3d\x85\x06\x30\x03\x60\x86\x94\x9c\xb8\x52\xa7\x17\x71\x1a\x8d\x46\xa3\xbf\x1b\x98\x99\xbe\x7d\x7b\x00\x6f\xe1\x3f\x99\x84\xb3\x0b\x38\xbb\x45\x61\xe0\xd3\x5a\x21\xfc\x9d\xdd\xb3\xcb\x42\xf1\xda\xc0\xe5\x87\x7f\xb7\x38\xdf\xb3\xb5\x59\x4a\x05\x1f\xd9\xe3\x77\x2b\xf6\xf8\x3d\xff\xed\x8e\x4d\x0a\xb9\x7a\x4f\x83\x2b\xc6\x85\x61\x5c\xa0\x82\xa5\x31\xb5\x9e\x4d\xa7\x4f\x4c\xb2\xba\xd6\x16\xe7\x00\xde\x4e\x0f\x0e\xfc\x62\x1f\x51\x6b\x76\x8b\xa0\x8d\x5a\x17\xc6\x2e\xb6\x90\x0a\x18\xad\xad\x50\xd7\x52\x68\xd4\x34\x83\x0b\x83\x6a\xc1\x0a\x74\x9c\x85\x89\x9b\x03\x00\x83\x8f\x66\x66\x49\x70\x71\x7b\x62\x9f\x9f\x6a\x3c\x8d\x01\xa5\x14\x16\x70\x23\x65\x85\x4c\x58\x08\xd7\xd7\x02\x65\x0a\x63\x5a\x73\x6d\x98\x30\xd7\xbc\x4c\xa6\xb7\x03\x82\xad\x70\xc7\x10\xbb\x67\x86\xa9\x64\xb0\x56\xb2\xd6\xa7\x33\xf8\x05\x0b\xa9\xca\xef\xdc\xc0\x18\x98\x78\x7a\x4f\x6c\x4a\x59\xe5\x4b\x09\x7c\x48\x99\x2a\xb1\x32\x2c\x05\xd5\x0a\xef\xb9\x5c\xeb\xeb\x1d\x0c\x6f\x1b\xe9\x7e\x90\x02\x01\xef\xad\x30\x4b\x66\x58\x2b\x65\x92\xa8\x15\x93\x13\xa6\xc5\xfb\x60\x11\xe6\x89\x70\xbf\x5c\x9d\x34\xa4\x7e\x20\x2a\x4b\x26\xca\x0a\x15\x2c\xd6\xa2\x30\x5c\x0a\x12\x75\xae\x1f\x3f\xfb\x47\x8f\x6b\x35\x34\x5c\x39\xd8\x2c\xa1\x3f\x9a\xc1\xbd\xe4\x25\x71\xdc\x4e\xb7\xcc\xf4\xcd\xd5\xb3\x94\xd9\x78\x76\xc2\x24\xf1\x04\x66\xc9\x0c\x14\x4c\xc0\x0d\x42\xc5\xb5\x41\x81\x25\x18\x99\xed\xdc\xcd\x98\xc3\xc0\x2f\x32\x80\x67\x18\x58\x73\x19\xec\xd8\xba\x06\x45\xda\xa4\x55\xb2\x8d\x13\xe2\x8f\x01\xcf\xf2\xee\xa9\x9e\xce\x32\xa1\x44\x46\x19\x6d\x97\xb6\x52\x54\x4c\x6b\xef\x7d\x1b\xd2\x36\xbf\x67\x06\x61\x29\xb5\x49\x8d\xcb\xc1\x8d\xbc\x43\xd1\x37\x40\x7a\xd7\xb3\x94\xab\x18\x21\x36\x9f\x3e\x02\xc5\x92\x75\x5c\xa1\x21\x1e\x08\x5f\xca\xb5\x2a\x10\x9e\x41\xac\xab\x2a\x99\x2d\x85\xf3\xcb\x1d\xd6\x1f\xf0\x34\xaf\x50\x98\xd6\xc2\x61\x0e\x0b\x56\x69\x8c\x71\x96\x5c\x1b\xa9\x9e\xae\xef\xb9\xe6\x37\x15\xf6\x21\x1f\x00\x90\xba\x00\xde\x7a\xe1\x15\x52\x38\x7b\x97\xca\x81\xbf\xaf\x99\x62\x2b\x90\x35\x59\xae\x43\xe2\x82\x1b\xce\x2a\xfe\xdf\x8c\x80\x6e\x4c\x13\xfe\xf4\x00\x62\x1a\xc3\x3e\x71\x8d\xfd\x0c\x6f\x9a\x3f\xd3\xc3\x88\xf4\x06\x60\x96\x5c\x4f\xac\xda\x60\xee\xd1\xdc\xd3\xf3\x33\x0c\xa6\xac\xe6\xd3\xeb\xeb\x27\x26\xa7\x02\xe5\xe0\xa4\x9d\x40\xfa\x6c\x67\xd0\x63\x34\xec\xb4\x0a\x73\xd8\x6c\x23\x68\xcc\x1b\xcc\x13\xcd\x46\x58\x5e\xa1\x2d\x71\x0f\x88\xc9\x5b\xd2\x41\x95\x61\x9a\xd3\x64\x34\xcd\x03\x9e\x9f\x89\x0b\xc2\x9c\x4e\xe1\x12\x8d\xd7\x26\xac\x64\x89\x63\x28\x71\xc1\xd6\x95\x01\xae\xc1\xa8\x35\x12\x1e\x5f\xc0\xd0\x93\xf1\xb8\x6f\xe6\x73\x58\x8b\x12\x17\x5c\x60\x19\x64\xe7\x97\xf6\x28\x73\x0f\x03\x48\xa7\xce\xe7\x73\xa2\x0c\xcf\xcf\x7b\x30\x06\x16\x65\xb0\x1f\xe7\xdd\x0b\x24\xde\x0d\x9a\x51\x80\x53\x67\x74\x11\x64\x46\x6c\x38\x99\x6d\x13\x81\x78\xd3\x05\x6f\xba\x5d\xc9\xb4\xa4\x22\xd1\x64\x06\xbf\x57\x46\x39\x6e\x47\x58\x1d\x84\xdd\x52\xeb\x43\xdd\x29\xbe\x3e\xe4\x3e\x39\xf6\x12\xcd\x04\xda\xd8\x47\x90\x67\x13\x03\xac\x40\xbd\x50\x1b\x07\xff\x1b\x0a\x54\x14\xc2\x28\x48\xc1\xc5\x07\xef\xe1\x0a\xcd\x5a\x09\x0d\x67\xb0\x16\xfc\xb7\x35\x86\x61\xe0\x02\xcc\x92\x8a\x8b\x15\x33\x20\x17\x2e\xb8\x7d\x31\x7c\x85\xda\xb0\x55\x7d\x75\xfd\x45\x31\x51\xca\xd5\x55\xe3\xfb\x21\xf8\xac\xd8\x1d\x9e\x2f\x99\xb9\xf8\x30\x1c\x05\xbf\xf7\x1a\xa0\xf0\x00\x6e\x22\xcc\xe1\x23\x33\xcb\x89\x7b\x1a\x8e\x26\x46\x5e\x12\xee\xf0\x4f\xff\x36\x9a\xe8\xf5\x8d\x9b\x39\xfc\x76\x0c\xef\xfe\x32\x3a\x89\xe6\x93\x3b\x7f\x60\x06\x27\x42\x3e\x0c\xfd\x90\xdb\x09\x7c\x25\x3e\x0f\x37\x46\x6f\xaf\x0f\x37\x8e\xf6\xf6\xeb\x49\x47\x22\xbf\xe0\xad\xcd\x71\x0a\x98\xf0\x09\xdf\xe7\xab\x24\xf4\xb9\x91\x36\x4b\x82\x91\x3e\x37\x52\xd9\x35\x6c\xb3\xa0\x54\x3e\x0d\x8e\x12\x02\x21\xff\xff\xb5\xc9\xff\xd2\xc3\x48\xbc\x44\x3f\x53\xc5\xe7\x25\x36\xb1\xd6\xc6\xa4\xc2\x95\x78\xc5\x92\x71\xc1\xc5\x6d\x23\xee\x9f\xc5\x77\x3f\x00\x3e\x1a\x14\xa5\x8e\x72\xf3\xfb\x21\x89\x83\x28\xcf\xe0\x87\x31\x3d\x79\x36\x66\xd0\xce\x68\x59\x3f\xcd\x0b\x90\x24\xc7\x1e\x00\x8c\x66\x51\x7a\x75\x6e\xe7\x04\x43\x86\x19\xe8\x64\x5e\xe6\xe2\xee\xc4\x8f\xc2\xbc\x11\x05\xd3\x3d\xb9\x1d\x60\x0b\x58\x69\xcc\x89\x3b\x91\xf6\x52\xb6\x43\x29\xd9\xa4\x32\x08\x8e\xd0\x58\x86\x9d\xdb\xb5\x83\x73\x2b\xe0\x8a\x94\x41\x45\x74\x23\x5e\x37\x30\x1c\x45\x9b\xf6\x01\x3f\x67\x47\x4f\x8a\x4a\x6a\x0c\x86\xd8\x9f\x18\xba\x3e\x79\xce\x2a\xb7\x6e\xe8\x1d\x12\xc3\xe1\xa2\x5e\x1b\xf8\x6c\xb3\x46\x10\xa1\x54\x1e\x2a\x6f\x7e\xc5\xc2\xc0\x03\x37\x4b\x2a\xe5\x81\x89\xd2\xc7\x0e\x56\x01\x33\x86\x15\xcb\x95\x95\x51\x42\x91\xa9\x5b\x0d\x67\x65\xc9\x03\x9e\xba\x5d\x13\x96\xb5\xc9\xda\xd6\x50\x46\xf6\xc8\x81\xe9\x27\x51\x10\xb3\x43\x5a\xdd\xdb\xc2\x85\xfd\x3d\x86\xc9\x64\x62\xe9\xce\x6c\x95\xf2\xe5\x6a\x34\x83\x4f\x4a\xae\xb8\xc6\xef\x6c\xd5\x92\x38\x7d\x56\x94\x36\x15\x33\xcc\xc1\x96\xcd\x16\xb1\x42\x03\x15\xd3\xe6\x2c\x64\x63\x9b\xb5\xbd\x4c\xd3\x62\xc2\xca\xd5\x6a\xdc\x07\x17\x57\x4c\x8d\x3b\xa8\xb6\xfb\x78\x35\xb2\xeb\x47\xf6\xa2\x47\xb9\xfb\x93\x92\x05\x6a\xed\x35\x42\x09\xde\x09\x8d\x76\xe1\x9f\x63\x59\x9d\x3b\xd0\x49\x6b\x4d\x4f\x35\xca\x85\x27\x40\xc6\xee\x56\x8c\xcc\xdd\x93\xb1\x62\xf0\x3d\x9b\xc3\xde\x26\x2e\xf3\x02\xf6\x84\x4c\x64\x1b\x8c\xd3\x2e\xed\xe0\x91\xa1\xc0\xd1\x11\x74\x80\x93\x0a\xc5\xad\x59\xc2\x7b\x38\x6e\x59\x6a\x96\x49\xa6\xcf\x7b\x66\xaf\x58\x3d\x1c\xb6\x80\x11\xcc\xdf\xc3\x70\x13\xe5\x2c\xa7\x9d\x16\x63\x62\x01\xe3\x08\x61\xad\xaa\x64\x7c\xad\xaa\x78\xd8\x0a\x30\x19\xb7\x80\x18\xc1\x73\x7a\xdd\x41\x8c\x07\xe2\x09\x37\x4f\xc6\x1a\x68\x84\x49\x90\x84\xa6\x42\x66\xb0\xbc\x66\x26\xa5\xd8\x80\x63\xe4\x05\xaf\x90\xec\x35\xc2\xf4\xb0\x84\xa6\xab\x2a\x53\x82\x0e\x16\xa3\xa5\x2e\x10\xe1\xc6\x03\xf1\x84\x12\x35\x1d\x42\x50\xbd\x1d\xe1\x47\xf0\x16\x7d\x3b\x6a\xe2\xd7\x36\x2b\xcb\xce\xca\x32\x74\x27\x21\x46\xc4\x06\xef\xfc\xbb\x2d\x7a\x37\x36\x2a\xc4\x85\xf0\xd8\xc5\x9e\xed\x49\x8e\x2e\xcc\x2f\xec\x01\xe6\x80\xa2\x90\x25\xfe\xe3\x97\x8b\x73\xb9\xaa\xa5\x40\x61\x86\x7f\xbf\xfc\xf9\xa7\x89\x73\x08\xbe\x78\x1a\x7a\xf4\xd1\xa8\x43\xe3\xf1\xf7\xd1\x78\xcc\x68\x84\xee\xa1\x6d\x25\xe2\xd1\x50\xd1\x26\xc5\xf5\x69\xa8\xf0\x66\x30\xa0\xaa\x6b\x10\x4f\xe9\x14\x6f\xfd\x45\xe7\x7e\x22\x56\xfb\x17\x65\x98\x1b\xda\x90\xe7\x67\xf7\x1c\x17\x58\xf1\xac\xc6\x0e\x3e\x51\xc0\x9f\xc3\xd7\xa3\xd8\x34\xe6\x87\x9b\x4e\xef\xe3\x4a\xa3\x66\xbb\x86\x99\xb5\xbe\x46\x51\xd6\x92\xd3\xbe\xbf\xfa\x39\xb6\x0f\xdb\x4e\xdd\xf8\xa9\x57\xc6\xfc\x70\xd3\x6a\x71\x7b\xe4\xc5\x1b\xa0\x8f\x0e\x4a\x22\xb5\x2b\xdb\xff\xdb\x23\xbf\x15\x8b\x44\x5b\xdc\x1e\x6e\x52\xae\x53\x86\x76\x71\x72\x5a\x54\x3c\x38\xf0\xfc\x57\xad\xcb\xbb\xa3\xff\x03\x53\x4e\xaf\xf3\xc3\x8d\xfb\xb1\x3d\xca\x94\x35\x3f\xdc\x64\x90\x57\x6e\x24\x36\x0b\xaa\x4b\x7e\x50\x4a\x2a\xea\x37\x6d\x52\x1d\xa2\x7d\xa4\xdc\x49\xd1\xb1\x29\x2b\xd4\x53\x1a\x6f\x75\x7b\xb6\x67\x27\x3f\x30\x6e\x60\x81\xa6\x58\x0e\x33\x8d\x8d\x61\x93\xc6\xaa\x12\x85\x6d\xd7\xf5\x0c\x06\x5c\x14\xd5\xba\xc4\x41\x1c\x21\x96\xc8\x4a\x54\x7a\x06\x1b\x38\x2b\x0a\xac\xcd\x0c\x06\xac\xae\x2b\x5e\x50\x7b\x3f\xfd\x55\x4b\x31\x80\x6d\x1c\x25\xfc\xae\x42\x2a\x09\x7c\x4d\x1c\x27\x94\xc8\xbe\x3d\x3e\xb6\xb6\xda\x3f\xf4\x6e\xe4\x0b\xb2\x88\x90\xdb\x62\xe9\x0e\xd4\xdc\xf6\x9a\xc9\x96\x85\xe1\x68\x52\x30\xbb\xdd\x61\x37\x8b\x34\x07\x65\x5f\x7f\xfc\xfc\xf9\x13\x1c\x6e\xb2\x65\xb7\x5f\xb3\x18\xd7\x3c\xd9\x44\x4d\x1a\xf8\xd8\xd4\xa8\x83\x9f\xd0\x3c\x48\x75\xe7\xe0\x63\xa8\x2b\x64\x1a\x49\x21\xec\x96\x71\x01\x15\x33\xa8\x06\x27\x89\x08\x2c\xdf\xa7\xa1\xd0\x1d\x25\x1a\xc8\xc8\x5b\xcc\x80\xd8\xd2\x88\x2b\x5f\x8b\x1f\x30\x4e\x27\x5e\x65\x7a\x38\xf8\xf3\xf1\xbb\xc1\x68\x2f\xed\xc1\x25\x6a\x6d\x3b\x0c\x7c\xac\xb9\xc2\x72\x06\x9f\x1c\xf3\x95\xbc\xe5\xc2\xb1\x3f\xf8\xbd\x8b\xfe\x69\xff\xa2\xd1\x00\xc0\xc0\x5a\x90\xd6\x50\xa2\xe0\xd1\xf2\xc5\x12\x8b\x3b\x78\x92\x6b\x05\x35\xaa\x15\x27\x26\xb5\x2d\x66\xff\xf7\x8c\xfd\xe5\xf8\xf8\x65\x69\xa8\x7b\x54\xe0\x3d\xcc\xf6\x54\x1a\xd5\x3d\x2f\x90\x0e\x57\x70\x55\x4b\xc5\x14\xaf\x9e\x60\x2d\xd8\x3d\xe3\x15\xbb\xa9\xf0\x77\x8b\xe7\xcf\xbf\x4b\x3c\x17\x0d\x0b\x42\x1a\x58\xc8\xb5\xe8\x95\x52\x21\xc5\x82\xdf\xae\x15\x79\xe0\x3e\x96\x6c\xb9\xe4\x0a\xc7\xcf\x4f\xb5\x0b\x2d\x83\xd7\xb3\x73\x2e\x85\x40\xd7\x93\x2e\x18\xaf\xfa\x35\x26\xbc\x3b\x14\x0d\x72\xcc\x50\xee\xc0\xab\xb4\x8d\x9c\xc7\xed\xda\x97\xa6\x4f\xbc\xda\xd5\x01\x06\x7f\x4a\xc9\xa4\x3b\x4a\xc7\x92\x40\x10\xae\x35\xe2\x4d\x8f\xd3\x71\xaa\x03\x07\x84\x30\x48\x87\xdc\xf5\x86\x3b\x95\x4a\x47\x6c\x9b\xd9\x85\x6f\x47\xb1\x1c\x82\x82\x28\x48\x81\x0f\xca\xa4\x90\x51\x27\x90\xff\x73\x08\x89\xfc\xc3\x9a\x62\x64\xfe\x3b\xc3\xdd\xff\xaf\x14\x93\x4e\x2b\x4e\x85\xa1\x3d\xf4\xf5\x7c\xd2\x9f\x25\xbd\x76\x53\x3d\x50\x0b\x8e\x0f\xf1\xc1\xfb\x30\x4a\x95\xd4\x41\x9f\xc7\x49\x92\x4e\xf9\xb6\x3d\x8d\x3c\xea\x26\x71\xa0\x9e\x48\x21\x6b\xaa\x1a\x5d\x3e\xda\x34\xcd\x15\x8d\xb5\x47\x1e\xc3\x8d\x4b\x6a\x5b\x9b\x60\xed\xaf\x86\xeb\x6d\x92\xf0\xf3\x94\x1f\x36\xe0\x4e\xdf\xb0\xbc\xf6\xa9\x91\x0a\xda\x9a\x29\x8d\x94\x74\x22\xe9\x39\xa3\x78\x93\x4c\xe8\x49\xb4\x7f\xa0\x11\xfa\x15\x73\x3b\xdc\xb9\x64\x66\x85\xee\x2a\x2f\x35\x92\x1b\xbc\xe5\xa2\x6b\x6c\x29\x04\x45\x36\x8b\x3a\x8c\x04\x42\xd7\x88\x5d\xfb\x4b\x21\xbb\x9a\xa6\xfc\xfc\x60\xd7\x98\x3b\x2e\x48\x47\x05\x3e\xcc\x9c\x13\x3c\x64\xcb\x63\x65\x58\x62\xf9\x30\x4f\xb5\x9b\x48\x6c\x3a\x05\x27\x50\x60\x2e\x42\x07\x93\x72\x77\x68\xcd\x5f\x38\x46\x70\x59\xc0\xe1\x66\x29\xa0\x11\x3f\xb5\xdb\xba\x66\x85\xf5\x73\xc5\x57\x4c\x3d\x8d\xc9\x26\xaf\xb9\xc1\xd5\xd8\xaf\x34\x06\x7c\x34\x8a\x59\xfe\x12\x22\x5e\xa8\xe1\x06\x23\x1e\xb0\x4c\x78\x36\x8f\x8e\xe0\x4c\x29\xf6\x34\xe1\x9a\xfe\x7b\xf8\x28\x67\xa9\x69\x58\x68\xb8\xcd\xda\x39\x56\x88\x56\xe1\xf2\x64\x90\xc5\x1b\x68\xc3\x91\xdf\x7c\x77\x9c\xf8\x9e\xf5\x90\x86\x56\x22\xb3\xf6\x27\x2d\x63\x4b\xfa\x1e\x52\x10\x04\x37\x0b\x3f\x08\x9b\x97\xbd\xb8\x8d\x6c\x67\xed\x4f\x27\xbf\x3e\x6c\x2f\xfe\x9e\x11\x52\x48\x77\xa0\x87\xca\xee\xf0\x0b\x4d\x08\x7e\xf3\xa6\xeb\x0a\x6d\xb8\x6d\xff\xc2\x71\xdd\xa4\x5e\xeb\xe5\x30\x51\xd4\xe8\xa4\x1f\x37\xe4\x9b\x1c\x39\xc3\xa6\x92\x59\x0a\xec\x1a\x45\xd3\x08\x44\x17\xda\x59\x68\xa2\xf3\xe0\xab\xde\xc3\xde\x7c\xaf\x7e\xf0\x74\xd2\xdc\x87\x77\x18\xa7\x80\x9d\x1d\xde\x36\x22\xc9\x9e\x43\x60\xdb\x85\xb3\xcd\x1c\xf8\x9c\xaa\x28\xbe\x80\x07\x04\x81\x74\x95\xee\x0f\x8f\x80\x51\x52\xf2\x5c\x75\x02\xa5\x5e\xca\x75\x55\x9e\x13\xea\x4f\xf8\xd0\x5f\xbe\x39\xb7\x7f\x33\x9f\xb7\x19\x11\x8e\x8e\x32\x96\x87\xa4\x6b\x6b\x73\x43\x77\x58\x1e\xee\xb1\x8e\x8e\x60\x18\x7c\x8a\xfc\x63\x34\x1a\x8d\xec\xc3\x74\x6a\x39\x26\x6a\xc5\x92\x89\x5b\x2c\x6d\xa1\x4e\x93\xfd\x9d\x24\x9d\x35\x9b\x25\x2a\x5f\x48\x3f\x1a\x8b\x41\x44\x92\xd5\x1b\xfb\xf1\x87\x88\x76\xed\xe3\xf8\xae\x8b\x18\x4c\xae\x61\x3b\xfc\x07\x1a\x5f\x72\x62\xdf\xc0\xbb\xab\xf4\x0a\xd7\x4a\x22\x06\x8c\x3a\x4b\xb9\xb0\x6c\xb7\xfe\x86\xa2\xf1\xe8\xc4\xee\xf6\x67\x51\x3d\x05\xb5\x44\x4a\xb1\x52\xe0\xe6\x5f\x34\xc1\xec\x8e\x6d\xc5\xce\x5c\x18\x87\x75\x5d\x32\x83\x99\xba\xff\x41\x40\xd2\x46\x1e\xa5\x5b\x0d\xcd\x69\x28\x0f\xf5\x7e\x6a\xc3\x3e\x70\xe1\x52\x03\x97\x22\x0b\xf6\xe9\x16\x93\xb3\xf2\x97\xaf\xb4\xfb\xc8\xd8\xb8\xb7\x9b\x90\xeb\x30\xb2\x84\xb8\x9b\x98\x4b\x89\xa3\x44\xee\xbb\x48\x3b\xdc\x84\xb8\x03\x25\xd2\xb1\xf4\xfb\xfd\x21\x8f\x1e\xd3\x29\x7c\x64\xea\x8e\x0e\x27\x49\x09\x41\x93\x4c\x7b\xfb\xb5\x1a\x05\x7c\xe4\xda\xe8\x4e\xfe\xca\x0d\xec\x3d\x1c\x5b\x4b\xd9\x6f\x80\x2e\xdc\x76\xc3\xd8\xde\x59\xbd\x59\x6e\x32\x99\xec\x9d\xb4\x2b\x98\xf7\x05\xfa\x6d\x1e\xa2\x72\x31\x9d\x77\xad\x9d\x6e\x92\x58\x55\x81\x54\xfc\x96\x0b\x56\x91\x43\xa3\x32\x1c\x75\x4f\x2d\x21\xa2\xa8\xd4\xd9\xcd\x4b\x19\xdb\xe5\x6b\x72\x07\x3b\x6e\x11\x3b\x38\x3d\x05\xdc\xfe\xec\x16\x17\x5e\x8d\x5b\x6b\x24\x56\x1b\x5f\x5e\x28\xb9\x22\xfb\x68\x76\xd9\x0d\xc1\xb0\xab\x36\xcd\x8f\xdf\xf7\xf8\xde\xf3\x73\xfb\xea\xc1\x6e\x22\xee\xf6\x63\xaf\xe7\xbd\x8e\x50\xb8\xb7\x7a\xc1\xd3\x76\x13\xcb\x93\x7f\x9a\xfa\x5b\x65\x67\x29\x32\xcb\xfa\x09\x5e\x6e\x73\x17\x0b\x12\x7c\x13\x5d\x9d\x4f\x8e\x81\x72\x6f\x7b\x13\x0e\x9a\x7a\xb4\x8e\x7b\xf6\x97\x0b\x7f\x4c\xb1\xf0\xca\x52\x61\x57\xa1\x90\x96\x09\xdd\x22\x21\x2f\x0b\xfe\x86\x06\x8a\xb5\x52\xf4\xd2\x8f\x17\xc7\xf0\x01\xe1\x4e\xc8\x87\x36\x40\xc1\x0d\x16\x6c\xad\xd1\x16\x0f\x74\x1c\x83\x65\x27\xa3\xb2\x1b\x79\x8f\xa3\x4e\xf9\xe0\x89\x5f\x33\xa1\x1f\x48\x24\x7b\x23\x4b\x9e\x8b\x2e\xd1\x34\xaf\x4b\xc6\x19\xa9\xcc\x82\x72\x37\x60\xbe\xeb\xef\x3b\x9a\x77\x2f\xdb\xae\x78\x0f\x43\xdf\x5e\x75\x7b\x8b\x9c\xc2\x24\x4d\x82\x1d\xab\x48\xf6\x3f\xe9\x7d\xf7\xb3\xd3\xdc\x40\x87\xcf\xc9\xae\xfc\xb9\xbf\xea\xf3\x6d\x5b\xd8\x6c\x21\x57\x75\x85\xd4\x1b\xb9\x12\x6c\x51\xb1\x5b\x6b\xfe\x1a\xcd\x28\x13\x69\x9f\x91\x53\x83\x87\x8f\xe6\xc5\x6d\xfa\xab\x37\xfb\x6f\x9f\x7d\x86\x86\xf1\x65\x7a\x71\xb9\xb2\x9f\x9e\x2b\x20\x5f\xd6\x83\x6d\x1f\xe7\x2e\xb4\xbf\x94\xa2\x28\x93\xdb\x7c\xd4\x98\xa2\x40\xd9\xd8\x4d\x48\xe9\xc9\x2c\x7a\x1d\xa7\x42\x03\x3c\xb2\xb0\xc8\xd2\x4f\x80\xc3\xfb\x39\x1c\x9f\x00\xff\xe6\x9b\x5d\xb1\xa4\xc7\x46\xf9\x55\x1e\x09\x22\xf3\xdf\x59\x02\xa4\x58\x4e\xb3\x37\x0a\xd9\x5d\xb7\x03\x89\x56\x0a\x77\xa7\x1e\x34\x8e\xb2\x7c\x9e\xd6\x73\x45\x64\x32\xfc\x23\x42\xe3\xab\x02\xe3\xae\xb0\xf8\x72\x20\xbc\xbc\xe3\xb5\xb5\x86\x02\xb5\xe6\xe2\xd6\x0a\x4c\xc8\xe6\x1d\x06\x23\x43\x99\x9d\x8a\xf4\x0d\x19\xba\x2d\xe2\x9d\x41\xd9\x5f\xce\xa0\x7b\x0e\x9e\xda\xda\xda\x21\xf3\x05\x34\x87\x9d\x19\xdd\x5e\x23\x4e\x8f\x57\xcc\x92\x8b\xbb\x01\x5d\xc2\xb6\x30\x29\xab\xce\x81\xcb\x4e\xdb\xef\x2d\xfc\x86\xbd\xc8\x74\x4e\x30\xea\x69\xf1\xcb\xd9\xae\xfa\xa4\xf7\xfc\x0c\xfa\x4e\xcc\xba\x45\x62\xfa\x22\xc9\x0b\xdb\xe8\x75\xe1\xf8\x77\x6f\x48\x24\xc5\xc5\xaf\x0d\x44\x32\xee\x89\x70\x14\x11\xa9\x4f\x7b\x65\xe8\xcb\xe5\xd8\x56\xa0\x23\xf8\xd7\x9e\xc0\xd8\x2e\x3d\xd1\x86\x29\xa3\xff\x83\x9b\xe5\x70\xf0\x5f\x2a\xbf\xd3\xd9\xb7\x28\x4d\x57\x58\x57\xac\x40\x9a\x3b\xb6\xeb\xbd\xe0\xaa\xaf\x12\xf6\xab\x02\x7a\xc7\xa7\x50\x94\x9d\xea\xa2\x79\xe3\x50\x45\xc8\x59\xf1\x96\x2e\x1e\x9f\xca\x87\x3b\x0d\x54\xd9\x25\x83\x0d\x31\xb2\xc2\x09\xdd\x03\x0c\x07\x7f\xa5\x3b\x24\xf7\x2a\x99\xd2\x4d\x06\x9c\x0d\xc6\x60\xa7\xf6\x9c\xf3\xa7\x07\xea\xe8\x6f\xc6\x87\x78\x9f\x1d\x8d\x47\x37\xe7\x76\xb0\xa5\xd4\x8d\x3d\xcd\x7b\x51\x2d\xd3\xf1\x15\x4c\x42\x89\x86\xe2\x77\xf3\xda\xaf\x22\xce\x9a\x57\x65\xe2\x56\x9c\x52\xcc\x82\x57\x08\xeb\xba\x92\xac\xec\xfd\xca\x26\x9a\x6a\x57\x75\x45\x7e\xfb\x35\x00\xbd\xd1\x94\x7e\x77\x13\x3f\xa7\x2f\x2c\xb5\x70\xff\x5e\x92\x58\xaf\x6e\x5c\x94\x8e\xdf\x42\x6a\xd1\x9a\xd7\x8d\x22\x8a\x3d\x9f\x24\xec\xfc\x6c\x27\x7a\x2f\xa8\xf7\xeb\x98\x8b\xf8\x5d\xb7\xde\x2f\x90\x0a\x56\x55\xbd\x72\x89\x5f\x81\xeb\xfd\x04\x29\x7a\x73\xec\x74\x96\xcb\xf2\xcb\x55\x97\x0d\x0a\xc2\xd9\xca\xe3\xf0\xfd\x0a\x72\xb3\x44\x05\x2c\x5c\xb7\x48\xff\xdb\x31\x5c\xba\xb7\xd5\xb2\x2f\x5b\x1c\x59\x5b\x19\x3e\xfb\x69\xf4\xb3\x79\x29\x23\x63\xd8\xfe\xbd\xc8\x74\x30\xf4\x60\x58\x7b\x3f\xa1\xe8\x4a\xcd\x7d\x1e\x41\x2c\x2c\xa5\x36\x89\xb2\x3a\x9f\xb1\x74\xbe\x0b\x79\x8e\xaf\xc8\x82\xe5\xec\xfe\x32\xa4\x17\xbd\xcf\x7e\xfc\x9b\x34\xbb\xbe\xd3\xda\x1e\xfc\x4f\x00\x00\x00\xff\xff\x02\x9b\xc2\xb4\x18\x37\x00\x00")
func libsuiAgentTsBytes() ([]byte, error) {
return bindataRead(
@@ -1421,7 +1421,7 @@ func libsuiAgentTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "libsui/agent.ts", size: 13138, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "libsui/agent.ts", size: 14104, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1441,7 +1441,7 @@ func libsuiIndexTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "libsui/index.ts", size: 13049, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "libsui/index.ts", size: 13049, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1461,7 +1461,7 @@ func libsuiUtilsTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "libsui/utils.ts", size: 5959, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "libsui/utils.ts", size: 5959, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1481,7 +1481,7 @@ func libsuiYaoTs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "libsui/yao.ts", size: 4338, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "libsui/yao.ts", size: 4338, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1501,7 +1501,7 @@ func publicIndexHtml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1521,7 +1521,7 @@ func uiIndexHtml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1541,7 +1541,7 @@ func xgenSetupIndexHtml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "xgen/setup/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "xgen/setup/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1561,7 +1561,7 @@ func xgenV09IndexHtml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "xgen/v0.9/index.html", size: 14, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "xgen/v0.9/index.html", size: 14, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1581,7 +1581,7 @@ func xgenV10IndexHtml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "xgen/v1.0/index.html", size: 50, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "xgen/v1.0/index.html", size: 50, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1601,7 +1601,7 @@ func xgenV10Layouts__indexAsyncJs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "xgen/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "xgen/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1621,7 +1621,7 @@ func xgenV10UmiJs() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "xgen/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "xgen/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1641,7 +1641,7 @@ func yaoDataIcons404Png() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1661,7 +1661,7 @@ func yaoDataIconsIconIcns() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1681,7 +1681,7 @@ func yaoDataIconsIconIco() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1701,7 +1701,7 @@ func yaoDataIconsIconPng() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1721,7 +1721,7 @@ func yaoDataIndexHtml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1741,7 +1741,7 @@ func yaoFieldsModelTransJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14938, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14938, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1761,7 +1761,7 @@ func yaoLangsEnUsJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1781,7 +1781,7 @@ func yaoLangsZhCnGlobalYml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1801,7 +1801,7 @@ func yaoLangsZhCnLoginsAdminLoginYml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1821,7 +1821,7 @@ func yaoLangsZhCnLoginsUserLoginYml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1841,7 +1841,7 @@ func yaoLangsZhHkGlobalYml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1861,7 +1861,7 @@ func yaoLangsZhHkLoginsAdminLoginYml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1881,7 +1881,7 @@ func yaoLangsZhHkLoginsUserLoginYml() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -1901,7 +1901,7 @@ func yaoReleaseAppYaz() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "yao/release/app.yaz", size: 181682, mode: os.FileMode(420), modTime: time.Unix(1746678055, 0)}
+ info := bindataFileInfo{name: "yao/release/app.yaz", size: 181682, mode: os.FileMode(420), modTime: time.Unix(1746705917, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
diff --git a/neo/api.go b/neo/api.go
index 0121afa7..6c8d0c08 100644
--- a/neo/api.go
+++ b/neo/api.go
@@ -134,15 +134,6 @@ func (neo *DSL) API(router *gin.Engine, path string) error {
// curl -X GET 'http://localhost:5099/api/__yao/neo/mentions?keywords=assistant&token=xxx'
router.GET(path+"/mentions", append(middlewares, neo.handleMentions)...)
- // Generation endpoints
- // Generate custom content example:
- // curl -X GET 'http://localhost:5099/api/__yao/neo/generate?content=Generate+something&type=custom&system_prompt=You+are+a+helpful+assistant&chat_id=chat_123&token=xxx'
- // curl -X POST 'http://localhost:5099/api/__yao/neo/generate' \
- // -H 'Content-Type: application/json' \
- // -d '{"content": "Generate something", "type": "custom", "system_prompt": "You are a helpful assistant", "chat_id": "chat_123", "token": "xxx"}'
- router.GET(path+"/generate", append(middlewares, neo.handleGenerateCustom)...)
- router.POST(path+"/generate", append(middlewares, neo.handleGenerateCustom)...)
-
// Generate title example:
// curl -X GET 'http://localhost:5099/api/__yao/neo/generate/title?content=Chat+content&chat_id=chat_123&token=xxx'
// curl -X POST 'http://localhost:5099/api/__yao/neo/generate/title' \
@@ -238,6 +229,24 @@ func (neo *DSL) handleChat(c *gin.Context) {
ctx = chatctx.WithAssistantID(ctx, assistantID)
}
+ // Set the silent mode
+ silent := c.Query("silent")
+ if silent == "true" || silent == "1" {
+ ctx = chatctx.WithSilent(ctx, true)
+ }
+
+ // Set the history visible
+ historyVisible := c.Query("history_visible")
+ if historyVisible != "" {
+ ctx = chatctx.WithHistoryVisible(ctx, historyVisible == "true" || historyVisible == "1")
+ }
+
+ // Set the client type
+ clientType := c.Query("client_type")
+ if clientType != "" {
+ ctx = chatctx.WithClientType(ctx, clientType)
+ }
+
err := neo.Answer(ctx, content, c)
// Error handling
@@ -485,7 +494,7 @@ func (neo *DSL) handleChatLatest(c *gin.Context) {
// Create a new chat
if len(chats.Groups) == 0 || len(chats.Groups[0].Chats) == 0 {
- assistantID := neo.Use
+ assistantID := neo.Use.Default
queryAssistantID := c.Query("assistant_id")
if queryAssistantID != "" {
assistantID = queryAssistantID
@@ -504,7 +513,7 @@ func (neo *DSL) handleChatLatest(c *gin.Context) {
"assistant_id": ast.ID,
"assistant_name": ast.Name,
"assistant_avatar": ast.Avatar,
- "assistant_deleteable": neo.Use != ast.ID,
+ "assistant_deleteable": neo.Use.Default != ast.ID,
}})
c.Done()
return
@@ -530,7 +539,7 @@ func (neo *DSL) handleChatLatest(c *gin.Context) {
chat.Chat["assistant_id"] = neo.Use
// Get the assistant info
- ast, err := assistant.Get(neo.Use)
+ ast, err := assistant.Get(neo.Use.Default)
if err != nil {
c.JSON(500, gin.H{"message": err.Error(), "code": 500})
c.Done()
@@ -573,7 +582,7 @@ func (neo *DSL) handleChatDetail(c *gin.Context) {
chat.Chat["assistant_id"] = neo.Use
// Get the assistant info
- ast, err := assistant.Get(neo.Use)
+ ast, err := assistant.Get(neo.Use.Default)
if err != nil {
c.JSON(500, gin.H{"message": err.Error(), "code": 500})
c.Done()
@@ -583,7 +592,7 @@ func (neo *DSL) handleChatDetail(c *gin.Context) {
chat.Chat["assistant_avatar"] = ast.Avatar
}
- chat.Chat["assistant_deleteable"] = neo.Use != chat.Chat["assistant_id"]
+ chat.Chat["assistant_deleteable"] = neo.Use.Default != chat.Chat["assistant_id"]
c.JSON(200, map[string]interface{}{"data": chat})
c.Done()
}
@@ -659,20 +668,6 @@ func (neo *DSL) handleChatUpdate(c *gin.Context) {
return
}
- // If content is not empty, Generate the chat title
- if body.Content != "" {
- ctx, cancel := chatctx.NewWithCancel(sid, c.Query("chat_id"), "")
- defer cancel()
-
- title, err := neo.GenerateChatTitle(ctx, body.Content, c, true)
- if err != nil {
- c.JSON(500, gin.H{"message": err.Error(), "code": 500})
- c.Done()
- return
- }
- body.Title = title
- }
-
if body.Title == "" {
c.JSON(400, gin.H{"message": "title is required", "code": 400})
c.Done()
@@ -813,155 +808,81 @@ func (r *generateResponse) send(key string) {
// handleGenerateTitle handles generating a chat title
func (neo *DSL) handleGenerateTitle(c *gin.Context) {
- var content string
- if c.Request.Method == "GET" {
- content = c.Query("content")
- } else {
- var body struct {
- Content string `json:"content"`
- }
- if err := c.BindJSON(&body); err != nil {
- // For SSE requests, send error message in SSE format
- if strings.Contains(c.GetHeader("Accept"), "text/event-stream") {
- c.Header("Content-Type", "text/event-stream;charset=utf-8")
- c.Header("Cache-Control", "no-cache")
- c.Header("Connection", "keep-alive")
- msg := message.New().Error("invalid request body").Done()
- msg.Write(c.Writer)
- return
- }
- c.JSON(400, gin.H{"message": "invalid request body", "code": 400})
- return
- }
- content = body.Content
+ // Set headers for SSE
+ c.Header("Content-Type", "text/event-stream;charset=utf-8")
+ c.Header("Cache-Control", "no-cache")
+ c.Header("Connection", "keep-alive")
+
+ sid := c.GetString("__sid")
+ if sid == "" {
+ sid = uuid.New().String()
}
- resp := &generateResponse{
- c: c,
- sid: c.GetString("__sid"),
- content: content,
- }
-
- // For SSE requests, set headers before validation
- if strings.Contains(c.GetHeader("Accept"), "text/event-stream") {
- c.Header("Content-Type", "text/event-stream;charset=utf-8")
- c.Header("Cache-Control", "no-cache")
- c.Header("Connection", "keep-alive")
- }
-
- if !resp.validate() {
+ content := c.Query("content")
+ if content == "" {
+ msg := message.New().Error("content is required").Done()
+ msg.Write(c.Writer)
return
}
- ctx, cancel := chatctx.NewWithCancel(resp.sid, c.Query("chat_id"), "")
- defer cancel()
+ chatID := fmt.Sprintf("generate_title_%d", time.Now().UnixNano())
- // Use silent mode for regular HTTP requests, streaming for SSE
- silent := !strings.Contains(c.GetHeader("Accept"), "text/event-stream")
- resp.result, resp.err = neo.GenerateChatTitle(ctx, resp.content, c, silent)
- resp.send("result")
+ // Set the context with validated chat_id
+ ctx, cancel := chatctx.NewWithCancel(sid, chatID, c.Query("context"))
+ defer cancel()
+ defer ctx.Release() // Release the context after the request is done
+
+ // Set the assistant ID
+ ctx = chatctx.WithHistoryVisible(ctx, false)
+ ctx = chatctx.WithAssistantID(ctx, neo.Use.Title)
+
+ err := neo.Answer(ctx, content, c)
+
+ // Error handling
+ if err != nil {
+ message.New().Done().Error(err).Write(c.Writer)
+ c.Done()
+ return
+ }
}
// handleGeneratePrompts handles generating prompts
func (neo *DSL) handleGeneratePrompts(c *gin.Context) {
- var content string
- if c.Request.Method == "GET" {
- content = c.Query("content")
- } else {
- var body struct {
- Content string `json:"content"`
- }
- if err := c.BindJSON(&body); err != nil {
- // For SSE requests, send error message in SSE format
- if strings.Contains(c.GetHeader("Accept"), "text/event-stream") {
- c.Header("Content-Type", "text/event-stream;charset=utf-8")
- c.Header("Cache-Control", "no-cache")
- c.Header("Connection", "keep-alive")
- msg := message.New().Error("invalid request body").Done()
- msg.Write(c.Writer)
- return
- }
- c.JSON(400, gin.H{"message": "invalid request body", "code": 400})
- return
- }
- content = body.Content
+ // Set headers for SSE
+ c.Header("Content-Type", "text/event-stream;charset=utf-8")
+ c.Header("Cache-Control", "no-cache")
+ c.Header("Connection", "keep-alive")
+
+ sid := c.GetString("__sid")
+ if sid == "" {
+ sid = uuid.New().String()
}
- resp := &generateResponse{
- c: c,
- sid: c.GetString("__sid"),
- content: content,
- }
-
- // For SSE requests, set headers before validation
- if strings.Contains(c.GetHeader("Accept"), "text/event-stream") {
- c.Header("Content-Type", "text/event-stream;charset=utf-8")
- c.Header("Cache-Control", "no-cache")
- c.Header("Connection", "keep-alive")
- }
-
- if !resp.validate() {
+ content := c.Query("content")
+ if content == "" {
+ msg := message.New().Error("content is required").Done()
+ msg.Write(c.Writer)
return
}
- ctx, cancel := chatctx.NewWithCancel(resp.sid, c.Query("chat_id"), "")
+ chatID := fmt.Sprintf("generate_prompts_%d", time.Now().UnixNano())
+
+ // Set the context with validated chat_id
+ ctx, cancel := chatctx.NewWithCancel(sid, chatID, c.Query("context"))
defer cancel()
+ defer ctx.Release() // Release the context after the request is done
- // Use silent mode for regular HTTP requests, streaming for SSE
- silent := !strings.Contains(c.GetHeader("Accept"), "text/event-stream")
- resp.result, resp.err = neo.GeneratePrompts(ctx, resp.content, c, silent)
- resp.send("result")
-}
+ // Set the assistant ID
+ ctx = chatctx.WithHistoryVisible(ctx, false)
+ ctx = chatctx.WithAssistantID(ctx, neo.Use.Prompt)
+ err := neo.Answer(ctx, content, c)
-// handleGenerateCustom handles generating custom content
-func (neo *DSL) handleGenerateCustom(c *gin.Context) {
- var content, genType, systemPrompt string
-
- if c.Request.Method == "GET" {
- content = c.Query("content")
- genType = c.Query("type")
- systemPrompt = c.Query("system_prompt")
- } else {
- var body struct {
- Content string `json:"content"`
- Type string `json:"type"`
- SystemPrompt string `json:"system_prompt"`
- }
- if err := c.BindJSON(&body); err != nil {
- c.JSON(400, gin.H{"message": "invalid request body", "code": 400})
- return
- }
- content = body.Content
- genType = body.Type
- systemPrompt = body.SystemPrompt
- }
-
- resp := &generateResponse{
- c: c,
- sid: c.GetString("__sid"),
- content: content,
- }
- if !resp.validate() {
+ // Error handling
+ if err != nil {
+ message.New().Done().Error(err).Write(c.Writer)
+ c.Done()
return
}
-
- // Additional validations for custom generation
- if genType == "" {
- c.JSON(400, gin.H{"message": "type is required", "code": 400})
- return
- }
- if systemPrompt == "" {
- c.JSON(400, gin.H{"message": "system_prompt is required", "code": 400})
- return
- }
-
- ctx, cancel := chatctx.NewWithCancel(resp.sid, c.Query("chat_id"), "")
- defer cancel()
-
- // Use silent mode for regular HTTP requests, streaming for SSE
- silent := !strings.Contains(c.GetHeader("Accept"), "text/event-stream")
- resp.result, resp.err = neo.GenerateWithAI(ctx, resp.content, genType, systemPrompt, c, silent)
- resp.send("result")
}
// handleAssistantList handles listing assistants
diff --git a/neo/assistant/call.go b/neo/assistant/call.go
index 9865db1b..e69cd594 100644
--- a/neo/assistant/call.go
+++ b/neo/assistant/call.go
@@ -242,7 +242,8 @@ func (obj *objectCall) run(info *v8go.FunctionCallbackInfo) *v8go.Value {
chatCtx.AssistantID = assistantID
chatCtx.ChatID = fmt.Sprintf("call_%s", uuid.New().String()) // New chat id
chatCtx.Silent = options.Silent
- chatCtx.Args = goArgs // Arguments for call
+ chatCtx.ClientType = chatctx.ClientTypeAgent // Set the client type to agent
+ chatCtx.Args = goArgs // Arguments for call
// Define the callback function
var cb func(msg *chatMessage.Message) = nil
diff --git a/neo/context/context.go b/neo/context/context.go
index c4465fdd..c4d6d2f1 100644
--- a/neo/context/context.go
+++ b/neo/context/context.go
@@ -12,24 +12,26 @@ import (
// Context the context
type Context struct {
context.Context
- Sid string `json:"sid" yaml:"-"` // Session ID
- ChatID string `json:"chat_id,omitempty"` // Chat ID, use to select chat
- AssistantID string `json:"assistant_id,omitempty"` // Assistant ID, use to select assistant
- Stack string `json:"stack,omitempty"` // will be removed in the future
- Path string `json:"pathname,omitempty"` // wiil be rename to path
- FormData map[string]interface{} `json:"formdata,omitempty"`
- Field *Field `json:"field,omitempty"`
- Namespace string `json:"namespace,omitempty"`
- Config map[string]interface{} `json:"config,omitempty"`
- Signal interface{} `json:"signal,omitempty"`
- Silent bool `json:"silent,omitempty"` // Silent mode
- Retry bool `json:"retry,omitempty"` // Retry mode
- RetryTimes uint8 `json:"retry_times,omitempty"` // Retry times
- Upload *FileUpload `json:"upload,omitempty"`
- Version bool `json:"version,omitempty"` // Version support
- RAG bool `json:"rag,omitempty"` // RAG support
- Args []interface{} `json:"args,omitempty"` // Arguments for call
- SharedSpace plan.Space `json:"-"` // Shared space
+ Sid string `json:"sid" yaml:"-"` // Session ID
+ ChatID string `json:"chat_id,omitempty"` // Chat ID, use to select chat
+ AssistantID string `json:"assistant_id,omitempty"` // Assistant ID, use to select assistant
+ Stack string `json:"stack,omitempty"` // will be removed in the future
+ Path string `json:"pathname,omitempty"` // wiil be rename to path
+ FormData map[string]interface{} `json:"formdata,omitempty"`
+ Field *Field `json:"field,omitempty"`
+ Namespace string `json:"namespace,omitempty"`
+ Config map[string]interface{} `json:"config,omitempty"`
+ Signal interface{} `json:"signal,omitempty"`
+ Silent bool `json:"silent,omitempty"` // Silent mode
+ ClientType string `json:"client_type,omitempty"` // The request client type. SDK, Desktop, Web, JSSDK, etc. the default is Web
+ HistoryVisible bool `json:"history_visible,omitempty"` // History visible, default is true, if false, the history will not be displayed in the UI
+ Retry bool `json:"retry,omitempty"` // Retry mode
+ RetryTimes uint8 `json:"retry_times,omitempty"` // Retry times
+ Upload *FileUpload `json:"upload,omitempty"`
+ Version bool `json:"version,omitempty"` // Version support
+ RAG bool `json:"rag,omitempty"` // RAG support
+ Args []interface{} `json:"args,omitempty"` // Arguments for call
+ SharedSpace plan.Space `json:"-"` // Shared space
}
// Field the context field
@@ -49,10 +51,59 @@ type FileUpload struct {
TempFile string `json:"temp_file,omitempty"`
}
+const (
+
+ // ClientTypeAgent is the client type for Agent
+ ClientTypeAgent = "agent"
+
+ // ClientTypeWeb is the client type for Web (Default UI)
+ ClientTypeWeb = "web"
+
+ // ClientTypeSDK is the client type for SDK
+ ClientTypeSDK = "android"
+
+ // ClientTypeIOS is the client type for IOS
+ ClientTypeIOS = "ios"
+
+ // ClientTypeJSSDK is the client type for JSSDK
+ ClientTypeJSSDK = "jssdk"
+
+ // ClientTypeMacOS is the client type for MacOS Desktop
+ ClientTypeMacOS = "macos"
+
+ // ClientTypeWindows is the client type for Windows Desktop
+ ClientTypeWindows = "windows"
+
+ // ClientTypeLinux is the client type for Linux Desktop
+ ClientTypeLinux = "linux"
+)
+
+// SupportedClientTypes is the supported client types
+var SupportedClientTypes = map[string]bool{
+ ClientTypeAgent: true,
+ ClientTypeWeb: true,
+ ClientTypeSDK: true,
+ ClientTypeIOS: true,
+ ClientTypeJSSDK: true,
+ ClientTypeMacOS: true,
+ ClientTypeWindows: true,
+ ClientTypeLinux: true,
+}
+
// New create a new context
func New(sid, cid, payload string) Context {
- ctx := Context{Context: context.Background(), Sid: sid, ChatID: cid, SharedSpace: plan.NewMemorySharedSpace()}
+ // Validate the client type
+ ctx := Context{
+ Context: context.Background(),
+ SharedSpace: plan.NewMemorySharedSpace(),
+ Sid: sid,
+ ChatID: cid,
+ HistoryVisible: true,
+ ClientType: ClientTypeWeb,
+ Silent: false,
+ }
+
if payload == "" {
return ctx
}
@@ -77,6 +128,29 @@ func WithAssistantID(ctx Context, assistantID string) Context {
return ctx
}
+// WithSilent set the silent mode
+func WithSilent(ctx Context, silent bool) Context {
+ ctx.Silent = silent
+ return ctx
+}
+
+// WithClientType set the client type
+func WithClientType(ctx Context, clientType string) Context {
+ // Validate the client type
+ if !SupportedClientTypes[clientType] {
+ log.Error("[Neo] Invalid client type: %s", clientType)
+ return ctx
+ }
+ ctx.ClientType = clientType
+ return ctx
+}
+
+// WithHistoryVisible set the history visible
+func WithHistoryVisible(ctx Context, historyVisible bool) Context {
+ ctx.HistoryVisible = historyVisible
+ return ctx
+}
+
// NewWithTimeout create a new context with timeout
func NewWithTimeout(sid, cid, payload string, timeout time.Duration) (Context, context.CancelFunc) {
ctx := New(sid, cid, payload)
@@ -127,6 +201,12 @@ func (ctx *Context) Map() map[string]interface{} {
data["silent"] = ctx.Silent
}
+ // History visible
+ data["history_visible"] = ctx.HistoryVisible
+
+ // Client type
+ data["client_type"] = ctx.ClientType
+
// Retry mode
if ctx.Retry {
data["retry"] = ctx.Retry
diff --git a/neo/hooks.go b/neo/hooks.go
index a777f768..67210bca 100644
--- a/neo/hooks.go
+++ b/neo/hooks.go
@@ -15,7 +15,7 @@ import (
func (neo *DSL) HookCreate(ctx chatctx.Context, messages []map[string]interface{}, c *gin.Context) (CreateResponse, error) {
// Default assistant
- assistantID := neo.Use
+ assistantID := neo.Use.Default
if ctx.AssistantID != "" {
assistantID = ctx.AssistantID
}
diff --git a/neo/load.go b/neo/load.go
index 9302352c..42e71099 100644
--- a/neo/load.go
+++ b/neo/load.go
@@ -47,6 +47,21 @@ func Load(cfg config.Config) error {
setting.StoreSetting.MaxSize = 100
}
+ // Default Assistant
+ if setting.Use == nil {
+ setting.Use = &Use{Default: "neo"}
+ }
+
+ // Title Assistant
+ if setting.Use.Title == "" {
+ setting.Use.Title = setting.Use.Default
+ }
+
+ // Prompt Assistant
+ if setting.Use.Prompt == "" {
+ setting.Use.Prompt = setting.Use.Default
+ }
+
Neo = &setting
// Store Setting
@@ -185,8 +200,8 @@ func initAssistant() error {
// defaultAssistant get the default assistant
func defaultAssistant() (*assistant.Assistant, error) {
- if Neo.Use != "" {
- return assistant.Get(Neo.Use)
+ if Neo.Use != nil && Neo.Use.Default != "" {
+ return assistant.Get(Neo.Use.Default)
}
name := Neo.Name
diff --git a/neo/neo.go b/neo/neo.go
index 7b064eba..3efe0e44 100644
--- a/neo/neo.go
+++ b/neo/neo.go
@@ -6,10 +6,8 @@ import (
"strings"
"github.com/gin-gonic/gin"
- "github.com/yaoapp/kun/log"
"github.com/yaoapp/yao/neo/assistant"
chatctx "github.com/yaoapp/yao/neo/context"
- "github.com/yaoapp/yao/neo/message"
)
// Answer reply the message
@@ -34,237 +32,6 @@ func (neo *DSL) Select(id string) (assistant.API, error) {
return assistant.Get(id)
}
-// GeneratePrompts generate prompts for the AI assistant
-func (neo *DSL) GeneratePrompts(ctx chatctx.Context, input string, c *gin.Context, silent ...bool) (string, error) {
- prompts := `
- Optimize the prompts for the AI assistant
- 1. Optimize prompts based on the user's input
- 2. The prompts should be clear and specific
- 3. The prompts should be in the same language as the input
- 4. Keep the prompts concise but comprehensive
- 5. DO NOT ASK USER FOR MORE INFORMATION, JUST GENERATE PROMPTS
- 6. DO NOT ANSWER THE QUESTION, JUST GENERATE PROMPTS
- `
- isSilent := false
- if len(silent) > 0 {
- isSilent = silent[0]
- }
- return neo.GenerateWithAI(ctx, input, "prompts", prompts, c, isSilent)
-}
-
-// GenerateChatTitle generate the chat title
-func (neo *DSL) GenerateChatTitle(ctx chatctx.Context, input string, c *gin.Context, silent ...bool) (string, error) {
- prompts := `
- Help me generate a title for the chat
- 1. The title should be a short and concise description of the chat.
- 2. The title should be a single sentence.
- 3. The title should be in same language as the chat.
- 4. The title should be no more than 50 characters.
- 5. ANSWER ONLY THE TITLE CONTENT, FOR EXAMPLE: Chat with AI is a valid title, but "Chat with AI" is not a valid title.
- `
- isSilent := false
- if len(silent) > 0 {
- isSilent = silent[0]
- }
- return neo.GenerateWithAI(ctx, input, "title", prompts, c, isSilent)
-}
-
-// GenerateWithAI generate content with AI, type can be "title", "prompts", etc.
-func (neo *DSL) GenerateWithAI(ctx chatctx.Context, input string, messageType string, systemPrompt string, c *gin.Context, silent bool) (string, error) {
- messages := []map[string]interface{}{
- {"role": "system", "content": systemPrompt},
- {
- "role": "user",
- "content": input,
- "type": messageType,
- "name": ctx.Sid,
- },
- }
-
- res, err := neo.HookCreate(ctx, messages, c)
- if err != nil {
- return "", err
- }
-
- // Select Assistant
- ast, err := neo.Select(res.AssistantID)
- if err != nil {
- return "", err
- }
-
- if ast == nil {
- msg := message.New().Error("assistant is not initialized").Done()
- msg.Write(c.Writer)
- return "", fmt.Errorf("assistant is not initialized")
- }
-
- clientBreak := make(chan bool, 1)
- done := make(chan bool, 1)
- fail := make(chan error, 1)
- contents := message.NewContents()
-
- // Chat with AI in background
- go func() {
- msgList := []message.Message{}
- for _, vv := range messages {
- msg := message.New().Map(vv)
- if content, ok := vv["content"].(string); ok {
- msgs, err := message.NewContent(content)
- if err == nil {
- for _, v := range msgs {
- v.AssistantID = msg.AssistantID
- v.AssistantName = msg.AssistantName
- v.AssistantAvatar = msg.AssistantAvatar
- v.Role = msg.Role
- v.Name = msg.Name
- v.Mentions = msg.Mentions
- msgList = append(msgList, v)
- }
- }
- }
- }
-
- errorRaw := ""
- isFirstThink := true
- isThinking := false
- currentMessageID := ""
- tokenID := ""
- beganAt := int64(0)
- err := ast.Chat(c.Request.Context(), msgList, neo.Option, func(data []byte) int {
- select {
- case <-clientBreak:
- return 0 // break
-
- default:
- msg := message.NewOpenAI(data, isThinking)
- if msg == nil {
- return 1 // continue
- }
-
- if msg.Pending {
- errorRaw += msg.Text
- return 1 // continue
- }
-
- // Handle error
- if msg.Type == "error" {
- fail <- fmt.Errorf("%s", msg.Text)
- return 0 // break
- }
-
- // for api reasoning_content response
- if msg.Type == "think" {
- if isFirstThink {
- msg.Text = "\n" + msg.Text // add the think begin tag
- isFirstThink = false
- isThinking = true
- }
- }
-
- // for api reasoning_content response
- if isThinking && msg.Type != "think" {
- // add the think close tag
- end := message.New().Map(map[string]interface{}{"text": "\n\n", "type": "think", "delta": true})
- end.Write(c.Writer)
- end.ID = currentMessageID
- end.AppendTo(contents)
- isThinking = false
-
- // Clear the token and make a new line
- contents.NewText([]byte{}, message.Extra{ID: currentMessageID})
- contents.ClearToken(currentMessageID)
- }
-
- // Append content and send message
- msg.AppendTo(contents)
-
- // Scan the tokens
- contents.ScanTokens(currentMessageID, tokenID, beganAt, func(params message.ScanCallbackParams) {
- currentMessageID = params.MessageID
- msg.ID = params.MessageID
- msg.Type = params.Token
- msg.Text = "" // clear the text
- msg.Props = map[string]interface{}{"text": params.Text} // Update props
-
- // End of the token clear the text
- if params.Begin {
- msg.Begin = beganAt
- return
- }
-
- // End of the token clear the text
- if params.End {
- msg.End = params.EndAt
- return
- }
-
- // New message with the tails
- if params.Tails != "" {
- newMsg, err := message.NewString(params.Tails, params.MessageID)
- if err != nil {
- return
- }
- msgList = append(msgList, *newMsg)
- }
- })
-
- if !silent {
- value := msg.String()
- if value != "" {
- message.New().
- Map(map[string]interface{}{
- "text": value,
- "delta": true,
- "done": msg.IsDone,
- }).
- Write(c.Writer)
- }
- }
-
- // Complete the stream
- if msg.IsDone {
- value := msg.String()
- if value == "" {
- msg.Write(c.Writer)
- }
- done <- true
- return 0 // break
- }
-
- return 1 // continue
- }
- })
-
- if err != nil {
- log.Error("Chat error: %s", err.Error())
- if !silent {
- message.New().Error(err).Done().Write(c.Writer)
- }
- }
-
- if errorRaw != "" {
- msg, err := message.NewStringError(errorRaw)
- if err != nil {
- log.Error("Error parsing error message: %s", err.Error())
- }
- msg.Write(c.Writer)
- }
-
- done <- true
- }()
-
- // Wait for completion or client disconnect
- select {
- case <-done:
- return contents.Text(), nil
- case err := <-fail:
- return "", err
- case <-c.Writer.CloseNotify():
- clientBreak <- true
- return "", nil
- }
-}
-
// Upload upload a file
func (neo *DSL) Upload(ctx chatctx.Context, c *gin.Context) (*assistant.File, error) {
// Get the file
diff --git a/neo/store/xun.go b/neo/store/xun.go
index 3b897b30..354736d2 100644
--- a/neo/store/xun.go
+++ b/neo/store/xun.go
@@ -607,6 +607,7 @@ func (conv *Xun) SaveHistory(sid string, messages []map[string]interface{}, cid
// Get silent flag from context
var silent bool = false
+ var historyVisible bool = true
if context != nil {
if silentVal, ok := context["silent"]; ok {
switch v := silentVal.(type) {
@@ -620,6 +621,20 @@ func (conv *Xun) SaveHistory(sid string, messages []map[string]interface{}, cid
silent = v != 0
}
}
+
+ // Get history visible from context
+ if historyVisibleVal, ok := context["history_visible"]; ok {
+ switch v := historyVisibleVal.(type) {
+ case bool:
+ historyVisible = v
+ case string:
+ historyVisible = v == "true" || v == "1" || v == "yes"
+ case int:
+ historyVisible = v != 0
+ case float64:
+ historyVisible = v != 0
+ }
+ }
}
// First ensure chat record exists
@@ -639,7 +654,7 @@ func (conv *Xun) SaveHistory(sid string, messages []map[string]interface{}, cid
"chat_id": cid,
"sid": userID,
"assistant_id": assistantID,
- "silent": silent,
+ "silent": silent || historyVisible == false,
"created_at": time.Now(),
})
@@ -653,7 +668,7 @@ func (conv *Xun) SaveHistory(sid string, messages []map[string]interface{}, cid
Where("sid", userID).
Update(map[string]interface{}{
"assistant_id": assistantID,
- "silent": silent,
+ "silent": silent || historyVisible == false,
})
if err != nil {
return err
diff --git a/neo/types.go b/neo/types.go
index 6e6cb343..c41b10f2 100644
--- a/neo/types.go
+++ b/neo/types.go
@@ -14,7 +14,7 @@ import (
type DSL struct {
ID string `json:"-" yaml:"-"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
- Use string `json:"use,omitempty" yaml:"use,omitempty"` // Which assistant to use default
+ Use *Use `json:"use,omitempty" yaml:"use,omitempty"` // Which assistant to use default, title, prompt
Guard string `json:"guard,omitempty" yaml:"guard,omitempty"`
Connector string `json:"connector" yaml:"connector"`
StoreSetting store.Setting `json:"store" yaml:"store"`
@@ -34,6 +34,13 @@ type DSL struct {
GuardHandlers []gin.HandlerFunc `json:"-" yaml:"-"`
}
+// Use the use setting for the assistant
+type Use struct {
+ Default string `json:"default,omitempty" yaml:"default,omitempty"`
+ Title string `json:"title,omitempty" yaml:"title,omitempty"`
+ Prompt string `json:"prompt,omitempty" yaml:"prompt,omitempty"`
+}
+
// VisionSetting the vision setting
type VisionSetting struct {
Storage driver.StorageConfig `json:"storage" yaml:"storage"`
diff --git a/sui/libsui/agent.ts b/sui/libsui/agent.ts
index ca2df1ad..8a3c38ea 100644
--- a/sui/libsui/agent.ts
+++ b/sui/libsui/agent.ts
@@ -59,6 +59,8 @@ class Agent {
private chat_id?: string;
private es: EventSource | null;
private context: Record;
+ private silent?: boolean = false;
+ private history_visible?: boolean = false;
/**
* Agent constructor
@@ -72,6 +74,28 @@ class Agent {
this.chat_id = option.chat_id;
this.es = null;
this.context = option.context || {};
+
+ // Set silent mode, default is true
+ if (option.silent !== undefined) {
+ this.silent =
+ option.silent === true ||
+ option.silent === "true" ||
+ option.silent === 1 ||
+ option.silent === "1"
+ ? false
+ : true;
+ }
+
+ // Set history visible mode, default is false
+ if (option.history_visible !== undefined) {
+ this.history_visible =
+ option.history_visible === true ||
+ option.history_visible === "true" ||
+ option.history_visible === 1 ||
+ option.history_visible === "1"
+ ? true
+ : false;
+ }
}
/**
@@ -152,10 +176,12 @@ class Agent {
const contentRaw = encodeURIComponent(JSON.stringify(content));
const contextRaw = encodeURIComponent(JSON.stringify(context));
const token = this.token;
+ const silent = this.silent ? "true" : "false";
+ const history_visible = this.history_visible ? "true" : "false";
const chatId = this.chat_id || this.makeChatID();
const assistantParam = `&assistant_id=${this.assistant_id}`;
const status_endpoint = `${this.host}/status?content=${contentRaw}&context=${contextRaw}&token=${token}&chat_id=${chatId}${assistantParam}`;
- const endpoint = `${this.host}?content=${contentRaw}&context=${contextRaw}&token=${token}&chat_id=${chatId}${assistantParam}`;
+ const endpoint = `${this.host}?client_type=jssdk&content=${contentRaw}&context=${contextRaw}&token=${token}&silent=${silent}&history_visible=${history_visible}&chat_id=${chatId}${assistantParam}`;
const handleError = async (error: any) => {
try {
@@ -447,6 +473,8 @@ type AgentInput =
interface AgentOption {
host?: string;
token: string;
+ silent?: boolean | string | number;
+ history_visible?: boolean | string | number;
chat_id?: string;
context?: Record;
}