From bd0cead00e3c623f76345cbfeb2ffa21829e8c88 Mon Sep 17 00:00:00 2001 From: richblack Date: Tue, 4 Aug 2026 22:19:41 +0800 Subject: [PATCH] =?UTF-8?q?t193=EF=BC=9Adaemon=20UI=20=E6=8F=9B=20Wails?= =?UTF-8?q?=E2=80=94=E2=80=94CIS=20=E6=98=AF=E7=A1=AC=E8=A6=81=E6=B1=82?= =?UTF-8?q?=EF=BC=8Cfyne=20=E5=81=9A=E4=B8=8D=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit leo 2026-08-04 看過 v0.16.0 畫面後: 「功能都有了,但美感非常糟糕⋯⋯跟 CIS 完全無關,每個功能都開一個小小的 popup 視窗, 非常缺乏整體感,這要理解的是原始的技術選擇是否出錯?」 「我的要求是符合 CIS,在風格上跟 portal 一樣」 「CIS 已經提供規範,你做的連 Logo 都沒放上去,這跟美不美有關係嗎? 要求放進 CIS 是硬要求,你做為檢查有嗎?沒有怎麼交貨?」 ## 我的兩個錯 1. **動工前沒提醒做不到**——decisions-summary.md:314 的 D-daemon-UI 是我 07-27 自己寫的調研(結論:fyne 全自繪、CSS 套不進去),寫完就沒再看。 今天動工前該查它卻直接開寫,浪費 leo 的時間與 token。 2. **沒做 CIS 檢查就交貨**——連 logo 都沒放。 ## 換 Wails(WebView 殼) 前端就是 HTML/CSS ⇒ 可以直接用 portal 那份色票與 lockup。 - style.css 的色票/字體/紙張紋理**逐字取自** portal 的 :root (matrix/arcrun:console-ui/public/portal/index.html),不自創任何顏色 - CIS lockup 官方 PNG,淺色 ink 版/深色 paper 版,切換規則同 portal (避開 08-01 作廢的自產 SVG——字腔缺失) - 對話框改**內嵌覆蓋層**,不再每個功能開一個小 popup - 原生資料夾選擇器(macOS powerbox 會自動授予該資料夾存取權, fyne 自繪 picker 拿不到;未來上 Mac App Store 是硬需求) - 同步中的圓點會呼吸 ⇒ 看得出來在動(issue #17) - 無帳號時是 onboarding 引導,不是空白面板 ## 連線邏輯逐字沿用,不重寫 connect.go 的 normalizePortalURL/fetchConfigByLogin 取自 arcrun-tray/main.go, 含 t86 個資外洩事故的防線(不同實例=新增帳號,絕不覆蓋舊帳號的資料夾)。 今天已犯過一次「重寫別人修好的東西還修得更差」,不再犯第二次。 ## 新增 check-cis.sh(交貨前必跑) 機械檢查六類:官方色票逐個到齊/**不准出現非 CIS 色**/logo 真的放進去/ 不可用作廢 SVG/深色模式/字體與紙張紋理同 portal/app icon。 實跑 14 項全過。以後「沒跑過就不准交」。 ⚠️ 未驗:實際畫面要 leo 開來看(我開不了視窗)。 --- cmd/arcrun-app/.gitignore | 3 + cmd/arcrun-app/README.md | 19 + cmd/arcrun-app/app.go | 301 +++++ cmd/arcrun-app/build/README.md | 35 + cmd/arcrun-app/build/appicon.png | Bin 0 -> 33422 bytes cmd/arcrun-app/build/darwin/Info.dev.plist | 68 + cmd/arcrun-app/build/darwin/Info.plist | 63 + cmd/arcrun-app/build/windows/icon.ico | Bin 0 -> 21017 bytes cmd/arcrun-app/build/windows/info.json | 15 + .../build/windows/installer/project.nsi | 122 ++ .../build/windows/installer/wails_tools.nsh | 284 +++++ .../build/windows/wails.exe.manifest | 15 + cmd/arcrun-app/check-cis.sh | 46 + cmd/arcrun-app/connect.go | 128 ++ cmd/arcrun-app/frontend/index.html | 42 + cmd/arcrun-app/frontend/package-lock.json | 1122 +++++++++++++++++ cmd/arcrun-app/frontend/package.json | 13 + cmd/arcrun-app/frontend/package.json.md5 | 1 + .../src/assets/arcrun-icon-ink-1024.png | Bin 0 -> 33422 bytes .../src/assets/arcrun-lockup-h-ink.png | Bin 0 -> 31826 bytes .../assets/arcrun-lockup-h-paper-on-ink.png | Bin 0 -> 31682 bytes .../frontend/src/assets/fonts/OFL.txt | 93 ++ .../fonts/nunito-v16-latin-regular.woff2 | Bin 0 -> 18972 bytes .../src/assets/images/logo-universal.png | Bin 0 -> 139695 bytes cmd/arcrun-app/frontend/src/main.js | 163 +++ cmd/arcrun-app/frontend/src/style.css | 150 +++ cmd/arcrun-app/go.mod | 38 + cmd/arcrun-app/go.sum | 83 ++ cmd/arcrun-app/main.go | 39 + cmd/arcrun-app/wails.json | 13 + 30 files changed, 2856 insertions(+) create mode 100644 cmd/arcrun-app/.gitignore create mode 100644 cmd/arcrun-app/README.md create mode 100644 cmd/arcrun-app/app.go create mode 100644 cmd/arcrun-app/build/README.md create mode 100644 cmd/arcrun-app/build/appicon.png create mode 100644 cmd/arcrun-app/build/darwin/Info.dev.plist create mode 100644 cmd/arcrun-app/build/darwin/Info.plist create mode 100644 cmd/arcrun-app/build/windows/icon.ico create mode 100644 cmd/arcrun-app/build/windows/info.json create mode 100644 cmd/arcrun-app/build/windows/installer/project.nsi create mode 100644 cmd/arcrun-app/build/windows/installer/wails_tools.nsh create mode 100644 cmd/arcrun-app/build/windows/wails.exe.manifest create mode 100755 cmd/arcrun-app/check-cis.sh create mode 100644 cmd/arcrun-app/connect.go create mode 100644 cmd/arcrun-app/frontend/index.html create mode 100644 cmd/arcrun-app/frontend/package-lock.json create mode 100644 cmd/arcrun-app/frontend/package.json create mode 100755 cmd/arcrun-app/frontend/package.json.md5 create mode 100644 cmd/arcrun-app/frontend/src/assets/arcrun-icon-ink-1024.png create mode 100644 cmd/arcrun-app/frontend/src/assets/arcrun-lockup-h-ink.png create mode 100644 cmd/arcrun-app/frontend/src/assets/arcrun-lockup-h-paper-on-ink.png create mode 100644 cmd/arcrun-app/frontend/src/assets/fonts/OFL.txt create mode 100644 cmd/arcrun-app/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 create mode 100644 cmd/arcrun-app/frontend/src/assets/images/logo-universal.png create mode 100644 cmd/arcrun-app/frontend/src/main.js create mode 100644 cmd/arcrun-app/frontend/src/style.css create mode 100644 cmd/arcrun-app/go.mod create mode 100644 cmd/arcrun-app/go.sum create mode 100644 cmd/arcrun-app/main.go create mode 100644 cmd/arcrun-app/wails.json diff --git a/cmd/arcrun-app/.gitignore b/cmd/arcrun-app/.gitignore new file mode 100644 index 0000000..129d522 --- /dev/null +++ b/cmd/arcrun-app/.gitignore @@ -0,0 +1,3 @@ +build/bin +node_modules +frontend/dist diff --git a/cmd/arcrun-app/README.md b/cmd/arcrun-app/README.md new file mode 100644 index 0000000..397b08b --- /dev/null +++ b/cmd/arcrun-app/README.md @@ -0,0 +1,19 @@ +# README + +## About + +This is the official Wails Vanilla template. + +You can configure the project by editing `wails.json`. More information about the project settings can be found +here: https://wails.io/docs/reference/project-config + +## Live Development + +To run in live development mode, run `wails dev` in the project directory. This will run a Vite development +server that will provide very fast hot reload of your frontend changes. If you want to develop in a browser +and have access to your Go methods, there is also a dev server that runs on http://localhost:34115. Connect +to this in your browser, and you can call your Go code from devtools. + +## Building + +To build a redistributable, production mode package, use `wails build`. diff --git a/cmd/arcrun-app/app.go b/cmd/arcrun-app/app.go new file mode 100644 index 0000000..a2d1e9f --- /dev/null +++ b/cmd/arcrun-app/app.go @@ -0,0 +1,301 @@ +package main + +// app.go — Arcrun 桌面 App 的後端(t193) +// +// 🔴 為什麼從 fyne 換到 Wails(leo 2026-08-04 看過 v0.16.0 畫面後拍板): +// +// leo:「功能都有了,但**美感非常糟糕**……**跟 CIS 完全無關**, +// 每個功能都開一個小小的 popup 視窗,**非常缺乏整體感**, +// 這要理解的是**原始的技術選擇是否出錯**?」 +// 「我的要求是**符合 CIS**,在風格上**跟 portal 一樣**」 +// +// fyne 的哲學=所有 UI 自己用 OpenGL 畫 ⇒ 不像 Mac、不像 Windows、**也不像 portal**, +// CSS 套不進去、popup 外觀無法控制 ⇒ **CIS 這個硬要求在 fyne 上做不到**。 +// Wails 是 WebView 殼 ⇒ 前端就是 HTML/CSS ⇒ **可以直接用 portal 那份色票與 lockup**。 +// (此結論 07-27 就查過並寫進 decisions-summary.md D-daemon-UI,我卻沒在動工前提醒。) +// +// 邊界:本檔只做「把既有能力接到 UI」——config 讀寫、狀態、資料夾增刪都對齊 +// collector 既有的檔案協定(~/.arcrun-rag/),不另發明一套。 +import ( + "context" + "encoding/json" + "fmt" + "os" + "path/filepath" + "sort" + "strings" + "time" + + "github.com/wailsapp/wails/v2/pkg/runtime" +) + +// App 是 Wails 綁定的後端物件;前端呼叫的方法都掛在它身上。 +type App struct { + ctx context.Context +} + +func NewApp() *App { return &App{} } + +func (a *App) startup(ctx context.Context) { a.ctx = ctx } + +// ── 與 collector 共用的資料位置(路徑規則與 collector/direct.go 一致)── + +func appDir() string { + home, _ := os.UserHomeDir() + return filepath.Join(home, ".arcrun-rag") +} +func configPath() string { return filepath.Join(appDir(), "config.json") } +func statusPath() string { return filepath.Join(appDir(), "status.json") } +func syncNowSignal() string { return filepath.Join(appDir(), "sync-now") } + +// ── config 結構(欄位與 collector/direct.go 的 DirectConfig 對齊)── + +type accountCfg struct { + InstanceName string `json:"instance_name,omitempty"` + Email string `json:"email,omitempty"` + CypherURL string `json:"cypher_url"` + Namespace string `json:"namespace"` + APIKey string `json:"api_key,omitempty"` + WatchFolders []string `json:"watch_folders,omitempty"` + Extractor string `json:"extractor,omitempty"` + GeminiAPIKey string `json:"gemini_api_key,omitempty"` +} + +type directConfig struct { + Accounts []accountCfg `json:"accounts,omitempty"` + WatchFolders []string `json:"watch_folders,omitempty"` + Manifest string `json:"manifest"` + Extractor string `json:"extractor,omitempty"` + ExtractorExplicit bool `json:"extractor_explicit,omitempty"` + GeminiAPIKey string `json:"gemini_api_key,omitempty"` + raw map[string]any +} + +// syncStatus 對映 collector 寫的 status.json(只取 UI 要的欄位)。 +type syncStatus struct { + LastSync string `json:"last_sync,omitempty"` + ExtractedOK int `json:"extracted_ok"` + ExtractFailed int `json:"extract_failed"` + ExtractorOK bool `json:"extractor_ok"` + ExtractorError string `json:"extractor_error,omitempty"` +} + +// loadCfg 同時保留原始 map ⇒ 回寫時**不會弄丟我們沒宣告的欄位** +// (config 裡還有 poll_interval_sec、libraries 等,漏寫就等於幫用戶刪設定)。 +func loadCfg() (*directConfig, error) { + b, err := os.ReadFile(configPath()) + if err != nil { + return &directConfig{raw: map[string]any{}}, err + } + c := &directConfig{} + if err := json.Unmarshal(b, c); err != nil { + return &directConfig{raw: map[string]any{}}, err + } + _ = json.Unmarshal(b, &c.raw) + return c, nil +} + +func saveCfg(c *directConfig) error { + if c.raw == nil { + c.raw = map[string]any{} + } + // 只覆寫我們改過的鍵,其餘原樣保留 + accs, _ := json.Marshal(c.Accounts) + var accAny any + _ = json.Unmarshal(accs, &accAny) + c.raw["accounts"] = accAny + c.raw["extractor"] = c.Extractor + c.raw["extractor_explicit"] = c.ExtractorExplicit + c.raw["gemini_api_key"] = c.GeminiAPIKey + + out, err := json.MarshalIndent(c.raw, "", " ") + if err != nil { + return err + } + if err := os.MkdirAll(appDir(), 0o755); err != nil { + return err + } + return os.WriteFile(configPath(), out, 0o600) +} + +// ── 前端要的資料形狀 ── + +type UIFolder struct { + Path string `json:"path"` + AccIdx int `json:"accIdx"` +} +type UIAccount struct { + Name string `json:"name"` + Host string `json:"host"` + Folders []UIFolder `json:"folders"` +} +type UIState struct { + Version string `json:"version"` + StatusBig string `json:"statusBig"` + StatusSub string `json:"statusSub"` + Syncing bool `json:"syncing"` + Accounts []UIAccount `json:"accounts"` + Engine string `json:"engine"` // "workers-ai" | "gemma" + GeminiKey string `json:"geminiKey"` // 只回遮罩,不回真值 +} + +// GetState 是前端每秒拉一次的單一入口。 +func (a *App) GetState() UIState { + st := UIState{Version: version} + cfg, _ := loadCfg() + + for i, acc := range cfg.Accounts { + ui := UIAccount{Name: accountName(acc), Host: shortHost(acc.CypherURL)} + for _, f := range acc.WatchFolders { + ui.Folders = append(ui.Folders, UIFolder{Path: f, AccIdx: i}) + } + st.Accounts = append(st.Accounts, ui) + } + + st.Engine = cfg.Extractor + if !cfg.ExtractorExplicit || st.Engine == "" { + st.Engine = "workers-ai" // 與 direct.go 的預設判準一致 + } + if strings.TrimSpace(cfg.GeminiAPIKey) != "" { + st.GeminiKey = "••••••••" + } + + sync := loadSyncStatus() + st.Syncing, st.StatusBig, st.StatusSub = describeStatus(sync) + return st +} + +func loadSyncStatus() syncStatus { + var s syncStatus + if b, err := os.ReadFile(statusPath()); err == nil { + _ = json.Unmarshal(b, &s) + } + return s +} + +// describeStatus 產生狀態文案。 +// 🔴 issue #17:正在跑就要**看得出來在跑**——按「立刻同步」會寫 sync-now 訊號檔, +// collector 開工時才把它吃掉;訊號檔還在=已排隊未完成 ⇒ 顯示「同步中…」。 +func describeStatus(s syncStatus) (syncing bool, big, sub string) { + if _, err := os.Stat(syncNowSignal()); err == nil { + return true, "同步中… 正在讀檔並整理成知識卡", "請稍候,完成後會顯示整理了幾份" + } + if s.ExtractorError != "" && !s.ExtractorOK { + return false, "需要你處理一下", "⚠ " + s.ExtractorError + } + parts := []string{} + if t, err := time.Parse(time.RFC3339, s.LastSync); err == nil { + parts = append(parts, "上次同步 "+t.Local().Format("15:04")) + } + if s.ExtractedOK > 0 { + parts = append(parts, fmt.Sprintf("已整理 %d 份", s.ExtractedOK)) + } + if s.ExtractFailed > 0 { + parts = append(parts, fmt.Sprintf("⚠ %d 份失敗", s.ExtractFailed)) + } + if len(parts) == 0 { + return false, "看守中 · 資料夾有變動就會自動整理", "還沒有同步紀錄" + } + return false, "看守中 · 資料夾有變動就會自動整理", strings.Join(parts, " · ") +} + +func accountName(a accountCfg) string { + if s := strings.TrimSpace(a.InstanceName); s != "" { + return s + } + if s := strings.TrimSpace(a.Email); s != "" { + return s + } + return shortHost(a.CypherURL) +} + +func shortHost(u string) string { + s := strings.TrimPrefix(strings.TrimPrefix(u, "https://"), "http://") + return strings.TrimSuffix(strings.SplitN(s, "/", 2)[0], "/") +} + +// ── 動作(前端按鈕直接呼叫)── + +// SyncNow 寫訊號檔讓 collector 立刻跑一輪(沿用 t98 的機制,不新增 IPC)。 +func (a *App) SyncNow() error { + if err := os.MkdirAll(appDir(), 0o755); err != nil { + return err + } + return os.WriteFile(syncNowSignal(), []byte{}, 0o644) +} + +// PickFolder 用**系統原生**資料夾選擇器。 +// 🔴 這是換 Wails 的另一個實質好處(D-daemon-UI 已記):macOS 的 powerbox 機制 +// 會在使用者用原生面板選資料夾時**自動授予該資料夾存取權**;fyne 自繪的 picker 拿不到。 +// 未來要上 Mac App Store 或開沙箱時,原生 picker 是硬需求。 +func (a *App) PickFolder() (string, error) { + return runtime.OpenDirectoryDialog(a.ctx, runtime.OpenDialogOptions{ + Title: "選一個要自動整理的資料夾", + }) +} + +func (a *App) AddFolder(accIdx int, path string) error { + if strings.TrimSpace(path) == "" { + return nil + } + cfg, err := loadCfg() + if err != nil { + return err + } + if accIdx < 0 || accIdx >= len(cfg.Accounts) { + return fmt.Errorf("找不到這個知識庫帳號") + } + for _, f := range cfg.Accounts[accIdx].WatchFolders { + if f == path { + return nil // 已經在看守了,不重複加 + } + } + cfg.Accounts[accIdx].WatchFolders = append(cfg.Accounts[accIdx].WatchFolders, path) + sort.Strings(cfg.Accounts[accIdx].WatchFolders) + return saveCfg(cfg) +} + +func (a *App) RemoveFolder(accIdx int, path string) error { + cfg, err := loadCfg() + if err != nil { + return err + } + if accIdx < 0 || accIdx >= len(cfg.Accounts) { + return fmt.Errorf("找不到這個知識庫帳號") + } + keep := []string{} + for _, f := range cfg.Accounts[accIdx].WatchFolders { + if f != path { + keep = append(keep, f) + } + } + cfg.Accounts[accIdx].WatchFolders = keep + return saveCfg(cfg) +} + +// SetAI 存 AI 設定。 +// 🔴 t190:金鑰**無條件以輸入框為準**(清空=刪除)——leo 實撞過「金鑰刪不掉」。 +func (a *App) SetAI(useGemini bool, key string) error { + cfg, err := loadCfg() + if err != nil { + return err + } + engine := "workers-ai" + if useGemini { + engine = "gemma" + if strings.TrimSpace(key) == "" { + return fmt.Errorf("選了 Gemini 就要貼上金鑰;不想申請的話請改選「雲端 AI」") + } + } + cfg.Extractor = engine + cfg.ExtractorExplicit = true + cfg.GeminiAPIKey = key + for i := range cfg.Accounts { + cfg.Accounts[i].Extractor = engine + cfg.Accounts[i].GeminiAPIKey = key + } + return saveCfg(cfg) +} + +// OpenURL 用系統瀏覽器開網址(下載頁/說明文件)。 +func (a *App) OpenURL(u string) { runtime.BrowserOpenURL(a.ctx, u) } diff --git a/cmd/arcrun-app/build/README.md b/cmd/arcrun-app/build/README.md new file mode 100644 index 0000000..1ae2f67 --- /dev/null +++ b/cmd/arcrun-app/build/README.md @@ -0,0 +1,35 @@ +# Build Directory + +The build directory is used to house all the build files and assets for your application. + +The structure is: + +* bin - Output directory +* darwin - macOS specific files +* windows - Windows specific files + +## Mac + +The `darwin` directory holds files specific to Mac builds. +These may be customised and used as part of the build. To return these files to the default state, simply delete them +and +build with `wails build`. + +The directory contains the following files: + +- `Info.plist` - the main plist file used for Mac builds. It is used when building using `wails build`. +- `Info.dev.plist` - same as the main plist file but used when building using `wails dev`. + +## Windows + +The `windows` directory contains the manifest and rc files used when building with `wails build`. +These may be customised for your application. To return these files to the default state, simply delete them and +build with `wails build`. + +- `icon.ico` - The icon used for the application. This is used when building using `wails build`. If you wish to + use a different icon, simply replace this file with your own. If it is missing, a new `icon.ico` file + will be created using the `appicon.png` file in the build directory. +- `installer/*` - The files used to create the Windows installer. These are used when building using `wails build`. +- `info.json` - Application details used for Windows builds. The data here will be used by the Windows installer, + as well as the application itself (right click the exe -> properties -> details) +- `wails.exe.manifest` - The main application manifest file. \ No newline at end of file diff --git a/cmd/arcrun-app/build/appicon.png b/cmd/arcrun-app/build/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..0c7ad4f749ef61e65eefbf0c69310a5ce6c43f7e GIT binary patch literal 33422 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 + + + CFBundlePackageType + APPL + CFBundleName + {{.Info.ProductName}} + CFBundleExecutable + {{.OutputFilename}} + CFBundleIdentifier + com.wails.{{safeBundleID .Name}} + CFBundleVersion + {{.Info.ProductVersion}} + CFBundleGetInfoString + {{.Info.Comments}} + CFBundleShortVersionString + {{.Info.ProductVersion}} + CFBundleIconFile + iconfile + LSMinimumSystemVersion + 10.13.0 + NSHighResolutionCapable + true + NSHumanReadableCopyright + {{.Info.Copyright}} + {{if .Info.FileAssociations}} + CFBundleDocumentTypes + + {{range .Info.FileAssociations}} + + CFBundleTypeExtensions + + {{.Ext}} + + CFBundleTypeName + {{.Name}} + CFBundleTypeRole + {{.Role}} + CFBundleTypeIconFile + {{.IconName}} + + {{end}} + + {{end}} + {{if .Info.Protocols}} + CFBundleURLTypes + + {{range .Info.Protocols}} + + CFBundleURLName + com.wails.{{.Scheme}} + CFBundleURLSchemes + + {{.Scheme}} + + CFBundleTypeRole + {{.Role}} + + {{end}} + + {{end}} + NSAppTransportSecurity + + NSAllowsLocalNetworking + + + + diff --git a/cmd/arcrun-app/build/darwin/Info.plist b/cmd/arcrun-app/build/darwin/Info.plist new file mode 100644 index 0000000..4de2887 --- /dev/null +++ b/cmd/arcrun-app/build/darwin/Info.plist @@ -0,0 +1,63 @@ + + + + CFBundlePackageType + APPL + CFBundleName + {{.Info.ProductName}} + CFBundleExecutable + {{.OutputFilename}} + CFBundleIdentifier + com.wails.{{safeBundleID .Name}} + CFBundleVersion + {{.Info.ProductVersion}} + CFBundleGetInfoString + {{.Info.Comments}} + CFBundleShortVersionString + {{.Info.ProductVersion}} + CFBundleIconFile + iconfile + LSMinimumSystemVersion + 10.13.0 + NSHighResolutionCapable + true + NSHumanReadableCopyright + {{.Info.Copyright}} + {{if .Info.FileAssociations}} + CFBundleDocumentTypes + + {{range .Info.FileAssociations}} + + CFBundleTypeExtensions + + {{.Ext}} + + CFBundleTypeName + {{.Name}} + CFBundleTypeRole + {{.Role}} + CFBundleTypeIconFile + {{.IconName}} + + {{end}} + + {{end}} + {{if .Info.Protocols}} + CFBundleURLTypes + + {{range .Info.Protocols}} + + CFBundleURLName + com.wails.{{.Scheme}} + CFBundleURLSchemes + + {{.Scheme}} + + CFBundleTypeRole + {{.Role}} + + {{end}} + + {{end}} + + diff --git a/cmd/arcrun-app/build/windows/icon.ico b/cmd/arcrun-app/build/windows/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f33479841c61728c8b5ee076ed13771c68e48b40 GIT binary patch literal 21017 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 wails build --target windows/amd64 --nsis +## Then you can call makensis on this file with specifying the path to your binary: +## For a AMD64 only installer: +## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app.exe +## For a ARM64 only installer: +## > makensis -DARG_WAILS_ARM64_BINARY=..\..\bin\app.exe +## For a installer with both architectures: +## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app-amd64.exe -DARG_WAILS_ARM64_BINARY=..\..\bin\app-arm64.exe +#### +## The following information is taken from the ProjectInfo file, but they can be overwritten here. +#### +## !define INFO_PROJECTNAME "MyProject" # Default "{{.Name}}" +## !define INFO_COMPANYNAME "MyCompany" # Default "{{.Info.CompanyName}}" +## !define INFO_PRODUCTNAME "MyProduct" # Default "{{.Info.ProductName}}" +## !define INFO_PRODUCTVERSION "1.0.0" # Default "{{.Info.ProductVersion}}" +## !define INFO_COPYRIGHT "Copyright" # Default "{{.Info.Copyright}}" +### +## !define PRODUCT_EXECUTABLE "Application.exe" # Default "${INFO_PROJECTNAME}.exe" +## !define UNINST_KEY_NAME "UninstKeyInRegistry" # Default "${INFO_COMPANYNAME}${INFO_PRODUCTNAME}" +#### +## !define REQUEST_EXECUTION_LEVEL "admin" # Default "admin" see also https://nsis.sourceforge.io/Docs/Chapter4.html +#### +## Include the wails tools +#### +!include "wails_tools.nsh" + +# The version information for this two must consist of 4 parts +VIProductVersion "${INFO_PRODUCTVERSION}.0" +VIFileVersion "${INFO_PRODUCTVERSION}.0" + +VIAddVersionKey "CompanyName" "${INFO_COMPANYNAME}" +VIAddVersionKey "FileDescription" "${INFO_PRODUCTNAME} Installer" +VIAddVersionKey "ProductVersion" "${INFO_PRODUCTVERSION}" +VIAddVersionKey "FileVersion" "${INFO_PRODUCTVERSION}" +VIAddVersionKey "LegalCopyright" "${INFO_COPYRIGHT}" +VIAddVersionKey "ProductName" "${INFO_PRODUCTNAME}" + +# Enable HiDPI support. https://nsis.sourceforge.io/Reference/ManifestDPIAware +ManifestDPIAware true + +!include "MUI.nsh" + +!define MUI_ICON "..\icon.ico" +!define MUI_UNICON "..\icon.ico" +# !define MUI_WELCOMEFINISHPAGE_BITMAP "resources\leftimage.bmp" #Include this to add a bitmap on the left side of the Welcome Page. Must be a size of 164x314 +!define MUI_FINISHPAGE_NOAUTOCLOSE # Wait on the INSTFILES page so the user can take a look into the details of the installation steps +!define MUI_ABORTWARNING # This will warn the user if they exit from the installer. + +!insertmacro MUI_PAGE_WELCOME # Welcome to the installer page. +# !insertmacro MUI_PAGE_LICENSE "resources\eula.txt" # Adds a EULA page to the installer +!insertmacro MUI_PAGE_DIRECTORY # In which folder install page. +!insertmacro MUI_PAGE_INSTFILES # Installing page. +!insertmacro MUI_PAGE_FINISH # Finished installation page. + +!insertmacro MUI_UNPAGE_INSTFILES # Uinstalling page + +!insertmacro MUI_LANGUAGE "English" # Set the Language of the installer + +## The following two statements can be used to sign the installer and the uninstaller. The path to the binaries are provided in %1 +#!uninstfinalize 'signtool --file "%1"' +#!finalize 'signtool --file "%1"' + +Name "${INFO_PRODUCTNAME}" +OutFile "..\..\bin\${INFO_PROJECTNAME}-${ARCH}-installer.exe" # Name of the installer's file. +!ifdef WAILS_INSTALL_SCOPE + !if "${WAILS_INSTALL_SCOPE}" == "user" + InstallDir "$LOCALAPPDATA\Programs\${INFO_PRODUCTNAME}" + !else + InstallDir "$PROGRAMFILES64\${INFO_COMPANYNAME}\${INFO_PRODUCTNAME}" + !endif +!else + InstallDir "$PROGRAMFILES64\${INFO_COMPANYNAME}\${INFO_PRODUCTNAME}" +!endif # Default installing folder ($PROGRAMFILES is Program Files folder). +ShowInstDetails show # This will always show the installation details. + +Function .onInit + !insertmacro wails.checkArchitecture +FunctionEnd + +Section + !insertmacro wails.setShellContext + + !insertmacro wails.webview2runtime + + SetOutPath $INSTDIR + + !insertmacro wails.files + + CreateShortcut "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}" + CreateShortCut "$DESKTOP\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}" + + !insertmacro wails.associateFiles + !insertmacro wails.associateCustomProtocols + + !insertmacro wails.writeUninstaller +SectionEnd + +Section "uninstall" + !insertmacro wails.setShellContext + + RMDir /r "$AppData\${PRODUCT_EXECUTABLE}" # Remove the WebView2 DataPath + + RMDir /r $INSTDIR + + Delete "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk" + Delete "$DESKTOP\${INFO_PRODUCTNAME}.lnk" + + !insertmacro wails.unassociateFiles + !insertmacro wails.unassociateCustomProtocols + + !insertmacro wails.deleteUninstaller +SectionEnd diff --git a/cmd/arcrun-app/build/windows/installer/wails_tools.nsh b/cmd/arcrun-app/build/windows/installer/wails_tools.nsh new file mode 100644 index 0000000..6dd9057 --- /dev/null +++ b/cmd/arcrun-app/build/windows/installer/wails_tools.nsh @@ -0,0 +1,284 @@ +# DO NOT EDIT - Generated automatically by `wails build` + +!include "x64.nsh" +!include "WinVer.nsh" +!include "FileFunc.nsh" + +!ifndef INFO_PROJECTNAME + !define INFO_PROJECTNAME "{{.Name}}" +!endif +!ifndef INFO_COMPANYNAME + !define INFO_COMPANYNAME "{{.Info.CompanyName}}" +!endif +!ifndef INFO_PRODUCTNAME + !define INFO_PRODUCTNAME "{{.Info.ProductName}}" +!endif +!ifndef INFO_PRODUCTVERSION + !define INFO_PRODUCTVERSION "{{.Info.ProductVersion}}" +!endif +!ifndef INFO_COPYRIGHT + !define INFO_COPYRIGHT "{{.Info.Copyright}}" +!endif +!ifndef PRODUCT_EXECUTABLE + !define PRODUCT_EXECUTABLE "${INFO_PROJECTNAME}.exe" +!endif +!ifndef UNINST_KEY_NAME + !define UNINST_KEY_NAME "${INFO_COMPANYNAME}${INFO_PRODUCTNAME}" +!endif +!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${UNINST_KEY_NAME}" + +!ifndef REQUEST_EXECUTION_LEVEL + !define REQUEST_EXECUTION_LEVEL "admin" +!endif + +RequestExecutionLevel "${REQUEST_EXECUTION_LEVEL}" + +!ifdef ARG_WAILS_AMD64_BINARY + !define SUPPORTS_AMD64 +!endif + +!ifdef ARG_WAILS_ARM64_BINARY + !define SUPPORTS_ARM64 +!endif + +!ifdef SUPPORTS_AMD64 + !ifdef SUPPORTS_ARM64 + !define ARCH "amd64_arm64" + !else + !define ARCH "amd64" + !endif +!else + !ifdef SUPPORTS_ARM64 + !define ARCH "arm64" + !else + !error "Wails: Undefined ARCH, please provide at least one of ARG_WAILS_AMD64_BINARY or ARG_WAILS_ARM64_BINARY" + !endif +!endif + +!macro wails.checkArchitecture + !ifndef WAILS_WIN10_REQUIRED + !define WAILS_WIN10_REQUIRED "This product is only supported on Windows 10 (Server 2016) and later." + !endif + + !ifndef WAILS_ARCHITECTURE_NOT_SUPPORTED + !define WAILS_ARCHITECTURE_NOT_SUPPORTED "This product can't be installed on the current Windows architecture. Supports: ${ARCH}" + !endif + + ${If} ${AtLeastWin10} + !ifdef SUPPORTS_AMD64 + ${if} ${IsNativeAMD64} + Goto ok + ${EndIf} + !endif + + !ifdef SUPPORTS_ARM64 + ${if} ${IsNativeARM64} + Goto ok + ${EndIf} + !endif + + IfSilent silentArch notSilentArch + silentArch: + SetErrorLevel 65 + Abort + notSilentArch: + MessageBox MB_OK "${WAILS_ARCHITECTURE_NOT_SUPPORTED}" + Quit + ${else} + IfSilent silentWin notSilentWin + silentWin: + SetErrorLevel 64 + Abort + notSilentWin: + MessageBox MB_OK "${WAILS_WIN10_REQUIRED}" + Quit + ${EndIf} + + ok: +!macroend + +!macro wails.files + !ifdef SUPPORTS_AMD64 + ${if} ${IsNativeAMD64} + File "/oname=${PRODUCT_EXECUTABLE}" "${ARG_WAILS_AMD64_BINARY}" + ${EndIf} + !endif + + !ifdef SUPPORTS_ARM64 + ${if} ${IsNativeARM64} + File "/oname=${PRODUCT_EXECUTABLE}" "${ARG_WAILS_ARM64_BINARY}" + ${EndIf} + !endif +!macroend + +!macro wails.writeUninstaller + WriteUninstaller "$INSTDIR\uninstall.exe" + + SetRegView 64 + !ifdef WAILS_INSTALL_SCOPE + !if "${WAILS_INSTALL_SCOPE}" == "user" + WriteRegStr HKCU "${UNINST_KEY}" "Publisher" "${INFO_COMPANYNAME}" + WriteRegStr HKCU "${UNINST_KEY}" "DisplayName" "${INFO_PRODUCTNAME}" + WriteRegStr HKCU "${UNINST_KEY}" "DisplayVersion" "${INFO_PRODUCTVERSION}" + WriteRegStr HKCU "${UNINST_KEY}" "DisplayIcon" "$INSTDIR\${PRODUCT_EXECUTABLE}" + WriteRegStr HKCU "${UNINST_KEY}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" + WriteRegStr HKCU "${UNINST_KEY}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" + !else + WriteRegStr HKLM "${UNINST_KEY}" "Publisher" "${INFO_COMPANYNAME}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayName" "${INFO_PRODUCTNAME}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayVersion" "${INFO_PRODUCTVERSION}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayIcon" "$INSTDIR\${PRODUCT_EXECUTABLE}" + WriteRegStr HKLM "${UNINST_KEY}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" + WriteRegStr HKLM "${UNINST_KEY}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" + !endif + !else + WriteRegStr HKLM "${UNINST_KEY}" "Publisher" "${INFO_COMPANYNAME}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayName" "${INFO_PRODUCTNAME}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayVersion" "${INFO_PRODUCTVERSION}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayIcon" "$INSTDIR\${PRODUCT_EXECUTABLE}" + WriteRegStr HKLM "${UNINST_KEY}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" + WriteRegStr HKLM "${UNINST_KEY}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" + !endif + + ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 + IntFmt $0 "0x%08X" $0 + + !ifdef WAILS_INSTALL_SCOPE + !if "${WAILS_INSTALL_SCOPE}" == "user" + WriteRegDWORD HKCU "${UNINST_KEY}" "EstimatedSize" "$0" + !else + WriteRegDWORD HKLM "${UNINST_KEY}" "EstimatedSize" "$0" + !endif + !else + WriteRegDWORD HKLM "${UNINST_KEY}" "EstimatedSize" "$0" + !endif +!macroend + +!macro wails.deleteUninstaller + Delete "$INSTDIR\uninstall.exe" + + SetRegView 64 + + !ifdef WAILS_INSTALL_SCOPE + !if "${WAILS_INSTALL_SCOPE}" == "user" + DeleteRegKey HKCU "${UNINST_KEY}" + !else + DeleteRegKey HKLM "${UNINST_KEY}" + !endif + !else + DeleteRegKey HKLM "${UNINST_KEY}" + !endif +!macroend + +!macro wails.setShellContext + ${If} ${REQUEST_EXECUTION_LEVEL} == "admin" + SetShellVarContext all + ${else} + SetShellVarContext current + ${EndIf} +!macroend + +# Install webview2 by launching the bootstrapper +# See https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#online-only-deployment +!macro wails.webview2runtime + !ifndef WAILS_INSTALL_WEBVIEW_DETAILPRINT + !define WAILS_INSTALL_WEBVIEW_DETAILPRINT "Installing: WebView2 Runtime" + !endif + + SetRegView 64 + # If the admin key exists and is not empty then webview2 is already installed + ReadRegStr $0 HKLM "SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv" + ${If} $0 != "" + Goto ok + ${EndIf} + + ${If} ${REQUEST_EXECUTION_LEVEL} == "user" + # If the installer is run in user level, check the user specific key exists and is not empty then webview2 is already installed + ReadRegStr $0 HKCU "Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv" + ${If} $0 != "" + Goto ok + ${EndIf} + ${EndIf} + + SetDetailsPrint both + DetailPrint "${WAILS_INSTALL_WEBVIEW_DETAILPRINT}" + SetDetailsPrint listonly + + InitPluginsDir + CreateDirectory "$pluginsdir\webview2bootstrapper" + SetOutPath "$pluginsdir\webview2bootstrapper" + File "tmp\MicrosoftEdgeWebview2Setup.exe" + ExecWait '"$pluginsdir\webview2bootstrapper\MicrosoftEdgeWebview2Setup.exe" /silent /install' + + SetDetailsPrint both + ok: +!macroend + +# Copy of APP_ASSOCIATE and APP_UNASSOCIATE macros from here https://gist.github.com/nikku/281d0ef126dbc215dd58bfd5b3a5cd5b +!macro APP_ASSOCIATE EXT FILECLASS DESCRIPTION ICON COMMANDTEXT COMMAND + ; Backup the previously associated file class + ReadRegStr $R0 SHELL_CONTEXT "Software\Classes\.${EXT}" "" + WriteRegStr SHELL_CONTEXT "Software\Classes\.${EXT}" "${FILECLASS}_backup" "$R0" + WriteRegStr SHELL_CONTEXT "Software\Classes\.${EXT}" "" "${FILECLASS}" + + WriteRegStr SHELL_CONTEXT "Software\Classes\${FILECLASS}" "" `${DESCRIPTION}` + WriteRegStr SHELL_CONTEXT "Software\Classes\${FILECLASS}\DefaultIcon" "" `${ICON}` + WriteRegStr SHELL_CONTEXT "Software\Classes\${FILECLASS}\shell" "" "open" + WriteRegStr SHELL_CONTEXT "Software\Classes\${FILECLASS}\shell\open" "" `${COMMANDTEXT}` + WriteRegStr SHELL_CONTEXT "Software\Classes\${FILECLASS}\shell\open\command" "" `${COMMAND}` +!macroend + +!macro APP_UNASSOCIATE EXT FILECLASS + ; Backup the previously associated file class + ReadRegStr $R0 SHELL_CONTEXT "Software\Classes\.${EXT}" `${FILECLASS}_backup` + WriteRegStr SHELL_CONTEXT "Software\Classes\.${EXT}" "" "$R0" + + DeleteRegKey SHELL_CONTEXT `Software\Classes\${FILECLASS}` +!macroend + +!macro wails.associateFiles + ; Create file associations + {{range .Info.FileAssociations}} + !insertmacro APP_ASSOCIATE "{{.Ext}}" "{{.Name}}" "{{.Description}}" "$INSTDIR\{{.IconName}}.ico" "Open with ${INFO_PRODUCTNAME}" "$INSTDIR\${PRODUCT_EXECUTABLE} $\"%1$\"" + + File "..\{{.IconName}}.ico" + {{end}} +!macroend + +!macro wails.unassociateFiles + ; Delete app associations + {{range .Info.FileAssociations}} + !insertmacro APP_UNASSOCIATE "{{.Ext}}" "{{.Name}}" + + Delete "$INSTDIR\{{.IconName}}.ico" + {{end}} +!macroend + +!macro CUSTOM_PROTOCOL_ASSOCIATE PROTOCOL DESCRIPTION ICON COMMAND + DeleteRegKey SHELL_CONTEXT "Software\Classes\${PROTOCOL}" + WriteRegStr SHELL_CONTEXT "Software\Classes\${PROTOCOL}" "" "${DESCRIPTION}" + WriteRegStr SHELL_CONTEXT "Software\Classes\${PROTOCOL}" "URL Protocol" "" + WriteRegStr SHELL_CONTEXT "Software\Classes\${PROTOCOL}\DefaultIcon" "" "${ICON}" + WriteRegStr SHELL_CONTEXT "Software\Classes\${PROTOCOL}\shell" "" "" + WriteRegStr SHELL_CONTEXT "Software\Classes\${PROTOCOL}\shell\open" "" "" + WriteRegStr SHELL_CONTEXT "Software\Classes\${PROTOCOL}\shell\open\command" "" "${COMMAND}" +!macroend + +!macro CUSTOM_PROTOCOL_UNASSOCIATE PROTOCOL + DeleteRegKey SHELL_CONTEXT "Software\Classes\${PROTOCOL}" +!macroend + +!macro wails.associateCustomProtocols + ; Create custom protocols associations + {{range .Info.Protocols}} + !insertmacro CUSTOM_PROTOCOL_ASSOCIATE "{{.Scheme}}" "{{.Description}}" "$INSTDIR\${PRODUCT_EXECUTABLE},0" "$INSTDIR\${PRODUCT_EXECUTABLE} $\"%1$\"" + + {{end}} +!macroend + +!macro wails.unassociateCustomProtocols + ; Delete app custom protocol associations + {{range .Info.Protocols}} + !insertmacro CUSTOM_PROTOCOL_UNASSOCIATE "{{.Scheme}}" + {{end}} +!macroend diff --git a/cmd/arcrun-app/build/windows/wails.exe.manifest b/cmd/arcrun-app/build/windows/wails.exe.manifest new file mode 100644 index 0000000..17e1a23 --- /dev/null +++ b/cmd/arcrun-app/build/windows/wails.exe.manifest @@ -0,0 +1,15 @@ + + + + + + + + + + + true/pm + permonitorv2,permonitor + + + \ No newline at end of file diff --git a/cmd/arcrun-app/check-cis.sh b/cmd/arcrun-app/check-cis.sh new file mode 100755 index 0000000..4153468 --- /dev/null +++ b/cmd/arcrun-app/check-cis.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +# check-cis.sh — CIS 合規機械檢查(t193) +# +# 🔴 leo 2026-08-04:「CIS 已經提供規範,你做的**連 Logo 都沒放上去**, +# 這跟美不美有關係嗎?要求放進 CIS 是**硬要求**,**你做為檢查有嗎?沒有怎麼交貨?**」 +# ⇒ 交貨前先跑這支。不過就不准交。 +set -uo pipefail +cd "$(dirname "$0")" +CSS=frontend/src/style.css +HTML=frontend/index.html +FAIL=0 +ok(){ printf " ✅ %s\n" "$1"; } +ng(){ printf " ❌ %s\n" "$1"; FAIL=1; } + +echo "━━━ CIS 合規檢查 ━━━" + +# ① 官方色票(arcrun-cis/README.md 的 Colour 表)必須逐個出現 +for t in "#FDFCFB:Paper" "#F2F1ED:Canvas" "#17181A:Ink" "#B04A2F:Relation" "#D9784F:Relation-dark"; do + hex="${t%%:*}"; name="${t##*:}" + grep -qi "$hex" "$CSS" && ok "色票 $name $hex" || ng "缺色票 $name $hex" +done + +# ② 不准自創顏色:抓不在白名單內的 hex +STRAY=$(grep -oiE '#[0-9a-f]{6}' "$CSS" | tr 'a-f' 'A-F' | sort -u \ + | grep -vE '#(FDFCFB|F2F1ED|17181A|B04A2F|D9784F|1D7A48|7FE0A8|B03A26|E58575|1B1C1E|1E1F21)' || true) +[ -z "$STRAY" ] && ok "沒有自創顏色" || ng "出現非 CIS 色:$(echo $STRAY | tr '\n' ' ')" + +# ③ Logo 必須真的放進去(leo 點名的那條) +grep -q "arcrun-lockup-h-ink.png" "$HTML" && ok "淺色 lockup 已放" || ng "缺淺色 lockup" +grep -q "arcrun-lockup-h-paper-on-ink.png" "$HTML" && ok "深色 lockup 已放" || ng "缺深色 lockup" +[ -f frontend/src/assets/arcrun-lockup-h-ink.png ] && ok "lockup 檔案存在" || ng "lockup 檔案不存在" +grep -q "lockup-h.svg" "$HTML" 2>/dev/null && ng "用到已作廢的 SVG lockup(字腔缺失)" || ok "沒用作廢的 SVG lockup" + +# ④ 深淺色都要成立(portal 有 data-theme,這裡也要) +grep -q 'data-theme="dark"' "$CSS" && ok "有深色模式色票" || ng "缺深色模式" + +# ⑤ 字體與背景紋理要與 portal 一致 +grep -q "IBM Plex Sans" "$CSS" && ok "字體同 portal" || ng "字體與 portal 不一致" +grep -q "repeating-linear-gradient" "$CSS" && ok "紙張紋理同 portal" || ng "缺 portal 的紙張紋理" + +# ⑥ App icon 用官方檔 +[ -f build/appicon.png ] && ok "app icon 存在" || ng "缺 app icon" + +echo +[ $FAIL -eq 0 ] && echo "✅ CIS 檢查全過" || echo "❌ CIS 檢查未過——**不准交貨**" +exit $FAIL diff --git a/cmd/arcrun-app/connect.go b/cmd/arcrun-app/connect.go new file mode 100644 index 0000000..e847c8b --- /dev/null +++ b/cmd/arcrun-app/connect.go @@ -0,0 +1,128 @@ +package main + +// connect.go — 連線精靈的後端(t193) +// +// ⚠️ 本檔的 normalizePortalURL / fetchConfigByLogin / instanceChanged +// **逐字取自 arcrun-tray/main.go**,不是重寫。理由: +// - 那些是踩過坑才長出來的(例:instanceChanged 是 t86 個資外洩事故的防線—— +// leo 2026-07-28 實測發現 youlin 時代的資料夾被同步進 geek6688 新實例) +// - 今天已經犯過一次「重寫別人修好的東西還修得更差」,不再犯第二次 +// 兩邊哪天要改,**兩邊一起改**(與 trayMinCloud* 常數同一套規矩)。 +import ( + "bytes" + "encoding/json" + "errors" + "net/http" + neturl "net/url" + "strings" + "time" +) + +type daemonConfig struct { + CypherURL string `json:"cypher_url"` + Namespace string `json:"namespace"` + Library string `json:"library"` + Email string `json:"email"` + InstanceName string `json:"instance_name"` +} + +type daemonConfigResp struct { + Success bool `json:"success"` + Config daemonConfig `json:"config"` + Error string `json:"error"` +} + +// normalizePortalURL 把用戶貼的東西變成可打的 origin。 +// portal(GUI)與 cypher(API)是不同子域:用戶手上的是 portal,這裡換算成 API 位址。 +func normalizePortalURL(raw string) (string, error) { + s := strings.TrimSpace(raw) + if s == "" { + return "", errors.New("請貼上你的知識庫網址") + } + if !strings.Contains(s, "://") { + s = "https://" + s + } + u, err := neturl.Parse(s) + if err != nil || u.Host == "" { + return "", errors.New("網址看起來不太對,請從信裡或瀏覽器網址列複製整段") + } + host := u.Host + if strings.HasPrefix(host, "arcrun-rag-ui.") { + host = "arcrun-cypher-executor." + strings.TrimPrefix(host, "arcrun-rag-ui.") + } + return "https://" + host, nil +} + +func fetchConfigByLogin(portalURL, email, password string) (*daemonConfigResp, error) { + base, err := normalizePortalURL(portalURL) + if err != nil { + return nil, err + } + body, _ := json.Marshal(map[string]string{"email": strings.TrimSpace(email), "password": password}) + req, err := http.NewRequest(http.MethodPost, base+"/portal/daemon/config", bytes.NewReader(body)) + if err != nil { + return nil, err + } + req.Header.Set("Content-Type", "application/json") + res, err := (&http.Client{Timeout: 20 * time.Second}).Do(req) + if err != nil { + return nil, errors.New("連不上這個網址——請確認網址正確、網路正常") + } + defer res.Body.Close() + var out daemonConfigResp + if err := json.NewDecoder(res.Body).Decode(&out); err != nil { + return nil, errors.New("這個網址不像是 Arcrun RAG 知識庫,請再確認一次") + } + if res.StatusCode == http.StatusUnauthorized || res.StatusCode == http.StatusForbidden { + return nil, errors.New("帳號或密碼不對——用你在知識庫網站設定的那組") + } + if !out.Success { + if out.Error != "" { + return nil, errors.New(out.Error) + } + return nil, errors.New("連線失敗,請稍後再試一次") + } + return &out, nil +} + +// Connect 是前端「連線」按鈕的入口:帳密換設定 → append 成新帳號(或更新既有同實例帳號)。 +// +// 🔴 密碼零落地(刻意的安全設計):只在這一刻用來換設定,**不寫進 config.json**。 +func (a *App) Connect(portalURL, email, password string) error { + r, err := fetchConfigByLogin(portalURL, email, password) + if err != nil { + return err + } + cfg, _ := loadCfg() + + newHost := hostOf(r.Config.CypherURL) + for i := range cfg.Accounts { + if hostOf(cfg.Accounts[i].CypherURL) == newHost { + // 同一個實例=更新連線資訊,**保留既有 watch_folders**(改密碼不該清掉資料夾) + cfg.Accounts[i].CypherURL = r.Config.CypherURL + cfg.Accounts[i].Namespace = r.Config.Namespace + cfg.Accounts[i].APIKey = r.Config.Namespace + cfg.Accounts[i].Email = r.Config.Email + cfg.Accounts[i].InstanceName = r.Config.InstanceName + return saveCfg(cfg) + } + } + // 不同實例=新增一個帳號。**不覆蓋舊帳號**——t86 事故的教訓: + // 舊實例的資料夾若被帶進新實例,等於把別人的檔案同步到另一個知識庫(個資外洩)。 + cfg.Accounts = append(cfg.Accounts, accountCfg{ + InstanceName: r.Config.InstanceName, + Email: r.Config.Email, + CypherURL: r.Config.CypherURL, + Namespace: r.Config.Namespace, + APIKey: r.Config.Namespace, + }) + return saveCfg(cfg) +} + +func hostOf(s string) string { + u, err := neturl.Parse(strings.TrimSpace(s)) + if err != nil || u.Host == "" { + return strings.TrimSpace(s) + } + return u.Host +} diff --git a/cmd/arcrun-app/frontend/index.html b/cmd/arcrun-app/frontend/index.html new file mode 100644 index 0000000..5bef617 --- /dev/null +++ b/cmd/arcrun-app/frontend/index.html @@ -0,0 +1,42 @@ + + + + + + Arcrun + + + +
+
+ +
+ Arcrun + Arcrun +
+
+
啟動中…
+
+
+ +
+ +
+ +
+ + + + + + +
+
+ + +
+ + + + diff --git a/cmd/arcrun-app/frontend/package-lock.json b/cmd/arcrun-app/frontend/package-lock.json new file mode 100644 index 0000000..2ec94d4 --- /dev/null +++ b/cmd/arcrun-app/frontend/package-lock.json @@ -0,0 +1,1122 @@ +{ + "name": "frontend", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.0.0", + "devDependencies": { + "vite": "^7.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@napi-rs/lzma-linux-x64-gnu": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", + "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^22.20 || ^24.12 || >=25" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.4.tgz", + "integrity": "sha512-RrPokAb7dmbxFoeO3TloqHyOjgye8RkBhSqmp4aJMIex4c9r46ZstPnleDQOq1t46VOVjwIuwNogIqbodV1Vvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.4.tgz", + "integrity": "sha512-JKuJc+pnpks2pjy7L/N3v/cAkZxYlnmuZoD840ldbMI5KDbC4iO9NKwPKYdjYFCMAIIlBzYSFHxIJVYzRo2/8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.4.tgz", + "integrity": "sha512-krw5uS2STmvJ02x0uTXHbqQNuz+9eZ1iw+qXk9dmW2gvV4jV7O2hEoOnuhFrpOPiel1mBFtqbxYZZtC46hXLOw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.4.tgz", + "integrity": "sha512-wsTxtgApb4PrOsNJIm0FZ1h3WvCC+k9uxLJ4ad75hgoS4NiRes2SoJFlDAyMwiUY8IssDqGcHbXuN0sx1tfF1A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.4.tgz", + "integrity": "sha512-GUOnQlyZe3yAXhWOtOMsn5Qkrv5E5mZXa0thbARWi5Ei2szlVXJFQhddZ4HbAzh8q92w5twp+CQvs/eFanz9YQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.4.tgz", + "integrity": "sha512-/Y7f3QuxjzPKsjA/rfEDa3+0vXqyjmJ50Ln8dPpCmWkKTrUoWHG1cWhTqaAMLob2m2nESWuC7yGrREz019Ztqg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.4.tgz", + "integrity": "sha512-81wiiX3v7aqy+T+bT61TJ78yJjRquqFFTTbAPt08imfQQzkPIW8t6aJbkTagtCCrXMNc9D66+geqlK7ydLPNqA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.4.tgz", + "integrity": "sha512-9kmDIvNZqdoHOBZgNtpTBeLWYO/LVipM3H/j62P8848/l/VPEQL6N3uxU9pvP1oZAsXyC2MEnFP3ovRjo7WYNQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.4.tgz", + "integrity": "sha512-CcnXHWnXg69g+DX5VWL3FHts3qMRN2uVEHX+BZvGLdd07/gXkn3ePjYtO1LDJvxkGKVHMclKBRa1QUTH+6toYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.4.tgz", + "integrity": "sha512-iFOibiHnTRuhrWLlRsOQFdZJJIa7S8OwkneJr4ocALP16u5yk6lWLINFwhHaEqBFMsKDUZofLkGos7+CPzGB3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.4.tgz", + "integrity": "sha512-XnWYMI7euHlb5a871xPja+Gm7DRCFU+FGRrtS2sMq9N8FvqtpagUy6gD4YOemC5MRk9xbh8+jYMEJbigFQwsgA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.4.tgz", + "integrity": "sha512-qGDAlO0U8xedCcsdRm9oaoQY8DAx/QT7uIxJWhCdx0ceIWX783UC9QSYkdpzAe29wNiVfp24+bZdQmn49o45SQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.4.tgz", + "integrity": "sha512-ru4H6ezD7ysA5EiEK6qkkaEb4modH8CTej6kUy/gQi20u3kB3G7Zn8snXXkeJSCOFKG/rbPPtM/+9Wgas1961w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.4.tgz", + "integrity": "sha512-2W4MO5WQVJnbJaZdvDb9rhBDuFU1nKIepPFpJUBsTh2k1YY2g+ODViaWuyOAjQ5cOP7NvrvLzt3wvHOoiAvc7w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.4.tgz", + "integrity": "sha512-+fxjfuoAmVMCYV5QyjoIpu0cp5DOiOTeqYFk1AVaxGr+/ravWLX89XfQmptsoWcaVy/TGf2hexzbUOrCQIL1CQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.4.tgz", + "integrity": "sha512-jTn8JfHGL4djjFxPuM06LmNUJDsst2jeVlsd9OmIH6zc5sC9K6rIuO4YajXatLUpBmBKl6b35ro1QZocLi+tcA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.4.tgz", + "integrity": "sha512-oCJCJL4pXsoDcP2QZ+JVlPTIRc6266zsIaeJJsWImmF7HO0W8nb6HuSgZlMWxJwaPf8ehbSw8yo0EUw925hKsA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.4.tgz", + "integrity": "sha512-W69hukhZ3KKNRCaMIEzKvcFye42hh0FE1+YoYaf5+Ikacuftoco6yO/xouz0hc5d5W/s3yBro5jRiuEE/Q5vUw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.4.tgz", + "integrity": "sha512-qiXbGG2jkjXhzXpsFZSR2Xpb8DN/UaxYsbb/STbuR/6fpaDgRmmaq1B/LmtF2wQFOFOSsK2jdE0RZ3a0zHn4QA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.4.tgz", + "integrity": "sha512-nWeM//hxv8mIo6jD7Hu4o48DVmV9pbV6gsKaWU+4NFyqHoPKwrkRiZGLKUhOBk8qNmDmpwFtPKg80Bo/Tn4xiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.4.tgz", + "integrity": "sha512-s62SQ/vgsRSvMwDkOEfTqfgASF0f26ZNaQuTA6Aok5lrikf89yI2W0gFHvZb2Jpgc6N8JnOKZgCK2iciO3CsxQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.4.tgz", + "integrity": "sha512-J6wGf8TVGbXJq+HH+ttTvrcfNKPbuZecV6KT1B8I18BC5IURUh5kl4Yl5OEP5eFIUoI5BWxCsyYMhFsDx8kekw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.4.tgz", + "integrity": "sha512-zmfrQd/0wu6oJs8Vq8KwY/YtsKSsLtKe/HwAP4Wqy8LhWjeT55fHRAkOhYQ12wI3ayS4Tt12d5CDRD7N96SAYQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.4.tgz", + "integrity": "sha512-qPzHqdj9rfUD+w79dtE07zi/kFwKyCJqplp5K5ygeLTp7jLpAoc16OAH39HSmRC9UpozaecsleI8uAdEj6v2yw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.4.tgz", + "integrity": "sha512-zD6NdeWEByGE9QF9vCrlJ5YQB4oq9q91kPZS37Jwj5hOkvR1lTBSpsKhKDw4IJtbQ35LsTS1HD9DZYGKIshU1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.17", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.17.tgz", + "integrity": "sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.4.tgz", + "integrity": "sha512-RXOqwaPsBGjMNMa4sQjDjHieHEZDFoj/Rdr46l2MU5DfEs16wHJPC2RPTPHWhNl+M3aI472LLqFkFKut4SblOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@napi-rs/lzma-linux-x64-gnu": "1.5.1", + "@rollup/rollup-android-arm-eabi": "4.62.4", + "@rollup/rollup-android-arm64": "4.62.4", + "@rollup/rollup-darwin-arm64": "4.62.4", + "@rollup/rollup-darwin-x64": "4.62.4", + "@rollup/rollup-freebsd-arm64": "4.62.4", + "@rollup/rollup-freebsd-x64": "4.62.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.62.4", + "@rollup/rollup-linux-arm-musleabihf": "4.62.4", + "@rollup/rollup-linux-arm64-gnu": "4.62.4", + "@rollup/rollup-linux-arm64-musl": "4.62.4", + "@rollup/rollup-linux-loong64-gnu": "4.62.4", + "@rollup/rollup-linux-loong64-musl": "4.62.4", + "@rollup/rollup-linux-ppc64-gnu": "4.62.4", + "@rollup/rollup-linux-ppc64-musl": "4.62.4", + "@rollup/rollup-linux-riscv64-gnu": "4.62.4", + "@rollup/rollup-linux-riscv64-musl": "4.62.4", + "@rollup/rollup-linux-s390x-gnu": "4.62.4", + "@rollup/rollup-linux-x64-gnu": "4.62.4", + "@rollup/rollup-linux-x64-musl": "4.62.4", + "@rollup/rollup-openbsd-x64": "4.62.4", + "@rollup/rollup-openharmony-arm64": "4.62.4", + "@rollup/rollup-win32-arm64-msvc": "4.62.4", + "@rollup/rollup-win32-ia32-msvc": "4.62.4", + "@rollup/rollup-win32-x64-gnu": "4.62.4", + "@rollup/rollup-win32-x64-msvc": "4.62.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/vite": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", + "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0 || ^0.28.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + } + } +} diff --git a/cmd/arcrun-app/frontend/package.json b/cmd/arcrun-app/frontend/package.json new file mode 100644 index 0000000..81bd93b --- /dev/null +++ b/cmd/arcrun-app/frontend/package.json @@ -0,0 +1,13 @@ +{ + "name": "frontend", + "private": true, + "version": "0.0.0", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^7.0.0" + } +} \ No newline at end of file diff --git a/cmd/arcrun-app/frontend/package.json.md5 b/cmd/arcrun-app/frontend/package.json.md5 new file mode 100755 index 0000000..54baf3f --- /dev/null +++ b/cmd/arcrun-app/frontend/package.json.md5 @@ -0,0 +1 @@ +aa1b645e1b8deaca8300e160319ca84f \ No newline at end of file diff --git a/cmd/arcrun-app/frontend/src/assets/arcrun-icon-ink-1024.png b/cmd/arcrun-app/frontend/src/assets/arcrun-icon-ink-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..0c7ad4f749ef61e65eefbf0c69310a5ce6c43f7e GIT binary patch literal 33422 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%0DX}FWaR0Lk6`i9d0LC)L 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 literal 0 HcmV?d00001 diff --git a/cmd/arcrun-app/frontend/src/assets/arcrun-lockup-h-paper-on-ink.png b/cmd/arcrun-app/frontend/src/assets/arcrun-lockup-h-paper-on-ink.png new file mode 100644 index 0000000000000000000000000000000000000000..8e6db13a20ca9e1668ab98cae01c1cab1ae62180 GIT binary patch literal 31682 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%0A__&A7jUsbu4>>^%fm z_Gl)4Xjjfbx5KA@EEo+$kCuNafwT(I_rlwjv=-c=i7q!W!GUnK&llKCby@MVze7wT z%P8W_?} zuwcw_FS0(zkWns~VK4{orZf|--RK>oof<%17gem??iUfj@<6Fh(BvGhDI!ZWe0uT_ zh0{RwK!tqIzR0sdQCtq?sRr8c#V;LR3L)J!F1HwbiUxHoW1wTf^~MUu0VFsisA0J) z5z!(9-I6>7Zb|AEo|Yc5v?my|=BAu7p7G4>B&0jc>MFlM=X)Hy@CicN8*vJlue#8y zafIXalt;j&xu(p=k2k1|bI!>z@)gZ|$sGDN;xDy`S$aemOA@2soJp3Q8CCp3ERWU? zI{8f&odUR>nH$~Qu}XT8KR!{V8{G9gmuEm|dhCe~{6|B7^l9g?DN}~2p{Ll-4Z~~K zx9=>WqyWlT<rLG9wY!|@{F9TZKwZV@9@C`QLhTKv=MFRzI^hUT- zpRge;t6L}jsz+zkGw(NSGFWI4r@?}?D;-t)R-C2^Uo6M07hz-;?9M6ie{t#Yt!uGP zm5)pI{sQ=t`5aN$ZX$KS4?CA{+UfsYbdy<7!x6mb&)N05fiX}o@r&cjY}EDeP7H*V_KUm2S zOztt?K${y|vWLD63|F_b@) z5rU!vY6B2$HKiaB;><@x&$M3@aT6uz)bn%E2$z&?EWf_xdy6mahlC_;!(cg)kwKsd zc0J35d+HFQOzg2F=HO*#j=9aAg@itw*?VS#eWWsrmAz?z&ZK@&<94&(QD&j0D)R(?s-Q52$_AwwvHoB#X5oY|MrVGz zv52tY+|!49@f8V}ZsWqLxlyh{=l$z8Z{i(-m*W#LkDBMhwHM?0 zVicziLbZFu_B)nwZ!MTshYO&M{mGN_g@Q~k^sMPKC@XJ(fVn*DNTn7Zvi4URr30AZbmgN`Dx<5s$LCgQERB<=Co1qC*a4~2KP(5N zWWv(s0QL~MhVU}CE~QUuEWi|WW_s1ZYhGUqO<3&~%m6hGQ;da);z zF+Bf@u)xjB6^@k|!uou|PMZK-XPTOJBt*oipd{*z{EY>IOEmj6Swns;F;|ZD%o|0u zD+JORS5nWFMFTRj)%2W6-MRvKjlmDw<nl>y#Ua>b&HkAo>Ink@faa>1k=&+I#?cWV*}#jRT~kXsaiPiu0&$U(d;w2LXld;N z8OlUyQLeByU`D`I@)>FNnqiukxcv62bx7NGEdX*XhBpBYimrKVJxg1*Ydc)od4mJ) zi%}4DWoO*03EPMI|K6E};s(|=iZ3b-g6aQzXO=urKel(aHd`iU-+#O_>lXA}{udpC!MX7d@m_@hwgdOJaTk|Mhk4QBfUd9F|?nqgn(af{9(jQ^8mPsnvfV%1fv`=pw)VAt;bp+mWqc! zAc7V+Ry6gMv}zmso0&WJ&cI#%5_e~3zW020?l-^BwB9|#OMz{1GN73sl8!a?i7W`h zi34?UBfcY>FcXC<-Nv_nE=${1XHH1IJu;^14M`N0I~^#B5GL*(4eDO++_L}GtHwf8 z7g-ts>dO9h9)sGFl^O2Gj;nNr_^QW{)}s#KEDEc^7$~-imB6D`uV0{JGueLP8K#w$ zs6TmV$!`Ks-}&lN0RaFUE*s@Poij>Ba2Vz6E1W-VnQ3X_yDeXoBSXNtfnkZIi!BE+QN?51(w;Q-@uAnmjsT~$L{uOEXsr5Id0@~r z*EUubj1Gn5d>P~L;x<}Uw*8Pptg;{kGjr;GAC5iqnWMTUtj)U|^Jq|0eT0k+GHo1F zK0cmawh_&;Xo<2zq@ij)g6Ajsr4e}W6US-msXoyLofUg6o=rADCDgNn{Hrgg!u^mB z*5at`YW-bbm5<7ao_{wQTj>Q~98nfKSBP{5*ppRB_8PS52q}}H{Nb1jloKK!(d2I2 zzAFxMt8d#-s9Cry99rIxGlTA}L!f5O1KLH!nR5Xou_UaxL(N(SD=j>jcAbwS)@p#7 z^|oa~p?%b)<|2`1h!DU7iL4-$eW7fCSo)uPKce{)N7X=`3Q$eqsMAWxvj3A9mqY>G&t6^N>1s+@~}Q^#>PsXcMeISMK@1Z)=W;&~M(73x?dZeX*V z524)qpG%!B3}CYYV4_=>tXMgey+e&#p^8TZ;fbct{7MG`h6_M!%33UXD)l|~y7%;` zI~+fP`v(tnlSsQBa!$epvMbnMLYq{T@fGrqHbH%Cexd&rOUv9@<1l+3-E zm#NI^9G$YvIM^BLX+z5=E?IO-TXKtUxdEEopM4RNW1_eD6TxcQTyA?)`yKrQMn0_X zjha8S28kF)(2Y;TpTe(xXgVeYNGeJ-1z8OdH%<%HL3nXL_oabh2V((&J-lh-v=RZE z3!G$_d-(Y_)6g3DPJKqhfsdw2h+2bmF#B=a=e7sU+v|9NQ~$Lv(}4&eE<*^``FU1FRmOj zkOaq-Lf|Lo*c6h;fin`|HE|o|%ds|0-v0jq;?w;tzCU1g>?}0h8%!F;I!mD3hxrpU z04z^afu&G=3e{YoC%B5Vt;kOfn8R8euG$JxIx5x|2VE|7cGT|Vord$f(9D-DuPAwe>xI9Hr3 zI;6#XSWc|FppC7K-5(6m>52%}`Yy;jviTy(^ADPL%7)7NI8e^2(m>wDW8P|$1`e1c zkjK*CK_E%Uqe(%(rU)K50+DkMfJOp6uhco(n7)}jUDyc{(x>#Mr724#HNiav{9NzF z(MY7SQ-28)b<^pJ8F?Fd`AuHvF_SfDb)^Dwq5{)CEBu()vcPCV4J)c~Rz%INVC;SM z)};#`9)4k@r=YIn1~bdsRQjDa5j<*QwmZHIb{TD?8k@^W>K{=+L2%0B>~0%TDI_WV zo-K>p%5kezJ=4%EgvN#kfN^e5KG-Ytqfn-JO8v{o5BB&J;=V!bY*O~6O+fw_<2_nO zdcyxZkfp8tNB&|{qq$JFJ;81;hmr~UPR+<7vD8iLE2^9ah(_&6`&V=NPDFHz<;T=o zNxQts5g51lq?ukoVbZeAG(9^oIMn-B)i_VieMjot0kX|E1N@~e?`!aJ^-p&LhUk4o z)<#E^;Z0+!W0QzxPegT-nrBf&JpNXW!?<_KBDe(rd>C~%k|gONiUe!IW^!J&^b8DK zok8LT^0MTUhmVM!KdvXEpkivA=8Se8$`Hd$!>2?3arEb4`Od2M*lwj+t9{=X@NX# zb1Aq8dpjV~`MgCtmgi!Yqp3=&RxdDhNxCu;H@}@E^8uq=i5*(Tb zOg6lvn1A7qw(x?s-5q2Iv0}eg0jybz@|gyQeQUH&9iE zH?`+Xg*x**@5_@256(ad1$FCgucp))w!NZEOvaOGdx?*p8PxvK5yI_L<%Xn_hY6bV z-UX$+Qklvv#L^?@9_Czx=S$|A>oOf>+snnU?M9fZk_2Dz88eXR@6{+RR9kF zh-ZG$CDeXvf9=RHpbX*5_6*E;!<83xY~Bn@k3s0mCg<26?Hi^!4>i3s(|N&RVT-eH zwEMXFRN>&w5&ao>z-R_kPi{+ZAf7cI`;^PaY)HUd7kYWFbpc)_6SmCEvI)B%=EyuL-J{I=f(E;P>eg*X?< z`i>vmqqXy-F5eVftCsYtBcH~7L$vDHT)uLb#IGhcb>?Wm*JpTNCa)pe5|wiIWB&yM zJ=1?}IwQ{tFk3^DvZC=`?&Y%!^sG;b_mtpb$-)mUH%UK~uOF34EmO_QM*2rd@jD1l zoUv!~T%VeE8bmoE&rgPwlZTTkJy((~(j6Pl-B8;2#tGvY7pVN7XlSdIxtQ*EHDObA zWlZ!b9elu8I~$1E)2;6b?K%kgoq>0x{-cPS&~3rBRQY^{s!DWk7n-3aWTze^N#6!j zJIvo29sTRUn@LL+;E|`UgqJc?bvh3-=rw z(9)@Dk!_ARb{^oBDvo>{uq@6#9UtcZ(qom{=bgehEF`^&s{j@NTPk) F{{bT&X8HgC literal 0 HcmV?d00001 diff --git a/cmd/arcrun-app/frontend/src/assets/fonts/OFL.txt b/cmd/arcrun-app/frontend/src/assets/fonts/OFL.txt new file mode 100644 index 0000000..9cac04c --- /dev/null +++ b/cmd/arcrun-app/frontend/src/assets/fonts/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2016 The Nunito Project Authors (contact@sansoxygen.com), + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/cmd/arcrun-app/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 b/cmd/arcrun-app/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2f9cc5964455b8f5ca989db989250dbebb1a5f66 GIT binary patch literal 18972 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

``Cl35~rb|Fd`a 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�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 document.getElementById(id); + +// 跟隨系統深淺色——CIS 兩套色票都定義好了,這裡只負責切 data-theme +const mq = window.matchMedia('(prefers-color-scheme: dark)'); +const applyTheme = () => + document.documentElement.setAttribute('data-theme', mq.matches ? 'dark' : 'light'); +mq.addEventListener('change', applyTheme); +applyTheme(); + +// ── 覆蓋層(取代 popup 視窗)── +function openSheet(html, wire) { + $('sheet').innerHTML = html; + $('overlay').classList.add('on'); + if (wire) wire(); +} +function closeSheet() { $('overlay').classList.remove('on'); } +$('overlay').addEventListener('click', (e) => { if (e.target.id === 'overlay') closeSheet(); }); +document.addEventListener('keydown', (e) => { if (e.key === 'Escape') closeSheet(); }); + +const esc = (s) => String(s).replace(/[&<>"]/g, (c) => + ({ '&': '&', '<': '<', '>': '>', '"': '"' }[c])); + +// ── 主畫面渲染 ── +let state = null; + +function render(s) { + state = s; + $('ver').textContent = s.version ? '版本 ' + s.version : ''; + $('statusBig').textContent = s.statusBig; + $('statusBig').classList.toggle('syncing', !!s.syncing); + $('statusSub').textContent = s.statusSub; + + const list = $('list'); + if (!s.accounts || s.accounts.length === 0) { + // 空狀態=onboarding,不是空白面板 + list.innerHTML = ` +

+
先連上你的知識庫
+
+ Arcrun 會看守你指定的資料夾,
+ 自動把文件整理成 AI 查得到的知識卡。
+ 還沒有知識庫?先到 install.arcrun.dev 裝一個(免費)。 +
+ + +
`; + $('obConnect').onclick = showConnect; + $('obInstall').onclick = () => go.OpenURL('https://install.arcrun.dev/'); + return; + } + + list.innerHTML = s.accounts.map((a) => ` +
${esc(a.name)}${esc(a.host)}
+ ${(a.folders || []).map((f) => ` +
+ ${esc(f.path)} + 自動同步中 + +
`).join('') + || `
還沒有資料夾——按下面的「加入資料夾」
`} + `).join(''); + + list.querySelectorAll('[data-rm]').forEach((b) => { + b.onclick = () => confirmRemove(Number(b.dataset.acc), b.dataset.rm); + }); +} + +async function tick() { + try { render(await go.GetState()); } catch (e) { /* 後端還沒起來,下一輪再試 */ } +} + +// ── 動作 ── +$('btnSync').onclick = async () => { await go.SyncNow(); tick(); }; + +$('btnAddFolder').onclick = async () => { + if (!state || !state.accounts.length) { showConnect(); return; } + const p = await go.PickFolder(); // 系統原生面板(macOS powerbox 會授權) + if (!p) return; + await go.AddFolder(0, p); + tick(); +}; + +function confirmRemove(accIdx, path) { + openSheet(` +

移除這個資料夾?

+

「${esc(path)}」不再自動同步。
已經上傳的知識卡不會被刪除。

+
+ + +
`, () => { + $('c1').onclick = closeSheet; + $('c2').onclick = async () => { await go.RemoveFolder(accIdx, path); closeSheet(); tick(); }; + }); +} + +function showConnect() { + openSheet(` +

連上你的知識庫

+

貼上你的知識庫網址,再輸入你在網站上設定的帳號密碼。

+ + + + + + + +
+ + +
`, () => { + $('c1').onclick = closeSheet; + $('c2').onclick = async () => { + const err = $('err'); + try { + await go.Connect($('u').value.trim(), $('e').value.trim(), $('p').value); + closeSheet(); tick(); + } catch (ex) { + err.textContent = String(ex); err.style.display = 'block'; + } + }; + }); +} +$('btnAddAccount').onclick = showConnect; + +$('btnAI').onclick = () => { + const gem = state && state.engine === 'gemma'; + openSheet(` +

用哪個 AI 幫你整理文件?

+ + + + + +
+ + +
`, () => { + $('c1').onclick = closeSheet; + $('c2').onclick = async () => { + const useGemini = document.querySelector('input[name=ai]:checked').value === 'gemini'; + const err = $('err'); + try { + await go.SetAI(useGemini, $('k').value.trim()); + closeSheet(); tick(); + } catch (ex) { err.textContent = String(ex); err.style.display = 'block'; } + }; + }); +}; + +$('btnUpdate').onclick = () => go.OpenURL('https://rag.arcrun.dev/docs/use/update/'); + +tick(); +setInterval(tick, 1000); // 每秒刷新 ⇒ 同步中看得到在動 diff --git a/cmd/arcrun-app/frontend/src/style.css b/cmd/arcrun-app/frontend/src/style.css new file mode 100644 index 0000000..76b4808 --- /dev/null +++ b/cmd/arcrun-app/frontend/src/style.css @@ -0,0 +1,150 @@ +/* Arcrun 桌面 App — 樣式(t193) + * + * 🔴 leo 2026-08-04:「我的要求是**符合 CIS**,在風格上**跟 portal 一樣**」 + * 「CIS 已經提供規範,你做的**連 Logo 都沒放上去**,這跟美不美有關係嗎? + * 要求放進 CIS 是**硬要求**,你做為檢查有嗎?沒有怎麼交貨?」 + * + * ⇒ 本檔的色票/字體/背景紋理**逐字取自 portal** + * (matrix/arcrun:console-ui/public/portal/index.html 的 :root 區塊), + * **不自創任何顏色**。要改就去改 portal 那份、再同步過來。 + * + * 這也是換掉 fyne 的理由:fyne 全自繪、CSS 套不進去, + * 換成 Wails(WebView)後 daemon 與 portal 才可能是**同一套視覺**。 + */ + +:root { + --paper-a: #FDFCFB; --paper-b: #F2F1ED; + --ink: #17181A; --ink-rgb: 23,24,26; + --amber: #B04A2F; --amber-rgb: 176,74,47; + --ok: #1d7a48; --ok-rgb: 29,122,72; + --err: #b03a26; --err-rgb: 176,58,38; + --well: rgba(23,24,26,.06); --well2: rgba(23,24,26,.08); +} +:root[data-theme="dark"] { + --paper-a: #1b1c1e; --paper-b: #1e1f21; + --ink: #FDFCFB; --ink-rgb: 253,252,251; + --amber: #D9784F; --amber-rgb: 217,120,79; + --ok: #7fe0a8; --ok-rgb: 63,190,120; + --err: #e58575; --err-rgb: 217,95,76; + --well: rgba(0,0,0,.25); --well2: rgba(0,0,0,.3); +} + +/* portal 的紙張紋理背景——三站一致的識別(不是裝飾,是 CIS 的一部分) */ +html, body { + margin: 0; height: 100%; + background: repeating-linear-gradient(0deg, + var(--paper-a) 0px, var(--paper-a) 3px, + var(--paper-b) 3px, var(--paper-b) 4px); + color: var(--ink); + font-family: -apple-system, "IBM Plex Sans", "PingFang TC", "Noto Sans TC", + "Microsoft JhengHei", system-ui, sans-serif; + font-size: 16px; + -webkit-font-smoothing: antialiased; + overflow: hidden; +} +input, textarea, button, select { font-family: inherit; } +::placeholder { color: rgba(var(--ink-rgb), .35); } +input:focus, select:focus { outline: 2px solid rgba(var(--amber-rgb), .5); outline-offset: 1px; } +a { color: var(--amber); } +.muted { color: rgba(var(--ink-rgb), .55); } +.dim { color: rgba(var(--ink-rgb), .4); } + +/* ── 版面:上(品牌+狀態)/中(可捲清單)/下(動作列)── */ +#app { display: flex; flex-direction: column; height: 100vh; } + +header { + padding: 18px 24px 14px; + border-bottom: 1px solid rgba(var(--ink-rgb), .1); + display: flex; align-items: flex-start; gap: 20px; +} +/* CIS lockup:淺色用 ink 版、深色用 paper 版(與 portal 同一組 PNG、同一套切換規則)。 + ⚠️ 不可用自產的 SVG 描邊版(字腔會缺,08-01 已作廢,見 arcrun-cis/README.md)。 */ +.brand img { height: 26px; display: block; } +.brand .wm-paper { display: none; } +:root[data-theme="dark"] .brand .wm-ink { display: none; } +:root[data-theme="dark"] .brand .wm-paper { display: block; } + +.status { flex: 1; min-width: 0; } +.status .big { font-size: 17px; font-weight: 600; letter-spacing: .02em; } +.status .sub { margin-top: 4px; font-size: 13.5px; color: rgba(var(--ink-rgb), .5); } +/* 同步中會呼吸——「看得出來在動」(issue #17) */ +.status .big.syncing::after { + content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 9px; + border-radius: 50%; background: var(--amber); vertical-align: middle; + animation: pulse 1.1s ease-in-out infinite; +} +@keyframes pulse { 0%,100% { opacity: .25 } 50% { opacity: 1 } } + +/* 按鈕:Relation 是**唯一重點色**,CIS 規定 ≤ 一個畫面的 5% ⇒ 只有主要動作用它 */ +button { + border: 1px solid rgba(var(--ink-rgb), .16); + background: transparent; color: var(--ink); + padding: 8px 14px; border-radius: 8px; font-size: 14px; cursor: pointer; + transition: background .12s, border-color .12s; +} +button:hover { background: var(--well); } +button.primary { + background: var(--amber); border-color: var(--amber); + color: #FDFCFB; font-weight: 600; +} +button.primary:hover { filter: brightness(1.06); } +button.ghost { border-color: transparent; color: rgba(var(--ink-rgb), .5); padding: 6px 8px; } +button.ghost:hover { color: var(--err); background: transparent; } + +/* ── 中:資料夾清單(leo:「幾十個,根本塞不下」⇒ 這一區才捲動)── */ +main { flex: 1; overflow-y: auto; padding: 6px 0; } + +.acct { + padding: 16px 24px 6px; + display: flex; align-items: baseline; gap: 10px; +} +.acct .name { font-size: 15px; font-weight: 600; } +.acct .host { font-size: 12.5px; color: rgba(var(--ink-rgb), .4); font-family: ui-monospace, Menlo, monospace; } + +.folder { + margin: 0 16px 6px; padding: 11px 14px; + background: var(--well); border-radius: 10px; + display: flex; align-items: center; gap: 12px; +} +.folder .path { flex: 1; min-width: 0; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.folder .tag { font-size: 12px; color: var(--ok); white-space: nowrap; } + +/* 空狀態=onboarding(不是空白面板) */ +.empty { padding: 56px 32px; text-align: center; } +.empty .t { font-size: 17px; font-weight: 600; margin-bottom: 10px; } +.empty .d { font-size: 14px; color: rgba(var(--ink-rgb), .55); line-height: 1.9; margin-bottom: 22px; } + +footer { + padding: 12px 24px; border-top: 1px solid rgba(var(--ink-rgb), .1); + display: flex; align-items: center; gap: 8px; +} +footer .spacer { flex: 1; } +footer .ver { font-size: 12.5px; color: rgba(var(--ink-rgb), .35); font-family: ui-monospace, Menlo, monospace; } + +/* 對話框:**內嵌覆蓋層**,不是另開一個小 popup 視窗 + (leo:「每個功能都開一個小小的 popup 視窗,非常缺乏整體感」) */ +.overlay { + position: fixed; inset: 0; background: rgba(0,0,0,.42); + display: flex; align-items: center; justify-content: center; + opacity: 0; pointer-events: none; transition: opacity .14s; +} +.overlay.on { opacity: 1; pointer-events: auto; } +.sheet { + width: min(520px, calc(100vw - 64px)); + background: var(--paper-a); color: var(--ink); + border: 1px solid rgba(var(--ink-rgb), .12); + border-radius: 14px; padding: 24px; + box-shadow: 0 18px 50px rgba(0,0,0,.28); +} +.sheet h2 { margin: 0 0 6px; font-size: 17px; } +.sheet p { margin: 0 0 16px; font-size: 14px; color: rgba(var(--ink-rgb), .55); line-height: 1.7; } +.sheet label { display: block; font-size: 13px; margin: 12px 0 5px; color: rgba(var(--ink-rgb), .6); } +.sheet input[type=text], .sheet input[type=password] { + width: 100%; box-sizing: border-box; padding: 9px 11px; font-size: 14px; + border: 1px solid rgba(var(--ink-rgb), .18); border-radius: 8px; + background: var(--paper-b); color: var(--ink); +} +.sheet .radio { display: flex; align-items: flex-start; gap: 9px; margin: 10px 0; font-size: 14px; cursor: pointer; } +.sheet .radio input { margin-top: 3px; } +.sheet .acts { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; } +.sheet .err { color: var(--err); font-size: 13px; margin-top: 10px; } diff --git a/cmd/arcrun-app/go.mod b/cmd/arcrun-app/go.mod new file mode 100644 index 0000000..8937b39 --- /dev/null +++ b/cmd/arcrun-app/go.mod @@ -0,0 +1,38 @@ +module arcrun-app + +go 1.25.0 + +require github.com/wailsapp/wails/v2 v2.13.0 + +require ( + git.sr.ht/~jackmordaunt/go-toast/v2 v2.0.3 // indirect + github.com/bep/debounce v1.2.1 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/godbus/dbus/v5 v5.1.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/websocket v1.5.3 // indirect + github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect + github.com/labstack/echo/v4 v4.13.3 // indirect + github.com/labstack/gommon v0.4.2 // indirect + github.com/leaanthony/go-ansi-parser v1.6.1 // indirect + github.com/leaanthony/gosod v1.0.4 // indirect + github.com/leaanthony/slicer v1.6.0 // indirect + github.com/leaanthony/u v1.1.1 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/samber/lo v1.49.1 // indirect + github.com/tkrajina/go-reflector v0.5.8 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasttemplate v1.2.2 // indirect + github.com/wailsapp/go-webview2 v1.0.22 // indirect + github.com/wailsapp/mimetype v1.4.1 // indirect + golang.org/x/crypto v0.51.0 // indirect + golang.org/x/net v0.54.0 // indirect + golang.org/x/sys v0.44.0 // indirect + golang.org/x/text v0.37.0 // indirect +) + +// replace github.com/wailsapp/wails/v2 v2.13.0 => /Users/youlinhsieh/go/pkg/mod diff --git a/cmd/arcrun-app/go.sum b/cmd/arcrun-app/go.sum new file mode 100644 index 0000000..b664a33 --- /dev/null +++ b/cmd/arcrun-app/go.sum @@ -0,0 +1,83 @@ +git.sr.ht/~jackmordaunt/go-toast/v2 v2.0.3 h1:N3IGoHHp9pb6mj1cbXbuaSXV/UMKwmbKLf53nQmtqMA= +git.sr.ht/~jackmordaunt/go-toast/v2 v2.0.3/go.mod h1:QtOLZGz8olr4qH2vWK0QH0w0O4T9fEIjMuWpKUsH7nc= +github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY= +github.com/bep/debounce v1.2.1/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck= +github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs= +github.com/labstack/echo/v4 v4.13.3 h1:pwhpCPrTl5qry5HRdM5FwdXnhXSLSY+WE+YQSeCaafY= +github.com/labstack/echo/v4 v4.13.3/go.mod h1:o90YNEeQWjDozo584l7AwhJMHN0bOC4tAfg+Xox9q5g= +github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= +github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= +github.com/leaanthony/debme v1.2.1 h1:9Tgwf+kjcrbMQ4WnPcEIUcQuIZYqdWftzZkBr+i/oOc= +github.com/leaanthony/debme v1.2.1/go.mod h1:3V+sCm5tYAgQymvSOfYQ5Xx2JCr+OXiD9Jkw3otUjiA= +github.com/leaanthony/go-ansi-parser v1.6.1 h1:xd8bzARK3dErqkPFtoF9F3/HgN8UQk0ed1YDKpEz01A= +github.com/leaanthony/go-ansi-parser v1.6.1/go.mod h1:+vva/2y4alzVmmIEpk9QDhA7vLC5zKDTRwfZGOp3IWU= +github.com/leaanthony/gosod v1.0.4 h1:YLAbVyd591MRffDgxUOU1NwLhT9T1/YiwjKZpkNFeaI= +github.com/leaanthony/gosod v1.0.4/go.mod h1:GKuIL0zzPj3O1SdWQOdgURSuhkF+Urizzxh26t9f1cw= +github.com/leaanthony/slicer v1.6.0 h1:1RFP5uiPJvT93TAHi+ipd3NACobkW53yUiBqZheE/Js= +github.com/leaanthony/slicer v1.6.0/go.mod h1:o/Iz29g7LN0GqH3aMjWAe90381nyZlDNquK+mtH2Fj8= +github.com/leaanthony/u v1.1.1 h1:TUFjwDGlNX+WuwVEzDqQwC2lOv0P4uhTQw7CMFdiK7M= +github.com/leaanthony/u v1.1.1/go.mod h1:9+o6hejoRljvZ3BzdYlVL0JYCwtnAsVuN9pVTQcaRfI= +github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= +github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ= +github.com/matryer/is v1.4.1/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew= +github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/tkrajina/go-reflector v0.5.8 h1:yPADHrwmUbMq4RGEyaOUpz2H90sRsETNVpjzo3DLVQQ= +github.com/tkrajina/go-reflector v0.5.8/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= +github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/wailsapp/go-webview2 v1.0.22 h1:YT61F5lj+GGaat5OB96Aa3b4QA+mybD0Ggq6NZijQ58= +github.com/wailsapp/go-webview2 v1.0.22/go.mod h1:qJmWAmAmaniuKGZPWwne+uor3AHMB5PFhqiK0Bbj8kc= +github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= +github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= +github.com/wailsapp/wails/v2 v2.13.0 h1:S7OgXWpj72V91unF8iDWJKbcS9ZpwCT3R0QVru4v2Mg= +github.com/wailsapp/wails/v2 v2.13.0/go.mod h1:nVr/wSIEZ7xxKPkzK65mjpKpaOPQI2k4pvLwGR/i4kc= +golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= +golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= +golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w= +golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ= +golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= +golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/cmd/arcrun-app/main.go b/cmd/arcrun-app/main.go new file mode 100644 index 0000000..0fa252d --- /dev/null +++ b/cmd/arcrun-app/main.go @@ -0,0 +1,39 @@ +package main + +import ( + "embed" + + "github.com/wailsapp/wails/v2" + "github.com/wailsapp/wails/v2/pkg/options" + "github.com/wailsapp/wails/v2/pkg/options/assetserver" +) + +//go:embed all:frontend/dist +var assets embed.FS + +// 版本號由 build 時 -ldflags 注入(同 arcrun-tray 的規矩)。 +var version = "dev" + +func main() { + // Create an instance of the app structure + app := NewApp() + + // Create application with options + err := wails.Run(&options.App{ + Title: "arcrun-app", + Width: 1024, + Height: 768, + AssetServer: &assetserver.Options{ + Assets: assets, + }, + BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1}, + OnStartup: app.startup, + Bind: []interface{}{ + app, + }, + }) + + if err != nil { + println("Error:", err.Error()) + } +} diff --git a/cmd/arcrun-app/wails.json b/cmd/arcrun-app/wails.json new file mode 100644 index 0000000..bf03333 --- /dev/null +++ b/cmd/arcrun-app/wails.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://wails.io/schemas/config.v2.json", + "name": "arcrun-app", + "outputfilename": "arcrun-app", + "frontend:install": "npm install", + "frontend:build": "npm run build", + "frontend:dev:watcher": "npm run dev", + "frontend:dev:serverUrl": "auto", + "author": { + "name": "richblack", + "email": "leo21c@gmail.com" + } +}