@openlines/opl-pi-sht 0.1.14
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/LICENSE +21 -0
- package/README.md +191 -0
- package/configs/opl-browser.json.sample +8 -0
- package/configs/opl-footer.json +48 -0
- package/configs/opl-footer.json.sample +48 -0
- package/configs/opl-input.json +22 -0
- package/configs/opl-input.json.sample +22 -0
- package/configs/opl-modes.json +291 -0
- package/configs/opl-modes.json.sample +285 -0
- package/configs/opl-simplebench.json +8 -0
- package/configs/opl-simplebench.json.sample +8 -0
- package/configs/opl-todo.json +12 -0
- package/configs/opl-todo.json.sample +12 -0
- package/configs/opl-webaccess.json +31 -0
- package/configs/opl-webaccess.json.sample +31 -0
- package/extensions/opl-browser/README.md +83 -0
- package/extensions/opl-browser/browser.ts +185 -0
- package/extensions/opl-browser/config.ts +37 -0
- package/extensions/opl-browser/index.ts +89 -0
- package/extensions/opl-browser/package-lock.json +60 -0
- package/extensions/opl-browser/package.json +10 -0
- package/extensions/opl-ctxtrim/README.md +78 -0
- package/extensions/opl-ctxtrim/index.ts +151 -0
- package/extensions/opl-footer/README.md +193 -0
- package/extensions/opl-footer/config.ts +91 -0
- package/extensions/opl-footer/git-status.ts +170 -0
- package/extensions/opl-footer/icons.ts +49 -0
- package/extensions/opl-footer/index.ts +368 -0
- package/extensions/opl-footer/segments/caveman.ts +25 -0
- package/extensions/opl-footer/segments/chat-mode.ts +24 -0
- package/extensions/opl-footer/segments/context.ts +92 -0
- package/extensions/opl-footer/segments/cost.ts +25 -0
- package/extensions/opl-footer/segments/git.ts +47 -0
- package/extensions/opl-footer/segments/helpers.ts +18 -0
- package/extensions/opl-footer/segments/index.ts +51 -0
- package/extensions/opl-footer/segments/mode-switcher.ts +24 -0
- package/extensions/opl-footer/segments/model.ts +22 -0
- package/extensions/opl-footer/segments/path.ts +34 -0
- package/extensions/opl-footer/segments/pi.ts +11 -0
- package/extensions/opl-footer/segments/plan-mode.ts +24 -0
- package/extensions/opl-footer/segments/separator.ts +9 -0
- package/extensions/opl-footer/segments/session-stats.ts +82 -0
- package/extensions/opl-footer/segments/thinking.ts +51 -0
- package/extensions/opl-footer/segments/tokens.ts +66 -0
- package/extensions/opl-footer/theme.ts +113 -0
- package/extensions/opl-footer/types.ts +172 -0
- package/extensions/opl-init/README.md +23 -0
- package/extensions/opl-init/index.ts +451 -0
- package/extensions/opl-input/README.md +83 -0
- package/extensions/opl-input/config.ts +137 -0
- package/extensions/opl-input/index.ts +284 -0
- package/extensions/opl-input/mode-style.ts +38 -0
- package/extensions/opl-input/utils.ts +378 -0
- package/extensions/opl-modes/README.md +132 -0
- package/extensions/opl-modes/config.ts +473 -0
- package/extensions/opl-modes/index.ts +1081 -0
- package/extensions/opl-modes/menus.ts +60 -0
- package/extensions/opl-modes/state.ts +152 -0
- package/extensions/opl-modes/types.ts +164 -0
- package/extensions/opl-modes/utils.ts +138 -0
- package/extensions/opl-questionnaire/README.md +26 -0
- package/extensions/opl-questionnaire/index.ts +445 -0
- package/extensions/opl-questionnaire/types.ts +55 -0
- package/extensions/opl-simplebench/README.md +242 -0
- package/extensions/opl-simplebench/artifact.ts +41 -0
- package/extensions/opl-simplebench/benchmark.ts +873 -0
- package/extensions/opl-simplebench/coding.ts +282 -0
- package/extensions/opl-simplebench/index.ts +203 -0
- package/extensions/opl-simplebench/llama-server.ts +290 -0
- package/extensions/opl-simplebench/metrics.ts +73 -0
- package/extensions/opl-simplebench/report.ts +46 -0
- package/extensions/opl-simplebench/research.ts +200 -0
- package/extensions/opl-simplebench/scoring.ts +48 -0
- package/extensions/opl-simplebench/tests.ts +39 -0
- package/extensions/opl-simplebench/types.ts +6 -0
- package/extensions/opl-simplebench/util/config.ts +170 -0
- package/extensions/opl-simplebench/util/debug.ts +32 -0
- package/extensions/opl-simplebench/util/format.ts +402 -0
- package/extensions/opl-simplebench/util/providers.ts +841 -0
- package/extensions/opl-todo/README.md +43 -0
- package/extensions/opl-todo/config.ts +71 -0
- package/extensions/opl-todo/index.ts +415 -0
- package/extensions/opl-webaccess/README.md +47 -0
- package/extensions/opl-webaccess/config.ts +55 -0
- package/extensions/opl-webaccess/extract.ts +83 -0
- package/extensions/opl-webaccess/index.ts +232 -0
- package/extensions/opl-webaccess/package-lock.json +345 -0
- package/extensions/opl-webaccess/package.json +18 -0
- package/extensions/opl-webaccess/pdf.ts +8 -0
- package/extensions/opl-webaccess/providers/ddgs.ts +72 -0
- package/extensions/opl-webaccess/providers/exa.ts +74 -0
- package/extensions/opl-webaccess/providers/gemini.ts +60 -0
- package/extensions/opl-webaccess/providers/searxng.ts +86 -0
- package/extensions/opl-webaccess/providers/tavily.ts +60 -0
- package/extensions/opl-webaccess/search.ts +36 -0
- package/extensions/opl-webaccess/storage.ts +51 -0
- package/extensions/opl-webaccess/turndown.d.ts +1 -0
- package/extensions/opl-webaccess/types.ts +26 -0
- package/extensions/opl-webaccess/utils.ts +28 -0
- package/package.json +55 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Linel Lazatin
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# opl-pi-sht
|
|
2
|
+
|
|
3
|
+
**Cut token cost, run the agent safely, and drop your MCP servers.**
|
|
4
|
+
|
|
5
|
+
A portable collection of various Pi coding agent extensions. Repository directories and config files use `opl-`; established Pi-facing commands and tool names stay compatible.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
### Pi package
|
|
10
|
+
|
|
11
|
+
Install a versioned GitHub release with Pi:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pi install git:github.com/linellazatin/opl-pi-sht@v0.1.14
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Pi installs the package under `~/.pi/agent/git/github.com/linellazatin/opl-pi-sht` and runs root `npm install`, so `opl-webaccess` and `opl-browser` runtime dependencies are available. Pi packages do not install optional extension config files; copy only the configs you need from that checkout to `~/.pi/agent/configs/`.
|
|
18
|
+
|
|
19
|
+
`opl-browser` also needs Chromium once after package installation:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
cd ~/.pi/agent/git/github.com/linellazatin/opl-pi-sht
|
|
23
|
+
npx playwright install chromium
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Checkout installer
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
chmod +x install.sh
|
|
30
|
+
./install.sh # copy all extensions and configs
|
|
31
|
+
./install.sh --link # non-destructive symlinks
|
|
32
|
+
./install.sh --only opl-init opl-todo
|
|
33
|
+
./install.sh --link --only opl-input # installs the complete UI bundle
|
|
34
|
+
PI_AGENT_DIR=/path/to/.pi/agent ./install.sh --link
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Copy mode overwrites matching destinations. Link mode skips existing destinations. `--only`/`-o` accepts one or more extension names; selecting `opl-footer`, `opl-input`, or `opl-modes` installs all three because they share active-mode state. Use `./install.sh --help` for flags. The repository uses standard `.json` only.
|
|
38
|
+
|
|
39
|
+
## Extensions
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
| Extension | Summary | Commands, tools, and configuration |
|
|
43
|
+
| ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| [`opl-init`](extensions/opl-init/README.md) | Fingerprinted repository-guide generator. | `/init`; no config. |
|
|
45
|
+
| [`opl-simplebench`](extensions/opl-simplebench/README.md) | Auditable provider-aware model benchmark with JSON artifacts and metrics. | `/simplebench`, `simplebench`; supports Ollama, OpenAI-compatible providers, and Bedrock; optional `opl-simplebench.json`. |
|
|
46
|
+
| [`opl-webaccess`](extensions/opl-webaccess/README.md) | Search plus readable URL/PDF retrieval with session recovery. | `web_search`, `fetch_content`, `get_search_content`; `opl-webaccess.json`. |
|
|
47
|
+
| [`opl-browser`](extensions/opl-browser/README.md) | Chromium automation via Playwright; single dispatcher tool replacing the chrome-devtools MCP. | `browser` (action-based); `opl-browser.json`. |
|
|
48
|
+
| [`opl-ctxtrim`](extensions/opl-ctxtrim/README.md) | Trims verbose`ctx_*` tool-schema descriptions on outbound provider requests (~67% smaller schema, ~4,700-6,300 tokens/request). Built specifically for the [context-mode](https://github.com/mksglu/context-mode) extension. | No commands/tools; no config. |
|
|
49
|
+
| [`opl-todo`](extensions/opl-todo/README.md) | Branch-aware task tool, overlay, and task list. | `todo`, `/todos`; `opl-todo.json`. |
|
|
50
|
+
| [`opl-questionnaire`](extensions/opl-questionnaire/README.md) | Interactive structured-choice tool. | `questionnaire`; no config. |
|
|
51
|
+
| [`opl-input`](extensions/opl-input/README.md) | Configurable replacement editor - enhanced [pikit chat-input](https://github.com/adrianapan/pikit) (because pet is life, and configurable).  | No commands/tools;`opl-input.json`. |
|
|
52
|
+
| [`opl-modes`](extensions/opl-modes/README.md) | Mode, plan, tool-safety, lazy-tool-loading, and active-appearance manager - highly-modified, configrable and enhanced mode-switcher. | `/mode`, `/chat`, `/plan`, `/execute`, `plan_complete`, `load_tools`; `opl-modes.json`. |
|
|
53
|
+
| [`opl-footer`](extensions/opl-footer/README.md) | Configurable multi-row status footer - highly-specialized, and enhanced [pikit footer](https://github.com/adrianapan/pikit). | No commands/tools;`opl-footer.json`. |
|
|
54
|
+
|
|
55
|
+
## What you'll gain
|
|
56
|
+
|
|
57
|
+
Install one, some, or all. The value is grouped by outcome below, not by extension, so you can pick what matters to you.
|
|
58
|
+
|
|
59
|
+
### Spend less every session
|
|
60
|
+
|
|
61
|
+
Two extensions shrink the cached prompt prefix that Pi writes once and re-reads on every turn, so the savings compound across a whole conversation:
|
|
62
|
+
|
|
63
|
+
- **`opl-ctxtrim`** trims verbose `ctx_*` tool-schema descriptions on outbound requests. It is built specifically for the [context-mode](https://github.com/mksglu/context-mode) extension: ~67% smaller schemas, roughly **4,700-6,300 tokens saved per request**, on every request.
|
|
64
|
+
- **`opl-modes` lazy tools** withhold heavy tool schemas (`subagent`, `browser`, `simplebench`, ...) from the resting prefix until the model calls `load_tools`. In a measured `/init` session this removed **~5,000 tokens from the cold cache write (17.6K to 12.6K)** and it repeats every session.
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
Cold prompt-cache write, measured /init session (opl-modes lazy tools + MCP adapter off)
|
|
68
|
+
|
|
69
|
+
before ██████████████████████████████████ 17,558 tokens
|
|
70
|
+
after █████████████████████████ 12,625 tokens (-28%, ~5K every session)
|
|
71
|
+
|
|
72
|
+
* token numbers grabbed from my personal setup with ~18 extensions
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Run the agent without babysitting it
|
|
76
|
+
|
|
77
|
+
- **`opl-modes`** chat and plan modes swap the active toolset for read-only lists and gate Bash to safe inspection patterns, with destructive-pattern checks that fire even inside otherwise-safe commands. The plan to execute lifecycle keeps exploration and mutation cleanly separated. Add custom modes (like below) for your workflow needs.
|
|
78
|
+

|
|
79
|
+
- `load_tools` activation is bounded by the current mode, so a read-only mode cannot be tricked into enabling a write-capable tool.
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
### Move through work faster
|
|
83
|
+
|
|
84
|
+
- **`opl-init`** writes a fingerprinted `AGENTS.md` so any agent starts already oriented in a repo. It writes a baseline before asking the model to refine the guide, so smaller models cannot leave the update only in chat; it re-runs only when the tree actually changes.
|
|
85
|
+

|
|
86
|
+
- **`opl-browser`** gives full Chromium automation (navigate, snapshot, interact, screenshot, console/network capture, evaluate) through a single tool, with handle+preview output for large results.
|
|
87
|
+
- **`opl-webaccess`** adds provider-backed search plus readable URL and PDF extraction, with session recovery of earlier results.
|
|
88
|
+
- **`opl-simplebench`** benchmarks models on deterministic closed-answer contracts, instruction-following, and tool-call generation so you pick a model on evidence, not vibes.
|
|
89
|
+

|
|
90
|
+
- **`opl-todo`** tracks branch-aware tasks that persist across a session and reconstruct from history.
|
|
91
|
+

|
|
92
|
+
- **`opl-questionnaire`** turns an ambiguous fork into a structured choice instead of a guess-and-redo cycle.
|
|
93
|
+
 
|
|
94
|
+
|
|
95
|
+
### See what the agent is doing
|
|
96
|
+
|
|
97
|
+
- **`opl-footer`** surfaces model, cost, token and cache activity, git state, and per-turn timing in a configurable multi-row footer.
|
|
98
|
+
- **`opl-input`** is a configurable editor that reflects the active mode's identity, so you always know which mode you are typing into.
|
|
99
|
+

|
|
100
|
+
|
|
101
|
+
### Fewer moving parts
|
|
102
|
+
|
|
103
|
+
- **`opl-browser`** replaces the chrome-devtools MCP server. Together these tools let you drop external MCP servers and the idle schema overhead they add to every prompt.
|
|
104
|
+
|
|
105
|
+
### Pick your footprint
|
|
106
|
+
|
|
107
|
+
| If you want to... | Install |
|
|
108
|
+
| ---------------------------------- | --------------------------------------------------------------- |
|
|
109
|
+
| Cut token cost with minimal change | `opl-ctxtrim`, `opl-modes` |
|
|
110
|
+
| Run the agent safely on real repos | `opl-modes` (pulls in the `opl-input` + `opl-footer` UI bundle) |
|
|
111
|
+
| Research and drive the web | `opl-webaccess`, `opl-browser` |
|
|
112
|
+
| Choose models with data | `opl-simplebench` |
|
|
113
|
+
| The full, coordinated experience | all ten |
|
|
114
|
+
|
|
115
|
+
Selecting `opl-footer`, `opl-input`, or `opl-modes` installs all three, because they share active-mode state.
|
|
116
|
+
|
|
117
|
+
## Token overhead
|
|
118
|
+
|
|
119
|
+
Installing extensions adds tool schemas (name + description + JSON parameters) to the resting prompt prefix, which Pi writes once per session and then re-reads cheaply from cache on warm turns. Commands and UI-only extensions add little to nothing. The figures below are calibrated against one tool measured directly in a real session (`load_tools` = 139 tokens); treat them as ±15%.
|
|
120
|
+
|
|
121
|
+
### Per extension (resting prompt prefix)
|
|
122
|
+
|
|
123
|
+
| Extension | Adds to resting prompt | Est. tokens |
|
|
124
|
+
|---|---|---|
|
|
125
|
+
| `opl-browser` | `browser` tool schema | ~554 |
|
|
126
|
+
| `opl-questionnaire` | `questionnaire` schema + prompt guidelines | ~532 |
|
|
127
|
+
| `opl-webaccess` | `web_search`, `fetch_content`, `get_search_content` | ~394 |
|
|
128
|
+
| `opl-simplebench` | `simplebench` schema | ~230 |
|
|
129
|
+
| `opl-modes` | `plan_complete` + `load_tools` schemas | ~215 |
|
|
130
|
+
| `opl-todo` | `todo` schema | ~92 |
|
|
131
|
+
| `opl-init` | command only (no tool) | ~0 |
|
|
132
|
+
| `opl-input` | UI only | ~0 |
|
|
133
|
+
| `opl-footer` | UI only | ~0 |
|
|
134
|
+
| `opl-ctxtrim` | none (payload transformer) | net negative |
|
|
135
|
+
|
|
136
|
+
Command descriptions add roughly another ~120 tokens collectively, and only if your build surfaces them in the prompt or help block.
|
|
137
|
+
|
|
138
|
+
### Collective (full install)
|
|
139
|
+
|
|
140
|
+
- **All tools active (no `lazyTools`):** ~1,916 tool-schema tokens + ~101 guidelines + ~120 commands = **~2,140 tokens** on every cold prompt-cache write.
|
|
141
|
+
- **With the recommended `lazyTools` config** (withholds `browser` + `simplebench`, keeps `load_tools`): removing browser (554) and simplebench (230) drops the resting overhead to **~1,356 tokens (-37%)**.
|
|
142
|
+
|
|
143
|
+
```text
|
|
144
|
+
Full install, cold prompt prefix impact
|
|
145
|
+
|
|
146
|
+
all tools resting ████████████████████████ ~2,140 tokens
|
|
147
|
+
with lazyTools ███████████████ ~1,356 tokens (-37%)
|
|
148
|
+
+ opl-ctxtrim (context-mode) saves 4,700-6,300 tokens/request
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
The fixed cost of a full install is small and paid once per session, then cached. Two extensions pay it back many times over: `opl-ctxtrim` removes 4,700-6,300 tokens **per request** for context-mode users, and `opl-modes` lazy loading keeps the resting number at ~1,356 instead of ~2,140 while also withholding the heavy `subagent` family (~5K tokens) when present. For a full install, the overhead is modest and one-time-per-session; with context-mode or heavy tools in play, the collection is strongly token-positive.
|
|
152
|
+
|
|
153
|
+
## Configuration
|
|
154
|
+
|
|
155
|
+
Copy applicable files from [`configs/`](configs/) to `~/.pi/agent/configs/`. For a Pi Git package installation, the source directory is `~/.pi/agent/git/github.com/linellazatin/opl-pi-sht/configs/`:
|
|
156
|
+
|
|
157
|
+
- `opl-footer.json`, `opl-input.json`, `opl-modes.json`, `opl-todo.json`, `opl-webaccess.json`
|
|
158
|
+
- `opl-browser` has optional configuration (`opl-browser.json`); all fields default, so it works without any config file.
|
|
159
|
+
- `opl-simplebench` has optional `opl-simplebench.json`; copy `configs/opl-simplebench.json.sample` to configure DDGS/SearXNG research and llama metadata endpoints.
|
|
160
|
+
- `opl-init` and `opl-questionnaire` have no external configuration.
|
|
161
|
+
- Config files must be valid JSON, with no comments or trailing commas beyond deliberate `_comment` keys.
|
|
162
|
+
- `opl-modes` owns active-mode appearance. Each mode's `appearance.prefix`, `prefixColor`, and `borderColor` style `opl-input`; `appearance.modeColor` styles `opl-footer`'s unified mode label. Renderers retain hardcoded fallbacks.
|
|
163
|
+
- `opl-modes.bashPatterns` is the shared read-only Bash policy for chat and plan. Use per-mode pattern fields only when those modes intentionally need different policies.
|
|
164
|
+
- `opl-modes.lazyTools` withholds heavy tool schemas (e.g. `subagent`, `browser`, `simplebench`) from the resting prefix and enables them on demand via `load_tools`, shrinking the per-session prompt-cache write.
|
|
165
|
+
|
|
166
|
+
See each extension README for commands, behavior, configuration fields, runtime constraints, and architecture.
|
|
167
|
+
|
|
168
|
+
## Runtime requirements
|
|
169
|
+
|
|
170
|
+
All extensions use Pi's normal extension discovery. Pi installs `opl-webaccess` extraction dependencies and Playwright automatically when installed as a Git package. For the checkout installer, install nested runtime dependencies before using those extensions:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
cd extensions/opl-webaccess
|
|
174
|
+
npm install
|
|
175
|
+
|
|
176
|
+
cd ../opl-browser
|
|
177
|
+
npm install
|
|
178
|
+
npx playwright install chromium
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
A Pi Git package still needs the one-time `npx playwright install chromium` command shown above.
|
|
182
|
+
|
|
183
|
+
`opl-simplebench` writes a full JSON benchmark artifact in Pi's current working directory by default. `--test-all` additionally writes `research.md` and `page.html` beside `result.json` in a result bundle. Copy `configs/opl-simplebench.json.sample` to `~/.pi/agent/configs/opl-simplebench.json` to configure DDGS/SearXNG research and optional llama-server/llamagputop metadata endpoints. Use `/simplebench --no-artifact` or `simplebench({ no_artifact: true })` when responses must not be written to disk. Provider credentials remain outside tracked configuration; configure them through Pi provider settings, environment variables, or Pi authentication.
|
|
184
|
+
|
|
185
|
+
## Tests
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
npm test
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Run one extension suite with `npm run test:opl-<name>` for `footer`, `init`, `input`, `modes`, `questionnaire`, `todo`, `webaccess`, `simplebench`, or `ctxtrim`. Every helper, functional, and selected-entrypoint smoke check uses Bun's named-test reporter; output includes per-test status, timings, and pass/fail totals. Functional tests cover deterministic helpers where practical; smoke tests bundle entrypoints and parse config. They do not test live TUI behavior, provider credentials, network access, or PDF extraction.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": " \ue22c Available segment IDs: pi, model, path, git, thinking, caveman, plan_mode, chat_mode, mode_switcher, separator, token_in, token_out, token_total, cache_read, cache_write, cost, context_pct, context_total, session_stats, perf_stats, text:<literal>",
|
|
3
|
+
"row1LeftSegments": ["pi", "separator", "model", "separator", "path", "git"],
|
|
4
|
+
"row1RightSegments": ["context_pct"],
|
|
5
|
+
"row2LeftSegments": [
|
|
6
|
+
"thinking",
|
|
7
|
+
"separator",
|
|
8
|
+
"mode_switcher"
|
|
9
|
+
],
|
|
10
|
+
"row2RightSegments": ["token_total", "separator", "cost"],
|
|
11
|
+
"row3LeftSegments": ["session_stats"],
|
|
12
|
+
"row3RightSegments": ["perf_stats"],
|
|
13
|
+
"icons": {
|
|
14
|
+
"pi": "\udb80\udfff",
|
|
15
|
+
"folder": "\uf115",
|
|
16
|
+
"branch": "\uf126",
|
|
17
|
+
"git": "\uf1d3",
|
|
18
|
+
"separator": "|"
|
|
19
|
+
},
|
|
20
|
+
"colors": {
|
|
21
|
+
"model": "#c07898",
|
|
22
|
+
"thinkingHigh": "#afb9fe",
|
|
23
|
+
"thinkingXhigh": "#9575cd",
|
|
24
|
+
"thinkingMax": "#ce93d8",
|
|
25
|
+
"separator": "#87827a"
|
|
26
|
+
},
|
|
27
|
+
"segmentOptions": {
|
|
28
|
+
"path": {
|
|
29
|
+
"mode": "full"
|
|
30
|
+
},
|
|
31
|
+
"git": {
|
|
32
|
+
"showBranch": true,
|
|
33
|
+
"showStaged": true,
|
|
34
|
+
"showUnstaged": true,
|
|
35
|
+
"showUntracked": true
|
|
36
|
+
},
|
|
37
|
+
"contextBar": {
|
|
38
|
+
"barWidth": 18,
|
|
39
|
+
"filledChar": "▋",
|
|
40
|
+
"unfilledChar": "▋",
|
|
41
|
+
"unfilledColor": "#4e4c49",
|
|
42
|
+
"gradientStart": "#f29373",
|
|
43
|
+
"gradientMid": "#d67858",
|
|
44
|
+
"gradientEnd": "#ae4f2f",
|
|
45
|
+
"gradientMidPoint": 0.55
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Available segment IDs: pi, model, path, git, thinking, caveman, plan_mode, chat_mode, mode_switcher, separator, token_in, token_out, token_total, cache_read, cache_write, cost, context_pct, context_total, session_stats, perf_stats, text:<literal>",
|
|
3
|
+
"row1LeftSegments": ["pi", "separator", "model", "separator", "path", "git"],
|
|
4
|
+
"row1RightSegments": ["context_pct"],
|
|
5
|
+
"row2LeftSegments": [
|
|
6
|
+
"thinking",
|
|
7
|
+
"separator",
|
|
8
|
+
"mode_switcher"
|
|
9
|
+
],
|
|
10
|
+
"row2RightSegments": ["token_total", "separator", "cost"],
|
|
11
|
+
"row3LeftSegments": ["session_stats"],
|
|
12
|
+
"row3RightSegments": ["perf_stats"],
|
|
13
|
+
"icons": {
|
|
14
|
+
"pi": "\ue22c",
|
|
15
|
+
"folder": "\uf115",
|
|
16
|
+
"branch": "\uf126",
|
|
17
|
+
"git": "\uf1d3",
|
|
18
|
+
"separator": "|"
|
|
19
|
+
},
|
|
20
|
+
"colors": {
|
|
21
|
+
"model": "#c07898",
|
|
22
|
+
"thinkingHigh": "#afb9fe",
|
|
23
|
+
"thinkingXhigh": "#9575cd",
|
|
24
|
+
"thinkingMax": "#ce93d8",
|
|
25
|
+
"separator": "#87827a"
|
|
26
|
+
},
|
|
27
|
+
"segmentOptions": {
|
|
28
|
+
"path": {
|
|
29
|
+
"mode": "full"
|
|
30
|
+
},
|
|
31
|
+
"git": {
|
|
32
|
+
"showBranch": true,
|
|
33
|
+
"showStaged": true,
|
|
34
|
+
"showUnstaged": true,
|
|
35
|
+
"showUntracked": true
|
|
36
|
+
},
|
|
37
|
+
"contextBar": {
|
|
38
|
+
"barWidth": 18,
|
|
39
|
+
"filledChar": "▋",
|
|
40
|
+
"unfilledChar": "▋",
|
|
41
|
+
"unfilledColor": "#4e4c49",
|
|
42
|
+
"gradientStart": "#f29373",
|
|
43
|
+
"gradientMid": "#d67858",
|
|
44
|
+
"gradientEnd": "#ae4f2f",
|
|
45
|
+
"gradientMidPoint": 0.55
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"boxedView": false,
|
|
3
|
+
"companion": {
|
|
4
|
+
"enabled": true,
|
|
5
|
+
"color": "accent",
|
|
6
|
+
"type": "dog",
|
|
7
|
+
"types": [
|
|
8
|
+
{
|
|
9
|
+
"typeName": "cat",
|
|
10
|
+
"top": " /\\,/\\ "
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"typeName": "dog",
|
|
14
|
+
"top": " /),(\\ "
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"typeName": "bunny",
|
|
18
|
+
"top": " (\\,/) "
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"boxedView": false,
|
|
3
|
+
"companion": {
|
|
4
|
+
"enabled": true,
|
|
5
|
+
"color": "accent",
|
|
6
|
+
"type": "dog",
|
|
7
|
+
"types": [
|
|
8
|
+
{
|
|
9
|
+
"typeName": "cat",
|
|
10
|
+
"top": " /\\,/\\ "
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"typeName": "dog",
|
|
14
|
+
"top": " /),(\\ "
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"typeName": "bunny",
|
|
18
|
+
"top": " (\\,/) "
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
}
|