INFINBOT — OBSERVED-RESULT VALIDATION, 2026-10-13

run_agent_validation.py replaces the supplied placeholder/mock-pass script.
It never says that a network failure passed, never authenticates against a broker
homepage, never reports a file download without writing and parsing that file,
and never announces a production configuration switch that has not occurred.

OLD BROKER PAIR CHECK
The package contains no collected old broker credentials. No actual old-key 401
request has been executed from this environment. The old and new pairs must come
from separate existing owner-private files on the actual host. Do not put either
pair in chat or command arguments. A raw HMAC signing token is not an Alpaca key ID
and secret pair. File ownership, mode 600/400, no symlinks and matching account mode
are enforced. Only GET /v2/account on api.alpaca.markets or paper-api.alpaca.markets
is permitted; proxies and redirects are disabled and raw bodies/errors are hidden.

The check records an actual 401 on the selected correct endpoint. Any other status
or network exception remains blocked. A separate new-pair account read must return
200 with a valid account payload before the diagnostic object retains only the new
pair. The old pair is never a runtime fallback. A 401 alone is not a broker-side
revocation receipt: wrong/mismatched pairs or environment also produce 401. Actual
production TradingBotEngine binding remains unverified; its source was not found
among available project modules. This new AlpacaCredentialRotationCheck component
does not overwrite or start the owner's unseen strategy engine.

Existing private JSON pair format supported: mode, api_key and api_secret (all
actual values remain local). Existing literal env format also supported: exact
ALPACA_BASE_URL and matching ALPACA_PAPER_KEY/ALPACA_PAPER_SECRET or
ALPACA_LIVE_KEY/ALPACA_LIVE_SECRET. No secret template is populated automatically.

PUBLIC CME SAMPLE
Official source linked from CME's Time & Sales sample guide:
https://www.cmegroup.com/files/download/xcme-tick-es-fut-20250312-part-00039-c000.csv
This is static historical ES data, not MES or current bot observations. The complete
96,281,850-byte official CSV was downloaded on 2026-10-13, locally gzip-compressed,
and its 839,644 rows validated by the corrected v2 parser. Original-byte SHA256:
c62b5527f57079ee28c1a05184adf03f6cafea41bf3ed48c85c59f1b45a2fe51
The optional bundled samples directory is not copied by the source installer. It
contains public data only and is never seeded into the simulation ledger.

The parser supports the actual Transaction_Date header and the guide's documented
Transaction__Date spelling explicitly; spread contracts, price-only records and
null VOL sequence fields remain distinct. It checks present sequences per date and
Security_ID; it never asserts a single global product order. Prices use Decimal.
Clearing prices are not silently treated as displayed prices. An explicit validated
security/display-factor reference and capital/risk configuration remain necessary
for allocation verification. position_allocation_verified stays false here.

RUN THE SAMPLE ON YOUR MAC AFTER INSTALLING THE UPDATED SOURCE PACKAGE
python3 /Users/bpa/ForesixaQuant/run_agent_validation.py --sample-only --sample-file /Users/bpa/Downloads/infinbot-release/samples/official-cme-es-tsv2-20250312.csv.gz
The exact original hash is verified, then a new .csv.gz copy is written into the
existing/private enterprise_logs directory and parsed. No provider secrets or live
stream are used. To fetch the sample directly instead, omit --sample-file.

RUN THE BROKER CHECK WITH YOUR EXISTING PRIVATE FILES
python3 /Users/bpa/ForesixaQuant/run_agent_validation.py --old-credentials-file /absolute/private/old-broker-pair.env --new-credentials-file /absolute/private/new-broker-pair.env --mode paper --skip-sample
Use --mode live only for actual live key pairs; the command remains account-read
only and does not authorize trading. Replace paths locally; do not share keys.
The JSON receipt records the observed checks in enterprise_logs. Missing files or
unexpected responses produce nonzero exit status. Without --sample-only, omitted
old/new broker files remain unverified even if the sample succeeds.

PRODUCTION SWITCH
No production files, broker settings, ledger or HMAC token are changed by this
runner. Production switch requires review of the actual TradingBotEngine source and
its private credential-loader binding. The new CMEDataMineParser interface is
labelled a new implementation, not claimed as recovered previously tested code.
All orders remain disabled. No LGC contract edits or production clearance occurred.
