evals 2.4.0 → 2.6.0
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 +14 -20
- package/bin.js +43 -0
- package/cli.js +196 -17
- package/onboarding-prompt.md +260 -56
- package/package.json +11 -4
- package/start.ps1 +153 -27
- package/start.sh +129 -19
- package/vendor/LICENSE-coding-harness-tracing +202 -0
- package/vendor/MANIFEST +6 -0
- package/vendor/certifi-2026.7.22-py3-none-any.whl +0 -0
- package/vendor/coding_harness_tracing-0.1.0-py3-none-any.whl +0 -0
- package/vendor/harness-install.bat +351 -0
- package/vendor/harness-install.sh +439 -0
- package/vendor/harness-pin.lock.json +18 -0
- package/vendor/python_dotenv-1.2.1-py3-none-any.whl +0 -0
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
@echo off
|
|
2
|
+
setlocal enabledelayedexpansion
|
|
3
|
+
REM Arize Coding Harness Tracing — Windows installer router
|
|
4
|
+
REM
|
|
5
|
+
REM Usage:
|
|
6
|
+
REM install.bat <harness> [--with-skills] [--branch NAME]
|
|
7
|
+
REM install.bat uninstall [harness]
|
|
8
|
+
REM install.bat update
|
|
9
|
+
|
|
10
|
+
REM --- Constants ---
|
|
11
|
+
set "REPO_URL=https://github.com/Arize-ai/coding-harness-tracing.git"
|
|
12
|
+
if not defined ARIZE_INSTALL_BRANCH set "ARIZE_INSTALL_BRANCH=main"
|
|
13
|
+
set "INSTALL_BRANCH=%ARIZE_INSTALL_BRANCH%"
|
|
14
|
+
set "TARBALL_URL=https://github.com/Arize-ai/coding-harness-tracing/archive/refs/heads/%INSTALL_BRANCH%.tar.gz"
|
|
15
|
+
set "INSTALL_DIR=%USERPROFILE%\.arize\harness"
|
|
16
|
+
set "VENV_DIR=%INSTALL_DIR%\venv"
|
|
17
|
+
set "VENV_PYTHON=%VENV_DIR%\Scripts\python.exe"
|
|
18
|
+
set "VENV_PIP=%VENV_DIR%\Scripts\pip.exe"
|
|
19
|
+
REM When set, install from local wheels in this directory instead of fetching the
|
|
20
|
+
REM repo: no network and no remote code execution. Mirrors install.sh --wheel-dir.
|
|
21
|
+
if not defined ARIZE_WHEEL_DIR set "ARIZE_WHEEL_DIR="
|
|
22
|
+
set "WHEEL_DIR=%ARIZE_WHEEL_DIR%"
|
|
23
|
+
|
|
24
|
+
REM --- Parse arguments ---
|
|
25
|
+
set "COMMAND="
|
|
26
|
+
set "UNINSTALL_HARNESS="
|
|
27
|
+
set "WITH_SKILLS="
|
|
28
|
+
set "STATUS_ARGS="
|
|
29
|
+
:parse_args
|
|
30
|
+
if "%~1"=="" goto :done_args
|
|
31
|
+
if /i "%~1"=="-h" goto :usage
|
|
32
|
+
if /i "%~1"=="--help" goto :usage
|
|
33
|
+
if /i "%~1"=="help" goto :usage
|
|
34
|
+
if /i "%~1"=="--with-skills" ( set "WITH_SKILLS=--with-skills" & shift & goto :parse_args )
|
|
35
|
+
if /i "%~1"=="--non-interactive" ( set "ARIZE_NONINTERACTIVE=1" & shift & goto :parse_args )
|
|
36
|
+
if /i "%~1"=="-y" ( set "ARIZE_NONINTERACTIVE=1" & shift & goto :parse_args )
|
|
37
|
+
if /i "%~1"=="--json" ( set "STATUS_ARGS=--json" & shift & goto :parse_args )
|
|
38
|
+
if /i "%~1"=="--wheel-dir" (
|
|
39
|
+
set "WHEEL_DIR=%~2"
|
|
40
|
+
if not exist "%~2\" ( echo [arize] --wheel-dir needs a directory; got '%~2' >&2 & exit /b 1 )
|
|
41
|
+
if not exist "%~2\coding_harness_tracing-*.whl" ( echo [arize] No coding_harness_tracing-*.whl in %~2 >&2 & exit /b 1 )
|
|
42
|
+
shift & shift & goto :parse_args
|
|
43
|
+
)
|
|
44
|
+
if /i "%~1"=="--branch" ( set "INSTALL_BRANCH=%~2" & set "TARBALL_URL=https://github.com/Arize-ai/coding-harness-tracing/archive/refs/heads/%~2.tar.gz" & shift & shift & goto :parse_args )
|
|
45
|
+
|
|
46
|
+
for %%C in (claude codex copilot cursor gemini kiro antigravity opencode omp devin) do if /i "%~1"=="%%C" ( set "COMMAND=%%C" & shift & goto :parse_args )
|
|
47
|
+
if /i "%~1"=="update" ( set "COMMAND=update" & shift & goto :parse_args )
|
|
48
|
+
if /i "%~1"=="status" ( set "COMMAND=status" & shift & goto :parse_args )
|
|
49
|
+
if /i "%~1"=="uninstall" (
|
|
50
|
+
set "COMMAND=uninstall" & shift
|
|
51
|
+
for %%C in (claude codex copilot cursor gemini kiro antigravity opencode omp devin) do if /i "%~1"=="%%C" ( set "UNINSTALL_HARNESS=%%C" & shift )
|
|
52
|
+
goto :parse_args
|
|
53
|
+
)
|
|
54
|
+
echo [arize] Unknown argument: %~1 >&2
|
|
55
|
+
goto :usage
|
|
56
|
+
:done_args
|
|
57
|
+
if "%COMMAND%"=="" ( echo [arize] No command specified >&2 & goto :usage )
|
|
58
|
+
|
|
59
|
+
REM --- Harness name -> directory mapping ---
|
|
60
|
+
REM claude->tracing\claude_code codex->tracing\codex copilot->tracing\copilot cursor->tracing\cursor gemini->tracing\gemini kiro->tracing\kiro antigravity->tracing\antigravity opencode->tracing\opencode omp->tracing\omp devin->tracing\devin
|
|
61
|
+
|
|
62
|
+
REM --- Dispatch ---
|
|
63
|
+
if "%COMMAND%"=="status" goto :cmd_status
|
|
64
|
+
if "%COMMAND%"=="update" goto :cmd_update
|
|
65
|
+
if "%COMMAND%"=="uninstall" goto :cmd_uninstall
|
|
66
|
+
|
|
67
|
+
REM --- Install a harness ---
|
|
68
|
+
call :find_python
|
|
69
|
+
if "%FOUND_PYTHON%"=="" ( echo [arize] Error: Python 3.9+ is required >&2 & exit /b 1 )
|
|
70
|
+
echo [arize] Found Python: %FOUND_PYTHON%
|
|
71
|
+
call :bootstrap_repo
|
|
72
|
+
if %ERRORLEVEL% neq 0 exit /b 1
|
|
73
|
+
call :setup_venv
|
|
74
|
+
if %ERRORLEVEL% neq 0 exit /b 1
|
|
75
|
+
REM Migrate legacy config.yaml -> config.json (no-op if nothing to migrate)
|
|
76
|
+
if exist "%VENV_PYTHON%" "%VENV_PYTHON%" -m core.config migrate
|
|
77
|
+
echo [arize] Running %COMMAND% install...
|
|
78
|
+
call :run_harness_py "%COMMAND%" install "%WITH_SKILLS%"
|
|
79
|
+
exit /b %ERRORLEVEL%
|
|
80
|
+
|
|
81
|
+
REM --- cmd_status ---
|
|
82
|
+
:cmd_status
|
|
83
|
+
if not exist "%VENV_PYTHON%" ( echo [arize] Venv not found - nothing installed >&2 & exit /b 1 )
|
|
84
|
+
"%VENV_PYTHON%" -m core.setup.status %STATUS_ARGS%
|
|
85
|
+
exit /b %ERRORLEVEL%
|
|
86
|
+
|
|
87
|
+
REM --- cmd_update ---
|
|
88
|
+
:cmd_update
|
|
89
|
+
if not exist "%INSTALL_DIR%" ( echo [arize] Not installed at %INSTALL_DIR% >&2 & exit /b 1 )
|
|
90
|
+
call :find_python
|
|
91
|
+
if "%FOUND_PYTHON%"=="" ( echo [arize] Error: Python 3.9+ is required >&2 & exit /b 1 )
|
|
92
|
+
REM Re-registering runs each harness's installer, which prompts for the project
|
|
93
|
+
REM name. With no console to answer on that dies with an EOFError, so fall back
|
|
94
|
+
REM to stored values there — and only there, so an interactive update keeps
|
|
95
|
+
REM every prompt it has today. cmd has no -t test; ask Python instead.
|
|
96
|
+
%FOUND_PYTHON% -c "import sys; sys.exit(0 if sys.stdin.isatty() else 1)" >nul 2>&1 || set "ARIZE_NONINTERACTIVE=1"
|
|
97
|
+
set "_UPDATE_NEED_VENV=0"
|
|
98
|
+
if not defined WHEEL_DIR if not exist "%INSTALL_DIR%\.git" if not exist "%INSTALL_DIR%\pyproject.toml" (
|
|
99
|
+
echo [arize] This looks like an offline install with no source tree to update. >&2
|
|
100
|
+
echo [arize] Re-run the installer that created it, or pass --wheel-dir with a newer wheel. >&2
|
|
101
|
+
exit /b 1
|
|
102
|
+
)
|
|
103
|
+
if defined WHEEL_DIR (
|
|
104
|
+
echo [arize] Updating from local wheels in %WHEEL_DIR%...
|
|
105
|
+
) else if exist "%INSTALL_DIR%\.git" (
|
|
106
|
+
echo [arize] Pulling latest changes...
|
|
107
|
+
git -C "%INSTALL_DIR%" pull --ff-only >nul 2>&1
|
|
108
|
+
if !ERRORLEVEL! neq 0 (
|
|
109
|
+
echo [arize] Pull failed — re-cloning
|
|
110
|
+
rmdir /s /q "%INSTALL_DIR%" 2>nul
|
|
111
|
+
call :bootstrap_repo
|
|
112
|
+
if !ERRORLEVEL! neq 0 exit /b 1
|
|
113
|
+
set "_UPDATE_NEED_VENV=1"
|
|
114
|
+
)
|
|
115
|
+
) else (
|
|
116
|
+
rmdir /s /q "%INSTALL_DIR%" 2>nul
|
|
117
|
+
call :bootstrap_repo
|
|
118
|
+
if !ERRORLEVEL! neq 0 exit /b 1
|
|
119
|
+
set "_UPDATE_NEED_VENV=1"
|
|
120
|
+
)
|
|
121
|
+
REM Re-create venv if it was wiped along with INSTALL_DIR
|
|
122
|
+
if "!_UPDATE_NEED_VENV!"=="1" (
|
|
123
|
+
call :setup_venv
|
|
124
|
+
if !ERRORLEVEL! neq 0 exit /b 1
|
|
125
|
+
) else if exist "%VENV_PIP%" (
|
|
126
|
+
echo [arize] Reinstalling package...
|
|
127
|
+
call :pip_install_harness "-U"
|
|
128
|
+
REM Stop here on failure: migrating config and re-registering hooks against
|
|
129
|
+
REM the package that is still installed would report success for an update
|
|
130
|
+
REM that did not happen.
|
|
131
|
+
if !ERRORLEVEL! neq 0 exit /b 1
|
|
132
|
+
)
|
|
133
|
+
REM Migrate legacy config.yaml -> config.json (no-op if nothing to migrate)
|
|
134
|
+
if exist "%VENV_PYTHON%" "%VENV_PYTHON%" -m core.config migrate
|
|
135
|
+
if exist "%VENV_PYTHON%" (
|
|
136
|
+
for /f "usebackq delims=" %%H in (`"%VENV_PYTHON%" -c "from core.setup import list_installed_harnesses; [print(h) for h in list_installed_harnesses()]" 2^>nul`) do (
|
|
137
|
+
echo [arize] Reinstalling %%H...
|
|
138
|
+
call :run_harness_py "%%H" install
|
|
139
|
+
if !ERRORLEVEL! neq 0 echo [arize] %%H re-registration failed ^(continuing^) >&2
|
|
140
|
+
)
|
|
141
|
+
)
|
|
142
|
+
echo [arize] Update complete!
|
|
143
|
+
exit /b 0
|
|
144
|
+
|
|
145
|
+
REM --- cmd_uninstall ---
|
|
146
|
+
:cmd_uninstall
|
|
147
|
+
if not "%UNINSTALL_HARNESS%"=="" (
|
|
148
|
+
if not exist "%VENV_PYTHON%" ( echo [arize] Venv not found >&2 & exit /b 1 )
|
|
149
|
+
echo [arize] Uninstalling %UNINSTALL_HARNESS%...
|
|
150
|
+
call :run_harness_py "%UNINSTALL_HARNESS%" uninstall
|
|
151
|
+
exit /b !ERRORLEVEL!
|
|
152
|
+
)
|
|
153
|
+
REM Full wipe
|
|
154
|
+
echo [arize] Uninstalling coding-harness-tracing
|
|
155
|
+
if exist "%VENV_PYTHON%" (
|
|
156
|
+
for /f "usebackq delims=" %%H in (`"%VENV_PYTHON%" -c "from core.setup import list_installed_harnesses; [print(h) for h in list_installed_harnesses()]" 2^>nul`) do (
|
|
157
|
+
call :run_harness_py "%%H" uninstall
|
|
158
|
+
)
|
|
159
|
+
"%VENV_PYTHON%" -c "from core.setup.wipe import wipe_shared_runtime; wipe_shared_runtime()" 2>nul
|
|
160
|
+
)
|
|
161
|
+
REM Everything after this point must live on one line. A full uninstall deletes
|
|
162
|
+
REM the directory this script is running from, and cmd reads a batch file from
|
|
163
|
+
REM disk line by line — so once it is gone there is no next line to read. The
|
|
164
|
+
REM uninstall then succeeded while reporting "The system cannot find the path
|
|
165
|
+
REM specified" and a non-zero exit. Parsed as one line, cmd never looks back.
|
|
166
|
+
if exist "%INSTALL_DIR%" ( rmdir /s /q "%INSTALL_DIR%" 2>nul & echo [arize] Removed %INSTALL_DIR% & echo [arize] Uninstall complete. & exit /b 0 )
|
|
167
|
+
echo [arize] Uninstall complete.
|
|
168
|
+
exit /b 0
|
|
169
|
+
|
|
170
|
+
REM ===================================================================
|
|
171
|
+
REM Helpers
|
|
172
|
+
REM ===================================================================
|
|
173
|
+
|
|
174
|
+
REM --- find_python: locate Python >= 3.9 (try py -3, python3, python, then known paths) ---
|
|
175
|
+
:find_python
|
|
176
|
+
set "FOUND_PYTHON="
|
|
177
|
+
REM Try py -3 first (Windows Python Launcher — ensures Python 3)
|
|
178
|
+
where py >nul 2>&1 && ( py -3 -c "import sys; assert sys.version_info >= (3, 9)" >nul 2>&1 && ( set "FOUND_PYTHON=py -3" & goto :eof ) )
|
|
179
|
+
REM Then python3 and python on PATH
|
|
180
|
+
for %%P in (python3 python) do (
|
|
181
|
+
where %%P >nul 2>&1 && ( %%P -c "import sys; assert sys.version_info >= (3, 9)" >nul 2>&1 && ( set "FOUND_PYTHON=%%P" & goto :eof ) )
|
|
182
|
+
)
|
|
183
|
+
for %%V in (313 312 311 310 39) do (
|
|
184
|
+
for %%D in ("%LOCALAPPDATA%\Programs\Python\Python%%V\python.exe" "C:\Python%%V\python.exe") do (
|
|
185
|
+
if exist %%~D ( %%~D -c "import sys; assert sys.version_info >= (3, 9)" >nul 2>&1 && ( set "FOUND_PYTHON=%%~D" & goto :eof ) )
|
|
186
|
+
)
|
|
187
|
+
)
|
|
188
|
+
goto :eof
|
|
189
|
+
|
|
190
|
+
REM --- bootstrap_repo: clone or tarball into INSTALL_DIR ---
|
|
191
|
+
:bootstrap_repo
|
|
192
|
+
if defined WHEEL_DIR (
|
|
193
|
+
if not exist "%INSTALL_DIR%" mkdir "%INSTALL_DIR%"
|
|
194
|
+
REM `status`, `update` and `uninstall` are documented as running from
|
|
195
|
+
REM %INSTALL_DIR%\install.bat, which repo mode gets via the extract. Skip the
|
|
196
|
+
REM copy when we are already running from there, or it would truncate itself.
|
|
197
|
+
if /i not "%~f0"=="%INSTALL_DIR%\install.bat" copy /y "%~f0" "%INSTALL_DIR%\install.bat" >nul
|
|
198
|
+
goto :eof
|
|
199
|
+
)
|
|
200
|
+
if exist "%INSTALL_DIR%\.git" (
|
|
201
|
+
echo [arize] Repository at %INSTALL_DIR%, syncing...
|
|
202
|
+
git -C "%INSTALL_DIR%" fetch --depth 1 origin "%INSTALL_BRANCH%" >nul 2>&1 && git -C "%INSTALL_DIR%" checkout -B "%INSTALL_BRANCH%" FETCH_HEAD >nul 2>&1 && goto :eof
|
|
203
|
+
git -C "%INSTALL_DIR%" pull --ff-only >nul 2>&1 && goto :eof
|
|
204
|
+
echo [arize] git update failed — re-cloning
|
|
205
|
+
rmdir /s /q "%INSTALL_DIR%" 2>nul
|
|
206
|
+
)
|
|
207
|
+
if exist "%INSTALL_DIR%" if not exist "%INSTALL_DIR%\.git" ( rmdir /s /q "%INSTALL_DIR%" 2>nul )
|
|
208
|
+
where git >nul 2>&1 && (
|
|
209
|
+
echo [arize] Cloning coding-harness-tracing...
|
|
210
|
+
git clone --depth 1 --branch "%INSTALL_BRANCH%" "%REPO_URL%" "%INSTALL_DIR%" >nul 2>&1 && goto :eof
|
|
211
|
+
echo [arize] git clone failed — falling back to tarball
|
|
212
|
+
)
|
|
213
|
+
call :download_tarball
|
|
214
|
+
goto :eof
|
|
215
|
+
|
|
216
|
+
REM --- download_tarball ---
|
|
217
|
+
:download_tarball
|
|
218
|
+
echo [arize] Downloading tarball...
|
|
219
|
+
set "TMPZIP=%TEMP%\arize-install-%RANDOM%.tar.gz"
|
|
220
|
+
powershell -NoProfile -Command "Invoke-WebRequest -Uri '%TARBALL_URL%' -OutFile '%TMPZIP%'" >nul 2>&1
|
|
221
|
+
if !ERRORLEVEL! neq 0 ( curl -sSfL "%TARBALL_URL%" -o "%TMPZIP%" 2>nul || ( echo [arize] Download failed >&2 & exit /b 1 ) )
|
|
222
|
+
if not exist "%INSTALL_DIR%" mkdir "%INSTALL_DIR%"
|
|
223
|
+
tar xzf "%TMPZIP%" --strip-components=1 -C "%INSTALL_DIR%" >nul 2>&1
|
|
224
|
+
if !ERRORLEVEL! neq 0 (
|
|
225
|
+
set "TMPDIR=%TEMP%\arize-extract-%RANDOM%"
|
|
226
|
+
mkdir "!TMPDIR!" 2>nul
|
|
227
|
+
powershell -NoProfile -Command "& { $gz=[IO.File]::OpenRead('%TMPZIP%'); $d=New-Object IO.Compression.GZipStream($gz,[IO.Compression.CompressionMode]::Decompress); $f=[IO.File]::Create('!TMPDIR!\a.tar'); $d.CopyTo($f); $f.Close(); $d.Close(); $gz.Close() }" >nul 2>&1
|
|
228
|
+
tar xf "!TMPDIR!\a.tar" --strip-components=1 -C "%INSTALL_DIR%" >nul 2>&1
|
|
229
|
+
if !ERRORLEVEL! neq 0 ( rmdir /s /q "!TMPDIR!" 2>nul & del "%TMPZIP%" 2>nul & echo [arize] Extraction failed >&2 & exit /b 1 )
|
|
230
|
+
rmdir /s /q "!TMPDIR!" 2>nul
|
|
231
|
+
)
|
|
232
|
+
del "%TMPZIP%" 2>nul
|
|
233
|
+
echo [arize] Extracted to %INSTALL_DIR%
|
|
234
|
+
goto :eof
|
|
235
|
+
|
|
236
|
+
REM --- setup_venv ---
|
|
237
|
+
:setup_venv
|
|
238
|
+
if exist "%VENV_PYTHON%" ( "%VENV_PYTHON%" -c "import core" >nul 2>&1 && ( echo [arize] Venv ready & goto :eof ) )
|
|
239
|
+
echo [arize] Creating venv...
|
|
240
|
+
%FOUND_PYTHON% -m venv "%VENV_DIR%" >nul 2>&1
|
|
241
|
+
if !ERRORLEVEL! neq 0 ( echo [arize] Failed to create venv >&2 & exit /b 1 )
|
|
242
|
+
if not exist "%VENV_PIP%" ( echo [arize] pip not found in venv >&2 & exit /b 1 )
|
|
243
|
+
echo [arize] Installing coding-harness-tracing...
|
|
244
|
+
call :pip_install_harness ""
|
|
245
|
+
if !ERRORLEVEL! neq 0 exit /b 1
|
|
246
|
+
echo [arize] Venv ready at %VENV_DIR%
|
|
247
|
+
goto :eof
|
|
248
|
+
|
|
249
|
+
REM --- pip_install_harness: install the package into the venv ---
|
|
250
|
+
REM Extra args are passed through to pip (-U for update).
|
|
251
|
+
REM
|
|
252
|
+
REM Shared so the two callers cannot drift: setup_venv checked ERRORLEVEL and
|
|
253
|
+
REM cmd_update did not, so a failed offline reinstall let update carry on to
|
|
254
|
+
REM migrate config and re-register every harness against the OLD package, then
|
|
255
|
+
REM print "Update complete!" and exit 0. install.sh has always checked this.
|
|
256
|
+
REM
|
|
257
|
+
REM Wheel mode deliberately does not send stderr to nul — pip's "No matching
|
|
258
|
+
REM distribution found" is the only thing that explains the failure, and matching
|
|
259
|
+
REM install.sh means a Windows user sees it too.
|
|
260
|
+
:pip_install_harness
|
|
261
|
+
if defined WHEEL_DIR (
|
|
262
|
+
"%VENV_PIP%" install --quiet %~1 --no-index --find-links "%WHEEL_DIR%" coding-harness-tracing
|
|
263
|
+
if !ERRORLEVEL! neq 0 ( echo [arize] Failed to install coding-harness-tracing from %WHEEL_DIR% >&2 & exit /b 1 )
|
|
264
|
+
) else (
|
|
265
|
+
"%VENV_PIP%" install --quiet %~1 "%INSTALL_DIR%" >nul 2>&1
|
|
266
|
+
if !ERRORLEVEL! neq 0 ( echo [arize] Failed to install coding-harness-tracing package >&2 & exit /b 1 )
|
|
267
|
+
)
|
|
268
|
+
exit /b 0
|
|
269
|
+
|
|
270
|
+
REM --- run_harness_py: invoke a harness installer ---
|
|
271
|
+
REM %1 harness key, %2 verb (install/uninstall), %3 optional flags.
|
|
272
|
+
REM Repo mode runs install.py from the source tree; wheel mode has no source tree
|
|
273
|
+
REM and runs the same code as a module. Both import core.* from site-packages.
|
|
274
|
+
:run_harness_py
|
|
275
|
+
call :resolve_dir "%~1"
|
|
276
|
+
if !ERRORLEVEL! neq 0 exit /b 1
|
|
277
|
+
set "_PY=%INSTALL_DIR%\!HARNESS_DIR!\install.py"
|
|
278
|
+
set "_MOD=!HARNESS_DIR:\=.!.install"
|
|
279
|
+
if exist "!_PY!" (
|
|
280
|
+
"%VENV_PYTHON%" "!_PY!" %~2 %~3
|
|
281
|
+
) else (
|
|
282
|
+
"%VENV_PYTHON%" -m "!_MOD!" %~2 %~3
|
|
283
|
+
)
|
|
284
|
+
exit /b !ERRORLEVEL!
|
|
285
|
+
|
|
286
|
+
REM --- resolve_dir: map command/harness name to directory ---
|
|
287
|
+
:resolve_dir
|
|
288
|
+
set "HARNESS_DIR="
|
|
289
|
+
if /i "%~1"=="claude" set "HARNESS_DIR=tracing\claude_code"
|
|
290
|
+
if /i "%~1"=="claude-code" set "HARNESS_DIR=tracing\claude_code"
|
|
291
|
+
if /i "%~1"=="codex" set "HARNESS_DIR=tracing\codex"
|
|
292
|
+
if /i "%~1"=="copilot" set "HARNESS_DIR=tracing\copilot"
|
|
293
|
+
if /i "%~1"=="cursor" set "HARNESS_DIR=tracing\cursor"
|
|
294
|
+
if /i "%~1"=="gemini" set "HARNESS_DIR=tracing\gemini"
|
|
295
|
+
if /i "%~1"=="kiro" set "HARNESS_DIR=tracing\kiro"
|
|
296
|
+
if /i "%~1"=="antigravity" set "HARNESS_DIR=tracing\antigravity"
|
|
297
|
+
if /i "%~1"=="opencode" set "HARNESS_DIR=tracing\opencode"
|
|
298
|
+
if /i "%~1"=="omp" set "HARNESS_DIR=tracing\omp"
|
|
299
|
+
if /i "%~1"=="devin" set "HARNESS_DIR=tracing\devin"
|
|
300
|
+
if "%HARNESS_DIR%"=="" ( echo [arize] Unknown harness: %~1 >&2 & exit /b 1 )
|
|
301
|
+
goto :eof
|
|
302
|
+
|
|
303
|
+
REM --- Usage ---
|
|
304
|
+
:usage
|
|
305
|
+
echo.
|
|
306
|
+
echo Arize Coding Harness Tracing Installer
|
|
307
|
+
echo.
|
|
308
|
+
echo Usage: install.bat ^<command^> [flags]
|
|
309
|
+
echo.
|
|
310
|
+
echo Commands:
|
|
311
|
+
echo claude Install tracing for Claude Code / Agent SDK
|
|
312
|
+
echo codex Install tracing for OpenAI Codex CLI
|
|
313
|
+
echo copilot Install tracing for GitHub Copilot
|
|
314
|
+
echo cursor Install tracing for Cursor IDE
|
|
315
|
+
echo gemini Install tracing for Gemini CLI
|
|
316
|
+
echo kiro Install tracing for Kiro CLI
|
|
317
|
+
echo antigravity Install tracing for Google Antigravity CLI/IDE
|
|
318
|
+
echo opencode Install tracing for opencode
|
|
319
|
+
echo omp Install tracing for Oh My Pi (omp)
|
|
320
|
+
echo devin Install tracing for Devin CLI
|
|
321
|
+
echo status Report configured harnesses and hook wiring
|
|
322
|
+
echo update Update to latest and reinstall all harnesses
|
|
323
|
+
echo uninstall [harness] Remove one harness or full wipe
|
|
324
|
+
echo.
|
|
325
|
+
echo Flags:
|
|
326
|
+
echo --with-skills Symlink harness skills into .agents\skills\
|
|
327
|
+
echo --wheel-dir DIR Install from local wheels in DIR instead of downloading
|
|
328
|
+
echo the repo. No network and no remote code execution; also
|
|
329
|
+
echo settable as ARIZE_WHEEL_DIR.
|
|
330
|
+
echo --branch NAME Install from a specific git branch (default: main)
|
|
331
|
+
echo --json With status: emit machine-readable JSON
|
|
332
|
+
echo --non-interactive, -y Ask nothing; read values from the environment
|
|
333
|
+
echo or the file named by ARIZE_ENV_FILE. Missing required
|
|
334
|
+
echo values are an error.
|
|
335
|
+
echo.
|
|
336
|
+
echo Non-interactive install reads the environment, plus a dotenv file named
|
|
337
|
+
echo with ARIZE_ENV_FILE — no automatic .env search: ARIZE_API_KEY and ARIZE_SPACE_ID for Arize AX,
|
|
338
|
+
echo PHOENIX_ENDPOINT and PHOENIX_API_KEY for Phoenix, plus optional
|
|
339
|
+
echo ARIZE_BACKEND, ARIZE_PROJECT_NAME, ARIZE_USER_ID, ARIZE_OTLP_ENDPOINT,
|
|
340
|
+
echo ARIZE_LOG_PROMPTS, ARIZE_LOG_TOOL_DETAILS, ARIZE_LOG_TOOL_CONTENT — all
|
|
341
|
+
echo off unless set to true.
|
|
342
|
+
echo.
|
|
343
|
+
echo Examples:
|
|
344
|
+
echo install.bat claude
|
|
345
|
+
echo install.bat codex --with-skills
|
|
346
|
+
echo install.bat cursor --branch dev
|
|
347
|
+
echo install.bat uninstall claude
|
|
348
|
+
echo install.bat uninstall
|
|
349
|
+
echo install.bat update
|
|
350
|
+
echo.
|
|
351
|
+
exit /b 1
|