@qpfai/pf-gate-cli 1.0.32-win32-x64 → 1.0.33-darwin-arm64

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.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @qpfai/pf-gate-cli (win32-x64)
1
+ # @qpfai/pf-gate-cli (darwin-arm64)
2
2
 
3
3
  Platform runtime payload for PF Gate CLI.
4
4
 
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@qpfai/pf-gate-cli",
3
- "version": "1.0.32-win32-x64",
4
- "description": "PF Gate runtime payload for win32 x64.",
3
+ "version": "1.0.33-darwin-arm64",
4
+ "description": "PF Gate runtime payload for darwin arm64.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "os": [
8
- "win32"
8
+ "darwin"
9
9
  ],
10
10
  "cpu": [
11
- "x64"
11
+ "arm64"
12
12
  ],
13
13
  "files": [
14
14
  "vendor",
@@ -0,0 +1,141 @@
1
+ #!/usr/bin/env sh
2
+ set -eu
3
+
4
+ SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
5
+ BUNDLED_WHEEL="$SCRIPT_DIR/../python/persons_field-1.0.0-py3-none-any.whl"
6
+ USER_HOME="${HOME:-}"
7
+ RUNTIME_HOME="${PF_GATE_RUNTIME_HOME:-}"
8
+ if [ -z "$RUNTIME_HOME" ] && [ -n "$USER_HOME" ]; then
9
+ RUNTIME_HOME="$USER_HOME/.pf-gate/runtime"
10
+ fi
11
+ WHEEL_STAMP_FILE=""
12
+ if [ -n "$RUNTIME_HOME" ]; then
13
+ WHEEL_STAMP_FILE="$RUNTIME_HOME/.bundled-wheel.sha256"
14
+ fi
15
+
16
+ resolve_system_python() {
17
+ if command -v python3 >/dev/null 2>&1; then
18
+ printf '%s' "python3"
19
+ return 0
20
+ fi
21
+ if command -v python >/dev/null 2>&1; then
22
+ printf '%s' "python"
23
+ return 0
24
+ fi
25
+ return 1
26
+ }
27
+
28
+ sha256_file() {
29
+ file_path="$1"
30
+ if command -v shasum >/dev/null 2>&1; then
31
+ shasum -a 256 "$file_path" | awk '{print $1}'
32
+ return 0
33
+ fi
34
+ if command -v sha256sum >/dev/null 2>&1; then
35
+ sha256sum "$file_path" | awk '{print $1}'
36
+ return 0
37
+ fi
38
+ if command -v openssl >/dev/null 2>&1; then
39
+ openssl dgst -sha256 "$file_path" | awk '{print $NF}'
40
+ return 0
41
+ fi
42
+ return 1
43
+ }
44
+
45
+ read_wheel_stamp() {
46
+ if [ -z "$WHEEL_STAMP_FILE" ] || [ ! -f "$WHEEL_STAMP_FILE" ]; then
47
+ return 0
48
+ fi
49
+ head -n 1 "$WHEEL_STAMP_FILE" 2>/dev/null || true
50
+ }
51
+
52
+ write_wheel_stamp() {
53
+ wheel_hash="$1"
54
+ if [ -z "$WHEEL_STAMP_FILE" ] || [ -z "$wheel_hash" ]; then
55
+ return 0
56
+ fi
57
+ mkdir -p "$(dirname "$WHEEL_STAMP_FILE")"
58
+ printf '%s\n' "$wheel_hash" >"$WHEEL_STAMP_FILE" || true
59
+ }
60
+
61
+ PYTHON_BIN="${PF_GATE_PYTHON:-}"
62
+ if [ -z "$PYTHON_BIN" ]; then
63
+ SYSTEM_PYTHON="$(resolve_system_python || true)"
64
+ if [ -z "$SYSTEM_PYTHON" ]; then
65
+ echo "PF Gate runtime error: Python 3.13+ not found. Install Python or set PF_GATE_PYTHON." >&2
66
+ exit 1
67
+ fi
68
+
69
+ if [ -z "$USER_HOME" ] && [ -z "${PF_GATE_RUNTIME_HOME:-}" ]; then
70
+ echo "PF Gate runtime error: HOME is not set. Set PF_GATE_RUNTIME_HOME or PF_GATE_PYTHON." >&2
71
+ exit 1
72
+ fi
73
+
74
+ if [ -z "$RUNTIME_HOME" ]; then
75
+ RUNTIME_HOME="$USER_HOME/.pf-gate/runtime"
76
+ fi
77
+ VENV_DIR="$RUNTIME_HOME/.venv"
78
+ PYTHON_BIN="$VENV_DIR/bin/python"
79
+
80
+ if [ ! -x "$PYTHON_BIN" ]; then
81
+ echo "PF Gate runtime: creating runtime environment at $VENV_DIR" >&2
82
+ mkdir -p "$RUNTIME_HOME"
83
+ if ! "$SYSTEM_PYTHON" -m venv "$VENV_DIR"; then
84
+ echo "PF Gate runtime error: failed to create runtime environment at $VENV_DIR" >&2
85
+ exit 1
86
+ fi
87
+ fi
88
+ fi
89
+
90
+ PIP_TARGET="${PF_GATE_PIP_SPEC:-$BUNDLED_WHEEL}"
91
+ if [ -z "${PF_GATE_PIP_SPEC:-}" ] && [ ! -f "$BUNDLED_WHEEL" ]; then
92
+ echo "PF Gate runtime error: missing bundled wheel at $BUNDLED_WHEEL" >&2
93
+ exit 1
94
+ fi
95
+
96
+ BUNDLED_HASH=""
97
+ if [ -z "${PF_GATE_PIP_SPEC:-}" ] && [ -f "$BUNDLED_WHEEL" ]; then
98
+ BUNDLED_HASH="$(sha256_file "$BUNDLED_WHEEL" 2>/dev/null || true)"
99
+ fi
100
+
101
+ NEEDS_INSTALL=0
102
+ FORCE_REINSTALL=0
103
+ INSTALL_REASON="persons_field is missing"
104
+ if ! "$PYTHON_BIN" -c "import persons_field.terminal.launcher" >/dev/null 2>&1; then
105
+ NEEDS_INSTALL=1
106
+ elif [ -z "${PF_GATE_PIP_SPEC:-}" ] && [ -n "$BUNDLED_HASH" ]; then
107
+ STORED_HASH="$(read_wheel_stamp)"
108
+ if [ "$STORED_HASH" != "$BUNDLED_HASH" ]; then
109
+ NEEDS_INSTALL=1
110
+ FORCE_REINSTALL=1
111
+ INSTALL_REASON="bundled runtime payload changed"
112
+ fi
113
+ fi
114
+
115
+ if [ "$NEEDS_INSTALL" -eq 1 ]; then
116
+ echo "PF Gate runtime: ${INSTALL_REASON}; installing ${PIP_TARGET}..." >&2
117
+ if ! "$PYTHON_BIN" -m pip --version >/dev/null 2>&1; then
118
+ "$PYTHON_BIN" -m ensurepip --upgrade >/dev/null 2>&1 || true
119
+ fi
120
+ if [ "$FORCE_REINSTALL" -eq 1 ]; then
121
+ if ! "$PYTHON_BIN" -m pip install --upgrade --force-reinstall --disable-pip-version-check "$PIP_TARGET"; then
122
+ if ! "$PYTHON_BIN" -m pip install --user --upgrade --force-reinstall --disable-pip-version-check "$PIP_TARGET"; then
123
+ echo "PF Gate runtime error: failed to install ${PIP_TARGET}. Set PF_GATE_PYTHON and PF_GATE_PIP_SPEC, then retry." >&2
124
+ exit 1
125
+ fi
126
+ fi
127
+ else
128
+ if ! "$PYTHON_BIN" -m pip install --upgrade --disable-pip-version-check "$PIP_TARGET"; then
129
+ if ! "$PYTHON_BIN" -m pip install --user --upgrade --disable-pip-version-check "$PIP_TARGET"; then
130
+ echo "PF Gate runtime error: failed to install ${PIP_TARGET}. Set PF_GATE_PYTHON and PF_GATE_PIP_SPEC, then retry." >&2
131
+ exit 1
132
+ fi
133
+ fi
134
+ fi
135
+ fi
136
+
137
+ if [ -z "${PF_GATE_PIP_SPEC:-}" ] && [ -n "$BUNDLED_HASH" ]; then
138
+ write_wheel_stamp "$BUNDLED_HASH"
139
+ fi
140
+
141
+ exec "$PYTHON_BIN" -m persons_field.terminal.launcher "$@"
@@ -1,68 +0,0 @@
1
- @echo off
2
- setlocal
3
-
4
- set "SCRIPT_DIR=%~dp0"
5
- set "BUNDLED_WHEEL=%SCRIPT_DIR%..\python\persons_field-1.0.0-py3-none-any.whl"
6
-
7
- set "PYTHON_BIN=%PF_GATE_PYTHON%"
8
- if "%PYTHON_BIN%"=="" (
9
- set "SYSTEM_PYTHON="
10
- where python >nul 2>nul
11
- if not errorlevel 1 (
12
- set "SYSTEM_PYTHON=python"
13
- ) else (
14
- where py >nul 2>nul
15
- if not errorlevel 1 (
16
- set "SYSTEM_PYTHON=py -3"
17
- )
18
- )
19
-
20
- if "%SYSTEM_PYTHON%"=="" (
21
- echo PF Gate runtime error: Python 3.13+ not found. Install Python or set PF_GATE_PYTHON. 1>&2
22
- exit /b 1
23
- )
24
-
25
- set "RUNTIME_HOME=%PF_GATE_RUNTIME_HOME%"
26
- if "%RUNTIME_HOME%"=="" set "RUNTIME_HOME=%USERPROFILE%\.pf-gate\runtime"
27
- set "VENV_DIR=%RUNTIME_HOME%\.venv"
28
- set "PYTHON_BIN=%VENV_DIR%\Scripts\python.exe"
29
-
30
- if not exist "%PYTHON_BIN%" (
31
- echo PF Gate runtime: creating runtime environment at %VENV_DIR% 1>&2
32
- if not exist "%RUNTIME_HOME%" mkdir "%RUNTIME_HOME%"
33
- call %SYSTEM_PYTHON% -m venv "%VENV_DIR%"
34
- if errorlevel 1 (
35
- echo PF Gate runtime error: failed to create runtime environment at %VENV_DIR% 1>&2
36
- exit /b 1
37
- )
38
- )
39
- )
40
-
41
- set "PIP_TARGET=%PF_GATE_PIP_SPEC%"
42
- if "%PIP_TARGET%"=="" set "PIP_TARGET=%BUNDLED_WHEEL%"
43
- if "%PF_GATE_PIP_SPEC%"=="" (
44
- if not exist "%BUNDLED_WHEEL%" (
45
- echo PF Gate runtime error: missing bundled wheel at %BUNDLED_WHEEL% 1>&2
46
- exit /b 1
47
- )
48
- )
49
-
50
- call %PYTHON_BIN% -c "import persons_field.terminal.launcher" >nul 2>nul
51
- if errorlevel 1 (
52
- echo PF Gate runtime: persons_field is missing; installing %PIP_TARGET%... 1>&2
53
- call %PYTHON_BIN% -m pip --version >nul 2>nul
54
- if errorlevel 1 (
55
- call %PYTHON_BIN% -m ensurepip --upgrade >nul 2>nul
56
- )
57
- call %PYTHON_BIN% -m pip install --upgrade --disable-pip-version-check "%PIP_TARGET%"
58
- if errorlevel 1 (
59
- call %PYTHON_BIN% -m pip install --user --upgrade --disable-pip-version-check "%PIP_TARGET%"
60
- if errorlevel 1 (
61
- echo PF Gate runtime error: failed to install %PIP_TARGET%. Set PF_GATE_PYTHON and PF_GATE_PIP_SPEC, then retry. 1>&2
62
- exit /b 1
63
- )
64
- )
65
- )
66
-
67
- call %PYTHON_BIN% -m persons_field.terminal.launcher %*
68
- exit /b %ERRORLEVEL%