From 38f86aa77b12762d5f09658d692849b3d4881da1 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 31 Aug 2025 11:59:16 +0800 Subject: [PATCH] Implement job management functionality and update job model - Added new job management functions: Once, Cron, and Daemon for creating jobs with different scheduling types. - Introduced methods for job manipulation, including Start, Cancel, and various setters for job properties. - Updated job model to reflect changes in the job execution process type, renaming "process_type" to "mode" and adjusting enum values to uppercase. - Removed obsolete interfaces and types related to job management, streamlining the codebase. --- data/bindata.go | 278 ++++++++++++++++++------------------- job/data.go | 116 ++++++++++++++++ job/execution.go | 63 +++++++++ job/interfaces.go | 6 + job/job.go | 113 +++++++++++++++ job/job_test.go | 171 +++++++++++++++++++++++ job/progress.go | 14 ++ job/types.go | 171 +++++++++++++++++++++++ job/types/interfaces.go | 12 -- job/types/types.go | 1 - yao/models/job/job.mod.yao | 12 +- 11 files changed, 799 insertions(+), 158 deletions(-) create mode 100644 job/data.go create mode 100644 job/execution.go create mode 100644 job/interfaces.go create mode 100644 job/job_test.go create mode 100644 job/progress.go create mode 100644 job/types.go delete mode 100644 job/types/interfaces.go delete mode 100644 job/types/types.go diff --git a/data/bindata.go b/data/bindata.go index 2205a88a..3fed5dda 100644 --- a/data/bindata.go +++ b/data/bindata.go @@ -316,7 +316,7 @@ func cuiSetupIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "cui/setup/index.html", size: 10, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "cui/setup/index.html", size: 10, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -336,7 +336,7 @@ func cuiV09IndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "cui/v0.9/index.html", size: 13, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "cui/v0.9/index.html", size: 13, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -356,7 +356,7 @@ func cuiV10IndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "cui/v1.0/index.html", size: 49, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "cui/v1.0/index.html", size: 49, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -376,7 +376,7 @@ func cuiV10Layouts__indexAsyncJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "cui/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "cui/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -396,7 +396,7 @@ func cuiV10UmiJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "cui/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "cui/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -416,7 +416,7 @@ func initEnv() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.env", size: 219, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/.env", size: 219, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -436,7 +436,7 @@ func initVscodeSettingsJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/settings.json", size: 4666, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/settings.json", size: 4666, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -456,7 +456,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/console.d.ts", size: 221, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -476,7 +476,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/exception.d.ts", size: 738, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -496,7 +496,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/fs.d.ts", size: 8554, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -516,7 +516,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/global.d.ts", size: 1759, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -536,7 +536,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/http.d.ts", size: 6179, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -556,7 +556,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/io.d.ts", size: 587, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -576,7 +576,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/log.d.ts", size: 1692, mode: os.FileMode(493), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -596,7 +596,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/neo.d.ts", size: 3750, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -616,7 +616,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/process/fs.d.ts", size: 11133, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -636,7 +636,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/process/http.d.ts", size: 5653, mode: os.FileMode(493), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -656,7 +656,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/process/model.d.ts", size: 6656, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -676,7 +676,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/process.d.ts", size: 23165, mode: os.FileMode(493), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -696,7 +696,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/query.d.ts", size: 6124, mode: os.FileMode(493), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -716,7 +716,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/store.d.ts", size: 2251, mode: os.FileMode(493), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -736,7 +736,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/sui.d.ts", size: 1713, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -756,7 +756,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/time.d.ts", size: 711, mode: os.FileMode(493), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -776,7 +776,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime.d.ts", size: 424, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -796,7 +796,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(1756546890, 0)} + info := bindataFileInfo{name: "init/.vscode/types/sui.d.ts", size: 8931, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -816,7 +816,7 @@ func initAppYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/app.yao", size: 3115, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/app.yao", size: 3115, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -836,7 +836,7 @@ func initDataReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/README.md", size: 41, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/data/README.md", size: 41, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -856,7 +856,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(1756546890, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/README.md", size: 33, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -876,7 +876,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(1756546890, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/images/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -896,7 +896,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(1756546890, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/images/logos/logo_color.svg", size: 2909, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -916,7 +916,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(1756546890, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/images/logos/wordmark.svg", size: 3615, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -936,7 +936,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(1756546890, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__data.json", size: 30, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -956,7 +956,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(1756546890, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__document.html", size: 492, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -976,7 +976,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(1756546890, 0)} + info := bindataFileInfo{name: "init/data/templates/default/index/index.css", size: 2896, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -996,7 +996,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(1756546890, 0)} + info := bindataFileInfo{name: "init/data/templates/default/index/index.html", size: 2361, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1016,7 +1016,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(1756546890, 0)} + info := bindataFileInfo{name: "init/data/templates/default/index/index.json", size: 31, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1036,7 +1036,7 @@ func initDbReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/db/README.md", size: 84, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/db/README.md", size: 84, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1056,7 +1056,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(1756546890, 0)} + info := bindataFileInfo{name: "init/flows/menu.flow.yao", size: 813, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1076,7 +1076,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(1756546890, 0)} + info := bindataFileInfo{name: "init/forms/account.form.yao", size: 1194, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1096,7 +1096,7 @@ func initIconsAppIcns() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/icons/app.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1116,7 +1116,7 @@ func initIconsAppIco() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/icons/app.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1136,7 +1136,7 @@ func initIconsAppPng() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1156,7 +1156,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(1756546890, 0)} + info := bindataFileInfo{name: "init/logins/admin.login.yao", size: 302, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1176,7 +1176,7 @@ func initLogsReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/logs/README.md", size: 28, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/logs/README.md", size: 28, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1196,7 +1196,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(1756546890, 0)} + info := bindataFileInfo{name: "init/models/admin/user.mod.yao", size: 6416, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1216,7 +1216,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(1756546890, 0)} + info := bindataFileInfo{name: "init/models/tests/pet.mod.yao", size: 525, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1236,7 +1236,7 @@ func initNeoNeoYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/neo/neo.yml", size: 724, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/neo/neo.yml", size: 724, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1256,7 +1256,7 @@ func initPublicReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/public/README.md", size: 108, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/public/README.md", size: 108, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1276,7 +1276,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(1756546890, 0)} + info := bindataFileInfo{name: "init/public/assets/README.md", size: 33, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1296,7 +1296,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(1756546890, 0)} + info := bindataFileInfo{name: "init/public/assets/images/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1316,7 +1316,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(1756546890, 0)} + info := bindataFileInfo{name: "init/public/assets/images/logos/logo_color.svg", size: 2909, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1336,7 +1336,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(1756546890, 0)} + info := bindataFileInfo{name: "init/public/assets/images/logos/wordmark.svg", size: 3615, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1356,7 +1356,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(1756546890, 0)} + info := bindataFileInfo{name: "init/public/assets/libsui.min.js", size: 12569, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1376,7 +1376,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(1756546890, 0)} + info := bindataFileInfo{name: "init/public/assets/libsui.min.js.map", size: 38553, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1396,7 +1396,7 @@ func initPublicIndexCfg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/public/index.cfg", size: 85, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/public/index.cfg", size: 85, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1416,7 +1416,7 @@ func initPublicIndexSui() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/public/index.sui", size: 5682, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/public/index.sui", size: 5682, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1436,7 +1436,7 @@ func initScriptsAccountTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/account.ts", size: 2521, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/scripts/account.ts", size: 2521, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1456,7 +1456,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(1756546890, 0)} + info := bindataFileInfo{name: "init/scripts/ai/neo.ts", size: 375, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1476,7 +1476,7 @@ func initScriptsTestsTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/tests.ts", size: 1044, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/scripts/tests.ts", size: 1044, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1496,7 +1496,7 @@ func initScriptsUtilsTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/utils.ts", size: 1230, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/scripts/utils.ts", size: 1230, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1516,7 +1516,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(1756546890, 0)} + info := bindataFileInfo{name: "init/suis/web.sui.yao", size: 675, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1536,7 +1536,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(1756546890, 0)} + info := bindataFileInfo{name: "init/tables/account.tab.yao", size: 5597, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1556,7 +1556,7 @@ func initTsconfigJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/tsconfig.json", size: 178, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "init/tsconfig.json", size: 178, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1576,7 +1576,7 @@ func libsuiAgentTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/agent.ts", size: 15267, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "libsui/agent.ts", size: 15267, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1596,7 +1596,7 @@ func libsuiIndexTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/index.ts", size: 13049, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "libsui/index.ts", size: 13049, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1616,7 +1616,7 @@ func libsuiUtilsTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/utils.ts", size: 5959, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "libsui/utils.ts", size: 5959, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1636,7 +1636,7 @@ func libsuiYaoTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/yao.ts", size: 4338, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "libsui/yao.ts", size: 4338, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1656,7 +1656,7 @@ func publicIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1676,7 +1676,7 @@ func uiIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1696,7 +1696,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1716,7 +1716,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1736,7 +1736,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1756,7 +1756,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1776,7 +1776,7 @@ func yaoDataIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1796,7 +1796,7 @@ func yaoDataKbProvidersChunkingSemanticEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/chunking/semantic/en.json", size: 5543, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/chunking/semantic/en.json", size: 5543, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1816,7 +1816,7 @@ func yaoDataKbProvidersChunkingSemanticZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/chunking/semantic/zh-cn.json", size: 5446, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/chunking/semantic/zh-cn.json", size: 5446, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1836,7 +1836,7 @@ func yaoDataKbProvidersChunkingStructuredEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/chunking/structured/en.json", size: 2423, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/chunking/structured/en.json", size: 2423, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1856,7 +1856,7 @@ func yaoDataKbProvidersChunkingStructuredZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/chunking/structured/zh-cn.json", size: 2321, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/chunking/structured/zh-cn.json", size: 2321, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1876,7 +1876,7 @@ func yaoDataKbProvidersConverterMcpEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/mcp/en.json", size: 4235, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/mcp/en.json", size: 4235, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1896,7 +1896,7 @@ func yaoDataKbProvidersConverterMcpZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/mcp/zh-cn.json", size: 4060, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/mcp/zh-cn.json", size: 4060, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1916,7 +1916,7 @@ func yaoDataKbProvidersConverterOcrEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/ocr/en.json", size: 6631, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/ocr/en.json", size: 6631, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1936,7 +1936,7 @@ func yaoDataKbProvidersConverterOcrZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/ocr/zh-cn.json", size: 6501, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/ocr/zh-cn.json", size: 6501, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1956,7 +1956,7 @@ func yaoDataKbProvidersConverterOfficeEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/office/en.json", size: 5476, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/office/en.json", size: 5476, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1976,7 +1976,7 @@ func yaoDataKbProvidersConverterOfficeZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/office/zh-cn.json", size: 5356, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/office/zh-cn.json", size: 5356, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1996,7 +1996,7 @@ func yaoDataKbProvidersConverterUtf8EnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/utf8/en.json", size: 292, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/utf8/en.json", size: 292, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2016,7 +2016,7 @@ func yaoDataKbProvidersConverterUtf8ZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/utf8/zh-cn.json", size: 281, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/utf8/zh-cn.json", size: 281, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2036,7 +2036,7 @@ func yaoDataKbProvidersConverterVideoEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/video/en.json", size: 6411, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/video/en.json", size: 6411, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2056,7 +2056,7 @@ func yaoDataKbProvidersConverterVideoZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/video/zh-cn.json", size: 6297, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/video/zh-cn.json", size: 6297, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2076,7 +2076,7 @@ func yaoDataKbProvidersConverterVisionEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/vision/en.json", size: 4085, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/vision/en.json", size: 4085, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2096,7 +2096,7 @@ func yaoDataKbProvidersConverterVisionZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/vision/zh-cn.json", size: 3949, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/vision/zh-cn.json", size: 3949, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2116,7 +2116,7 @@ func yaoDataKbProvidersConverterWhisperEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/whisper/en.json", size: 4449, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/whisper/en.json", size: 4449, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2136,7 +2136,7 @@ func yaoDataKbProvidersConverterWhisperZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/whisper/zh-cn.json", size: 4312, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/whisper/zh-cn.json", size: 4312, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2156,7 +2156,7 @@ func yaoDataKbProvidersEmbeddingFastembedEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/embedding/fastembed/en.json", size: 6865, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/embedding/fastembed/en.json", size: 6865, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2176,7 +2176,7 @@ func yaoDataKbProvidersEmbeddingFastembedZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/embedding/fastembed/zh-cn.json", size: 6685, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/embedding/fastembed/zh-cn.json", size: 6685, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2196,7 +2196,7 @@ func yaoDataKbProvidersEmbeddingOpenaiEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/embedding/openai/en.json", size: 5636, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/embedding/openai/en.json", size: 5636, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2216,7 +2216,7 @@ func yaoDataKbProvidersEmbeddingOpenaiZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/embedding/openai/zh-cn.json", size: 5463, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/embedding/openai/zh-cn.json", size: 5463, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2236,7 +2236,7 @@ func yaoDataKbProvidersExtractionOpenaiEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/extraction/openai/en.json", size: 9110, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/extraction/openai/en.json", size: 9110, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2256,7 +2256,7 @@ func yaoDataKbProvidersExtractionOpenaiZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/extraction/openai/zh-cn.json", size: 8827, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/extraction/openai/zh-cn.json", size: 8827, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2276,7 +2276,7 @@ func yaoDataKbProvidersFetcherHttpEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/http/en.json", size: 5885, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/http/en.json", size: 5885, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2296,7 +2296,7 @@ func yaoDataKbProvidersFetcherHttpZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/http/zh-cn.json", size: 5925, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/http/zh-cn.json", size: 5925, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2316,7 +2316,7 @@ func yaoDataKbProvidersFetcherMcpEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/mcp/en.json", size: 6819, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/mcp/en.json", size: 6819, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2336,7 +2336,7 @@ func yaoDataKbProvidersFetcherMcpZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/mcp/zh-cn.json", size: 6611, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/mcp/zh-cn.json", size: 6611, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2356,7 +2356,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14938, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2376,7 +2376,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2396,7 +2396,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2416,7 +2416,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2436,7 +2436,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2456,7 +2456,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2476,7 +2476,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2496,7 +2496,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(1756546890, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2516,7 +2516,7 @@ func yaoModelsAssistantModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/assistant.mod.yao", size: 4114, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/assistant.mod.yao", size: 4114, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2536,7 +2536,7 @@ func yaoModelsAttachmentModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/attachment.mod.yao", size: 3865, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/attachment.mod.yao", size: 3865, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2556,7 +2556,7 @@ func yaoModelsAuditModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/audit.mod.yao", size: 5588, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/audit.mod.yao", size: 5588, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2576,7 +2576,7 @@ func yaoModelsChatModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/chat.mod.yao", size: 1444, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/chat.mod.yao", size: 1444, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2596,7 +2596,7 @@ func yaoModelsConfigModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/config.mod.yao", size: 1649, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/config.mod.yao", size: 1649, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2616,7 +2616,7 @@ func yaoModelsDslModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/dsl.mod.yao", size: 3826, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/dsl.mod.yao", size: 3826, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2636,7 +2636,7 @@ func yaoModelsHistoryModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/history.mod.yao", size: 2902, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/history.mod.yao", size: 2902, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2656,7 +2656,7 @@ func yaoModelsJobCategoryModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/job/category.mod.yao", size: 2040, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/job/category.mod.yao", size: 2040, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2676,12 +2676,12 @@ func yaoModelsJobExecutionModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/job/execution.mod.yao", size: 6770, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/job/execution.mod.yao", size: 6770, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _yaoModelsJobJobModYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x58\xcd\x6e\xdc\x36\x10\xbe\xfb\x29\x06\xba\xc4\x06\x1c\x38\x0d\x9a\xa2\x36\xd0\x43\x1a\x07\x45\x82\x26\x0d\xec\x04\x3d\x04\xc1\x82\x92\x66\x77\xe9\x50\xa4\x42\x0e\x93\x15\x0a\xbf\x7b\x31\xa4\x7e\xa8\x5d\x79\xbd\x32\x9c\x8b\x8d\xa5\x38\x3f\xdf\x7c\xc3\x99\x21\xff\x3b\x02\xc8\xb4\xa8\x30\xbb\x80\xec\xc6\xe4\xd9\x29\x2f\x28\x91\xa3\xe2\x95\xb7\xdd\x4a\x89\xae\xb0\xb2\x26\x69\x74\xbb\x0e\x24\x72\x85\xb0\x34\x16\x2a\xa1\xc5\x4a\xea\x15\x90\x70\x5f\x01\x37\x58\x78\xde\x08\x42\x97\xe0\x8a\x35\x96\x5e\x49\xbd\x8a\x8a\x48\xac\x5c\x76\x01\x9f\x33\xd7\x38\xc2\x2a\xfb\x12\x56\x73\x2f\x15\x49\x56\x4d\xd6\x63\x58\xb2\x28\x4a\xa3\x55\x93\x5d\xc0\x52\x28\x17\x17\x9d\xb1\x94\x5d\xc0\xf9\xf9\xf9\x79\xab\x2d\x57\xec\x3a\xc3\x98\x00\x02\x90\x15\xa6\xaa\x50\x53\xe7\x74\x25\xa4\x8e\x9e\x67\x47\x00\xb7\x41\x49\x61\x94\xaf\x74\xf0\x2a\xc8\x44\x65\x89\x3a\x59\xb6\xda\xd8\x62\x53\x87\xb5\x37\x97\xc3\x5a\x1f\xae\x74\x31\x31\xfc\xd2\x93\x79\x2a\x75\x61\x91\x57\xa0\xb6\xb2\x12\xb6\x81\xaf\xd8\x64\x61\xf7\xed\xe9\xb4\xdd\x1b\x93\x2f\xa6\x6c\x3b\xb2\x5d\x3c\xc7\xf6\x19\xe1\x1d\x3e\x7c\xd2\xf2\x9b\x47\x88\xa2\x20\x4b\xd4\x24\x97\x12\x6d\x20\x90\xd6\x08\x43\xcc\x58\x23\xea\x15\xad\xb3\x0b\xf8\xed\xd7\x7e\x4d\x7b\xa5\xda\x70\xf7\x84\x84\x0f\x3e\xa8\x6e\xb9\xdb\x0b\x28\xfc\x9f\x07\xe7\xfd\x48\x24\x01\x74\x29\x5d\xad\x44\x03\xac\x13\xcc\x72\x0f\x86\xe7\x2f\x5e\xdc\x0f\x42\xea\x12\x37\x87\x60\x90\x85\xd1\x33\x30\xbc\x19\x6d\x4f\xfc\xe7\x0f\x87\xf3\xf0\xcb\xb3\x67\x53\x18\xee\xf5\x36\x3d\xb7\x3b\x4e\x13\x6e\x68\xc2\xe5\xcb\x29\x99\xad\x73\x34\xa9\x77\x8e\x63\x85\x20\x5c\x19\xdb\xcc\x4b\xf0\x57\xad\xd4\x5d\x59\x7e\x85\x4b\xb4\xa8\x0b\x04\x32\x21\x9a\x9d\x19\xa0\xb5\x74\x1c\x5b\xc8\x51\x19\xbd\x72\x40\xe6\x81\xe9\x7e\x70\xa6\x38\x12\xe4\xdd\x2e\x3a\xd4\xbe\x9a\xc0\x76\xbd\xb5\x7d\x2b\xe2\xe6\x3b\x5a\xa1\x14\x6c\x6b\x35\x5d\x51\xfe\xdc\xae\x70\xb5\xb6\x62\x49\xd9\x29\x9c\x9d\x01\x8b\x4a\x07\x39\xf2\xb1\x2f\x8c\x5e\xca\x95\xb7\x58\x9e\x82\x36\x04\x5c\x63\x1b\x0e\x95\xf5\x7a\x90\x0e\xab\x23\xe9\x7e\x5f\x8e\x6d\x79\xc7\x32\xd9\xef\xb5\x0e\x74\x75\x12\x6b\xe1\x40\x14\x24\xbf\xe3\xd0\x0c\x8e\xdd\xc9\x20\x51\x0b\xef\xb0\x1c\x04\x86\x96\x21\x1d\x10\x56\xb5\xb1\xc2\x4a\xd5\x40\xdc\x38\x08\x16\xa6\xaa\x15\x52\x2a\xbb\x94\x5a\xba\x35\x96\xe0\x7c\x51\xa0\x73\x4b\xaf\x54\x03\xc7\x7c\x9c\x9e\x18\x5d\xe0\x13\x66\x3d\x35\xbe\x14\x52\x8d\x14\x84\xdf\xa1\x59\xfd\x30\xfa\x09\x47\x85\x6c\x03\x42\x37\x95\xb1\x98\x04\x55\x3a\xce\x87\x32\x4b\x02\xd3\xad\x41\xde\x80\x77\x68\xcf\x62\x57\x6b\x85\xbe\xf4\x24\x95\xb8\x14\x5e\x05\x2e\x5b\x6e\x1e\x2f\xcd\x6a\x6b\x18\xf7\x22\xa4\xd7\xa1\xc9\xf6\x21\x0a\xc1\xc7\x91\xd0\x56\xca\x0d\xb4\xb4\x36\x60\x6c\x63\x2a\xf5\x56\xc6\x1a\x4f\x52\x63\x0c\xf0\xeb\x98\x2d\xe0\x1d\xe7\xdf\x5f\x06\xfa\xef\x70\xac\xe4\x6a\x4d\x3f\x90\xff\x9e\xc2\x52\x38\x4a\x33\x24\x1a\xcc\x52\x1d\xc2\x01\x07\xa5\x46\x5d\xc6\x36\x1a\x7d\x3a\x96\xce\x28\x41\x9c\xd3\x6b\x14\xdf\x9b\xa8\xf1\x64\x1f\x07\x89\x93\x8f\x78\xdc\xe3\xa4\x83\xf3\x88\xb8\x6e\xa5\xf6\x33\x31\x4c\x51\x50\x0b\x22\xb4\x7a\x3f\x0b\x9c\xf8\x63\x02\x78\x25\xe4\x78\x3c\x2f\xc9\x91\xb2\x5c\xc2\xd3\xad\xb9\x70\x58\x82\xd1\xc0\x9f\x3a\xd3\xe9\x41\x10\x58\x19\x1d\xa8\xb9\xf2\x9a\x8b\x0a\x49\xed\x8d\x77\xaa\x61\x8e\xe2\xe7\x8e\x9e\x7d\x34\x44\x2f\x7f\x02\x03\xb8\xa9\x2d\x3a\x37\xd9\xf4\xee\xec\x2d\x3d\x13\xaf\x27\xa4\x13\x3e\x5e\x71\x54\x06\x0b\xa1\x71\x77\x96\xcb\x50\x6c\x1e\xb1\x7f\x57\x62\xb3\x08\xf5\x68\x51\x18\xaf\x69\x17\x8e\xd4\x84\x2b\xb4\x13\x78\xde\x89\x0d\x5c\x85\x52\xf6\x6a\x2c\x9a\x60\x79\x27\x36\xb2\xf2\x15\x68\x5f\xe5\x68\x79\x8c\x6a\x8b\x1f\x71\x15\x26\xc7\x59\xc0\xf5\xd1\xdb\x84\xa8\x81\xc1\x49\x4c\x81\xbc\x7b\x86\x92\xa0\x60\x41\xb2\x42\xe3\x67\x81\xba\x8c\xa2\xf0\x71\x5b\x34\x9d\x0c\xdb\x3d\x43\xf9\x6a\x0d\x81\xd4\xe0\xb0\x30\xba\x74\x70\x5c\x08\xcd\xed\x8c\xdb\xaa\x95\x65\x89\x1a\x6a\xb4\x83\xcc\xc9\xc3\xc6\x9a\xda\x4a\x63\x25\x35\x73\x30\x7d\xd8\x91\xd9\x53\x87\xe3\x56\x38\x5e\xcb\xd5\x1a\x6d\x47\xdc\x1f\xd0\xfe\xee\x36\x9c\xcc\xa3\x6b\xfe\x59\x2b\x2c\x72\xcd\x5d\xe4\x13\x50\xef\x1e\xdf\xa2\x10\xfc\x39\x8d\xf5\x93\x43\x0b\x3f\xd6\x06\x5a\xe5\xfd\xd0\x36\x75\xa0\x9e\xff\xfe\x88\x68\x34\x6e\x68\x61\xbd\x5e\x88\x89\x6c\xe4\xec\x71\x24\xaa\x7a\x02\xd1\x7b\xdc\x50\xa8\x82\x2f\xa7\x73\xf1\x63\x27\x1b\xca\x04\x9b\x49\x6a\x45\xcf\xeb\x9d\xb9\x36\x1f\x89\x12\xee\x61\x48\xfe\x16\xee\x40\x24\x66\x09\x6c\xe5\xa7\xb8\x5f\x78\x6b\x51\xd3\xa2\xd7\x3d\xf3\x7e\x10\xc5\xdb\x56\xc6\x27\xe6\x90\x8b\x42\x6b\xf4\x8c\xa7\x88\x14\x17\x48\xed\x48\x8c\x9a\xd4\x3d\x37\x85\x07\x82\x0e\x63\xf9\x2e\xcc\x1b\x97\xc6\x76\x00\xd9\x4e\xf1\x62\xef\x0d\xad\x48\x77\x41\x2d\xac\xa8\x90\xd0\xba\x87\xd5\xb5\xf0\xf0\x32\xa3\xa6\x5d\x1b\x4b\xf0\x8f\x2d\xd3\x8f\x89\x83\xe1\xb3\xe1\xcf\xe1\x5c\x94\xf1\x2e\xff\x88\x2d\x06\x75\x9c\xd5\x77\x5c\xce\x8d\x51\x28\xa6\xc2\xfa\x7a\x5b\x24\xf1\xf7\xdf\x35\x12\x97\xd7\xfe\x16\x29\x1d\xb4\x26\x02\x80\x89\xa3\x30\x40\x18\x25\xc5\x23\x4c\x39\xf1\xe1\x6c\x06\xb2\xeb\x20\x01\x6f\xd3\x42\x7a\x17\x38\xe9\x40\x40\x34\x31\xae\xbc\x03\x9e\xb1\xdf\xb3\x68\xe9\x1f\xf5\x66\x78\x7f\xb5\x23\x73\x0f\x31\x6c\xe4\xe9\x58\x62\x9e\xf3\x47\xed\xbc\x1a\x39\xc1\xbd\x2f\x83\x9b\xc5\x8d\xc9\x17\xfd\x6b\xc6\xf6\xed\x3c\x79\x5b\x1c\x3f\x79\xf4\xcf\x03\x5f\x26\x67\x4c\x53\xd5\xc6\x49\xc2\x70\xe3\xd9\x84\x1c\xeb\x9f\x32\xc2\xb3\x6a\x10\x86\x6f\x1e\xad\x44\xb7\xff\x19\xb1\x73\x32\xbd\x28\xee\x75\x74\x7c\xa3\x9c\xef\x69\x7a\x5b\x7c\xb0\xb7\xa3\xeb\xd4\xa2\x6b\xd0\xd3\x0e\x6f\x5d\xbd\xc6\xfd\xfc\x60\xb7\x47\x43\xfc\x3c\x67\x87\x69\x68\x7f\x06\x24\x43\xd3\xfc\xb0\x7a\x1e\x8f\x76\x5d\xeb\xb3\xb5\xbf\x08\xb6\xaf\xe1\x35\xda\x4a\xc6\x7b\x4c\x5a\x84\x86\x29\xc0\x0d\xe5\xe6\xf6\xe8\xf6\xe8\xff\x00\x00\x00\xff\xff\x9f\xae\x63\x59\x0c\x18\x00\x00") +var _yaoModelsJobJobModYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x58\xdd\x6e\xdb\xb8\x12\xbe\xcf\x53\x0c\x74\xd3\x04\x48\x91\x9e\xe2\xf4\xe0\x24\xc0\x5e\x74\x93\xa0\x68\xb1\x6d\x8a\x24\xc5\x5e\x14\x85\x41\x49\x63\x9b\x29\x45\xaa\xe4\xb0\xb5\xb0\xc8\xbb\x2f\x86\xfa\xa3\x6c\xd9\xb1\x8c\xf4\x26\x81\x29\xce\xcf\x37\xdf\x70\x66\xc8\x7f\x8e\x00\x12\x2d\x0a\x4c\x2e\x20\x79\x30\x69\x72\xca\x0b\x4a\xa4\xa8\x78\xe5\x43\xbb\x92\xa3\xcb\xac\x2c\x49\x1a\xdd\xac\x03\x89\x54\x21\xcc\x8d\x85\x42\x68\xb1\x90\x7a\x01\x24\xdc\x77\xc0\x15\x66\x9e\x37\x82\xd0\x39\xb8\x6c\x89\xb9\x57\x52\x2f\x6a\x45\x24\x16\x2e\xb9\x80\xaf\x89\xab\x1c\x61\x91\x7c\x0b\xab\xa9\x97\x8a\x24\xab\x26\xeb\x31\x2c\x59\x14\xb9\xd1\xaa\x4a\x2e\x60\x2e\x94\xab\x17\x9d\xb1\x94\x5c\xc0\xf9\xf9\xf9\x79\xa3\x2d\x55\xec\x3a\xc3\x18\x01\x02\x90\x64\xa6\x28\x50\x53\xeb\x74\x21\xa4\xae\x3d\x4f\x8e\x00\x1e\x83\x92\xcc\x28\x5f\xe8\xe0\x55\x90\xa9\x95\x45\xea\x64\xde\x68\x63\x8b\x55\x19\xd6\xde\x5f\xf5\x6b\x5d\xb8\xe2\xc5\xc8\xf0\x5b\x4f\xe6\xa5\xd4\x99\x45\x5e\x81\xd2\xca\x42\xd8\x0a\xbe\x63\x95\x84\xdd\x8f\xa7\xe3\x76\x1f\x4c\x3a\x1b\xb3\xed\xc8\xb6\xf1\x1c\xda\x67\x84\x5b\x7c\xf8\xa2\xe5\x0f\x8f\x50\x8b\x82\xcc\x51\x93\x9c\x4b\xb4\x81\x40\x5a\x22\xf4\x31\x63\x8d\xa8\x17\xb4\x4c\x2e\xe0\x7f\xff\xed\xd6\xb4\x57\xaa\x09\x77\x47\x48\xf8\xe0\x83\xea\x86\xbb\x9d\x80\xc2\xff\x69\x70\x3e\x0d\x44\x22\x40\x57\xd2\x95\x4a\x54\xc0\x3a\xc1\xcc\x77\x60\x78\xfd\xe6\xcd\xd3\x20\xa4\xce\x71\xb5\x0f\x06\x99\x19\x3d\x01\xc3\xfb\xc1\xf6\xc8\x7f\xfe\xb0\x3f\x0f\xff\x79\xf5\x6a\x0c\xc3\x93\xde\xc6\xe7\x76\xc3\x69\xc2\x15\x8d\xb8\x7c\x35\x26\xb3\x76\x8e\x46\xf5\x4e\x71\x2c\x13\x84\x0b\x63\xab\x69\x09\x7e\xd9\x48\x6d\xcb\xf2\x5b\x9c\xa3\x45\x9d\x21\x90\x09\xd1\x6c\xcd\x00\x2d\xa5\xe3\xd8\x42\x8a\xca\xe8\x85\x03\x32\x07\xa6\xfb\xde\x99\xe2\x48\x90\x77\x9b\xe8\x50\xfb\x62\x04\xdb\xdd\xda\xf6\xb5\x88\x9b\x9f\x68\x85\x52\xb0\xae\xd5\xb4\x45\xf9\x6b\xb3\xc2\xd5\xda\x8a\x39\x25\xa7\x70\x76\x06\x2c\x2a\x1d\xa4\xc8\xc7\x3e\x33\x7a\x2e\x17\xde\x62\x7e\x0a\xda\x10\x70\x8d\xad\x38\x54\xd6\xeb\x5e\x3a\xac\x0e\xa4\xbb\x7d\x29\x36\xe5\x1d\xf3\x68\xbf\xd7\x3a\xd0\xd5\x4a\x2c\x85\x03\x91\x91\xfc\x89\x7d\x33\x38\x76\x27\xbd\x44\x29\xbc\xc3\xbc\x17\xe8\x5b\x86\x74\x40\x58\x94\xc6\x0a\x2b\x55\x05\xf5\xc6\x5e\x30\x33\x45\xa9\x90\x62\xd9\xb9\xd4\xd2\x2d\x31\x07\xe7\xb3\x0c\x9d\x9b\x7b\xa5\x2a\x38\xe6\xe3\xf4\xc2\xe8\x0c\x5f\x30\xeb\xb1\xf1\xb9\x90\x6a\xa0\x20\xfc\x0e\xcd\xea\x97\xd1\x2f\x38\x2a\x64\x2b\x10\xba\x2a\x8c\xc5\x28\xa8\xd2\x71\x3e\xe4\x49\x14\x98\x76\x0d\xd2\x0a\xbc\x43\x7b\x56\x77\xb5\x46\xe8\x5b\x47\x52\x8e\x73\xe1\x55\xe0\xb2\xe1\xe6\xf9\xd2\xac\x30\xf9\x48\x51\xdd\x92\x64\x1f\x07\x9b\xd7\x52\xac\xa7\x61\xa8\x73\x2c\xc5\xde\xdd\xdc\xde\x7c\xb9\x7f\xff\xe9\xba\x0e\xe4\x75\x9d\x15\xe0\x1d\xe7\xd9\x3b\x03\x0b\x63\x8d\x27\xa9\x11\x8e\x95\x5c\x2c\xe9\x17\xf2\xdf\x53\x98\x0b\x47\x11\x19\x9f\x6f\x6f\x2e\xaf\xef\xee\x92\x58\x87\x70\xc0\xe0\x4b\xd4\x79\xdd\x2e\x0d\xf3\x0a\xc7\xd2\x19\x25\x88\x73\x77\x89\xe2\x67\x55\x6b\x3c\xd9\x15\xeb\xc8\xc9\x67\x3c\xd6\xf5\x44\x83\xb3\x10\xea\xbd\x4f\x77\x23\x05\xf7\x03\xa9\x35\x06\xfa\x69\x09\x4a\x41\x84\x56\xef\x66\x81\x13\x7c\x48\x00\xaf\x84\x5c\xae\xcf\x45\x74\x74\x2c\x97\xea\x78\x6b\x2a\x1c\xe6\x60\x34\xf0\xa7\xd6\x74\x9c\xf0\x02\x0b\xa3\x03\x35\xb7\x5e\x73\xf1\x20\xa9\xbd\xf1\x4e\x55\xcc\x51\xfd\xb9\xa5\x67\x17\x0d\xb5\x97\xbf\x81\x01\x5c\x95\x16\x9d\x1b\x6d\x6e\x5b\x7b\x48\xc7\xc4\xf5\x88\x74\xc4\xc7\x25\x47\xa5\xb7\x10\x1a\x74\x6b\x39\x0f\x45\xe5\x19\xfb\x74\x21\x56\xb3\x50\x77\x66\x99\xf1\x9a\x36\xe1\x48\x4d\xb8\x40\x3b\x76\xa4\xc5\x0a\x6e\x43\xc9\xba\x1c\x8a\x46\x58\x3e\x8a\x95\x2c\x7c\x01\xda\x17\x29\x5a\x1e\x97\x9a\x22\x47\x5c\x6d\xc9\x71\x16\x70\x1d\xf4\x36\x22\xaa\x67\x70\x14\x53\x20\xef\x89\xe1\x23\x28\x98\x91\x2c\xd0\xf8\x49\xa0\xae\x6a\x51\xb8\x5f\x17\x8d\x27\xc0\x66\x4f\x5f\xb6\x1a\x43\x20\x35\x38\xcc\x8c\xce\x1d\x1c\x67\x42\x73\xdb\xe2\xf6\x69\x65\x9e\xa3\x86\x12\x6d\x2f\x73\x72\xd8\xf8\x52\x5a\x69\xac\xa4\x6a\x0a\xa6\xcf\x1b\x32\x5b\xeb\x6f\xab\x1e\x8e\x97\x72\xb1\x44\xdb\x12\xf7\x07\x34\xbf\xdb\x0d\x27\xd3\xe8\x9a\x7e\xd6\x32\x8b\x5c\x73\x67\xe9\x08\xd4\xed\x63\x5a\x2d\x04\x7f\x8e\x63\xfd\xe2\xd0\xc2\xaf\xa5\x81\x46\x79\x37\x9c\x8d\x1d\xa8\xd7\xff\x7f\x46\x34\x1a\x57\x34\xb3\x5e\xcf\xc4\x48\x36\x72\xf6\x38\x12\x45\x39\x82\xe8\x13\xae\x28\x54\xc1\xb7\xe3\xb9\x78\xdf\xca\x86\x32\xc1\x66\xa2\x5a\xd1\xf1\xba\x35\xd7\xa6\x23\x51\xc2\x1d\x86\xe4\x2f\xe1\xf6\x44\x62\xe6\xc0\x56\x7e\x8b\xfb\x99\xb7\x16\x35\xcd\x3a\xdd\x13\xef\x01\xb5\x78\xd3\xca\xf8\xc4\xec\x73\x21\x68\x8c\x9e\xf1\x14\x11\xe3\x02\xa9\x1d\x89\x41\x93\x7a\xe2\x46\x70\x20\xe8\x30\x7e\x6f\xc2\x7c\x70\x71\x6c\x7b\x90\xcd\xb4\x2e\x76\xde\xc4\xb2\x78\x17\x94\xc2\x8a\x02\x09\xad\x3b\xac\xae\x85\x07\x96\x09\x35\xed\xce\x58\x82\x1b\x9b\xc7\x1f\x23\x07\xc3\x67\xc3\x9f\xc3\xb9\xc8\xeb\x3b\xfb\x33\xb6\x18\xd4\xf5\x4c\xbe\xe1\x72\x6a\x8c\x42\x31\x16\xd6\xeb\x75\x91\xc8\xdf\xbf\x97\x48\x5c\x5e\xbb\xdb\xa2\x74\xd0\x98\x08\x00\x46\x8e\x42\x0f\x61\x90\x14\xcf\x30\xe5\xd4\x0f\x64\x13\x90\xdd\x05\x09\xf8\x10\x17\xd2\x6d\xe0\xa4\x03\x01\xb5\x89\x61\xe5\xed\xf1\x0c\xfd\x9e\x44\x4b\xf7\x78\x37\xc1\xfb\xdb\x0d\x99\x27\x88\x61\x23\x2f\x87\x12\xd3\x9c\x3f\x6a\xe6\xd5\x9a\x13\xdc\xf9\x02\xb8\x9a\x3d\x98\x74\xd6\xbd\x5a\xac\xdf\xc2\xa3\x37\xc4\xe1\xd3\x46\xf7\x0c\xf0\x6d\x74\xc6\x34\x45\x69\x9c\x24\x0c\x37\x9e\x55\xc8\xb1\xee\xc9\x22\x3c\x9f\x06\x61\xf8\xe1\xd1\x4a\x74\xbb\x9f\x0b\x5b\x27\x9b\x89\x3c\xdc\x4f\x76\x3a\x1a\x6f\x3c\xc4\xd3\xf6\x66\xc6\xf2\x07\x7b\x3b\xb8\x4e\xcd\xda\x06\x3d\xee\xf0\xda\xd5\x6b\xd8\xcf\xf7\x76\x7b\x30\xc4\x4f\x73\xb6\x9f\x86\x76\x67\x40\x34\x34\x4d\x0f\xab\xe7\xf1\x68\xd3\xb5\x2e\x5b\xbb\x8b\x60\xf3\xea\x5d\xa2\x2d\x64\x7d\x8f\x89\x8b\x50\x3f\x05\xb8\xbe\xdc\x3c\x1e\x3d\x1e\xfd\x1b\x00\x00\xff\xff\x30\x83\xa7\x5e\xf4\x17\x00\x00") func yaoModelsJobJobModYaoBytes() ([]byte, error) { return bindataRead( @@ -2696,7 +2696,7 @@ func yaoModelsJobJobModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/job/job.mod.yao", size: 6156, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/job/job.mod.yao", size: 6132, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2716,7 +2716,7 @@ func yaoModelsJobLogModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/job/log.mod.yao", size: 4711, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/job/log.mod.yao", size: 4711, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2736,7 +2736,7 @@ func yaoModelsKbCollectionModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/kb/collection.mod.yao", size: 5052, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/kb/collection.mod.yao", size: 5052, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2756,7 +2756,7 @@ func yaoModelsKbDocumentModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/kb/document.mod.yao", size: 9549, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/kb/document.mod.yao", size: 9549, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2776,7 +2776,7 @@ func yaoModelsUserModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/user.mod.yao", size: 10702, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/user.mod.yao", size: 10702, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2796,7 +2796,7 @@ func yaoModelsUser_oauth_accountModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/user_oauth_account.mod.yao", size: 6799, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/user_oauth_account.mod.yao", size: 6799, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2816,7 +2816,7 @@ func yaoModelsUser_roleModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/user_role.mod.yao", size: 6219, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/user_role.mod.yao", size: 6219, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2836,7 +2836,7 @@ func yaoModelsUser_typeModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/user_type.mod.yao", size: 4672, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/models/user_type.mod.yao", size: 4672, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2856,7 +2856,7 @@ func yaoReleaseAppYaz() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/release/app.yaz", size: 181682, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/release/app.yaz", size: 181682, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2876,7 +2876,7 @@ func yaoStoresAgentCacheLruYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/agent/cache.lru.yao", size: 301, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/stores/agent/cache.lru.yao", size: 301, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2896,7 +2896,7 @@ func yaoStoresAgentMemoryBadgerYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/agent/memory.badger.yao", size: 352, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/stores/agent/memory.badger.yao", size: 352, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2916,7 +2916,7 @@ func yaoStoresCacheLruYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/cache.lru.yao", size: 285, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/stores/cache.lru.yao", size: 285, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2936,7 +2936,7 @@ func yaoStoresKbCacheLruYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/kb/cache.lru.yao", size: 304, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/stores/kb/cache.lru.yao", size: 304, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2956,7 +2956,7 @@ func yaoStoresKbStoreBadgerYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/kb/store.badger.yao", size: 349, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/stores/kb/store.badger.yao", size: 349, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2976,7 +2976,7 @@ func yaoStoresOauthCacheLruYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/oauth/cache.lru.yao", size: 301, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/stores/oauth/cache.lru.yao", size: 301, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2996,7 +2996,7 @@ func yaoStoresOauthClientBadgerYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/oauth/client.badger.yao", size: 352, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/stores/oauth/client.badger.yao", size: 352, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3016,7 +3016,7 @@ func yaoStoresOauthStoreBadgerYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/oauth/store.badger.yao", size: 376, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/stores/oauth/store.badger.yao", size: 376, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3036,7 +3036,7 @@ func yaoStoresStoreBadgerYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/store.badger.yao", size: 341, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/stores/store.badger.yao", size: 341, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3056,7 +3056,7 @@ func yaoUploadersAttachmentLocalYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/uploaders/attachment.local.yao", size: 1163, mode: os.FileMode(420), modTime: time.Unix(1756546890, 0)} + info := bindataFileInfo{name: "yao/uploaders/attachment.local.yao", size: 1163, mode: os.FileMode(420), modTime: time.Unix(1756611751, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/job/data.go b/job/data.go new file mode 100644 index 00000000..71888462 --- /dev/null +++ b/job/data.go @@ -0,0 +1,116 @@ +package job + +import ( + "github.com/yaoapp/gou/model" + "github.com/yaoapp/kun/maps" +) + +// ======================== +// Jobs methods +// ======================== + +// ListJobs list jobs +func ListJobs(param model.QueryParam, page int, pagesize int) (maps.MapStrAny, error) { + return nil, nil +} + +// GetActiveJobs get active jobs +func GetActiveJobs() ([]*Job, error) { + return nil, nil +} + +// CountJobs count jobs +func CountJobs(param model.QueryParam) (int, error) { + return 0, nil +} + +// SaveJob save job +func SaveJob(job *Job) error { + return nil +} + +// RemoveJobs remove jobs +func RemoveJobs(ids []string) error { + return nil +} + +// GetJob get job +func GetJob(id string) (*Job, error) { + return nil, nil +} + +// ======================== +// Categories methods +// ======================== + +// GetCategories get categories +func GetCategories(param model.QueryParam) ([]*Category, error) { + return nil, nil +} + +// CountCategories count categories +func CountCategories(param model.QueryParam) (int, error) { + return 0, nil +} + +// RemoveCategories remove categories +func RemoveCategories(ids []string) error { + return nil +} + +// SaveCategory save category +func SaveCategory(category *Category) error { + return nil +} + +// ======================== +// Logs methods +// ======================== + +// ListLogs get logs +func ListLogs(id string, param model.QueryParam, page int, pagesize int) (maps.MapStrAny, error) { + return nil, nil +} + +// SaveLog save log +func SaveLog(log *Log) error { + return nil +} + +// RemoveLogs remove logs +func RemoveLogs(ids []string) error { + return nil +} + +// ======================== +// Executions methods +// ======================== + +// GetExecutions get executions +func GetExecutions(id string) ([]*Execution, error) { + return nil, nil +} + +// CountExecutions count executions +func CountExecutions(id string, param model.QueryParam) (int, error) { + return 0, nil +} + +// RemoveExecutions remove executions +func RemoveExecutions(ids []string) error { + return nil +} + +// GetExecution get execution +func GetExecution(id string, param model.QueryParam) (*Execution, error) { + return nil, nil +} + +// ======================== +// Live progress methods +// ======================== + +// GetProgress get progress with callback +func GetProgress(id string, cb func(progress *Progress)) (*Progress, error) { + return nil, nil +} diff --git a/job/execution.go b/job/execution.go new file mode 100644 index 00000000..e56d8448 --- /dev/null +++ b/job/execution.go @@ -0,0 +1,63 @@ +package job + +// Add add a new execution to the job +func (j *Job) Add(priority int, handler HandlerFunc) error { + return nil +} + +// GetExecutions get executions +func (j *Job) GetExecutions() ([]*Execution, error) { + return nil, nil +} + +// GetExecution get execution +func (j *Job) GetExecution(id string) (*Execution, error) { + return nil, nil +} + +// Log log +func (e *Execution) Log(level LogLevel, format string, args ...interface{}) error { + return nil +} + +// Info info log +func (e *Execution) Info(format string, args ...interface{}) error { + return e.Log(Info, format, args...) +} + +// Debug debug log +func (e *Execution) Debug(format string, args ...interface{}) error { + return e.Log(Debug, format, args...) +} + +// Warn warn log +func (e *Execution) Warn(format string, args ...interface{}) error { + return e.Log(Warn, format, args...) +} + +// Error error log +func (e *Execution) Error(format string, args ...interface{}) error { + return e.Log(Error, format, args...) +} + +// Fatal fatal log +func (e *Execution) Fatal(format string, args ...interface{}) error { + return e.Log(Fatal, format, args...) +} + +// Panic panic log +func (e *Execution) Panic(format string, args ...interface{}) error { + return e.Log(Panic, format, args...) +} + +// Trace trace log +func (e *Execution) Trace(format string, args ...interface{}) error { + return e.Log(Trace, format, args...) +} + +// SetProgress set the progress +func (e *Execution) SetProgress(progress int, message string) error { + p := e.Job.Progress() + p.Set(progress, message) + return nil +} diff --git a/job/interfaces.go b/job/interfaces.go new file mode 100644 index 00000000..0bc4d9b3 --- /dev/null +++ b/job/interfaces.go @@ -0,0 +1,6 @@ +package job + +// ProgressManager the progress manager +type ProgressManager interface { + Set(progress int, message string) error +} diff --git a/job/job.go b/job/job.go index 8d7765aa..96c0952d 100644 --- a/job/job.go +++ b/job/job.go @@ -1 +1,114 @@ package job + +import jsoniter "github.com/json-iterator/go" + +// Once create a new job +func Once(mode ModeType, data map[string]interface{}) (*Job, error) { + data["mode"] = mode + data["schedule_type"] = ScheduleTypeOnce + raw, err := jsoniter.Marshal(data) + if err != nil { + return nil, err + } + return makeJob(raw) +} + +// Cron create a new job +func Cron(mode ModeType, data map[string]interface{}, expression string) (*Job, error) { + data["mode"] = mode + data["schedule_type"] = ScheduleTypeCron + data["schedule_expression"] = expression + raw, err := jsoniter.Marshal(data) + if err != nil { + return nil, err + } + return makeJob(raw) +} + +// Daemon create a new job +func Daemon(mode ModeType, data map[string]interface{}) (*Job, error) { + data["mode"] = mode + data["schedule_type"] = ScheduleTypeDaemon + raw, err := jsoniter.Marshal(data) + if err != nil { + return nil, err + } + return makeJob(raw) +} + +// Start start the job +func (j *Job) Start() error { + return nil +} + +// Cancel cancel the job +func (j *Job) Cancel() error { + return nil +} + +// SetData set the data of the job +func (j *Job) SetData(data map[string]interface{}) *Job { + return j +} + +// SetConfig set the config of the job +func (j *Job) SetConfig(config map[string]interface{}) *Job { + j.Config = config + return j +} + +// SetName set the name of the job +func (j *Job) SetName(name string) *Job { + j.Name = name + return j +} + +// SetDescription set the description of the job +func (j *Job) SetDescription(description string) *Job { + j.Description = &description + return j +} + +// SetCategory set the category of the job +func (j *Job) SetCategory(category string) *Job { + j.CategoryID = category + return j +} + +// SetMaxWorkerNums set the max worker nums of the job +func (j *Job) SetMaxWorkerNums(maxWorkerNums int) *Job { + j.MaxWorkerNums = maxWorkerNums + return j +} + +// SetStatus set the status of the job +func (j *Job) SetStatus(status string) *Job { + j.Status = status + return j +} + +// SetMaxRetryCount set the max retry count of the job +func (j *Job) SetMaxRetryCount(maxRetryCount int) *Job { + j.MaxRetryCount = maxRetryCount + return j +} + +// SetDefaultTimeout set the default timeout of the job +func (j *Job) SetDefaultTimeout(defaultTimeout int) *Job { + j.DefaultTimeout = &defaultTimeout + return j +} + +// SetMode set the mode of the job +func (j *Job) SetMode(mode ModeType) { + j.Mode = mode +} + +func makeJob(data []byte) (*Job, error) { + var job Job + err := jsoniter.Unmarshal(data, &job) + if err != nil { + return nil, err + } + return &job, nil +} diff --git a/job/job_test.go b/job/job_test.go new file mode 100644 index 00000000..4fc43854 --- /dev/null +++ b/job/job_test.go @@ -0,0 +1,171 @@ +package job_test + +import ( + "context" + "fmt" + "testing" + "time" + + "github.com/yaoapp/yao/job" +) + +// TestOnce test once job +func TestOnceGoroutine(t *testing.T) { + test, err := job.Once(job.GOROUTINE, map[string]interface{}{}) + if err != nil { + t.Fatal(err) + } + test.Add(1, TestHandler) + test.Start() +} + +func TestOnceProcess(t *testing.T) { + test, err := job.Once(job.PROCESS, map[string]interface{}{}) + if err != nil { + t.Fatal(err) + } + test.Add(1, TestHandler) + test.Start() +} + +func TestCronGoroutine(t *testing.T) { + test, err := job.Cron(job.GOROUTINE, map[string]interface{}{}, "0 0 * * *") + if err != nil { + t.Fatal(err) + } + test.Add(1, TestHandler) + test.Start() +} + +func TestCronProcess(t *testing.T) { + test, err := job.Cron(job.PROCESS, map[string]interface{}{}, "0 0 * * *") + if err != nil { + t.Fatal(err) + } + test.Add(1, TestHandler) + test.Start() +} + +// TestDaemonGoroutine tests daemon job with goroutine mode using Ticker handler +func TestDaemonGoroutine(t *testing.T) { + test, err := job.Daemon(job.GOROUTINE, map[string]interface{}{}) + if err != nil { + t.Fatal(err) + } + test.Add(1, TestDaemonHandler) + test.Start() +} + +// TestDaemonProcess tests daemon job with process mode using Ticker handler +func TestDaemonProcess(t *testing.T) { + test, err := job.Daemon(job.PROCESS, map[string]interface{}{}) + if err != nil { + t.Fatal(err) + } + test.Add(1, TestDaemonHandler) + test.Start() +} + +// TestDaemonFastGoroutine tests fast daemon job with goroutine mode for quick testing +func TestDaemonFastGoroutine(t *testing.T) { + test, err := job.Daemon(job.GOROUTINE, map[string]interface{}{}) + if err != nil { + t.Fatal(err) + } + test.Add(1, TestDaemonHandlerFast) + test.Start() +} + +// TestDaemonFastProcess tests fast daemon job with process mode for quick testing +func TestDaemonFastProcess(t *testing.T) { + test, err := job.Daemon(job.PROCESS, map[string]interface{}{}) + if err != nil { + t.Fatal(err) + } + test.Add(1, TestDaemonHandlerFast) + test.Start() +} + +func TestHandler(ctx context.Context, execution *job.Execution) error { + execution.SetProgress(50, "Progress 50%") + execution.Info("Progress 50%") + time.Sleep(100 * time.Millisecond) + execution.SetProgress(100, "Progress 100%") + execution.Info("Progress 100%") + time.Sleep(200 * time.Millisecond) + execution.SetProgress(100, "Progress 100%") + execution.Info("Progress 100%") + return nil +} + +func TestDaemonHandler(ctx context.Context, execution *job.Execution) error { + // Build a daemon handler using Ticker that executes tasks every 5 seconds continuously + ticker := time.NewTicker(5 * time.Second) + defer ticker.Stop() + + counter := 0 + + execution.Info("Daemon handler started, running continuously...") + execution.SetProgress(0, "Daemon initialized and ready") + + for { + select { + case <-ctx.Done(): + // Context cancelled, graceful shutdown + execution.Info("Daemon handler received cancellation signal after %d iterations, exiting...", counter) + execution.SetProgress(100, fmt.Sprintf("Daemon stopped gracefully after %d iterations", counter)) + return ctx.Err() + case <-ticker.C: + counter++ + + // Daemon doesn't need specific completion progress, show running status instead + execution.SetProgress(50, fmt.Sprintf("Running - completed %d iterations", counter)) + execution.Info("Daemon tick %d: Processing periodic task...", counter) + + // Simulate periodic tasks execution + // e.g.: cleanup temp files, health checks, data synchronization, etc. + time.Sleep(500 * time.Millisecond) // Simulate task execution time + + execution.Debug("Daemon iteration %d completed successfully", counter) + + // Output statistics every 10 iterations + if counter%10 == 0 { + execution.Info("Daemon health check: %d iterations completed, still running...", counter) + } + } + } +} + +// TestDaemonHandlerFast fast testing version of daemon handler for testing (executes every 500ms) +func TestDaemonHandlerFast(ctx context.Context, execution *job.Execution) error { + // Use shorter interval for testing + ticker := time.NewTicker(500 * time.Millisecond) + defer ticker.Stop() + + counter := 0 + + execution.Info("Fast daemon handler started for testing, running continuously...") + execution.SetProgress(0, "Fast daemon initialized") + + for { + select { + case <-ctx.Done(): + execution.Info("Fast daemon handler stopped after %d iterations", counter) + execution.SetProgress(100, fmt.Sprintf("Fast daemon stopped after %d iterations", counter)) + return ctx.Err() + case <-ticker.C: + counter++ + + execution.SetProgress(50, fmt.Sprintf("Fast daemon: %d iterations", counter)) + execution.Debug("Fast daemon tick %d: Quick task execution", counter) + + // Quick task simulation + time.Sleep(50 * time.Millisecond) + + // Output info every 5 iterations (due to higher frequency) + if counter%5 == 0 { + execution.Info("Fast daemon: %d iterations completed", counter) + } + } + } +} diff --git a/job/progress.go b/job/progress.go new file mode 100644 index 00000000..fb929321 --- /dev/null +++ b/job/progress.go @@ -0,0 +1,14 @@ +package job + +// Progress the progress manager struct +type Progress struct{} + +// Progress Progress manager +func (j *Job) Progress() ProgressManager { + return &Progress{} +} + +// Set set the progress +func (p *Progress) Set(progress int, message string) error { + return nil +} diff --git a/job/types.go b/job/types.go new file mode 100644 index 00000000..4992fd76 --- /dev/null +++ b/job/types.go @@ -0,0 +1,171 @@ +package job + +import ( + "context" + "encoding/json" + "time" +) + +// ScheduleType the schedule type +type ScheduleType string + +// ScheduleType constants +const ( + ScheduleTypeOnce ScheduleType = "once" + ScheduleTypeCron ScheduleType = "cron" + ScheduleTypeDaemon ScheduleType = "daemon" +) + +// ModeType tye execution mode +type ModeType string + +// ModeType constants +const ( + GOROUTINE ModeType = "GOROUTINE" // Execute using Go goroutine (lightweight, fast) + PROCESS ModeType = "PROCESS" // Independent process isolated +) + +// LogLevel the log level +type LogLevel uint8 + +// These are the different logging levels. You can set the logging level to log +// on your instance of logger, obtained with `logrus.New()`. +const ( + // PanicLevel level, highest level of severity. Logs and then calls panic with the + // message passed to Debug, Info, ... + Panic LogLevel = iota + // FatalLevel level. Logs and then calls `logger.Exit(1)`. It will exit even if the + // logging level is set to Panic. + Fatal + // ErrorLevel level. Logs. Used for errors that should definitely be noted. + // Commonly used for hooks to send errors to an error tracking service. + Error + // WarnLevel level. Non-critical entries that deserve eyes. + Warn + // InfoLevel level. General operational entries about what's going on inside the + // application. + Info + // DebugLevel level. Usually only enabled when debugging. Very verbose logging. + Debug + // TraceLevel level. Designates finer-grained informational events than the Debug. + Trace +) + +// HandlerFunc the job handler function +type HandlerFunc func(ctx context.Context, execution *Execution) error + +// Job represents the main job entity +type Job struct { + ID uint `json:"id"` + JobID string `json:"job_id"` + Name string `json:"name"` + Icon *string `json:"icon,omitempty"` // nullable: true + Description *string `json:"description,omitempty"` // nullable: true + CategoryID string `json:"category_id"` + MaxWorkerNums int `json:"max_worker_nums"` // default: 1 + Status string `json:"status"` // default: "draft" + Mode ModeType `json:"mode"` // default: "goroutine" + ScheduleType string `json:"schedule_type"` // default: "once" + ScheduleExpression *string `json:"schedule_expression,omitempty"` // nullable: true + MaxRetryCount int `json:"max_retry_count"` // default: 0 + DefaultTimeout *int `json:"default_timeout,omitempty"` // nullable: true + Priority int `json:"priority"` // default: 0 + CreatedBy string `json:"created_by"` + NextRunAt *time.Time `json:"next_run_at,omitempty"` // nullable: true + LastRunAt *time.Time `json:"last_run_at,omitempty"` // nullable: true + CurrentExecutionID *string `json:"current_execution_id,omitempty"` // nullable: true + Config map[string]interface{} `json:"config,omitempty"` // nullable: true + Sort int `json:"sort"` // default: 0 + Enabled bool `json:"enabled"` // default: true + System bool `json:"system"` // default: false + Readonly bool `json:"readonly"` // default: false + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + + // Relationships + Category *Category `json:"category,omitempty"` + Executions []Execution `json:"executions,omitempty"` + Logs []Log `json:"logs,omitempty"` + + ctx context.Context + cancel context.CancelFunc +} + +// Category represents job categories for organization +type Category struct { + ID uint `json:"id"` + CategoryID string `json:"category_id"` + Name string `json:"name"` + Icon *string `json:"icon,omitempty"` // nullable: true + Description *string `json:"description,omitempty"` // nullable: true + Sort int `json:"sort"` // default: 0 + System bool `json:"system"` // default: false + Enabled bool `json:"enabled"` // default: true + Readonly bool `json:"readonly"` // default: false + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + + // Relationships + Jobs []Job `json:"jobs,omitempty"` +} + +// Execution represents individual job execution instances +type Execution struct { + ID uint `json:"id"` + ExecutionID string `json:"execution_id"` + JobID string `json:"job_id"` + Status string `json:"status"` // default: "queued" + TriggerCategory string `json:"trigger_category"` + TriggerSource *string `json:"trigger_source,omitempty"` // nullable: true + TriggerContext *json.RawMessage `json:"trigger_context,omitempty"` // nullable: true + ScheduledAt *time.Time `json:"scheduled_at,omitempty"` // nullable: true + WorkerID *string `json:"worker_id,omitempty"` // nullable: true + ProcessID *string `json:"process_id,omitempty"` // nullable: true + RetryAttempt int `json:"retry_attempt"` // default: 0 + ParentExecutionID *string `json:"parent_execution_id,omitempty"` // nullable: true + StartedAt *time.Time `json:"started_at,omitempty"` // nullable: true + EndedAt *time.Time `json:"ended_at,omitempty"` // nullable: true + TimeoutSeconds *int `json:"timeout_seconds,omitempty"` // nullable: true + Duration *int `json:"duration,omitempty"` // nullable: true + Progress int `json:"progress"` // default: 0 + ConfigSnapshot *json.RawMessage `json:"config_snapshot,omitempty"` // nullable: true + Result *json.RawMessage `json:"result,omitempty"` // nullable: true + ErrorInfo *json.RawMessage `json:"error_info,omitempty"` // nullable: true + StackTrace *string `json:"stack_trace,omitempty"` // nullable: true + Metrics *json.RawMessage `json:"metrics,omitempty"` // nullable: true + Context *json.RawMessage `json:"context,omitempty"` // nullable: true + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + + // Relationships + Job *Job `json:"job,omitempty"` + ParentExecution *Execution `json:"parent_execution,omitempty"` + ChildExecutions []Execution `json:"child_executions,omitempty"` + Logs []Log `json:"logs,omitempty"` +} + +// Log represents job execution logs and events +type Log struct { + ID uint `json:"id"` + JobID string `json:"job_id"` + Level string `json:"level"` // default: "info" + Message string `json:"message"` + Context *json.RawMessage `json:"context,omitempty"` // nullable: true + Source *string `json:"source,omitempty"` // nullable: true + ExecutionID *string `json:"execution_id,omitempty"` // nullable: true + Step *string `json:"step,omitempty"` // nullable: true + Progress *int `json:"progress,omitempty"` // nullable: true + Duration *int `json:"duration,omitempty"` // nullable: true + ErrorCode *string `json:"error_code,omitempty"` // nullable: true + StackTrace *string `json:"stack_trace,omitempty"` // nullable: true + WorkerID *string `json:"worker_id,omitempty"` // nullable: true + ProcessID *string `json:"process_id,omitempty"` // nullable: true + Timestamp time.Time `json:"timestamp"` // default: "now()" + Sequence int `json:"sequence"` // default: 0 + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + + // Relationships + Job *Job `json:"job,omitempty"` + Execution *Execution `json:"execution,omitempty"` +} diff --git a/job/types/interfaces.go b/job/types/interfaces.go deleted file mode 100644 index 4216a060..00000000 --- a/job/types/interfaces.go +++ /dev/null @@ -1,12 +0,0 @@ -package types - -import "context" - -// Job interface -type Job interface { - Run(ctx context.Context) error - AddTask(ctx context.Context, task Task) error -} - -// Task interface -type Task func(ctx context.Context, job Job) error diff --git a/job/types/types.go b/job/types/types.go deleted file mode 100644 index ab1254f4..00000000 --- a/job/types/types.go +++ /dev/null @@ -1 +0,0 @@ -package types diff --git a/yao/models/job/job.mod.yao b/yao/models/job/job.mod.yao index b3bdb42e..54cd6563 100644 --- a/yao/models/job/job.mod.yao +++ b/yao/models/job/job.mod.yao @@ -78,15 +78,15 @@ "index": true }, { - "name": "process_type", + "name": "mode", "type": "enum", - "label": "Process Type", - "comment": "Job execution process type", + "label": "Mode", + "comment": "Job execution mode", "option": [ - "goroutine", // Execute using Go goroutine (lightweight, fast) - "process" // Execute as independent process (isolated, heavyweight) + "GOROUTINE", // Execute using Go goroutine (lightweight, fast) + "PROCESS" // Execute as independent process (isolated, heavyweight) ], - "default": "goroutine", + "default": "GOROUTINE", "nullable": false, "index": true },