Commit Graph

1106 Commits

Author SHA1 Message Date
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
can1357 8b38705146 feat(coding-agent): implemented OpenAI Realtime API voice mode
- Added VoiceSupervisor and VoiceController classes for realtime voice mode using OpenAI Realtime API.
- Added echo suppression, noise floor filtering, and fallback transcript handling for voice input.
- Changed voice mode toggle from Caps Lock to Ctrl+Y with auto-send on silence behavior.
- Changed default TTS model from gpt-4o-mini-tts to tts-1.
- Added kwaipilot/kat-coder-pro model and removed deprecated OpenRouter models.
2026-01-05 15:11:28 +01:00
can1357 c34e7cbc2f feat(coding-agent): added gemini image tool 2026-01-05 08:55:49 +01:00
can1357 f5251cce30 refactor(coding-agent): removed pendingVoiceResponses counter
- Removed pendingVoiceResponses counter to simplify voice response handling logic.
2026-01-05 08:12:58 +01:00
can1357 40586a8919 feat: added voice mode with push-to-talk for hands-free interaction
- Added voice mode with Caps Lock push-to-talk for speech-to-text and text-to-speech using OpenAI APIs.
- Added voice settings configuration for transcription model, TTS model, voice selection, and audio format.
- Added description field to task tool for user-facing progress summaries in subagent spawning.
- Added isCapsLock helper function to tui package for Kitty protocol key detection.
- Added getApiKeyForProvider() method to ModelRegistry for retrieving API keys by provider name.
2026-01-05 08:11:18 +01:00
can1357 0315cef75d refactor(coding-agent): extracted shared render-utils to eliminate duplication
- Added shared render-utils module with standardized formatting functions for truncation, bytes, tokens, duration, and tree rendering.
- Extracted resolveOmpCommand() helper to centralize cross-platform subprocess command resolution.
- Consolidated duplicate utility functions across grep, find, ls, notebook, ask, output, exa, lsp, and web search renderers.
- Updated web search tool to support 'auto' as explicit provider option for auto-detection.
2026-01-05 07:35:35 +01:00
can1357 8a5983be2d feat: added role-based model cycling with Ctrl+Y hotkey support
- Added cycleRoleModels() method to cycle through configured role-based models with deduplication.
- Added RoleModelCycleResult interface with model, thinkingLevel, and role properties.
- Added isCtrlY() helper function to detect Ctrl+Y input across raw byte and Kitty protocol.
2026-01-05 05:41:21 +01:00
can1357 b81869dc8d feat(coding-agent): added language-specific file icons to tool output
- Added language-specific file icons to LSP diagnostics output for improved file type recognition.
- Added language-specific file icon to edit tool header display for visual consistency.
2026-01-05 05:40:12 +01:00
can1357 a05852fe5a feat(coding-agent/core): added file icons to grep/find output for clarity
- Added language-specific file icons and folder icons to grep and find tool output renderers.
2026-01-05 05:37:05 +01:00
can1357 8cbf7aaf1b feat(coding-agent): added language-specific icons to file listings
- Updated file listing to display language-specific icons based on file extension instead of generic file icons.
2026-01-05 05:24:56 +01:00
can1357 50ecf5478e chore: bump version to 3.15.1 2026-01-05 05:20:35 +01:00
can1357 e880eec447 fix(coding-agent): corrected status line end cap background and separator rendering
- Fixed status line end cap rendering to apply background colors and use correct powerline separator characters.
2026-01-05 05:20:14 +01:00
can1357 36db3ff6fc feat(tui): added hardware cursor support for native terminal blinking
- Added terminal cursor mode support to Editor component with setUseTerminalCursor() and getCursorPosition() methods.
- Added getCursorPosition() method to Component interface and Container class for cursor position aggregation.
- Added hardware cursor positioning and visibility management to TUI class with change detection.
- Enabled terminal cursor mode in HookEditorComponent and CustomEditor for proper cursor blinking.
2026-01-05 05:16:39 +01:00
can1357 f26493824e feat(coding-agent): added 65 themes to expand user customization options
- Added 65 new built-in color themes including dark, light, and material variants.
- Added theme sync script to generate theme index from JSON files.
- Expanded default theme collection from approximately 30 to 96 themes.
2026-01-05 05:16:07 +01:00
can1357 4cc8270ad5 chore: bump version to 3.15.0 2026-01-05 04:52:31 +01:00
can1357 21192e2056 refactor: consolidated tool execution params into details object
- Changed isError property from required to optional across ToolResultMessage and tool event interfaces.
- Added SpinnerType variants with distinct animation frames per symbol preset.
- Fixed spinner animation crash when frames array is empty by adding guard clause.
- Refactored agent-loop tool execution to consolidate toolCallId, toolName, and isError into details object.
2026-01-05 04:44:43 +01:00
can1357 7f68705afa fix(coding-agent): corrected bash spinner syntax and removed redundant metadata
- Fixed string interpolation syntax error in bash execution spinner text.
- Removed redundant line count display from file read tool output metadata.
2026-01-05 04:32:22 +01:00