@diegopetrucci/pi-extensions 0.1.73 → 0.1.76

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.
Files changed (93) hide show
  1. package/LICENSE +2 -0
  2. package/README.md +9 -4
  3. package/extensions/agent-workflow-audit/index.ts +1398 -1009
  4. package/extensions/agent-workflow-audit/package.json +1 -1
  5. package/extensions/annotate-git-diff/README.md +3 -1
  6. package/extensions/annotate-git-diff/clipboard.ts +109 -100
  7. package/extensions/annotate-git-diff/git.ts +853 -767
  8. package/extensions/annotate-git-diff/glimpseui.d.ts +87 -78
  9. package/extensions/annotate-git-diff/index.ts +712 -671
  10. package/extensions/annotate-git-diff/package.json +1 -1
  11. package/extensions/annotate-git-diff/prompt.ts +45 -45
  12. package/extensions/annotate-git-diff/quiet-glimpse.ts +161 -155
  13. package/extensions/annotate-git-diff/review-server.ts +337 -311
  14. package/extensions/annotate-git-diff/types.ts +132 -132
  15. package/extensions/annotate-git-diff/ui.ts +27 -27
  16. package/extensions/annotate-git-diff/watch.ts +74 -74
  17. package/extensions/annotate-git-diff/web/app.js +1947 -1884
  18. package/extensions/annotate-git-diff/web/index.html +5 -6
  19. package/extensions/annotate-last-message/README.md +1 -1
  20. package/extensions/annotate-last-message/glimpseui.d.ts +87 -78
  21. package/extensions/annotate-last-message/index.ts +210 -206
  22. package/extensions/annotate-last-message/package.json +1 -1
  23. package/extensions/annotate-last-message/prompt.ts +87 -66
  24. package/extensions/annotate-last-message/quiet-glimpse.ts +161 -155
  25. package/extensions/annotate-last-message/session.ts +94 -89
  26. package/extensions/annotate-last-message/theme.ts +199 -193
  27. package/extensions/annotate-last-message/types.ts +23 -23
  28. package/extensions/annotate-last-message/ui.ts +27 -25
  29. package/extensions/annotate-last-message/web/app.js +4 -7
  30. package/extensions/annotate-last-message/web/md-renderer.js +1 -1
  31. package/extensions/brrr/README.md +1 -1
  32. package/extensions/brrr/index.ts +213 -191
  33. package/extensions/brrr/package.json +1 -1
  34. package/extensions/claude-fast/README.md +5 -79
  35. package/extensions/claude-fast/index.ts +31 -289
  36. package/extensions/claude-fast/package.json +2 -3
  37. package/extensions/code-reviewer/README.md +1 -1
  38. package/extensions/code-reviewer/index.ts +1598 -1350
  39. package/extensions/code-reviewer/package.json +1 -1
  40. package/extensions/confirm-destructive/README.md +1 -1
  41. package/extensions/confirm-destructive/index.ts +55 -51
  42. package/extensions/confirm-destructive/package.json +1 -1
  43. package/extensions/context-cap/index.ts +312 -304
  44. package/extensions/context-cap/package.json +1 -1
  45. package/extensions/context-inspector/index.ts +1211 -1064
  46. package/extensions/context-inspector/package.json +1 -1
  47. package/extensions/contrarian/index.ts +1854 -1735
  48. package/extensions/contrarian/package.json +1 -1
  49. package/extensions/dirty-repo-guard/index.ts +41 -41
  50. package/extensions/dynamic-context-pruning/README.md +6 -38
  51. package/extensions/dynamic-context-pruning/index.ts +2124 -1980
  52. package/extensions/dynamic-context-pruning/package.json +1 -1
  53. package/extensions/fast/README.md +71 -21
  54. package/extensions/fast/index.ts +513 -313
  55. package/extensions/fast/package.json +1 -1
  56. package/extensions/git-footer/README.md +1 -1
  57. package/extensions/git-footer/index.ts +458 -411
  58. package/extensions/git-footer/package.json +2 -3
  59. package/extensions/gnosis/index.ts +180 -130
  60. package/extensions/gnosis/package.json +1 -1
  61. package/extensions/inline-bash/index.ts +88 -88
  62. package/extensions/inline-bash/package.json +1 -1
  63. package/extensions/librarian/index.ts +1669 -1419
  64. package/extensions/librarian/package.json +1 -1
  65. package/extensions/minimal-footer/index.ts +994 -1012
  66. package/extensions/minimal-footer/openai-usage.ts +195 -190
  67. package/extensions/notify/index.ts +222 -230
  68. package/extensions/notify/package.json +1 -1
  69. package/extensions/openai-fast/README.md +5 -73
  70. package/extensions/openai-fast/index.ts +32 -272
  71. package/extensions/openai-fast/package.json +2 -3
  72. package/extensions/oracle/index.ts +1731 -1625
  73. package/extensions/oracle/package.json +1 -1
  74. package/extensions/permission-gate/index.ts +658 -608
  75. package/extensions/permission-gate/package.json +1 -1
  76. package/extensions/permission-gate/powershell-safety.ts +840 -793
  77. package/extensions/project-mcp-json/.pi-fleet-tested-version +1 -0
  78. package/extensions/project-mcp-json/README.md +199 -0
  79. package/extensions/project-mcp-json/config.ts +564 -0
  80. package/extensions/project-mcp-json/index.ts +119 -0
  81. package/extensions/project-mcp-json/package.json +38 -0
  82. package/extensions/quiet-tools/index.ts +282 -264
  83. package/extensions/review/README.md +2 -2
  84. package/extensions/review/index.ts +1745 -1872
  85. package/extensions/review/package.json +1 -1
  86. package/extensions/todo/index.ts +284 -265
  87. package/extensions/triage-comments/README.md +2 -2
  88. package/extensions/triage-comments/index.ts +2294 -1882
  89. package/extensions/triage-comments/package.json +1 -1
  90. package/package.json +6 -3
  91. package/assets/social-preview.png +0 -0
  92. package/extensions/claude-fast/claude-fast.example.json +0 -4
  93. package/extensions/openai-fast/openai-fast.example.json +0 -4
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-dynamic-context-pruning",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "type": "module",
5
5
  "description": "A pi extension that dynamically prunes stale context to keep sessions lean.",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  # fast
2
2
 
3
- A pi extension that provides one `/fast` toggle for supported direct OpenAI API, OpenAI Codex, and Anthropic Claude models. It selects the provider-specific Fast-mode request shape from the currently selected model.
3
+ A pi extension that provides `/fast` and `/ultrafast` toggles for supported direct OpenAI API, OpenAI Codex, and Anthropic Claude models. It selects the provider-specific Fast-mode request shape from the currently selected model.
4
4
 
5
5
  For eligible direct OpenAI API models it injects:
6
6
 
@@ -44,27 +44,62 @@ Direct OpenAI API Fast mode requires all of the following:
44
44
 
45
45
  The direct OpenAI route stays on OpenAI's direct API contract for both API-key
46
46
  auth and Pi's `openai` ChatGPT OAuth. Acceptance of `service_tier: "fast"` by
47
- Pi's `openai` ChatGPT OAuth sign-in endpoint has not been live-verified and
48
- remains deferred to manual gate `pel-71t6`. This direct route is never forwarded
49
- to legacy `openai-codex` or its subscription-usage endpoint. The documented
50
- request shape is support evidence, not live certification; this change was
51
- validated only with mocked eligibility and request payloads, not live or paid
52
- provider calls.
47
+ Pi's `openai` ChatGPT OAuth sign-in endpoint has not been live-verified.
48
+ This direct route is never forwarded to legacy `openai-codex` or its
49
+ subscription-usage endpoint. The documented request shape is support evidence,
50
+ not live certification; this change was validated only with mocked eligibility
51
+ and request payloads, not live or paid provider calls.
52
+
53
+ ### Ultrafast support (initial, fail-closed)
54
+
55
+ Ultrafast is intentionally narrower than ordinary Fast mode. It requires all of
56
+ the following on every activation and provider request:
57
+
58
+ - Provider `openai`.
59
+ - API `openai-responses`.
60
+ - Model `gpt-6-astra`.
61
+ - Direct API-key auth, not Codex OAuth or direct OpenAI OAuth.
62
+ - Base URL exactly `https://api.openai.com/v1` (a single trailing slash is also accepted).
63
+
64
+ It does not support Chat Completions, preview models, regional or proxy endpoints,
65
+ or Anthropic Ultrafast. Eligible payloads receive the requested
66
+ `service_tier: "ultrafast"` only when they do not already contain a
67
+ `service_tier` field. Existing values and mismatched/malformed payloads are left
68
+ untouched. The extension reports a requested tier; it does not claim that OpenAI
69
+ accepted or applied it, and it never silently falls back to ordinary Fast.
70
+
71
+ OpenAI documents this request shape in the [Ultrafast API guide](https://developers.openai.com/api/docs/guides/ultrafast-mode)
72
+ and lists the account/model pricing in its [API pricing](https://developers.openai.com/api/docs/pricing).
73
+ Actual Ultrafast API pricing is **6x Standard**, while Pi's current cost display
74
+ omits that premium. Treat the activation warning as a deliberate paid-usage
75
+ warning.
53
76
 
54
77
  OpenAI Codex Fast mode requires all of the following:
55
78
 
56
79
  - Provider `openai-codex`.
57
80
  - API `openai-codex-responses`.
58
- - Model `gpt-5.5`, `gpt-5.6-sol`, `gpt-5.6-terra`, or `gpt-5.6-luna`.
81
+ - Model `gpt-5.5`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`, `gpt-6-astra`, `gpt-6.1-sol`, `gpt-6-sol`, or `gpt-6-luna`.
59
82
  - ChatGPT OAuth/subscription auth, not API-key auth.
60
83
  - No existing `service_tier` field in the request payload.
61
84
 
62
- GPT-6.1 Sol is intentionally unsupported on this legacy Codex route. The
63
- Codex speed documentation lists GPT-6.1 Sol Fast with `service_tier: "fast"`,
64
- but Pi's legacy Codex service-tier cost handling currently accounts for
65
- `priority` and `flex`, not `fast`. The direct OpenAI API's `priority` alias is
66
- not evidence for the legacy Codex endpoint, so this extension leaves the route
67
- fail-closed without patching upstream pricing.
85
+ Codex evidence, 2026-10-03: the [maintainer's PR #103 review](https://github.com/diegopetrucci/pi-extensions/pull/103)
86
+ reports that the Codex model list advertises Fast as `priority` for `gpt-6-astra`,
87
+ `gpt-6.1-sol`, `gpt-6-sol`, and `gpt-6-luna`. The official Codex CLI
88
+ [sends Fast as `priority`](https://github.com/openai/codex/blob/b741e480e203f037ca726bc2a76d99a8e8668e66/codex-rs/protocol/src/config_types.rs#L539-L553).
89
+ The maintainer's live check through Pi 1.0.0 on that date returned HTTP 200 and
90
+ completed normally for `gpt-6-astra` and `gpt-6.1-sol`; `gpt-6-sol` and
91
+ `gpt-6-luna` are enabled based on the model list only. In that check,
92
+ `response.completed` always reported `service_tier: "default"`, with or without
93
+ `priority`, so the response cannot confirm Fast was applied.
94
+
95
+ Pi trusts the requested tier and applies a 2× multiplier to its displayed cost
96
+ estimate for `priority`; this does not measure included subscription allowance
97
+ consumption or confirm Fast was applied. [OpenAI's Codex speed documentation](https://developers.openai.com/codex/speed),
98
+ checked on 2026-10-03, lists `gpt-6-sol` and `gpt-6-luna` among supported Fast
99
+ models where available. It specifies 2.5× the Standard rate for included
100
+ subscription limits and 2× for purchased credits and Enterprise pay-as-you-go
101
+ billing. Treating Pi's 2× estimate as a subscription-limit multiplier would
102
+ understate the documented allowance consumption.
68
103
 
69
104
  Anthropic Fast mode requires all of the following:
70
105
 
@@ -79,11 +114,26 @@ Anthropic Fast mode supports both API-key and Claude Code OAuth access when the
79
114
 
80
115
  ```text
81
116
  /fast
117
+ /ultrafast
118
+ /fast ultrafast
82
119
  ```
83
120
 
84
- Run `/fast` to toggle Fast mode for the current session/runtime. The enabled state follows model changes: switching between eligible OpenAI and Anthropic models automatically changes the request format without resetting the toggle. The footer shows `fast` only while the selected model is eligible and Fast mode is enabled.
121
+ Run `/fast` to toggle ordinary Fast mode for the current session/runtime. The
122
+ enabled state follows model changes: switching between eligible OpenAI and
123
+ Anthropic models automatically changes the request format without resetting the
124
+ toggle. The footer shows `fast` only while the selected model is eligible and
125
+ Fast mode is enabled.
126
+
127
+ `/ultrafast` and `/fast ultrafast` are equivalent toggles for the session-only
128
+ Ultrafast override. Ultrafast defaults off, is never enabled by global or project
129
+ configuration, and can be undone with either command. Running ordinary `/fast`
130
+ while Ultrafast is selected turns Ultrafast off rather than silently switching to
131
+ another paid tier. Switching to an unsupported model or endpoint disables
132
+ Ultrafast and does not re-enable it when `gpt-6-astra` is selected again. The
133
+ footer uses `ultrafast` while an eligible request is selected; status text says
134
+ that the tier is requested, not remotely applied.
85
135
 
86
- The extension defaults to off so installing the full collection does not accidentally spend Fast-mode credits.
136
+ The extension defaults to off so installing the full collection does not accidentally spend Fast-mode credits. Ultrafast verification is mocked-only: tests use local eligibility checks, fake payloads, and a fake fetch through Pi's `openai-responses` `streamSimple`; they make no live or paid provider requests.
87
137
 
88
138
  ## Config
89
139
 
@@ -111,7 +161,7 @@ Here `<pi-config-dir>` is Pi's runtime config directory name (`CONFIG_DIR_NAME`;
111
161
  - `enabled`: default Fast-mode state when there is no session override.
112
162
  - `showStatus`: show a compact `fast` status when Fast mode is active for the selected model.
113
163
 
114
- The unified extension intentionally does not read `openai-fast.json` or `claude-fast.json`; those files belong to the provider-specific standalone packages and may contain conflicting defaults.
164
+ The unified extension reads only `fast.json`. It does not read `openai-fast.json` or `claude-fast.json`.
115
165
 
116
166
  ## Install
117
167
 
@@ -141,16 +191,16 @@ Then reload pi:
141
191
 
142
192
  ## Legacy provider-specific packages
143
193
 
144
- The collection package loads this unified extension instead of `openai-fast` and `claude-fast`. Both provider-specific packages remain available as standalone alternatives. Do not load them together with this extension: independent Fast-mode state and duplicate `/fast` registrations can produce conflicting behavior.
194
+ The collection package loads this unified extension only (`extensions/fast/index.ts`). `openai-fast` and `claude-fast` remain published as deprecated standalone leftovers. On session start they warn, clear their leftover footer status, and remove `fast-mode-2026-02-01` from the current model header. They do not read config, register commands, or inject Fast fields into requests.
145
195
 
146
196
  ## Notes
147
197
 
148
198
  - Anthropic Fast mode has separate rate limits, costs more than standard speed, and does not share prompt-cache prefixes with standard-speed requests.
149
199
  - Direct OpenAI Fast mode is limited to the confirmed GPT-6 API models above; Fast pricing, availability, and rate limits remain provider- and account-dependent.
150
200
  - Authoritative support evidence: [OpenAI Fast mode](https://developers.openai.com/api/docs/guides/fast-mode) explicitly uses `gpt-6.1-sol` with `service_tier: "fast"` and documents `priority` as an equivalent alias for supported API models; the [GPT-6.1 Sol model page](https://developers.openai.com/api/docs/models/gpt-6.1-sol) documents the model itself.
151
- - The [Codex speed guide](https://developers.openai.com/codex/speed/) documents GPT-6.1 Sol Fast for ChatGPT-signed-in Codex, but legacy Codex support remains pending separate wire and cost validation; this ticket makes no live-certification claim.
201
+ - Codex Fast availability depends on plan, client, workspace settings, and rollout. Local eligibility is not live-provider certification.
152
202
  - Pi's provider catalog remains the source of reported model pricing, including any tiered pricing; this extension does not apply guessed discounts or rewrite cost metadata.
153
- - OpenAI Codex Fast mode intentionally does not affect API-key models, and GPT-6.1 Sol remains blocked on the legacy Codex route.
154
- - The retired `openai-fast` and `claude-fast` packages remain legacy standalone boundaries; new provider/auth behavior belongs only to this unified extension.
203
+ - OpenAI Codex Fast mode intentionally does not affect API-key models.
204
+ - Deprecated `openai-fast` and `claude-fast` packages no longer implement Fast mode. New provider/auth behavior belongs only to this unified extension.
155
205
  - Existing `speed` and `service_tier` fields are never overwritten.
156
206
  - Pi's model catalog may not include a Fast-mode premium. Cost accounting depends on the provider reporting the effective tier in its streamed response, and this extension does not patch usage totals.