get-claudia 1.37.1 → 1.37.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -62,8 +62,10 @@ Write-Host "${BOLD}Step 1/8: Environment Check${NC}"
|
|
|
62
62
|
Write-Host ""
|
|
63
63
|
|
|
64
64
|
$PYTHON = $null
|
|
65
|
+
$PYTHON_FALLBACK = $null
|
|
65
66
|
|
|
66
67
|
# Try common Python locations on Windows
|
|
68
|
+
# Prefer 3.10-3.13 over 3.14+ (spaCy's Pydantic V1 dependency doesn't support 3.14 yet)
|
|
67
69
|
$pythonCandidates = @(
|
|
68
70
|
"python",
|
|
69
71
|
"python3",
|
|
@@ -77,9 +79,15 @@ foreach ($candidate in $pythonCandidates) {
|
|
|
77
79
|
$major = [int]$Matches[1]
|
|
78
80
|
$minor = [int]$Matches[2]
|
|
79
81
|
if ($major -ge 3 -and $minor -ge 10) {
|
|
80
|
-
$
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
if ($minor -lt 14) {
|
|
83
|
+
# Preferred: 3.10-3.13
|
|
84
|
+
$PYTHON = $candidate
|
|
85
|
+
Write-Host " ${GREEN}✓${NC} $version ($candidate)"
|
|
86
|
+
break
|
|
87
|
+
} elseif (-not $PYTHON_FALLBACK) {
|
|
88
|
+
# 3.14+: usable but spaCy won't work
|
|
89
|
+
$PYTHON_FALLBACK = $candidate
|
|
90
|
+
}
|
|
83
91
|
}
|
|
84
92
|
}
|
|
85
93
|
} catch {
|
|
@@ -87,6 +95,13 @@ foreach ($candidate in $pythonCandidates) {
|
|
|
87
95
|
}
|
|
88
96
|
}
|
|
89
97
|
|
|
98
|
+
# Fall back to 3.14+ if no 3.10-3.13 found
|
|
99
|
+
if (-not $PYTHON -and $PYTHON_FALLBACK) {
|
|
100
|
+
$PYTHON = $PYTHON_FALLBACK
|
|
101
|
+
$version = & $PYTHON --version 2>&1
|
|
102
|
+
Write-Host " ${YELLOW}○${NC} $version ($PYTHON) -- spaCy may not work, entity extraction will use regex"
|
|
103
|
+
}
|
|
104
|
+
|
|
90
105
|
if (-not $PYTHON) {
|
|
91
106
|
Write-Host " ${RED}✗${NC} Python 3.10+ not found"
|
|
92
107
|
Write-Host " Please install Python 3.10 or later from https://www.python.org/downloads/"
|
|
@@ -99,16 +99,55 @@ random_message() {
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
# Check Python - prefer Homebrew Python on macOS (supports SQLite extensions)
|
|
102
|
+
# Avoid Python 3.14+ where spaCy/Pydantic V1 are incompatible
|
|
102
103
|
echo -e "${BOLD}Step 1/8: Environment Check${NC}"
|
|
103
104
|
echo
|
|
104
105
|
PYTHON=""
|
|
105
106
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
106
107
|
# Homebrew Python supports SQLite extension loading (needed for vector search)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
# Prefer 3.13 over 3.14+ (spaCy's Pydantic V1 dependency doesn't support 3.14 yet)
|
|
109
|
+
_pick_homebrew_python() {
|
|
110
|
+
local candidate="$1"
|
|
111
|
+
if [ -x "$candidate" ]; then
|
|
112
|
+
local minor
|
|
113
|
+
minor=$("$candidate" -c "import sys; print(sys.version_info.minor)" 2>/dev/null)
|
|
114
|
+
# Verify SQLite extension support (only Homebrew Python has this on macOS)
|
|
115
|
+
if ! "$candidate" -c "import sqlite3; sqlite3.connect(':memory:').enable_load_extension(True)" 2>/dev/null; then
|
|
116
|
+
return 1
|
|
117
|
+
fi
|
|
118
|
+
if [ -n "$minor" ] && [ "$minor" -lt 14 ]; then
|
|
119
|
+
PYTHON="$candidate"
|
|
120
|
+
return 0
|
|
121
|
+
fi
|
|
122
|
+
fi
|
|
123
|
+
return 1
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
# Try versioned 3.13 first (Homebrew keeps it alongside 3.14)
|
|
127
|
+
# Check both symlinks and Cellar paths (symlinks may not exist for non-default versions)
|
|
128
|
+
_pick_homebrew_python "/opt/homebrew/bin/python3.13" ||
|
|
129
|
+
_pick_homebrew_python "/usr/local/bin/python3.13" ||
|
|
130
|
+
{
|
|
131
|
+
# Search Homebrew Cellar for python@3.13 (ARM and Intel paths)
|
|
132
|
+
for cellar_path in /opt/homebrew/Cellar/python@3.13/*/bin/python3.13 \
|
|
133
|
+
/usr/local/Cellar/python@3.13/*/bin/python3.13; do
|
|
134
|
+
_pick_homebrew_python "$cellar_path" && break
|
|
135
|
+
done
|
|
136
|
+
} ||
|
|
137
|
+
# Fall back to unversioned python3 even if 3.14+
|
|
138
|
+
_pick_homebrew_python "/opt/homebrew/bin/python3" ||
|
|
139
|
+
_pick_homebrew_python "/usr/local/bin/python3" || true
|
|
140
|
+
|
|
141
|
+
# If all Homebrew candidates are 3.14+, still use Homebrew for SQLite support
|
|
142
|
+
if [ -z "$PYTHON" ]; then
|
|
143
|
+
if [ -x "/opt/homebrew/bin/python3" ]; then
|
|
144
|
+
PYTHON="/opt/homebrew/bin/python3"
|
|
145
|
+
elif [ -x "/usr/local/bin/python3" ]; then
|
|
146
|
+
PYTHON="/usr/local/bin/python3"
|
|
147
|
+
fi
|
|
148
|
+
fi
|
|
149
|
+
|
|
150
|
+
if [ -n "$PYTHON" ]; then
|
|
112
151
|
echo -e " ${GREEN}✓${NC} Using Homebrew Python (vector search supported)"
|
|
113
152
|
fi
|
|
114
153
|
fi
|