@tommy-ca/lazypi 0.10.2 → 0.10.3

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,17 +13,43 @@ 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. A five-package optional tier (targeted LSP diagnostics, interactive shell overlays, autonomous research loops, structured todo tracking, markdown-backed memory) installs on request with `--only optional`. Other extras (skill arguments, MCP, ralph-wiggum, themes) install on demand with `pi install`.
16
+ That setup is the 12-package harness core. `--yes` installs those 12. On a TTY, Install everything installs all 17. Packages LazyPi dropped stay installable with `pi install`. LazyPi does not manage them. See the Catalog table and `docs/docs/philosophy.html`.
17
17
 
18
18
  That's it. Once done - run `pi` and experience a feature rich coding agent experience.
19
19
 
20
20
  Install is **idempotent** — LazyPi reads your Pi settings and skips any package that is already installed, so re-running is safe.
21
21
 
22
+ ## Catalog
23
+
24
+ `--yes` installs 12 core packages. TTY Install everything installs all 17.
25
+
26
+ | id | category | why |
27
+ | --- | --- | --- |
28
+ | subagents | core | Isolated specialists instead of one bloated agent |
29
+ | pi-ask-user | core | Stop and ask instead of guessing |
30
+ | pi-skillful | core | Keep 4 to 6 skills visible. Hide the rest |
31
+ | mention-skill | core | `$` mention is the one way to reach hidden skills |
32
+ | goal | core | Long-objective gate. Not a checkbox list |
33
+ | btw | core | Side chat that does not pollute history |
34
+ | context-usage | core | See what is burning the window |
35
+ | simplify | core | Review diffs for clarity after implementation |
36
+ | web-access | core | Search and fetch instead of stale training data |
37
+ | fff | core | Paged fuzzy search so grep does not flood the transcript |
38
+ | dynamic-workflows | core | Fan work out across subagents |
39
+ | ponytail | core | Stdlib-first discipline. Lean catalog as a habit |
40
+ | lsp | optional | Targeted diagnostics. Cataloged, not default |
41
+ | interactive-shell | optional | TUI overlays. Chrome, not control plane |
42
+ | autoresearch | optional | Experiment loops. Convenience, not core |
43
+ | todos | optional | Structured tracker. Optional because core forbids checkbox todos as default |
44
+ | memory | optional | Git-backed memory. Infrastructure, not control plane |
45
+
46
+ Dropped packages are outside this table. `pi install` still works. LazyPi does not manage them.
47
+
22
48
  ## Commands
23
49
 
24
50
  | Command | What it does |
25
51
  | --- | --- |
26
- | `npx @tommy-ca/lazypi` | Install all or selected catalog (interactive picker by default) |
52
+ | `npx @tommy-ca/lazypi` | TTY Install everything is 17. `--yes` is the 12 core packages. Picker otherwise. |
27
53
  | `npx @tommy-ca/lazypi remove <id>` | Remove a catalog package by id (or pass a raw pi source) |
28
54
  | `npx @tommy-ca/lazypi status` | Show which catalog packages are installed, missing, or extra |
29
55
  | `npx @tommy-ca/lazypi update` | Run `pi update` for installed Pi packages |
@@ -71,7 +97,7 @@ specs behave the same way, so `cd` out of the checkout first.
71
97
 
72
98
  ## Site / docs
73
99
 
74
- The site at [lazypi.org](https://lazypi.org) lives in `docs/` and is a Jekyll site compiled by GitHub Pages automatically on push to `master`.
100
+ The Jekyll source lives in `docs/`. This fork does not enable GitHub Pages, and [lazypi.org](https://lazypi.org) still serves the upstream installer.
75
101
 
76
102
  To preview locally (requires Ruby + Bundler):
77
103
 
@@ -106,4 +132,4 @@ before treating releases as automated.
106
132
 
107
133
  ---
108
134
 
109
- For the full list of included packages and optional extras, see [lazypi.org](https://lazypi.org).
135
+ The catalog table above is the npm list. `docs/docs/philosophy.html` explains membership. Run `npx @tommy-ca/lazypi` to install.
package/bin/lazypi.mjs CHANGED
@@ -175,7 +175,7 @@ function validateSelectors(list, label) {
175
175
  if (bad.length > 0) {
176
176
  console.error(red(`Unknown ${label}: ${bad.join(", ")}`));
177
177
  console.error(`Valid categories: ${CATEGORIES.join(", ")}`);
178
- console.error(`Valid package ids: ${[...ids].join(", ")}`);
178
+ console.error(`Valid package ids: ${[...ids].join(", ")}`);
179
179
  return false;
180
180
  }
181
181
  return true;
@@ -231,8 +231,8 @@ ${bold("Default behaviour:")}
231
231
  ${bold("Categories:")}
232
232
  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
233
233
  optional only when selected (--only optional, picker, or the everything flow): lsp diagnostics, interactive-shell overlays, autoresearch loops, todo tracking, markdown memory
234
- Non-catalog extras (pi install npm:<source>): skill-args, mcp,
235
- ralph-wiggum, curated-themes (65 dark themes)
234
+ (Dropped packages such as skill-args, mcp, ralph-wiggum, curated-themes are
235
+ outside the catalog — pi install npm:<source> still works for them.)
236
236
 
237
237
  ${bold("Examples:")}
238
238
  npx @tommy-ca/lazypi # core catalog (interactive picker on a TTY)
@@ -531,6 +531,11 @@ async function ensurePi(flags) {
531
531
  if (hasCmd("pi")) return true;
532
532
 
533
533
  log.warn("Could not find the `pi` command on PATH.");
534
+ if (!flags.yes && !isInteractive()) {
535
+ log.error("Install Pi first (`npm install -g @earendil-works/pi-coding-agent`), then re-run `npx @tommy-ca/lazypi`.");
536
+ return false;
537
+ }
538
+
534
539
  const ok = flags.yes || (await confirm("Install Pi now with `npm install -g @earendil-works/pi-coding-agent`?", true));
535
540
  if (!ok) {
536
541
  log.error("Install Pi first, then re-run `npx @tommy-ca/lazypi`.");
@@ -763,7 +768,8 @@ function cmdStatus(flags) {
763
768
  printHeader(`Installed from LazyPi catalog (${installed.length}/${PACKAGES.length}):`);
764
769
  if (installed.length === 0) console.log(dim(" none"));
765
770
  for (const pkg of installed) {
766
- console.log(` ${green("✓")} [${pkg.category}] ${pkg.id.padEnd(20)} ${dim(pkg.source)}`);
771
+ const installedSource = [...sources].find((src) => sourcesMatch(pkg.source, src)) ?? pkg.source;
772
+ console.log(` ${green("✓")} [${pkg.category}] ${pkg.id.padEnd(20)} ${dim(installedSource)}`);
767
773
  }
768
774
 
769
775
  printHeader(`Installed with legacy catalog sources (${legacy.length}):`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tommy-ca/lazypi",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
4
4
  "description": "Opinionated one-shot installer for a full-featured Pi coding agent setup.",
5
5
  "license": "MIT",
6
6
  "repository": {