Files
Bendik Aagaard LynghaugandClaude Fable 5.1 96b3746643
Test / test (pull_request) Successful in 1m7s
One binary: the lint and the trainer are commands of portal
portal serve runs a site; portal lint is what iris was; portal plan,
build, report and the rest are what portal-trainer was. One source at
one version, so the three never disagree about what content means.
Both histories are merged in (subtree). The release attaches the bare
binary for a content repo's CI. The trainer's plans, intakes, engines
and reference prompt come along; its runs stay in the old repo.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt
2026-09-30 15:29:30 +02:00

23 lines
979 B
Bash
Executable File

#!/bin/sh
# LLM backend for portal-trainer on Claude Code's own login (a Max or
# Pro subscription): prompt on stdin, text on stdout. No API key
# needed: an ANTHROPIC_API_KEY in the environment would outrank the
# login, so it is dropped here. Log the CLI in once with
# `claude auth login`; `claude auth status` shows what it uses.
# MODEL is an alias or id (sonnet, opus, claude-sonnet-5); EFFORT is
# low, medium or high. Not --bare: that mode skips the stored login.
#
# The generator's SEED and TEMPERATURE hints cannot be honoured;
# FORMAT=json is turned into an instruction.
set -eu
unset ANTHROPIC_API_KEY ANTHROPIC_AUTH_TOKEN CLAUDECODE CLAUDE_CODE_ENTRYPOINT
prompt=$(cat)
if [ "${FORMAT:-}" = json ]; then
prompt="$prompt
Reply with the JSON object only, no prose, no code fences."
fi
printf '%s' "$prompt" | claude -p --model "${MODEL:-sonnet}" --effort "${EFFORT:-low}" \
--output-format text --permission-mode dontAsk --no-session-persistence \
--tools ""