@gonrocca/zero-pi 0.1.68 → 0.1.70

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
@@ -123,6 +123,7 @@ into `/forge` for you.
123
123
  | **SDD routing skill** | Natural-language requests that say "hacelo con sdd" route into `/forge` without remembering the slash command. |
124
124
  | **`zero-sdd` theme** | A dark, high-contrast pi theme tuned for SDD work. |
125
125
  | **`zero-sunset` theme** | A warm sunset variant — gold/coral/magenta accents over warm-dark panels, with one cool tone kept for syntax legibility. Activate with `/theme zero-sunset`. |
126
+ | **`zero-omp-neon` theme** | A high-contrast OMP-inspired neon theme with separated colour roles: cyan links/paths, gold titles, mint code/success, violet borders, and navy tool cards. Activate with `/theme zero-omp-neon`. |
126
127
 
127
128
  ## ⌨️ Commands
128
129
 
@@ -145,6 +146,69 @@ into `/forge` for you.
145
146
  | `/zero-diff <slug>` | Preview the logical spec-store merge without writing files. |
146
147
  | `/zero-resume` | Write the session handoff note now. |
147
148
 
149
+ ## 🎛️ Visual chrome: HUD, activity panel, prompt box
150
+
151
+ zero-pi ships several visual extensions. They are related, but each one owns a different part of pi's TUI:
152
+
153
+ | Surface | File | Where it appears | Purpose |
154
+ | ------- | ---- | ---------------- | ------- |
155
+ | **ZERO HUD** | `extensions/zero-hud.ts` | Footer/status line at the bottom | Persistent model/tokens/cost/diff/context/branch telemetry. |
156
+ | **Activity panel** | `extensions/zero-activity-panel.ts` | Widget above the prompt while work is running | Live `/forge` phase progress plus recent tool cards. |
157
+ | **Prompt box** | `extensions/zero-pretty-input-box.ts` | The input/editor box | OMP-like rounded box with ZERO chips and key hints. |
158
+ | **Code fences** | `extensions/zero-pretty-code-fences.ts` | Markdown code blocks in chat | Bordered panels with language badges instead of raw ```txt / ```json lines. |
159
+ | **Working phrases** | `extensions/working-phrases.ts` | Tiny loading row (`Procesando… (esc)`) | Rotating ZERO/SDD/Star Wars/DBZ phrases and themed spinner. |
160
+
161
+ ### ZERO HUD presets
162
+
163
+ The HUD is the **bottom footer**. It is not the activity panel. Control it with:
164
+
165
+ ```txt
166
+ /zero-hud preview
167
+ /zero-hud compact
168
+ /zero-hud minimal
169
+ /zero-hud full
170
+ /zero-hud ascii
171
+ /zero-hud off
172
+ /zero-hud on
173
+ ```
174
+
175
+ Example compact HUD:
176
+
177
+ ```txt
178
+ ZERO ▸ gpt-5.5 ▸ tok ↑1.1M ↓42K ▸ cost $16.22 ▸ diff +0/-0 ▸ ctx 11%
179
+ ```
180
+
181
+ Startup preset can be set with:
182
+
183
+ ```bash
184
+ ZERO_HUD_PRESET=full pi
185
+ ```
186
+
187
+ Supported presets: `compact` (default), `minimal`, `full`, `ascii`, `off`.
188
+
189
+ ### Activity panel vs HUD
190
+
191
+ During `/forge`, the activity panel appears **above the prompt** and summarizes the live run:
192
+
193
+ ```txt
194
+ ╭─ ZERO activity ───────────────────────────────────────────────────────╮
195
+ │ SDD ✓ clarify › ✓ explore › ⠋ plan › · analyze › · build › · veredicto
196
+ │ Tools ⠋ subagent · ✓ read zero-hud.ts · ✓ bash npm test
197
+ ╰────────────────────────────────────────────────────────────────────────╯
198
+ ```
199
+
200
+ The activity panel is transient: it clears after the agent finishes. The HUD stays in the footer across normal work.
201
+
202
+ ### Applying visual changes after install
203
+
204
+ After `pi install npm:@gonrocca/zero-pi@<version>`, reload the active session:
205
+
206
+ ```txt
207
+ /reload
208
+ ```
209
+
210
+ If a visual monkeypatch was already loaded in the current process, restarting pi is the safest way to force all visual extensions to reinitialize.
211
+
148
212
  ### Git / PR / Issues
149
213
 
150
214
  Recommended flow: `/zero-branch <slug>` → `/zero-issue <slug>` → `/forge <slug>` (the orchestrator validates plan artifacts and can create `/zero-checkpoint` before build) → `/zero-git-validate <slug> --for=pr` → `/zero-pr <slug>` → `/zero-archive <slug>`.
@@ -325,6 +325,13 @@ export default function register(pi?: PiAPI): void {
325
325
  installSpinner();
326
326
  });
327
327
 
328
+ // Pi can reset extension-owned UI during reload/session rebinds. Reinstall the
329
+ // spinner at the start of every run so the symbol survives those resets.
330
+ pi.on("before_agent_start", (_event, ctx) => {
331
+ capture(ctx);
332
+ installSpinner();
333
+ });
334
+
328
335
  pi.on("input", (event, ctx) => {
329
336
  capture(ctx);
330
337
  const text = (event as { text?: string })?.text ?? "";
@@ -333,6 +340,7 @@ export default function register(pi?: PiAPI): void {
333
340
 
334
341
  pi.on("agent_start", (_event, ctx) => {
335
342
  capture(ctx);
343
+ installSpinner();
336
344
  start();
337
345
  });
338
346
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gonrocca/zero-pi",
3
- "version": "0.1.68",
3
+ "version": "0.1.70",
4
4
  "description": "zero-pi — an installable layer for pi (pi.dev): the zero spec-driven development workflow (clarify → explore → plan → analyze → build → veredicto) with automatic clarify/analyze gates, per-phase model autotune, and token-efficient batched builds. Adds capability to pi without modifying pi.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -0,0 +1,85 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
+ "name": "zero-omp-neon",
4
+ "vars": {
5
+ "bg": "#090b12",
6
+ "panel": "#111421",
7
+ "panel2": "#171329",
8
+ "panelTool": "#101a28",
9
+ "panelOk": "#0d1f1e",
10
+ "panelErr": "#2a111a",
11
+ "selected": "#27213f",
12
+ "textMain": "#ece8f6",
13
+ "prose": "#c9bed6",
14
+ "mutedCool": "#a99eb8",
15
+ "dimCool": "#6e657e",
16
+ "cyan": "#35e8ff",
17
+ "blue": "#67a8ff",
18
+ "mint": "#2dfcb3",
19
+ "green": "#5bff8a",
20
+ "gold": "#ffd166",
21
+ "amber": "#ff9f43",
22
+ "coral": "#ff7a66",
23
+ "rose": "#ff4f7b",
24
+ "magenta": "#d86bff",
25
+ "violet": "#a78bfa"
26
+ },
27
+ "colors": {
28
+ "accent": "cyan",
29
+ "border": "violet",
30
+ "borderAccent": "cyan",
31
+ "borderMuted": "dimCool",
32
+ "success": "mint",
33
+ "error": "rose",
34
+ "warning": "amber",
35
+ "muted": "mutedCool",
36
+ "dim": "dimCool",
37
+ "text": "textMain",
38
+ "thinkingText": "prose",
39
+ "selectedBg": "selected",
40
+ "userMessageBg": "panel2",
41
+ "userMessageText": "gold",
42
+ "customMessageBg": "panel",
43
+ "customMessageText": "prose",
44
+ "customMessageLabel": "cyan",
45
+ "toolPendingBg": "panel2",
46
+ "toolSuccessBg": "panelTool",
47
+ "toolErrorBg": "panelErr",
48
+ "toolTitle": "gold",
49
+ "toolOutput": "prose",
50
+ "mdHeading": "cyan",
51
+ "mdLink": "cyan",
52
+ "mdLinkUrl": "violet",
53
+ "mdCode": "mint",
54
+ "mdCodeBlock": "mint",
55
+ "mdCodeBlockBorder": "violet",
56
+ "mdQuote": "mutedCool",
57
+ "mdQuoteBorder": "dimCool",
58
+ "mdHr": "dimCool",
59
+ "mdListBullet": "magenta",
60
+ "toolDiffAdded": "mint",
61
+ "toolDiffRemoved": "rose",
62
+ "toolDiffContext": "mutedCool",
63
+ "syntaxComment": "dimCool",
64
+ "syntaxKeyword": "magenta",
65
+ "syntaxFunction": "cyan",
66
+ "syntaxVariable": "gold",
67
+ "syntaxString": "mint",
68
+ "syntaxNumber": "coral",
69
+ "syntaxType": "blue",
70
+ "syntaxOperator": "rose",
71
+ "syntaxPunctuation": "mutedCool",
72
+ "thinkingOff": "dimCool",
73
+ "thinkingMinimal": "mutedCool",
74
+ "thinkingLow": "blue",
75
+ "thinkingMedium": "gold",
76
+ "thinkingHigh": "coral",
77
+ "thinkingXhigh": "magenta",
78
+ "bashMode": "cyan"
79
+ },
80
+ "export": {
81
+ "pageBg": "#090b12",
82
+ "cardBg": "#111421",
83
+ "infoBg": "#171329"
84
+ }
85
+ }