cloverleaf-larry/lib
Bryan Johnson af3f034337 v0.5.4: pipe files to jq via stdin (MobaXterm Windows-jq path-translation fix)
Symptom: OAuth login succeeded on the work box but cmd_status emitted three
'jq: error: Could not open file' lines and showed empty fields. Same pattern
would have hit every subsequent chat turn via larry.sh's MESSAGES_FILE reads.

Root cause: install-larry.sh fetches a Windows-native jq.exe on cygwin/
mobaxterm platforms. Windows jq can't resolve Cygwin paths like
/home/mobaxterm/.larry/.oauth.json when they come in as argv arguments
(it interprets the leading slash as a Windows root). Bash's `>` redirection
worked because bash itself does the path open and hands jq an fd — the
read-side calls were passing the path string directly.

Fix: every read-side jq call now uses stdin redirection (`jq '...' < file`),
where bash does the open. Universal:
- Linux/macOS native jq: identical behavior (was already file-open-from-bash)
- MobaXterm/Cygwin/Git Bash with Windows jq.exe: now works
- WSL: works (Linux-native jq, same as Linux)
- Native PowerShell/cmd: doesn't apply — larry-anywhere is a bash script

Changes:
- lib/oauth.sh: new jqf() helper; 10 sites converted. Refactored cmd_refresh
  to drop --slurpfile (which can only take a path) — pre-reads the previous
  refresh_token, then uses --arg.
- larry.sh: add_user_text / add_assistant_blocks / add_user_tool_results
  now pipe $MESSAGES_FILE via stdin too.

Verified: cmd_status against a real token file produces clean output, no
jq errors. Syntax check passes both files.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 09:47:06 -07:00
..
csv-to-table.sh v0.4.1: each / each-site / len2nl / csv-to-table / table-to-csv 2026-05-26 11:05:19 -07:00
each-site.sh v0.4.1: each / each-site / len2nl / csv-to-table / table-to-csv 2026-05-26 11:05:19 -07:00
each.sh v0.4.1: each / each-site / len2nl / csv-to-table / table-to-csv 2026-05-26 11:05:19 -07:00
hl7-desanitize.sh v0.3.3: PHI sanitize/desanitize + {{phi:...}} prompt preprocessing 2026-05-26 10:29:20 -07:00
hl7-diff.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
hl7-field.sh v0.3.4: field-name aliases, dot/dash syntax, ops (=, !=, ~, !~), new formats 2026-05-26 10:35:46 -07:00
hl7-sanitize.sh v0.3.3: PHI sanitize/desanitize + {{phi:...}} prompt preprocessing 2026-05-26 10:29:20 -07:00
journal.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
len2nl.sh v0.4.1: each / each-site / len2nl / csv-to-table / table-to-csv 2026-05-26 11:05:19 -07:00
lessons.sh v0.3.2: lesson capture (local-first learning loop) 2026-05-26 10:00:37 -07:00
nc-create-thread.sh v0.4.2: operational layer — engine ctrl, tables CRUD, xlate viz, smat-diff, create-thread, tclgen 2026-05-26 11:11:30 -07:00
nc-diff-interface.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
nc-document.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
nc-engine.sh v0.4.2: operational layer — engine ctrl, tables CRUD, xlate viz, smat-diff, create-thread, tclgen 2026-05-26 11:11:30 -07:00
nc-find.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
nc-inbound.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
nc-insert-protocol.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
nc-make-jump.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
nc-msgs.sh v0.4.0: chain walk, OR/NOT filter groups, numeric/range ops, smat history 2026-05-26 10:58:16 -07:00
nc-parse.sh v0.4.0: chain walk, OR/NOT filter groups, numeric/range ops, smat history 2026-05-26 10:58:16 -07:00
nc-regression.sh v0.4.3: cross-env bundle for regression — no direct peer protocol needed 2026-05-26 11:25:02 -07:00
nc-smat-diff.sh v0.4.2: operational layer — engine ctrl, tables CRUD, xlate viz, smat-diff, create-thread, tclgen 2026-05-26 11:11:30 -07:00
nc-status.sh v0.4.2: operational layer — engine ctrl, tables CRUD, xlate viz, smat-diff, create-thread, tclgen 2026-05-26 11:11:30 -07:00
nc-table.sh v0.4.2: operational layer — engine ctrl, tables CRUD, xlate viz, smat-diff, create-thread, tclgen 2026-05-26 11:11:30 -07:00
nc-tclgen.sh v0.4.2: operational layer — engine ctrl, tables CRUD, xlate viz, smat-diff, create-thread, tclgen 2026-05-26 11:11:30 -07:00
nc-xlate.sh v0.4.2: operational layer — engine ctrl, tables CRUD, xlate viz, smat-diff, create-thread, tclgen 2026-05-26 11:11:30 -07:00
oauth.sh v0.5.4: pipe files to jq via stdin (MobaXterm Windows-jq path-translation fix) 2026-05-27 09:47:06 -07:00
table-to-csv.sh v0.4.1: each / each-site / len2nl / csv-to-table / table-to-csv 2026-05-26 11:05:19 -07:00