@tommy-ca/lazypi 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,7 +13,7 @@ LazyPi will:
13
13
  1. Install `pi` for you if it isn't installed yet.
14
14
  2. Ask if you want to install all the packages or choose which to install.
15
15
 
16
- That setup is the harness core — isolated sub-agents, a structured ask gate, skill visibility, $ skill mention, a long-objective gate, side chat, context budgeting, code simplification review, web research, FFF search, a workflow engine for sub-agent fan-out, and ponytail discipline review. Optional extras (skill arguments, memory, MCP, interactive shell overlays, research loops, themes) install on demand with `pi install`.
16
+ That setup is the harness core — isolated sub-agents, a structured ask gate, skill visibility, $ skill mention, a long-objective gate, side chat, context budgeting, code simplification review, web research, FFF search, a workflow engine for sub-agent fan-out, and ponytail discipline review. A four-package optional tier (targeted LSP diagnostics, interactive shell overlays, autonomous research loops, structured todo tracking) installs on request with `--only optional`. Other extras (skill arguments, memory, MCP, themes) install on demand with `pi install`.
17
17
 
18
18
  That's it. Once done - run `pi` and experience a feature rich coding agent experience.
19
19
 
package/bin/lazypi.mjs CHANGED
@@ -20,10 +20,11 @@ import {
20
20
  // ---------------------------------------------------------------------------
21
21
  // Catalog
22
22
  // ---------------------------------------------------------------------------
23
- // Categories. LazyPi installs every package by default — "lazy" means you get
24
- // the whole thing without thinking. Use the interactive picker or --only /
25
- // --except to narrow it.
26
- const CATEGORIES = ["core"];
23
+ // Categories. LazyPi installs the core catalog by default — "lazy" means you
24
+ // get the harness without thinking. The optional category holds evaluated
25
+ // packages worth managing but not part of the default; include them via the
26
+ // interactive picker or --only / --except.
27
+ const CATEGORIES = ["core", "optional"];
27
28
 
28
29
  export const PACKAGES = [
29
30
  { id: "subagents", category: "core", source: "npm:pi-subagents", description: "Sub-agent execution", hint: "Run isolated sub-agents for parallel work." },
@@ -45,6 +46,10 @@ export const PACKAGES = [
45
46
  { id: "fff", category: "core", source: "npm:@ff-labs/pi-fff", description: "FFF fuzzy search", hint: "Additive fffind / ffgrep / fff-multi-grep beside the built-in tools; /fff-health checks the index." },
46
47
  { id: "dynamic-workflows", category: "core", source: "npm:@quintinshaw/pi-dynamic-workflows", description: "Workflow engine", hint: "Fan work out across subagents: /workflows TUI, deep-research, resume, token accounting." },
47
48
  { id: "ponytail", category: "core", source: "npm:@dietrichgebert/ponytail", description: "Lazy senior dev mode", hint: "Enforces minimal, stdlib-first code; /ponytail review, audit, and a debt ledger." },
49
+ { id: "lsp", category: "optional", source: "npm:@narumitw/pi-lsp", description: "Targeted LSP diagnostics and fixes", hint: "lsp_diagnostics / lsp_fix with configurable language servers, started per call." },
50
+ { id: "interactive-shell", category: "optional", source: "npm:pi-interactive-shell", description: "Interactive shell overlays", hint: "Run CLIs and agents in TUI overlays: interactive, hands-free, dispatch supervision." },
51
+ { id: "autoresearch", category: "optional", source: "npm:pi-autoresearch", legacySources: ["git:github.com/davebcn87/pi-autoresearch"], description: "Autonomous experiment loops", hint: "Iterative optimization runs with hooks, finalize, and convergence tracking." },
52
+ { id: "todos", category: "optional", source: "npm:pi-manage-todo-list", legacySources: ["git:github.com/tintinweb/pi-manage-todo-list"], description: "Structured todo tracking", hint: "Track multi-step work with live progress widgets and session persistence." },
48
53
  ];
49
54
 
50
55
  // ---------------------------------------------------------------------------
@@ -163,7 +168,7 @@ function resolveSelection(flags) {
163
168
  validateSelectors(flags.except, "--except");
164
169
  return new Set(PACKAGES.filter((p) => !matchesSelector(p, flags.except)).map((p) => p.id));
165
170
  }
166
- return new Set(PACKAGES.map((p) => p.id));
171
+ return new Set(PACKAGES.filter((p) => p.category === "core").map((p) => p.id));
167
172
  }
168
173
 
169
174
  // ---------------------------------------------------------------------------
@@ -191,20 +196,23 @@ ${bold("Install options:")}
191
196
  -V, --version Show the installed version
192
197
 
193
198
  ${bold("Default behaviour:")}
194
- - Every catalog package is installed (lazy on purpose).
195
- - On a TTY, an interactive picker appears with everything pre-ticked;
199
+ - Every core catalog package is installed (lazy on purpose); optional
200
+ category packages are installed only when selected.
201
+ - On a TTY, an interactive picker appears with core pre-ticked;
196
202
  untick categories or packages before confirming.
197
203
  - With --yes, --only, or --except the picker is skipped.
198
204
 
199
205
  ${bold("Categories:")}
200
206
  core the harness control plane: sub-agents, workflows, ask gate, skill visibility, $ mention, goal, side chat, context budget, simplify, web research, fff search, ponytail discipline
207
+ optional only when selected (--only optional, picker, or the everything flow): lsp diagnostics, interactive-shell overlays, autoresearch loops, todo tracking
201
208
  Non-catalog extras (pi install npm:<source>): skill-args, memory, mcp,
202
- interactive-shell, ralph-wiggum, curated-themes (65 dark themes)
209
+ ralph-wiggum, curated-themes (65 dark themes)
203
210
 
204
211
  ${bold("Examples:")}
205
- npx @tommy-ca/lazypi # everything (interactive picker on a TTY)
206
- npx @tommy-ca/lazypi --yes # everything, no prompt
207
- npx @tommy-ca/lazypi --only core # just the core category
212
+ npx @tommy-ca/lazypi # core catalog (interactive picker on a TTY)
213
+ npx @tommy-ca/lazypi --yes # core catalog, no prompt
214
+ npx @tommy-ca/lazypi --only core,optional # install optional tier too
215
+ npx @tommy-ca/lazypi --only optional # just the optional tier
208
216
  npx @tommy-ca/lazypi --only subagents,fff # individual package ids also work
209
217
  npx @tommy-ca/lazypi --only core --local # core into the current project
210
218
  npx @tommy-ca/lazypi status
@@ -529,6 +537,8 @@ async function cmdInstall(flags) {
529
537
  const choice = await askLazyOrPick(PACKAGES.length);
530
538
  if (choice === "pick") {
531
539
  selectedIds = await runPicker(selectedIds);
540
+ } else {
541
+ selectedIds = new Set(PACKAGES.map((p) => p.id));
532
542
  }
533
543
  }
534
544
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tommy-ca/lazypi",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "description": "Opinionated one-shot installer for a full-featured Pi coding agent setup.",
5
5
  "license": "MIT",
6
6
  "repository": {