Skip to content

feat(model): coding-plan detection + plan:// picker (Phase 1) + README refresh (EN+zh) to v0.10.0#112

Open
oratis wants to merge 2 commits into
mainfrom
claude/hardcore-elbakyan-fdfa54
Open

feat(model): coding-plan detection + plan:// picker (Phase 1) + README refresh (EN+zh) to v0.10.0#112
oratis wants to merge 2 commits into
mainfrom
claude/hardcore-elbakyan-fdfa54

Conversation

@oratis

@oratis oratis commented Jun 18, 2026

Copy link
Copy Markdown
Owner

Two parts, on one branch: a comprehensive README refresh, and Phase 1 of the subscription coding-plan mechanism (detection + picker), per docs/CODING_PLANS.md.

Coding plans — Phase 1 (detection + plan:// picker)

The honest, ToS-clean slice: detect which plan CLIs are installed/logged-in and let the user pick one as a delegation target. No auth code, no token reuse — Anthropic forbids third-party subscription-OAuth reuse and enforced it against OpenClaw (see the doc).

  • src/model/plans.ts — injectable PlanProbe; parsePlanRef / detectPlan(s) / selectedPlan. Per-vendor presence-only detection (binary on PATH + credential-file existence, never token contents): Claude (app-bundle/PATH + ~/.claude/.credentials.json, or Keychain → login-unknown), Codex (auth.json, honoring CODEX_HOME), Copilot (copilot/gh, experimental).
  • lisa model list gains a coding-plans section with ✓/?/✗ + login hints.
  • lisa model use plan://<id> stores LISA_CODING_PLAN without touching LISA_MODEL — LISA's own loop keeps its provider; the plan is only the default delegation target.
  • src/model/plans.test.ts — 16 pure unit tests via a fake probe.
  • Actual delegation execution (headless claude -p / codex exec, web/island picker, usage surfacing) is later-phase, built on the existing PTY bridge.

Verified: npm run typecheck clean; full suite 734 passed / 0 failed; CLI smoke-tested end-to-end in a throwaway LISA_HOME.

README refresh (README.md + README.zh-CN.md, kept in sync)

  • "Watching → steering your other agents" — documents the three layers the old README missed: observe → managed agentsPTY agents (steer real claude/codex) → claude --resume adoption.
  • New Coding plans section (+ Install pointer), noting what works today.
  • 9 new subcommands, --host/--idle flags, new env vars, orchestrator/repo/web/mcp tool rows, refreshed Surfaces + Layout, parity rows; fixed 16+/20+ provider count; 27k→28k LOC.

docs/CODING_PLANS.md (research + design)

Rejects in-process OAuth-token reuse (ToS / OpenClaw precedent); recommends out-of-process CLI delegation on the PTY bridge; per-vendor auth reference; phased plan (Phase 1 now ✅); the one sanctioned in-process win (ANTHROPIC_AUTH_TOKEN gateway auth).

Sources: Claude Code auth · Codex auth · claude-code#18340

🤖 Generated with Claude Code

oratis and others added 2 commits June 18, 2026 23:43
Bring both READMEs up to date with the orchestrator / managed / PTY-agent
work and the v0.7–v0.10 subsystems, and add docs/CODING_PLANS.md researching
how LISA can run coding work on a subscription plan (Claude Pro/Max,
ChatGPT/Codex, Copilot) instead of only metered API keys.

README (EN + zh, kept in sync):
- "Watching → steering your other agents": observe → managed agents →
  PTY agents (steer real claude/codex) → `claude --resume` session adoption
- new "Coding plans" subsection (subscription-backed delegation)
- new subcommands (status/doctor/monitor/agents/autonomy/model/consent/
  sense/autostart), --host / --idle flags, new env vars,
  orchestrator/repo/web tool rows, refreshed Surfaces + Layout,
  parity-table rows; fix 16+/20+ provider count; ~27k→~28k LOC

docs/CODING_PLANS.md:
- rejects in-process OAuth token reuse (Anthropic ToS / OpenClaw precedent)
- recommends out-of-process CLI delegation, built on the existing PTY bridge
- per-vendor auth reference + phased plan + sanctioned gateway-auth win

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…hase 1)

`lisa model list` now detects installed coding-plan CLIs (Claude Code / Codex /
Copilot) and their login state from PRESENCE ONLY — binary on PATH + credential
file existence, never reading token contents (same metadata-not-payload posture
as LISA's observers). `lisa model use plan://<id>` selects a delegation target,
stored as LISA_CODING_PLAN without touching LISA_MODEL — her own loop keeps its
provider; the plan is only the default target for delegated coding work.

This is the ToS-clean Phase 1 from docs/CODING_PLANS.md (no auth code, no token
reuse). Actually routing coding work to the selected plan rides the existing PTY
bridge in a later phase.

- src/model/plans.ts: injectable PlanProbe; parsePlanRef / detectPlan(s) /
  selectedPlan; per-vendor presence detection (claude app-bundle/PATH + creds
  file, Keychain → login-unknown; codex auth.json honoring CODEX_HOME; copilot
  via copilot|gh, marked experimental)
- src/model/plans.test.ts: 16 pure tests via a fake probe
- src/cli/model.ts: `list` gains a coding-plans section; `use` handles plan://
- src/cli.ts: help text for `lisa model`
- docs/CODING_PLANS.md + README (EN/zh): mark Phase 1 shipped

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@oratis oratis changed the title docs: refresh README (EN+zh) to v0.10.0 + coding-plan mechanism design feat(model): coding-plan detection + plan:// picker (Phase 1) + README refresh (EN+zh) to v0.10.0 Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant