@oh-my-pi/pi-coding-agent 6.9.0 → 7.0.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/CHANGELOG.md +173 -51
- package/examples/sdk/04-skills.ts +1 -1
- package/package.json +6 -5
- package/src/cli/stats-cli.ts +191 -0
- package/src/core/agent-session.ts +214 -4
- package/src/core/auth-storage.ts +524 -202
- package/src/core/bash-executor.ts +1 -1
- package/src/core/extensions/index.ts +2 -0
- package/src/core/extensions/runner.ts +31 -0
- package/src/core/extensions/types.ts +24 -0
- package/src/core/messages.ts +48 -0
- package/src/core/model-registry.ts +7 -0
- package/src/core/python-executor.ts +29 -8
- package/src/core/python-gateway-coordinator.ts +55 -1
- package/src/core/python-prelude.py +201 -8
- package/src/core/session-manager.ts +10 -1
- package/src/core/tools/bash.ts +5 -7
- package/src/core/tools/find.ts +18 -5
- package/src/core/tools/index.ts +1 -1
- package/src/core/tools/lsp/index.ts +13 -2
- package/src/core/tools/patch/applicator.ts +115 -17
- package/src/core/tools/patch/index.ts +1 -1
- package/src/core/tools/patch/normalize.ts +185 -10
- package/src/core/tools/python.ts +445 -86
- package/src/core/tools/read.ts +4 -4
- package/src/core/tools/task/executor.ts +2 -6
- package/src/core/tools/task/index.ts +30 -12
- package/src/core/tools/task/render.ts +163 -30
- package/src/core/tools/task/template.ts +37 -0
- package/src/core/tools/task/types.ts +6 -2
- package/src/core/tools/task/worker.ts +1 -1
- package/src/index.ts +2 -0
- package/src/main.ts +12 -0
- package/src/modes/interactive/components/python-execution.ts +180 -0
- package/src/modes/interactive/components/welcome.ts +1 -0
- package/src/modes/interactive/controllers/command-controller.ts +395 -0
- package/src/modes/interactive/controllers/input-controller.ts +83 -8
- package/src/modes/interactive/interactive-mode.ts +16 -1
- package/src/modes/interactive/theme/dark.json +2 -9
- package/src/modes/interactive/theme/defaults/alabaster.json +2 -8
- package/src/modes/interactive/theme/defaults/amethyst.json +2 -9
- package/src/modes/interactive/theme/defaults/anthracite.json +2 -9
- package/src/modes/interactive/theme/defaults/basalt.json +89 -88
- package/src/modes/interactive/theme/defaults/birch.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-abyss.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-arctic.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-aurora.json +3 -2
- package/src/modes/interactive/theme/defaults/dark-catppuccin.json +2 -1
- package/src/modes/interactive/theme/defaults/dark-cavern.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-copper.json +3 -2
- package/src/modes/interactive/theme/defaults/dark-cosmos.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-cyberpunk.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-dracula.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-eclipse.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-ember.json +3 -2
- package/src/modes/interactive/theme/defaults/dark-equinox.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-forest.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-github.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-gruvbox.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-lavender.json +3 -2
- package/src/modes/interactive/theme/defaults/dark-lunar.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-midnight.json +3 -2
- package/src/modes/interactive/theme/defaults/dark-monochrome.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-monokai.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-nebula.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-nord.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-ocean.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-one.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-rainforest.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-reef.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-retro.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-rose-pine.json +2 -1
- package/src/modes/interactive/theme/defaults/dark-sakura.json +3 -2
- package/src/modes/interactive/theme/defaults/dark-slate.json +3 -2
- package/src/modes/interactive/theme/defaults/dark-solarized.json +2 -1
- package/src/modes/interactive/theme/defaults/dark-solstice.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-starfall.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-sunset.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-swamp.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-synthwave.json +2 -1
- package/src/modes/interactive/theme/defaults/dark-taiga.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-terminal.json +3 -2
- package/src/modes/interactive/theme/defaults/dark-tokyo-night.json +2 -9
- package/src/modes/interactive/theme/defaults/dark-tundra.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-twilight.json +2 -8
- package/src/modes/interactive/theme/defaults/dark-volcanic.json +2 -8
- package/src/modes/interactive/theme/defaults/graphite.json +2 -9
- package/src/modes/interactive/theme/defaults/light-arctic.json +2 -1
- package/src/modes/interactive/theme/defaults/light-aurora-day.json +2 -8
- package/src/modes/interactive/theme/defaults/light-canyon.json +2 -8
- package/src/modes/interactive/theme/defaults/light-catppuccin.json +2 -1
- package/src/modes/interactive/theme/defaults/light-cirrus.json +2 -8
- package/src/modes/interactive/theme/defaults/light-coral.json +3 -2
- package/src/modes/interactive/theme/defaults/light-cyberpunk.json +2 -9
- package/src/modes/interactive/theme/defaults/light-dawn.json +2 -8
- package/src/modes/interactive/theme/defaults/light-dunes.json +2 -8
- package/src/modes/interactive/theme/defaults/light-eucalyptus.json +3 -2
- package/src/modes/interactive/theme/defaults/light-forest.json +2 -9
- package/src/modes/interactive/theme/defaults/light-frost.json +3 -2
- package/src/modes/interactive/theme/defaults/light-github.json +2 -1
- package/src/modes/interactive/theme/defaults/light-glacier.json +2 -8
- package/src/modes/interactive/theme/defaults/light-gruvbox.json +2 -9
- package/src/modes/interactive/theme/defaults/light-haze.json +2 -8
- package/src/modes/interactive/theme/defaults/light-honeycomb.json +3 -2
- package/src/modes/interactive/theme/defaults/light-lagoon.json +2 -8
- package/src/modes/interactive/theme/defaults/light-lavender.json +3 -2
- package/src/modes/interactive/theme/defaults/light-meadow.json +2 -8
- package/src/modes/interactive/theme/defaults/light-mint.json +3 -2
- package/src/modes/interactive/theme/defaults/light-monochrome.json +2 -1
- package/src/modes/interactive/theme/defaults/light-ocean.json +2 -9
- package/src/modes/interactive/theme/defaults/light-one.json +2 -8
- package/src/modes/interactive/theme/defaults/light-opal.json +2 -8
- package/src/modes/interactive/theme/defaults/light-orchard.json +2 -8
- package/src/modes/interactive/theme/defaults/light-paper.json +3 -2
- package/src/modes/interactive/theme/defaults/light-prism.json +2 -8
- package/src/modes/interactive/theme/defaults/light-retro.json +2 -9
- package/src/modes/interactive/theme/defaults/light-sand.json +3 -2
- package/src/modes/interactive/theme/defaults/light-savanna.json +2 -8
- package/src/modes/interactive/theme/defaults/light-solarized.json +2 -1
- package/src/modes/interactive/theme/defaults/light-soleil.json +2 -8
- package/src/modes/interactive/theme/defaults/light-sunset.json +2 -9
- package/src/modes/interactive/theme/defaults/light-synthwave.json +2 -9
- package/src/modes/interactive/theme/defaults/light-tokyo-night.json +2 -9
- package/src/modes/interactive/theme/defaults/light-wetland.json +2 -8
- package/src/modes/interactive/theme/defaults/light-zenith.json +2 -8
- package/src/modes/interactive/theme/defaults/limestone.json +2 -8
- package/src/modes/interactive/theme/defaults/mahogany.json +2 -9
- package/src/modes/interactive/theme/defaults/marble.json +2 -8
- package/src/modes/interactive/theme/defaults/obsidian.json +89 -88
- package/src/modes/interactive/theme/defaults/onyx.json +89 -88
- package/src/modes/interactive/theme/defaults/pearl.json +2 -8
- package/src/modes/interactive/theme/defaults/porcelain.json +89 -88
- package/src/modes/interactive/theme/defaults/quartz.json +2 -8
- package/src/modes/interactive/theme/defaults/sandstone.json +2 -8
- package/src/modes/interactive/theme/defaults/titanium.json +88 -87
- package/src/modes/interactive/theme/light.json +2 -8
- package/src/modes/interactive/theme/theme-schema.json +5 -0
- package/src/modes/interactive/theme/theme.ts +7 -0
- package/src/modes/interactive/types.ts +7 -1
- package/src/modes/interactive/utils/ui-helpers.ts +20 -0
- package/src/prompts/system/system-prompt.md +88 -78
- package/src/prompts/tools/python.md +39 -2
- package/src/prompts/tools/task.md +8 -13
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,106 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [7.0.0] - 2026-01-21
|
|
6
|
+
### Added
|
|
7
|
+
|
|
8
|
+
- Added usage report deduplication to prevent duplicate account entries
|
|
9
|
+
- Added debug logging for usage fetch operations to aid diagnostics
|
|
10
|
+
- Added provider sorting in usage display by total usage amount
|
|
11
|
+
- Added `isolated` parameter to task tool for running each task in separate git worktrees
|
|
12
|
+
- Added git worktree management for isolated task execution with patch generation
|
|
13
|
+
- Added patch application system that applies changes only when all patches are valid
|
|
14
|
+
- Added working directory information to environment info display
|
|
15
|
+
- Added `/usage` command to display provider usage and limits
|
|
16
|
+
- Added support for multiple usage providers beyond Codex
|
|
17
|
+
- Added usage report caching with configurable TTL
|
|
18
|
+
- Added visual usage bars and account aggregation in usage display
|
|
19
|
+
- Added `fetchUsageReports()` method to agent session
|
|
20
|
+
- Added `output()` function to read task/agent outputs by ID with support for multiple formats and queries
|
|
21
|
+
- Added session file support to Python executor for accessing task outputs
|
|
22
|
+
- Added support for jq-like queries when reading JSON outputs
|
|
23
|
+
- Added offset and limit parameters for reading specific line ranges from outputs
|
|
24
|
+
- Added "." and "c" shortcuts to continue agent without sending visible message
|
|
25
|
+
- Added debug logging for usage fetch results to aid /usage diagnostics
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- Updated discoverSkills function to return object with skills property
|
|
30
|
+
- Enhanced usage report merging to combine limits and metadata from duplicate accounts
|
|
31
|
+
- Improved OAuth credential handling to preserve existing fields when updating
|
|
32
|
+
- Removed cd function from Python prelude to encourage using cwd parameter
|
|
33
|
+
- Updated task tool to generate and apply patches when running in isolated mode
|
|
34
|
+
- Enhanced task tool rendering to display isolated execution status and patch paths
|
|
35
|
+
- Updated system prompt structure and formatting for better readability
|
|
36
|
+
- Reorganized tool hierarchy and discipline sections
|
|
37
|
+
- Added parallel work guidance for task-based workflows
|
|
38
|
+
- Enhanced verification and integration methodology sections
|
|
39
|
+
- Updated skills and rules formatting for cleaner presentation
|
|
40
|
+
- Added stronger emphasis on completeness and quality standards
|
|
41
|
+
- Refactored usage tracking from Codex-specific to generic provider system
|
|
42
|
+
- Updated usage limit detection to work with multiple provider APIs
|
|
43
|
+
- Changed usage cache to use persistent storage instead of in-memory only
|
|
44
|
+
- Limited diagnostic messages to 50 items to prevent overwhelming output when processing files with many issues
|
|
45
|
+
- Changed `/dump` command to include complete agent context: system prompt, model config, available tools with schemas, and all message types (bash/python executions, custom messages, branch summaries, compaction summaries, file mentions)
|
|
46
|
+
- Changed `/dump` format to use YAML instead of JSON for tool schemas and arguments (more readable)
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
|
|
50
|
+
- Fixed TypeScript error in bash executor by properly typing caught exception
|
|
51
|
+
- Fixed usage display ordering to show providers with lowest usage first
|
|
52
|
+
- Fixed task tool result rendering to show fallback text when no results are available
|
|
53
|
+
- Fixed external editor to work properly on Unix systems by correctly handling terminal I/O
|
|
54
|
+
- Fixed external editor to show warning message when it fails to open instead of silently failing
|
|
55
|
+
- Fixed find tool to properly handle no matches case without treating as error
|
|
56
|
+
- Fixed find tool to wait for fd exit so error messages no longer report exit null
|
|
57
|
+
- Fixed read tool to properly handle no matches case without treating as error
|
|
58
|
+
- Fixed orphaned Python kernel gateway processes not being killed on process exit
|
|
59
|
+
- Fixed /usage provider ordering to sort by aggregate usage (most used last)
|
|
60
|
+
- Fixed /usage account dedupe to collapse identical accounts using usage metadata
|
|
61
|
+
|
|
62
|
+
## [6.9.69] - 2026-01-21
|
|
63
|
+
|
|
64
|
+
### Added
|
|
65
|
+
|
|
66
|
+
- Added cell-by-cell status tracking with duration and exit code for Python execution
|
|
67
|
+
- Added syntax highlighting for Python code in execution display
|
|
68
|
+
- Added template system with {{placeholders}} for task tool context
|
|
69
|
+
- Added task variables support for filling context placeholders
|
|
70
|
+
- Added enhanced task progress display with variable values
|
|
71
|
+
- Added concurrent work handling guidance in system prompt
|
|
72
|
+
- Added extension system support for user Python execution events
|
|
73
|
+
- Added Python mode border color theming across all themes
|
|
74
|
+
- Added Python execution indicator to welcome screen help text
|
|
75
|
+
- Added `omp stats` command for viewing AI usage statistics dashboard
|
|
76
|
+
- Added support for JSON output and console summary of usage statistics
|
|
77
|
+
- Added configurable port option for stats dashboard server
|
|
78
|
+
- Added multi-cell Python execution with sequential processing in persistent kernel
|
|
79
|
+
- Added cell titles for better Python code organization and debugging
|
|
80
|
+
- Added `$` command prefix for user-initiated Python execution in shared kernel
|
|
81
|
+
- Added `$$` prefix variant for Python execution excluded from LLM context
|
|
82
|
+
|
|
83
|
+
### Changed
|
|
84
|
+
|
|
85
|
+
- Updated Python execution to display cells in bordered blocks with status indicators
|
|
86
|
+
- Changed task tool to use template-based context instead of simple concatenation
|
|
87
|
+
- Enhanced Python execution component with proper syntax highlighting
|
|
88
|
+
- Improved patch applicator to preserve exact indentation when intended
|
|
89
|
+
- Updated task tool schema to require vars instead of task field
|
|
90
|
+
- Updated Python execution component to use pythonMode theming instead of bashMode
|
|
91
|
+
- Enhanced UI helpers to handle pending Python components properly
|
|
92
|
+
- Changed Python tool to use `cells` array instead of single `code` parameter
|
|
93
|
+
- Renamed `workdir` parameter to `cwd` in Bash and Python tools for consistency
|
|
94
|
+
- Updated Python tool to display cell-by-cell output when multiple cells are provided
|
|
95
|
+
|
|
96
|
+
### Fixed
|
|
97
|
+
|
|
98
|
+
- Fixed indentation preservation for exact matches and indentation-only patches
|
|
99
|
+
- Fixed Python execution status updates to show real-time cell progress
|
|
100
|
+
- Fixed indentation adjustment logic to handle edge cases with mixed indentation levels
|
|
101
|
+
- Fixed patch indentation normalization for fuzzy matches, tab/space diffs, and ambiguous context alignment
|
|
102
|
+
|
|
5
103
|
## [6.9.0] - 2026-01-21
|
|
104
|
+
|
|
6
105
|
### Removed
|
|
7
106
|
|
|
8
107
|
- Removed Git tool and all related functionality
|
|
@@ -13,6 +112,7 @@
|
|
|
13
112
|
- Removed @oh-my-pi/pi-git-tool dependency
|
|
14
113
|
|
|
15
114
|
## [6.8.5] - 2026-01-21
|
|
115
|
+
|
|
16
116
|
### Breaking Changes
|
|
17
117
|
|
|
18
118
|
- Changed timeout parameter from seconds to milliseconds in Python tool
|
|
@@ -24,6 +124,7 @@
|
|
|
24
124
|
- Improved streaming output handling and buffer management
|
|
25
125
|
|
|
26
126
|
## [6.8.4] - 2026-01-21
|
|
127
|
+
|
|
27
128
|
### Changed
|
|
28
129
|
|
|
29
130
|
- Updated output sink to properly handle large outputs
|
|
@@ -105,6 +206,7 @@
|
|
|
105
206
|
- Updated temporary file cleanup to use secure async removal methods
|
|
106
207
|
|
|
107
208
|
## [6.7.67] - 2026-01-19
|
|
209
|
+
|
|
108
210
|
### Added
|
|
109
211
|
|
|
110
212
|
- Added normative rewrite setting to control tool call argument normalization in session history
|
|
@@ -153,7 +255,7 @@
|
|
|
153
255
|
|
|
154
256
|
- Patch application handles repeated context blocks, preserves original indentation on fuzzy match
|
|
155
257
|
- Ambiguous context matching resolves duplicates using adjacent @@ anchor positioning
|
|
156
|
-
- Patch parser handles bare
|
|
258
|
+
- Patch parser handles bare \*\*\* terminators, model hallucination markers, line hint ranges
|
|
157
259
|
- Function context matching handles signatures with and without empty parentheses
|
|
158
260
|
- Fixed session title generation to respect OMP_NO_TITLE environment variable
|
|
159
261
|
- Fixed Python module discovery to use import.meta.dir for ES module compatibility
|
|
@@ -165,6 +267,7 @@
|
|
|
165
267
|
- Fixed MCP tool path formatting to correctly display provider information
|
|
166
268
|
|
|
167
269
|
## [6.2.0] - 2026-01-19
|
|
270
|
+
|
|
168
271
|
### Changed
|
|
169
272
|
|
|
170
273
|
- Improved LSP batching to coalesce formatting and diagnostics for parallel edits
|
|
@@ -202,12 +305,14 @@
|
|
|
202
305
|
- Fixed TTSR abbreviation expansion from TTSR to Time Traveling Stream Rules
|
|
203
306
|
|
|
204
307
|
## [5.8.0] - 2026-01-19
|
|
308
|
+
|
|
205
309
|
### Changed
|
|
206
310
|
|
|
207
311
|
- Updated WASM loading to use streaming for development environments with base64 fallback
|
|
208
312
|
- Added scripts directory to published package files
|
|
209
313
|
|
|
210
314
|
## [5.7.68] - 2026-01-18
|
|
315
|
+
|
|
211
316
|
### Changed
|
|
212
317
|
|
|
213
318
|
- Updated WASM loading to use base64-encoded WASM for better compatibility with compiled binaries
|
|
@@ -217,12 +322,14 @@
|
|
|
217
322
|
- Fixed WASM loading issues in compiled binary builds
|
|
218
323
|
|
|
219
324
|
## [5.7.67] - 2026-01-18
|
|
325
|
+
|
|
220
326
|
### Changed
|
|
221
327
|
|
|
222
328
|
- Replaced external photon-node dependency with vendored WebAssembly implementation
|
|
223
329
|
- Updated image processing to use local photon library for better performance
|
|
224
330
|
|
|
225
331
|
## [5.6.70] - 2026-01-18
|
|
332
|
+
|
|
226
333
|
### Added
|
|
227
334
|
|
|
228
335
|
- Added support for loading Python prelude extension modules from user and project directories
|
|
@@ -295,7 +402,7 @@
|
|
|
295
402
|
- Enhanced Python kernel availability checking with faster validation
|
|
296
403
|
- Optimized Python environment warming to avoid blocking during tool initialization
|
|
297
404
|
- Reorganized settings interface into behavior, tools, display, voice, status, lsp, and exa tabs
|
|
298
|
-
- Migrated environment variables from
|
|
405
|
+
- Migrated environment variables from PI* to OMP* prefix with automatic migration
|
|
299
406
|
- Updated model selector to use TabBar component for provider navigation
|
|
300
407
|
- Changed role badges to inverted style with colored backgrounds
|
|
301
408
|
- Added support for /models command alias in addition to /model
|
|
@@ -328,11 +435,13 @@
|
|
|
328
435
|
- Enhanced Python gateway environment filtering to exclude sensitive API keys and Windows system paths
|
|
329
436
|
|
|
330
437
|
## [5.5.0] - 2026-01-18
|
|
438
|
+
|
|
331
439
|
### Changed
|
|
332
440
|
|
|
333
441
|
- Updated task execution guidelines to improve prompt framing and parallelization instructions
|
|
334
442
|
|
|
335
443
|
## [5.4.2] - 2026-01-16
|
|
444
|
+
|
|
336
445
|
### Changed
|
|
337
446
|
|
|
338
447
|
- Updated model resolution to accept pre-serialized settings for better performance
|
|
@@ -340,11 +449,13 @@
|
|
|
340
449
|
- Enhanced edit tool documentation with clear use cases for bash alternatives
|
|
341
450
|
|
|
342
451
|
## [5.3.0] - 2026-01-15
|
|
452
|
+
|
|
343
453
|
### Changed
|
|
344
454
|
|
|
345
455
|
- Expanded bash tool guidance to explicitly list appropriate use cases including file operations, build commands, and process management
|
|
346
456
|
|
|
347
457
|
## [5.2.1] - 2026-01-14
|
|
458
|
+
|
|
348
459
|
### Fixed
|
|
349
460
|
|
|
350
461
|
- Fixed stale diagnostic results by tracking diagnostic versions before file sync operations
|
|
@@ -388,6 +499,7 @@
|
|
|
388
499
|
- Fixed session selector page up/down navigation
|
|
389
500
|
|
|
390
501
|
## [5.0.1] - 2026-01-12
|
|
502
|
+
|
|
391
503
|
### Changed
|
|
392
504
|
|
|
393
505
|
- Replaced wasm-vips with Photon for more stable WASM image processing
|
|
@@ -414,6 +526,7 @@
|
|
|
414
526
|
- Move `sharp` to optional dependencies with all platform binaries to fix arm64 runtime errors
|
|
415
527
|
|
|
416
528
|
## [4.7.0] - 2026-01-12
|
|
529
|
+
|
|
417
530
|
### Added
|
|
418
531
|
|
|
419
532
|
- Add `omp config` subcommand for managing settings (`list`, `get`, `set`, `reset`, `path`)
|
|
@@ -433,6 +546,7 @@
|
|
|
433
546
|
## [4.6.0] - 2026-01-12
|
|
434
547
|
|
|
435
548
|
### Added
|
|
549
|
+
|
|
436
550
|
- Add `/skill:name` slash commands for quick skill access (toggle via `skills.enableSkillCommands` setting)
|
|
437
551
|
- Add `cwd` to SessionInfo for session list display
|
|
438
552
|
- Add custom summarization instructions option in tree selector
|
|
@@ -440,10 +554,12 @@
|
|
|
440
554
|
- Add `shutdownRequested` and `checkShutdownRequested()` for extension-initiated shutdown
|
|
441
555
|
|
|
442
556
|
### Fixed
|
|
557
|
+
|
|
443
558
|
- Component `invalidate()` now properly rebuilds content on theme changes
|
|
444
559
|
- Force full re-render after returning from external editor
|
|
445
560
|
|
|
446
561
|
## [4.4.8] - 2026-01-12
|
|
562
|
+
|
|
447
563
|
### Changed
|
|
448
564
|
|
|
449
565
|
- Changed review finding priority format from numeric (0-3) to string labels (P0-P3) for clearer severity indication
|
|
@@ -463,6 +579,7 @@
|
|
|
463
579
|
- Fixed frontmatter parsing to properly report source location when YAML parsing fails
|
|
464
580
|
|
|
465
581
|
## [4.4.4] - 2026-01-11
|
|
582
|
+
|
|
466
583
|
### Added
|
|
467
584
|
|
|
468
585
|
- Added `todo_write` tool for creating and managing structured task lists during coding sessions
|
|
@@ -493,6 +610,7 @@
|
|
|
493
610
|
- Fixed prompt template loading to strip leading HTML comment metadata blocks
|
|
494
611
|
|
|
495
612
|
## [4.3.2] - 2026-01-11
|
|
613
|
+
|
|
496
614
|
### Changed
|
|
497
615
|
|
|
498
616
|
- Increased default bash output preview from 5 to 10 lines when collapsed
|
|
@@ -532,6 +650,7 @@
|
|
|
532
650
|
- Fixed serialized auth storage initialization so OAuth refreshes in subagents don't crash
|
|
533
651
|
|
|
534
652
|
## [4.2.2] - 2026-01-11
|
|
653
|
+
|
|
535
654
|
### Added
|
|
536
655
|
|
|
537
656
|
- Added persistent cache storage for Codex usage data that survives application restarts
|
|
@@ -552,6 +671,7 @@
|
|
|
552
671
|
- Removed `planner` agent command template, consolidating planning functionality into the `plan` agent
|
|
553
672
|
|
|
554
673
|
## [4.2.1] - 2026-01-11
|
|
674
|
+
|
|
555
675
|
### Added
|
|
556
676
|
|
|
557
677
|
- Added automatic discovery and listing of AGENTS.md files in the system prompt, providing agents with an authoritative list of project-specific instruction files without runtime searching
|
|
@@ -618,6 +738,7 @@
|
|
|
618
738
|
- Hardened file permissions on agent database directory (700) and database file (600) to restrict access
|
|
619
739
|
|
|
620
740
|
## [4.1.0] - 2026-01-10
|
|
741
|
+
|
|
621
742
|
### Added
|
|
622
743
|
|
|
623
744
|
- Added persistent prompt history with SQLite-backed storage and Ctrl+R search
|
|
@@ -627,6 +748,7 @@
|
|
|
627
748
|
- Fixed credential blocking logic to correctly check for remaining available credentials instead of always returning true
|
|
628
749
|
|
|
629
750
|
## [4.0.1] - 2026-01-10
|
|
751
|
+
|
|
630
752
|
### Added
|
|
631
753
|
|
|
632
754
|
- Added usage limit error detection to enable automatic credential switching when Codex accounts hit rate limits
|
|
@@ -730,11 +852,13 @@
|
|
|
730
852
|
- Extension directories in `settings.json` respect `package.json` manifests
|
|
731
853
|
|
|
732
854
|
## [3.37.0] - 2026-01-10
|
|
855
|
+
|
|
733
856
|
### Changed
|
|
734
857
|
|
|
735
858
|
- Improved bash command display to show relative paths for working directories within the current directory, and hide redundant `cd` prefix when working directory matches current directory
|
|
736
859
|
|
|
737
860
|
## [3.36.0] - 2026-01-10
|
|
861
|
+
|
|
738
862
|
### Added
|
|
739
863
|
|
|
740
864
|
- Added `calc` tool for basic mathematical calculations with support for arithmetic operators, parentheses, and hex/binary/octal literals
|
|
@@ -753,6 +877,7 @@
|
|
|
753
877
|
- Improved completion notification message to include session title when available
|
|
754
878
|
|
|
755
879
|
## [3.35.0] - 2026-01-09
|
|
880
|
+
|
|
756
881
|
### Added
|
|
757
882
|
|
|
758
883
|
- Added retry logic with exponential backoff for auto-compaction failures
|
|
@@ -1830,15 +1955,14 @@ Total color count increased from 46 to 50. See [docs/theme.md](docs/theme.md) fo
|
|
|
1830
1955
|
- **Credential storage refactored**: API keys and OAuth tokens are now stored in `~/.omp/agent/auth.json` instead of `oauth.json` and `settings.json`. Existing credentials are automatically migrated on first run. ([#296](https://github.com/badlogic/pi-mono/issues/296))
|
|
1831
1956
|
|
|
1832
1957
|
- **SDK API changes** ([#296](https://github.com/badlogic/pi-mono/issues/296)):
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
- See updated [SDK documentation](docs/sdk.md) and [README](README.md)
|
|
1958
|
+
- Added `AuthStorage` class for credential management (API keys and OAuth tokens)
|
|
1959
|
+
- Added `ModelRegistry` class for model discovery and API key resolution
|
|
1960
|
+
- Added `discoverAuthStorage()` and `discoverModels()` discovery functions
|
|
1961
|
+
- `createAgentSession()` now accepts `authStorage` and `modelRegistry` options
|
|
1962
|
+
- Removed `configureOAuthStorage()`, `defaultGetApiKey()`, `findModel()`, `discoverAvailableModels()`
|
|
1963
|
+
- Removed `getApiKey` callback option (use `AuthStorage.setRuntimeApiKey()` for runtime overrides)
|
|
1964
|
+
- Use `getModel()` from `@oh-my-pi/pi-ai` for built-in models, `modelRegistry.find()` for custom models + built-in models
|
|
1965
|
+
- See updated [SDK documentation](docs/sdk.md) and [README](README.md)
|
|
1842
1966
|
|
|
1843
1967
|
- **Settings changes**: Removed `apiKeys` from `settings.json`. Use `auth.json` instead. ([#296](https://github.com/badlogic/pi-mono/issues/296))
|
|
1844
1968
|
|
|
@@ -1869,16 +1993,15 @@ Total color count increased from 46 to 50. See [docs/theme.md](docs/theme.md) fo
|
|
|
1869
1993
|
### Added
|
|
1870
1994
|
|
|
1871
1995
|
- **Compaction hook improvements**: The `before_compact` session event now includes:
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
- Removed `apiKey` string in favor of `resolveApiKey` for more flexibility
|
|
1996
|
+
- `previousSummary`: Summary from the last compaction (if any), so hooks can preserve accumulated context
|
|
1997
|
+
- `messagesToKeep`: Messages that will be kept after the summary (recent turns), in addition to `messagesToSummarize`
|
|
1998
|
+
- `resolveApiKey`: Function to resolve API keys for any model (checks settings, OAuth, env vars)
|
|
1999
|
+
- Removed `apiKey` string in favor of `resolveApiKey` for more flexibility
|
|
1877
2000
|
|
|
1878
2001
|
- **SessionManager API cleanup**:
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
2002
|
+
- Renamed `loadSessionFromEntries()` to `buildSessionContext()` (builds LLM context from entries, handling compaction)
|
|
2003
|
+
- Renamed `loadEntries()` to `getEntries()` (returns defensive copy of all session entries)
|
|
2004
|
+
- Added `buildSessionContext()` method to SessionManager
|
|
1882
2005
|
|
|
1883
2006
|
## [0.27.5] - 2025-12-24
|
|
1884
2007
|
|
|
@@ -2097,13 +2220,13 @@ Total color count increased from 46 to 50. See [docs/theme.md](docs/theme.md) fo
|
|
|
2097
2220
|
- **Custom tools now require `index.ts` entry point**: Auto-discovered custom tools must be in a subdirectory with an `index.ts` file. The old pattern `~/.omp/agent/tools/mytool.ts` must become `~/.omp/agent/tools/mytool/index.ts`. This allows multi-file tools to import helper modules. Explicit paths via `--tool` or `settings.json` still work with any `.ts` file.
|
|
2098
2221
|
|
|
2099
2222
|
- **Hook `tool_result` event restructured**: The `ToolResultEvent` now exposes full tool result data instead of just text. ([#233](https://github.com/badlogic/pi-mono/pull/233))
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2223
|
+
- Removed: `result: string` field
|
|
2224
|
+
- Added: `content: (TextContent | ImageContent)[]` - full content array
|
|
2225
|
+
- Added: `details: unknown` - tool-specific details (typed per tool via discriminated union on `toolName`)
|
|
2226
|
+
- `ToolResultEventResult.result` renamed to `ToolResultEventResult.text` (removed), use `content` instead
|
|
2227
|
+
- Hook handlers returning `{ result: "..." }` must change to `{ content: [{ type: "text", text: "..." }] }`
|
|
2228
|
+
- Built-in tool details types exported: `BashToolDetails`, `ReadToolDetails`, `GrepToolDetails`, `FindToolDetails`, `LsToolDetails`, `TruncationResult`
|
|
2229
|
+
- Type guards exported for narrowing: `isBashToolResult`, `isReadToolResult`, `isEditToolResult`, `isWriteToolResult`, `isGrepToolResult`, `isFindToolResult`, `isLsToolResult`
|
|
2107
2230
|
|
|
2108
2231
|
## [0.23.4] - 2025-12-18
|
|
2109
2232
|
|
|
@@ -2132,13 +2255,12 @@ Total color count increased from 46 to 50. See [docs/theme.md](docs/theme.md) fo
|
|
|
2132
2255
|
- Improved system prompt documentation section with clearer pointers to specific doc files for custom models, themes, skills, hooks, custom tools, and RPC.
|
|
2133
2256
|
|
|
2134
2257
|
- Cleaned up documentation:
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
- `README.md`: Complete settings table, condensed philosophy section, standardized OAuth docs
|
|
2258
|
+
- `theme.md`: Added missing color tokens (`thinkingXhigh`, `bashMode`)
|
|
2259
|
+
- `skills.md`: Rewrote with better framing and examples
|
|
2260
|
+
- `hooks.md`: Fixed timeout/error handling docs, added import aliases section
|
|
2261
|
+
- `custom-tools.md`: Added intro with use cases and comparison table
|
|
2262
|
+
- `rpc.md`: Added missing `hook_error` event documentation
|
|
2263
|
+
- `README.md`: Complete settings table, condensed philosophy section, standardized OAuth docs
|
|
2142
2264
|
|
|
2143
2265
|
- Hooks loader now supports same import aliases as custom tools (`@sinclair/typebox`, `@oh-my-pi/pi-ai`, `@oh-my-pi/pi-tui`, `@oh-my-pi/pi-coding-agent`).
|
|
2144
2266
|
|
|
@@ -2395,12 +2517,12 @@ _Dedicated to Peter's shoulder ([@steipete](https://twitter.com/steipete))_
|
|
|
2395
2517
|
### Changed
|
|
2396
2518
|
|
|
2397
2519
|
- **Tool output truncation**: All tools now enforce consistent truncation limits with actionable notices for the LLM. ([#134](https://github.com/badlogic/pi-mono/issues/134))
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2520
|
+
- **Limits**: 2000 lines OR 50KB (whichever hits first), never partial lines
|
|
2521
|
+
- **read**: Shows `[Showing lines X-Y of Z. Use offset=N to continue]`. If first line exceeds 50KB, suggests bash command
|
|
2522
|
+
- **bash**: Tail truncation with temp file. Shows `[Showing lines X-Y of Z. Full output: /tmp/...]`
|
|
2523
|
+
- **grep**: Pre-truncates match lines to 500 chars. Shows match limit and line truncation notices
|
|
2524
|
+
- **find/ls**: Shows result/entry limit notices
|
|
2525
|
+
- TUI displays truncation warnings in yellow at bottom of tool output (visible even when collapsed)
|
|
2404
2526
|
|
|
2405
2527
|
## [0.13.1] - 2025-12-06
|
|
2406
2528
|
|
|
@@ -2487,13 +2609,13 @@ _Dedicated to Peter's shoulder ([@steipete](https://twitter.com/steipete))_
|
|
|
2487
2609
|
### Added
|
|
2488
2610
|
|
|
2489
2611
|
- **Context Compaction**: Long sessions can now be compacted to reduce context usage while preserving recent conversation history. ([#92](https://github.com/badlogic/pi-mono/issues/92), [docs](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/README.md#context-compaction))
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2612
|
+
- `/compact [instructions]`: Manually compact context with optional custom instructions for the summary
|
|
2613
|
+
- `/autocompact`: Toggle automatic compaction when context exceeds threshold
|
|
2614
|
+
- Compaction summarizes older messages while keeping recent messages (default 20k tokens) verbatim
|
|
2615
|
+
- Auto-compaction triggers when context reaches `contextWindow - reserveTokens` (default 16k reserve)
|
|
2616
|
+
- Compacted sessions show a collapsible summary in the TUI (toggle with `o` key)
|
|
2617
|
+
- HTML exports include compaction summaries as collapsible sections
|
|
2618
|
+
- RPC mode supports `{"type":"compact"}` command and auto-compaction (emits compaction events)
|
|
2497
2619
|
- **Branch Source Tracking**: Branched sessions now store `branchedFrom` in the session header, containing the path to the original session file. Useful for tracing session lineage.
|
|
2498
2620
|
|
|
2499
2621
|
## [0.12.5] - 2025-12-03
|
|
@@ -2530,11 +2652,11 @@ _Dedicated to Peter's shoulder ([@steipete](https://twitter.com/steipete))_
|
|
|
2530
2652
|
### Added
|
|
2531
2653
|
|
|
2532
2654
|
- **Models**: Added support for OpenAI's new models:
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2655
|
+
- `gpt-4.1` (128K context)
|
|
2656
|
+
- `gpt-4.1-mini` (128K context)
|
|
2657
|
+
- `gpt-4.1-nano` (128K context)
|
|
2658
|
+
- `o3` (200K context, reasoning model)
|
|
2659
|
+
- `o4-mini` (200K context, reasoning model)
|
|
2538
2660
|
|
|
2539
2661
|
## [0.12.0] - 2025-12-02
|
|
2540
2662
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { createAgentSession, discoverSkills, SessionManager, type Skill } from "@oh-my-pi/pi-coding-agent";
|
|
9
9
|
|
|
10
10
|
// Discover all skills from cwd/.omp/skills, ~/.omp/agent/skills, etc.
|
|
11
|
-
const allSkills = discoverSkills();
|
|
11
|
+
const { skills: allSkills } = await discoverSkills();
|
|
12
12
|
console.log(
|
|
13
13
|
"Discovered skills:",
|
|
14
14
|
allSkills.map((s) => s.name),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oh-my-pi/pi-coding-agent",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0",
|
|
4
4
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"ompConfig": {
|
|
@@ -40,10 +40,11 @@
|
|
|
40
40
|
"prepublishOnly": "bun run generate-template && bun run clean && bun run build"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@oh-my-pi/
|
|
44
|
-
"@oh-my-pi/pi-
|
|
45
|
-
"@oh-my-pi/pi-
|
|
46
|
-
"@oh-my-pi/pi-
|
|
43
|
+
"@oh-my-pi/omp-stats": "7.0.0",
|
|
44
|
+
"@oh-my-pi/pi-agent-core": "7.0.0",
|
|
45
|
+
"@oh-my-pi/pi-ai": "7.0.0",
|
|
46
|
+
"@oh-my-pi/pi-tui": "7.0.0",
|
|
47
|
+
"@oh-my-pi/pi-utils": "7.0.0",
|
|
47
48
|
"@openai/agents": "^0.3.7",
|
|
48
49
|
"@sinclair/typebox": "^0.34.46",
|
|
49
50
|
"ajv": "^8.17.1",
|