Commit Graph

1122 Commits

Author SHA1 Message Date
can1357 86ef2bd34b chore: bump version to 3.34.0 2026-01-09 12:17:04 +01:00
can1357 5a63120dd3 feat(ai): add @oh-my-pi/pi-ai package with tool name prefixing
- Port pi-ai from upstream with Bun-first approach (source files, no dist)
- Add cli_ prefix to tool names in OAuth mode to avoid collisions
- Improve beta header handling with proper deduplication
- Convert codex-instructions.md to Bun text embed
- Strip .js extensions from all imports
2026-01-09 12:10:03 +01:00
Can Bölük d934594aed feat(coding-agent/core): added system info caching for faster startup
- Added caching for system environment detection to improve startup performance.
- Changed GPU detection on Linux to prioritize discrete GPUs (NVIDIA, AMD) over integrated graphics and skip server management adapters.
- Implemented SystemInfoCache interface and file-based persistence in ~/.omp/system_info.json.
2026-01-08 17:43:41 +01:00
Can Bölük df6fca373b feat(coding-agent): added SSH shell detection and host info caching
- Added disk usage information to automatic environment detection.
- Added versioned SSH host info cache format for automatic schema refresh on version mismatch.
- Added SSH compat shell detection to probe for bash/sh on Windows hosts.
- Expanded SSH tool documentation with shell-specific command examples for Unix, PowerShell, and CMD.
- Refactored buildCompatCommand to sync function with explicit shell type parameter.
2026-01-08 17:41:24 +01:00
can1357 66a7255e1d feat(ssh): added automatic remote OS/shell detection with cross-platform support
- Added automatic remote host OS and shell detection with disk-based caching.
- Added compat mode option for SSH hosts to use POSIX shell compatibility wrapping.
- Added Windows shell support with PowerShell and CMD path escaping functions.
- Updated SSH tool description to display detected shell type per host.
- Simplified SSH tool documentation by removing OS-specific command examples.
2026-01-08 17:27:00 +01:00
can1357 09bba56fae feat(coding-agent/core): added cross-platform env detection for context-aware prompts
- Added automatic environment detection to system prompt including OS, distro, kernel, CPU, GPU, shell, terminal, desktop environment, and window manager information.
- Implemented cross-platform detection functions for Windows, macOS, and Linux environments.
2026-01-08 17:10:05 +01:00
can1357 008326b92e feat(coding-agent): added SSH tool with persistent connections and SSHFS mounts
- Added SSH tool for executing commands on remote hosts with project config discovery from ssh.json files.
- Added persistent SSH connection manager with master socket support and automatic cleanup.
- Added SSHFS mount utilities for mounting remote filesystems with automatic unmount on session end.
- Added SSH capability definition with host validation and discovery provider registration.
2026-01-08 16:47:15 +01:00
can1357 91e2d478fb chore: bump version to 3.33.0 2026-01-08 14:13:08 +01:00
can1357 7740b3ad47 feat(coding-agent): added env vars, file mention validation, and model fallback logic
- Added environment variable management via settings.json with applyEnvironmentVariables() and related methods.
- Enhanced file mentions to support directories, validate boundaries, and truncate large files.
- Added fallback model candidate logic in title generator to retry on model failures.
- Fixed bash output preview to minify JSON content and skip structural-only lines.
- Added Cerebras provider support with thinking block filtering and zai-glm-4.6 model priority.
- Refactored tree rendering to use consistent theme.tree properties instead of boxSharp.
2026-01-08 14:10:01 +01:00
can1357 0e09127492 chore: bump version to 3.32.0 2026-01-08 10:01:06 +01:00
can1357 c865937c33 fix(coding-agent): propagated model override to subagents 2026-01-08 07:17:15 +01:00
can1357 8aeabdc797 feat(coding-agent): added LSP warmup timeout and bundled /init command
- Added progress indicator callback when starting LSP servers at session startup.
- Added bundled /init slash command available by default without requiring user configuration.
- Added 5-second timeout for LSP server warmup with lazy initialization fallback.
- Added configurable timeout parameters to LSP client initialization and request methods.
- Refactored slash command loading to use parseCommandTemplate helper and merge embedded commands.
2026-01-08 06:49:18 +01:00
can1357 14ceba6984 chore: bump version to 3.31.0 2026-01-08 02:51:34 +01:00
can1357 d11ccd2e93 feat(coding-agent): added temp model controls and auto-chdir 2026-01-08 02:51:29 +01:00
can1357 91a49e7178 feat(coding-agent): added diff-aware code review with auto-scaled reviewer agents
- Added upfront diff parsing and filtering in code review command with automatic reviewer agent count recommendation.
- Added fsync call before closing session writer to ensure data durability.
- Replaced Bun.Glob-based gitignore scanning with fd command execution in find tool.
- Fixed hasOverrides logic to only set true when parsed.servers has entries in LSP config.
- Replaced console.log/error/warn calls with structured logger across session manager and LSP modules.
2026-01-08 00:26:31 +01:00
can1357 02cae69bb5 feat: added session storage abstraction and configurable bash interceptor rules
- Added in-memory session storage abstraction with SessionStorage interface and MemorySessionStorage implementation.
- Added configurable bash interceptor rules with pattern-based command interception settings.
- Added AbortSignal support to 80+ web scrapers for request cancellation.
- Changed task tool to require explicit task `id` field and single `agent` parameter at top level.
- Removed `submit_review` tool - reviewers now use `complete` tool with structured output.
- Replaced Date.now() and crypto.randomUUID() with nanoid() for unique ID generation throughout codebase.
2026-01-07 23:17:09 +01:00
can1357 5a7cf77ba9 feat(web-scrapers): added 25+ specialized scrapers with modular architecture
- Added 25+ new specialized web scrapers for sites including MusicBrainz, Discourse, Lemmy, Sourcegraph, ORCID, and package registries.
- Refactored web-fetch-handlers module to web-scrapers with modular architecture and centralized handler exports.
- Added AbortSignal support throughout web-fetch tool and scraper utilities for improved request cancellation.
- Fixed npm license parsing to handle object format with type property.
- Fixed raw GitHub URL construction by removing refs/heads prefix from ref path.
2026-01-07 20:34:33 +01:00
can1357 d5530d428b chore: bump version to 3.30.0 2026-01-07 15:33:20 +01:00
can1357 10fb32842c fix(coding-agent): corrected Lobsters API endpoint to use /hottest.json
- Fixed Lobsters front page handler to use correct API endpoint (`/hottest.json` instead of invalid `.json`).
2026-01-07 15:33:01 +01:00
can1357 49e7091550 feat(coding-agent/core): added env vars for task limit configuration
- Added environment variable configuration for task limits (OMP_TASK_MAX_PARALLEL, OMP_TASK_MAX_CONCURRENCY, OMP_TASK_MAX_OUTPUT_BYTES, OMP_TASK_MAX_OUTPUT_LINES, OMP_TASK_MAX_AGENTS_IN_DESCRIPTION).
2026-01-07 15:31:24 +01:00
can1357 7380041c82 fix(coding-agent): resolved task executor hangs with graceful termination
- Added graceful termination with cleanup and timeout handling to task executor.
- Fixed task worker error handling to prevent hanging on crashes with global error handlers.
- Fixed double-stringified JSON output parsing from subagents.
- Fixed markitdown tool to use automatic installer via ensureTool() instead of Bun.which().
- Added abort reason tracking and centralized timer/listener cleanup in executor.
2026-01-07 15:29:46 +01:00
can1357 c45f513b6b feat(web-fetch-handlers): added 50+ platform-specific content extractors
- Added 50+ specialized web-fetch handlers for platform-specific content extraction including GitHub, GitLab, npm, PyPI, crates.io, and many more.
- Added automatic yt-dlp installation for YouTube transcript extraction with fallback support.
- Added handlers for social platforms including Twitter/X via Nitter, Reddit, Mastodon, Bluesky, and Hacker News.
- Added handlers for academic sources including arXiv, PubMed, Semantic Scholar, bioRxiv, and IACR ePrint.
- Added Python tool installation support via uv or pip fallback for markitdown and html2text.
- Extracted URL handlers from monolithic web-fetch.ts into modular handler files with shared utilities.
2026-01-07 15:29:17 +01:00
can1357 f3e568fa8d feat(coding-agent): added YouTube transcript extraction via yt-dlp
- Added YouTube video support with automatic transcript extraction via yt-dlp.
- Added parseYouTubeUrl function to extract video and playlist IDs from various URL formats.
- Added cleanVttToText function to convert VTT subtitle files to plain text.
- Reformatted indentation from spaces to tabs in jtd-to-json-schema.ts and name-generator.ts.
2026-01-07 14:34:31 +01:00
can1357 09c28bc15d chore: bump version to 3.25.0 2026-01-07 04:28:15 +01:00
can1357 ee70fc2ec0 feat(coding-agent): added structured output with JSON schema validation for subagents
- Added `complete` tool for structured subagent output with JSON schema validation and JTD support.
- Added `query` parameter to output tool for jq-like JSON querying of subagent results.
- Added `output_schema` parameter to task tool enabling structured completion from subagents.
- Replaced index-based agent identifiers with memorable two-word task names like SwiftFalcon.
- Added JTD-to-JSON-Schema converter module for schema format flexibility.
2026-01-07 04:26:49 +01:00
can1357 b9c33d0788 docs(coding-agent): expanded architecture docs for SDK wrapper and capability system
- Updated DEVELOPMENT.md architecture diagram to reflect SDK wrapper, capability system, and git-tool dependency.
- Expanded directory structure documentation to cover 40+ new files including capability, discovery, and extension systems.
- Revised development workflow instructions to use bun commands instead of npm/tsx.
- Added documentation sections for new extension sources and capability types.
- Updated AGENTS.md with simplified issue labeling, corrected repository URLs, and streamlined release commands.
- Consolidated README.md package table and removed redundant development/publishing sections.
2026-01-07 03:09:30 +01:00
can1357 5df742bf73 chore: bump version to 3.24.0 2026-01-07 03:04:34 +01:00
can1357 753be5d87f feat: introduced Worker-based subagent execution with BUILTIN_TOOLS registry
- Added ToolSession interface and Bun Worker-based subagent execution replacing subprocess spawning.
- Added BUILTIN_TOOLS registry and createTools factory function replacing individual tool exports.
- Added toolNames parameter for filtering which built-in tools to include in agent sessions.
- Removed deprecated tool exports (codingTools, readOnlyTools, createCodingTools, createReadOnlyTools).
- Removed subagent custom tool example and question custom tool example.
2026-01-07 03:03:34 +01:00
can1357 3d4ace30d8 fix(coding-agent): resolved memory leak by streaming events to disk
- Fixed memory accumulation by streaming events directly to disk instead of storing in memory.
- Changed subprocess usage tracking to accumulate incrementally from message_end events.
- Fixed session persistence to exclude transient streaming data (partialJson, jsonlEvents).
- Removed parseSubagentUsage() function in favor of pre-accumulated usage data.
2026-01-07 00:21:06 +01:00
can1357 839d9244e2 chore: bump version to 3.21.0 2026-01-06 23:35:36 +01:00
can1357 5919b0df94 refactor: switched to upstream @mariozechner/pi-ai and removed unused packages
- Replaced local @oh-my-pi/pi-ai with upstream @mariozechner/pi-ai@0.37.4
- Added sessionId support to agent for provider caching (OpenAI Codex)
- Deleted packages/ai (now using upstream)
- Deleted packages/mom (unused)
- Deleted packages/web-ui (unused)
2026-01-06 22:25:24 +00:00
can1357 96d676a5e5 refactor(coding-agent): migrated tool renderers to co-located modules
- Co-located tool renderers with their respective tool implementations across 14 tool modules.
- Added render-utils module with shared formatting helpers for diagnostics, diffs, paths, and metadata.
- Removed ~800 lines of inline renderer implementations from centralized renderers.ts file.
- Added Google Vertex AI provider with 11 Gemini model configurations.
- Added OpenAI Codex provider with 13 GPT-5 model configurations.
2026-01-06 22:19:24 +00:00
can1357 6f128238f3 feat(coding-agent): added configurable sub-providers and fixed a few
- Added webSearchProvider, imageProvider, and git.enabled settings for configurable provider selection and feature toggles.
- Added offset and limit parameters to Output tool for paginated reading of large outputs.
- Added provider fallback chain for web search with WebSearchProviderError class for graceful degradation.
- Changed generate_image tool to save images to temp files instead of inline base64 to reduce context bloat.
- Changed web search default model from claude-sonnet-4-5-20250514 to claude-haiku-4-5.
- Added git command interception in bash to redirect to dedicated git tool when enabled.
2026-01-06 22:16:24 +00:00
can1357 2e3de262fd feat(coding-agent): added bulk replace and OpenRouter image generation
- Added `all` parameter to edit tool for replacing all occurrences with fuzzy matching support.
- Added OpenRouter provider support for image generation when `OPENROUTER_API_KEY` is set.
- Renamed image tool from `gemini_image` to `generate_image` with updated default model.
- Added test cases for edit tool's `all: true` option covering multiple scenarios.
2026-01-06 22:13:24 +00:00
can1357 64ade9866b feat(coding-agent): added toolLabel for readable names and fixed diff cache key
- Added toolLabel property to display human-readable tool names instead of internal identifiers.
- Included 'all' parameter in edit diff computation key to ensure correct cache invalidation.
2026-01-06 22:07:24 +00:00
can1357 ca03a5e075 feat(coding-agent): added ImageMagick fallback for image ops when sharp unavailable
- Added ImageMagick fallback for image processing when sharp is unavailable.
- Added image-magick utility module with detection, conversion, and resize functions.
- Changed web_fetch tool label from 'web_fetch' to 'Web Fetch'.
- Updated image-convert and image-resize to use ImageMagick fallback instead of failing or returning original.
2026-01-06 22:04:24 +00:00
can1357 3536e2aaaa feat(coding-agent): added branch summaries setting to disable prompt
Branch summary prompts when navigating away from a branch are now
controlled by a setting (disabled by default). Enable in Settings →
Config → "Branch summaries" to restore the previous prompting behavior.
2026-01-06 21:58:24 +00:00
can1357 386c4b2c8d fix(coding-agent): corrected context file preview to read from raw object
- Fixed context file preview in inspector panel to read content from raw object instead of async file reads.
- Added slash commands to extensions inspector panel for visibility and management.
- Extracted getContextFileContent helper method for type-safe content extraction.
2026-01-06 21:55:24 +00:00
can1357 f224ecb72a fix(coding-agent): avoided sharp hard dependency 2026-01-06 21:52:24 +00:00
can1357 f991cfa54d feat(coding-agent): added file-based slash commands with $ARGUMENTS placeholder
- Added file-based slash commands discovery from commands/ directories.
- Added $ARGUMENTS placeholder support for slash command argument substitution.
- Changed argument substitution order to process positional args before wildcards to prevent re-substitution bugs.
- Integrated slash command expansion into AgentSession initialization flow.
2026-01-06 21:49:24 +00:00
can1357 1d36816a59 chore: bump version to 3.20.1 2026-01-06 13:35:55 +01:00
can1357 66223c557d feat(coding-agent): added relative modification times to ls tool
Shows human-readable ages like "2d ago", "just now" for each entry.
2026-01-06 13:23:23 +01:00
can1357 e561435991 fix(find): enabled full-path matching for patterns with path separators
fd's --glob mode matches against filenames only, not paths. Patterns
like `reports/**` were failing because fd looked for entries literally
named `reports/**`. Now detects path separators and adds --full-path
flag with `**/` prefix to match correctly.
2026-01-06 13:22:58 +01:00
can1357 be5d7dd3a9 feat(coding-agent): added task descriptions to multi-task display for clarity
- Changed multi-task display to show task descriptions instead of agent names when available.
- Fixed indentation in worktree constants module for consistency.
2026-01-06 13:15:54 +01:00
can1357 d883b84be6 chore: bump version to 3.20.0 2026-01-06 01:26:37 +01:00
can1357 6da94c95ef fix(task): resolved race condition causing 0 tools/tokens display
The `resolved` flag was set synchronously before awaiting `proc.exited`,
causing the stdout reader to skip all JSON events via the `if (resolved)
return` guard. Now we await both process exit and stream reader completion
before setting `resolved = true`.
2026-01-06 00:34:39 +01:00
can1357 15fbe228b3 feat(monorepo): merged codex providers and extensions 2026-01-05 15:37:44 +01:00
can1357 56e760f2bc feat(git-tool): added git-tool package with 22 operations and safety guards
- Added new @oh-my-pi/pi-git-tool package with 22 git operations, safety guards, caching, and GitHub CLI integration.
- Added /wt slash command for git worktree management with create, list, merge, remove, spawn, and parallel operations.
- Added worktree library with collapse strategies (simple, merge-base, rebase) and session tracking for agent tasks.
- Added structured git tool with TypeBox schema exposing gitTool and createGitTool from SDK.
- Added safety policies blocking force push to protected branches and warning on destructive operations.
2026-01-05 15:37:44 +01:00
can1357 44b10b12d5 feat(coding-agent): added background execution with terminal notifications
- Added /background (or /bg) command to detach UI and continue agent execution in background.
- Added completion notification system with configurable methods (bell, osc99, osc9, auto, off).
- Added completionNotification setting and OMP_NOTIFICATIONS environment variable for notification control.
- Added terminal-notify module with protocol detection for terminal emulator notifications.
2026-01-05 15:37:44 +01:00
can1357 2baae16a34 fix(coding-agent): made browser opening cross-platform and non-failing
- Windows uses cmd /c start instead of raw start (shell builtin)
- macOS uses open, Linux uses xdg-open
- Wrapped in try-catch to fail silently when unavailable
2026-01-05 15:37:44 +01:00