Releases: nearform/agentic-pi
Release list
v0.2.13
v0.2.12
v0.2.11
What's changed
- GitHub tools: add an optional
githubApiBaseUrloverride (OctokitbaseUrl), threaded throughrun→runner→loadGitHubExtension→buildGitHubTools→GitHubClient. Lets a real workflow run with itsgithub_*calls pointed at a fake GitHub server for tests/evals. Falls back toGITHUB_API_URL; production leaves it unset (→https://api.github.com). AddsGitHubClientbaseUrl-injection tests. - Docs: correct release trigger (published Release, not tag push).
Full Changelog: v0.2.10...v0.2.11
v0.2.10
Upgrade the underlying Pi SDK to 0.80.2 (from 0.79.8).
- Bump
@earendil-works/pi-aiand@earendil-works/pi-coding-agentto^0.80.2. - Pi 0.80.0 moved the static model-catalog read off the
pi-airoot;resolveModel()now usesgetBuiltinModelfrom@earendil-works/pi-ai/providers/allinstead of the deprecated root/compatgetModelalias. - No JSONL event-contract changes; full unit suite passes.
v0.2.9
Tunable maxSteps cap (#6)
Adds a step cap on agent runs — a "step" is one Pi turn (one model call plus the tool executions it triggers).
- Programmatic:
run({ maxSteps });RunResult.maxStepsReachedreports whether the cap stopped the run. - CLI:
--max-steps <n>. - When the agent completes
maxStepsturns and still wants to continue, the run stops cleanly (agent_end, exit 0) and emits a gatedmax_steps_reachedevent. Suppressed when no cap is hit, so default-run JSONL stays byte-identical.
Pi exposes no max-turns / shouldStopAfterTurn seam through its SDK, so the cap is enforced from the event stream (count turn_end, abort when exceeded).
v0.2.8
Tunable rate-limit retry + bumped defaults
Pi auto-retries transient model errors (429 rate limit, 503 overloaded, 5xx, network/timeout) with exponential backoff, but its stock schedule (3 retries ≈ 14s) was too short for providers that limit on a per-minute window — notably Fireworks, whose TPM limits can take ~60s to clear, causing bursts to fail.
- Bumped default to 5 retries / 4s base → 4s, 8s, 16s, 32s, 64s (the final wait alone outlasts a 60s window).
- New flags
--max-retries <n>(0disables) and--retry-base-delay-ms <ms>;run()gainsmaxRetries/retryBaseDelayMs. - Precedence: flag → operator
~/.pi/agent/settings.jsonretryblock → agentic-pi default (operator config, incl.retry.provider.*, is preserved). - Pauses remain observable via the existing
auto_retry_start/auto_retry_endJSONL events.
See PR #5.
v0.2.7
Upgrade pi to 0.79.8 + Fireworks AI docs
- Bumped
@earendil-works/pi-aiand@earendil-works/pi-coding-agent^0.75.4→^0.79.8. The refreshed pi-ai catalog adds current Fireworks models (e.g.glm-5p2,deepseek-v4-pro,kimi-k2p7-code,minimax-m3) with accurate context/cost metadata. Type-compatible — no source changes required. - Fireworks AI is a first-class model provider (Anthropic-compatible endpoint,
FIREWORKS_API_KEY). Use--model fireworks/accounts/fireworks/models/<id>. README §5 documents the prefix, env var, curated model list, and the~/.pi/agent/models.jsonescape hatch for uncurated ids.
See PR #4.
v0.2.6
Agent Skills support
agentic-pi now wires up the Agent Skills standard (the SKILL.md-in-a-folder convention from Claude Code), which Pi implements natively.
--skill <path>(repeatable) +--no-skills— map an arbitrary skills folder (e.g.~/.claude/skills) into the agent.--skillis additive even with--no-skills. Skills in Pi's default locations (.pi/skills/,.agents/skills/,~/.pi/agent/skills/,~/.agents/skills/, packageskills/) are discovered automatically.- Gated
skills_statusJSONL event — surfaces discovered skills (status, count, per-skillname/source/modelInvocable,mappedPaths). Suppressed on a default run with no skills, so existing JSONL fixtures stay byte-identical. run()gainsskillPaths/noSkillsoptions and aresult.skillsmirror for in-process callers.- Docs: README section 11, AGENTS.md, CLAUDE.md.
See PR #3.
v0.2.5
Native OpenTelemetry traces + metrics export (`--otel`)
Opt-in OTEL integration that exports the Pi session as a span tree (`session → turn → {chat, execute_tool}`) plus metrics (tokens, cost, durations, tool/turn counts), using the standard OpenTelemetry JS SDK and standard `OTEL_*` env vars. Built for orchestrators (lastlight) that forward OTEL config into a sandboxed agentic-pi process.
- Off unless explicitly enabled (`--otel` or `AGENTIC_PI_OTEL_ENABLED=1`; `--no-otel` wins). A bare OTLP endpoint does not auto-enable.
- Metadata-only by default; raw content only via `--otel-include-content` (bounded + truncated).
- Safe by default: no-op + no SDK import when disabled; SDK diagnostics never reach stdout/stderr; an unreachable collector degrades to a warning, never fails the run.
- Reads W3C `TRACEPARENT` for cross-process trace correlation.
New flags: `--otel`, `--no-otel`, `--otel-include-content`, `--otel-service-name`, `--otel-endpoint`. See README section 10.