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
Open
feat(model): coding-plan detection + plan:// picker (Phase 1) + README refresh (EN+zh) to v0.10.0#112oratis wants to merge 2 commits into
oratis wants to merge 2 commits into
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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— injectablePlanProbe;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, honoringCODEX_HOME), Copilot (copilot/gh, experimental).lisa model listgains a coding-plans section with ✓/?/✗ + login hints.lisa model use plan://<id>storesLISA_CODING_PLANwithout touchingLISA_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.claude -p/codex exec, web/island picker, usage surfacing) is later-phase, built on the existing PTY bridge.Verified:
npm run typecheckclean; full suite 734 passed / 0 failed; CLI smoke-tested end-to-end in a throwawayLISA_HOME.README refresh (
README.md+README.zh-CN.md, kept in sync)claude/codex) →claude --resumeadoption.--host/--idleflags, new env vars, orchestrator/repo/web/mcptool 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_TOKENgateway auth).Sources: Claude Code auth · Codex auth · claude-code#18340
🤖 Generated with Claude Code