Files
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

49 lines
1.3 KiB
Go

package workspace
import (
"fmt"
"os"
"path/filepath"
"runtime"
"strings"
tuttitypes "github.com/tutti-os/tutti/services/tuttid/types"
)
func workspaceAppCLIPath() (string, error) {
return workspaceAppCLIPathForPlatform(runtime.GOOS)
}
func workspaceAppCLIPathForPlatform(platform string) (string, error) {
if platform != "windows" {
return tuttiCLIShimPathForPlatform(platform), nil
}
configured := strings.TrimSpace(os.Getenv("TUTTI_WORKSPACE_APP_CLI_PATH"))
if configured == "" {
return "", fmt.Errorf("native Tutti CLI path is not configured")
}
if !filepath.IsAbs(configured) {
return "", fmt.Errorf("native Tutti CLI path must be absolute")
}
if !strings.EqualFold(filepath.Ext(configured), ".exe") {
return "", fmt.Errorf("native Tutti CLI path must point to an .exe")
}
info, err := os.Stat(configured)
if err != nil {
return "", fmt.Errorf("inspect native Tutti CLI: %w", err)
}
if !info.Mode().IsRegular() {
return "", fmt.Errorf("native Tutti CLI path must point to a regular file")
}
return configured, nil
}
func workspaceAppCLIEnvOverrides(platform string, cliPath string) []string {
overrides := []string{"TUTTI_CLI=" + cliPath}
if platform == "windows" {
overrides = append(overrides, "TUTTID_LISTENER_INFO_PATH="+tuttitypes.TuttidListenerInfoPath())
}
return overrides
}