Commit Graph

1857 Commits

Author SHA1 Message Date
Can Bölük 7965f330e7 Merge pull request #49 from kylesnowschwartz/feat/claude-plugins-discovery
feat(coding-agent): add Claude Code marketplace plugin discovery
2026-02-13 12:33:52 +01:00
can1357 9482a57135 fix(coding-agent): fixed plugin registry validation and precedence 2026-02-13 12:33:14 +01:00
can1357 02bf493ba8 fix(coding-agent): handled fully exhausted oauth rotation
Fixes #55.
2026-02-13 12:28:46 +01:00
can1357 0db2f4a7c9 fix(coding-agent): added managed venv fallback for python setup
Fixes #47.
2026-02-13 12:28:35 +01:00
Chris Watson 71bde186f4 feat(coding-agent): default minimax providers to MiniMax M2.5 (#53) 2026-02-13 09:32:52 +01:00
kylesnowschwartz 7a6b42353e fix(coding-agent): respect plugin scope and handle multiple registry entries
- P1: Use root.scope instead of hardcoded 'user' level in claude-plugins provider
- P2: Iterate all registry entries per plugin ID, not just first one
- P3: Add home parameter to discoverAgents() for test isolation
- P4: Add test coverage for claude-plugins discovery (12 tests)
- P5: Cache listClaudePluginRoots results to avoid repeated parsing

Addresses issues found in adversarial review of PR #49
2026-02-13 11:11:05 +13:00
kylesnowschwartz 842bf84a2b feat(coding-agent): add Claude Code marketplace plugin discovery
Add discovery provider that loads skills, commands, hooks, tools, and
agents from ~/.claude/plugins/cache/ based on installed_plugins.json.

- Add parseClaudePluginsRegistry() and listClaudePluginRoots() helpers
- Create claude-plugins.ts provider with priority 70 (below claude.ts)
- Register provider for skills, slash-commands, hooks, and tools
- Integrate plugin agents into task/discovery.ts

Closes #48
2026-02-13 10:23:15 +13:00
can1357 3dbd6b6f02 fix(coding-agent): make tool tests format-agnostic for hashline output 2026-02-12 20:32:13 +01:00
can1357 787aac026b chore: bump version to 12.0.0 2026-02-12 20:30:39 +01:00
can1357 cae5aaa3cc feat(coding-agent): changed default edit mode to hashline and enabled hash line reading
- Changed default edit mode from `patch` to `hashline` for more precise code modifications.
- Changed `readHashLines` setting default from false to true to enable hash line reading by default.
2026-02-12 20:29:58 +01:00
can1357 412ab9ea00 fix(coding-agent,ai): resolve issues #33, #34, #35, #37
- show help instead of crashing on `omp setup` with no args
- show runtime-discovered MCP servers in `/mcp list`
- remove deprecated Anthropic model entries from models.json
- sort models by recency in model selector
2026-02-12 20:29:06 +01:00
can1357 1587b4b880 chore: bump version to 11.14.5 2026-02-12 15:26:34 +01:00
can1357 c7c0a1e7b7 build: bumped @biomejs/biome from 2.3.14 to 2.3.15
- Bumped @biomejs/biome from 2.3.14 to 2.3.15.
2026-02-12 15:26:24 +01:00
can1357 95b05ca644 fix(coding-agent): add Bun runtime errata guard for OSC sequence width bug
Detects known Bun.stringWidth mishandling of OSC sequences at startup
and exits with a clear upgrade message instead of crashing in the TUI
render path.

Fixes #31
2026-02-12 15:25:13 +01:00
can1357 35dd7b9060 chore: bump version to 11.14.4 2026-02-12 12:10:06 +01:00
can1357 c518e24678 fix(coding-agent/mcp): added type assertion to OAuth metadata response for type safety
- Added type assertion to OAuth metadata response to ensure proper type safety.
2026-02-12 12:09:48 +01:00
can1357 be89a26cb6 feat(coding-agent): replaced jsdom with linkedom for improved HTML parsing performance
- Replaced jsdom with linkedom for HTML parsing in browser tool, improving performance and reducing memory footprint.
- Removed @types/jsdom from devDependencies as jsdom is no longer used.
- Simplified HTML document parsing by removing VirtualConsole error handling and direct window cleanup.
2026-02-12 12:08:07 +01:00
can1357 2dc1efad24 feat(coding-agent): exported utility functions and reorganized package structure for better module access
- Exported renderPromptTemplate function from config/prompt-templates module for programmatic prompt template rendering.
- Exported computeLineHash function from patch/hashline module for external patch utility access.
- Added ./cli export path in package.json for direct CLI module access.
2026-02-12 09:40:44 +01:00
can1357 94b6b40fb9 chore: bump version to 11.14.3 2026-02-12 09:27:01 +01:00
can1357 3e18641a5f feat(swarm-extension): moved sources to src and added omp-swarm bin 2026-02-12 09:23:57 +01:00
can1357 b987f0ed75 refactor(coding-agent): moved swarm extension into workspace package 2026-02-12 09:23:57 +01:00
daaximus f26091f288 feat(coding-agent): add swarm extension for multi-agent pipeline orchestration
Adds a standalone extension that orchestrates multi-agent workflows
defined in YAML. Supports pipeline (iterative), parallel (fan-in/out),
sequential, and arbitrary DAG execution patterns.

Each agent runs as a full oh-my-pi subagent with complete tool access.
Agents communicate through the shared workspace filesystem. The
orchestrator handles lifecycle, dependency ordering, and state tracking.

Key components:
- YAML schema parser with validation and cycle detection
- DAG builder with topological sort into execution waves
- Pipeline controller with iteration loop and wave execution
- Filesystem state persistence for monitoring and resumability
- Standalone runner (run-pipeline.ts) for long-running unattended work
- TUI integration via /swarm command

Designed for any task type: research, coding, data processing, content
creation, analysis workflows, or any multi-step objective that benefits
from specialized agents working in coordination.
2026-02-12 09:23:57 +01:00
can1357 0caef39a0f chore: bump version to 11.14.2 2026-02-12 08:40:50 +01:00
can1357 da6558b13b chore: bump version to 11.14.1 2026-02-12 08:38:17 +01:00
can1357 531f8e7f4a chore: updated Claude Code to v2.1.39 with improved reliability and OAuth enhancements
- Updated Claude Code version header to 2.1.39 and runtime version to v24.13.1.
- Increased request timeout from 60s to 600s for improved reliability on slower connections.
- Reordered Accept-Encoding header values to prioritize Brotli compression.
- Updated OAuth endpoints to use platform.claude.com and expanded scopes to include user:sessions:claude_code and user:mcp_servers.
- Removed deprecated beta features claude-code-20250219 and fine-grained-tool-streaming-2025-05-14.
- Improved Bun binary detection and update process with version verification and environment variable checking.
2026-02-12 08:35:15 +01:00
can1357 857abcc321 chore: bump version to 11.14.0 2026-02-12 04:47:42 +01:00
can1357 af20324d62 feat(coding-agent/lsp): added SwiftLint linter client with JSON reporter and bash.virtualTerminal setting
- Added SwiftLint linter client with JSON reporter support for Swift file linting.
- Changed SwiftLint configuration to use 'lint' command with JSON reporter for structured output.
- Changed bash.virtualTerminal default setting from 'on' to 'off' for standard non-interactive execution.
- Implemented SwiftLintClient with lint() method that executes swiftlint with JSON output and converts violations to LSP diagnostics.
- Added bash.virtualTerminal settings option with 'on' (PTY-backed interactive) and 'off' (standard non-interactive) values.
2026-02-12 04:47:24 +01:00
can1357 3d29303296 refactor(coding-agent/modes): restructured tool argument cloning and preview diff injection logic
- Extracted tool arguments cloning logic into dedicated `cloneToolArgs` helper function to improve code reusability.
- Moved preview diff injection logic from `computeHashlineDiff` callback into new `#getCallArgsForRender` method to centralize argument transformation for rendering.
- Applied `cloneToolArgs` to constructor and `updateArgs` method to ensure tool arguments are properly cloned on assignment.
2026-02-12 04:37:25 +01:00
can1357 2c7a32f28c feat(pty): added PTY-backed interactive command execution with streaming output support
- Added PTY (pseudo-terminal) backed interactive command execution with streaming output support via PtySession class in pi-natives.
- Added PtyStartOptions and PtyRunResult types to configure and report PTY session execution status.
- Added write(), resize(), and kill() methods to PtySession for interactive control of running commands.
- Added interactive bash execution via PTY with real-time terminal rendering and input forwarding in bash-interactive tool.
- Added --no-pty CLI flag and PI_NO_PTY environment variable to disable PTY-based interactive bash execution.
- Added bash.virtualTerminal setting to control PTY-backed interactive execution behavior.
2026-02-12 04:34:24 +01:00
can1357 cf864bbf7e feat(coding-agent/lsp): added sourcekit-lsp language server support for Swift files
- Added sourcekit-lsp language server support for Swift files with configuration for command execution and root marker detection.
2026-02-12 03:21:46 +01:00
can1357 e40dbc4892 chore: bump version to 11.13.1 2026-02-12 02:39:58 +01:00
can1357 df7a45b774 feat(coding-agent): added /move command to relocate sessions to different working directories
- Added /move slash command to allow users to relocate sessions to different working directories.
- Added moveTo() method to SessionManager for programmatic session relocation with file system operations and rollback support.
- Added refreshSlashCommandState() method to InteractiveMode for dynamic slash command reloading when changing directories.
- Added setSlashCommands() method to AgentSession to allow external management of file-based slash commands.
- Added handleMoveCommand() handler in command-controller to process /move commands with validation and error handling.
2026-02-12 02:38:59 +01:00
can1357 2e0cbf9f4c feat(oauth): added Perplexity OAuth authentication with native macOS app extraction and email OTP flows
- Added Perplexity OAuth authentication support with native macOS app extraction and email OTP login flows.
- Implemented loginPerplexity and refreshPerplexityToken functions for OAuth token management.
- Created PerplexitySocket class providing Socket.IO v4 client over Engine.IO v4 WebSocket transport with RPC support.
- Added OAuth authentication to Perplexity web search provider with automatic token refresh and SSE streaming support.
- Extended SearchResponse interface with authMode field to track authentication method (oauth or api_key).
- Changed PerplexityProvider.isAvailable() to async to support OAuth token availability checking.
2026-02-12 02:31:58 +01:00
can1357 d0045f77d3 chore: bump version to 11.13.0 2026-02-12 01:12:25 +01:00
can1357 da455e63fd feat: removed .pi configuration directory alias in favor of .omp
- Removed support for `.pi` configuration directory alias in favor of `.omp` across all packages.
- Updated all configuration paths and references from `.pi` to `.omp` in user and project directories.
- Refactored configuration discovery in builtin.ts to simplify directory traversal logic and remove multi-alias support.
- Simplified Python module discovery to use single directory paths instead of arrays of aliases.
- Updated debug and crash log paths from `.pi/agent/` to `.omp/agent/` in TUI package.
2026-02-12 01:12:03 +01:00
can1357 f5c828c147 fix(coding-agent): stop importing creds from legacy dirs 2026-02-12 00:55:55 +01:00
can1357 a44ae81262 refactor(coding-agent): extracted cross-platform path opening logic into unified utility function
- Extracted cross-platform URL and file path opening logic into a unified `openPath` utility function.
- Removed duplicate platform-specific browser opening code from five modules (stats-cli, debug, login-dialog, command-controller, mcp-command-controller) and replaced with calls to the centralized utility.
- Simplified error handling by delegating platform detection and command execution to the reusable utility function.
2026-02-12 00:55:09 +01:00
can1357 66923df045 chore: bump version to 11.12.0 2026-02-12 00:33:51 +01:00
can1357 ebab346561 fix(pr-merge): fixed copilot initiator and provider login regressions 2026-02-12 00:25:11 +01:00
Chris Watson 483497bdcd fix: send X-Initiator: agent header for GitHub Copilot subagent sessions 2026-02-12 00:20:43 +01:00
Chris Watson f4a4aad60d feat(ai): add MiniMax Coding Plan to OAuth login menu
Add MiniMax Coding Plan providers to the interactive login menu:
- minimax-code (International): https://api.minimax.io/v1
- minimax-code-cn (China): https://api.minimaxi.com/v1

Both use API key flow (not OAuth):
- Opens browser to https://platform.minimax.io/subscribe/coding-plan
- User subscribes and pastes API key back to CLI
- API keys stored as OAuth credentials with never-expire timestamp
2026-02-12 00:20:40 +01:00
Chris Watson cf97ef0650 feat(ai): add MiniMax Coding Plan provider
Add support for MiniMax Coding Plan with OpenAI-compatible API:
- New providers: minimax-code (international) and minimax-code-cn (China)
- Environment variables: MINIMAX_CODE_API_KEY and MINIMAX_CODE_CN_API_KEY
- Uses thinkingFormat: 'zai' for reasoning compatibility
- Models: MiniMax-M2, MiniMax-M2.1, MiniMax-M2.1-lightning
- Base URLs: https://api.minimax.io/v1 (intl), https://api.minimaxi.com/v1 (CN)

The Coding Plan is a subscription-based service separate from regular MiniMax API.
2026-02-12 00:19:33 +01:00
Chris Watson 103174ba13 feat(ai): add Z.AI (GLM Coding Plan) as login provider
Add support for z.ai's GLM Coding Plan as a provider accessible via `/login`.
Implements API key-based authentication similar to Kimi Code.

Changes:
- Create login flow in `utils/oauth/zai.ts` with browser redirect to API keys page
- Add API key storage methods (`saveApiKey`, `getApiKey`) to CliAuthStorage
- Register Z.AI in OAuth provider types, exports, and CLI handler
- Add GLM-5 model to Z.AI provider

Users can now authenticate with:
 bunx @oh-my-pi/pi-ai login zai
2026-02-12 00:19:00 +01:00
luk 20098888a0 fix(coding-agent): always include extension-registered tools in initial tool set
Extension-registered tools were excluded when --tools filter was active.
Include them unconditionally alongside custom tools.
2026-02-12 00:19:00 +01:00
can1357 193724d1d4 refactor(coding-agent): restructured hashline format and simplified test infrastructure
- Changed hashline format separator from two spaces to pipe character (|) throughout codebase for consistency.
- Simplified ollama installation checks in test files by replacing execSync with Bun.which() and inverting PI_NO_LOCAL_LLM to PI_LOCAL_LLM environment variable.
- Added early return guards in test beforeAll hooks to skip tests when required tools (ollama, magick) are unavailable.
- Added debug instrumentation to system prompt building via PI_DEBUG_STARTUP environment variable for startup performance monitoring.
- Removed prompt cache retention assertion from openai-codex streaming test.
2026-02-12 00:12:59 +01:00
can1357 833811be59 feat(coding-agent): improved system info collection with macOS detection and optional values
- Added macOS marketing name detection to system information collection for both Rust and TypeScript implementations.
- Changed system info functions to return optional values instead of fallback strings, improving data accuracy.
- Refactored GPU caching to be independent from other system info, reducing unnecessary cache invalidation.
- Updated environment info collection to filter out undefined values, providing cleaner system prompt output.
2026-02-11 20:42:25 +01:00
can1357 f10f60c786 feat(coding-agent): refactored file display mode handling and improved hashline format readability
- Changed hashline display format separator from pipe to two spaces for improved readability.
- Removed `lines` and `hashes` parameters from read tool in favor of automatic file display mode resolution.
- Added `resolveFileDisplayMode` utility to centralize file display mode configuration logic.
- Integrated file display mode settings into grep and read tools for consistent output formatting.
- Consolidated tool parameter types to use schema-derived types via Typebox `Static` utility.
- Updated parseLineRef to handle both legacy pipe-separator and new two-space hashline formats.
2026-02-11 12:11:08 +01:00
can1357 fce033cbed fix(coding-agent/tools): fixed resource leak and async support in browser query handler
- Fixed resource leak in browser query handler by properly disposing owned proxy elements for non-winning candidates.
- Fixed script evaluation to support async functions and await expressions in browser evaluate operations.
- Removed unused maxLines parameter from buildMutationPreviewAgainstOriginal function and simplified preview generation logic.
2026-02-11 09:56:10 +01:00
can1357 209a5c464f chore(react-edit-benchmark): updated runner tool arguments to remove 'ls' skill and add '--no-skills' flag
- [ { "text": "Updated runner tool arguments from 'read,edit,write,ls' to 'read,edit,write' with '--no-skills' flag in single task execution.", "user_visible": false }, { "text": "Updated runner tool arguments from 'read,edit,write,ls' to 'read,edit,write' with '--no-skills' flag in batch execution.", "user_visible": false } ], "issue_refs">.
2026-02-11 09:38:32 +01:00
can1357 ad5ac9d7b4 docs(coding-agent/prompts): simplified system prompt guidance by removing verbose assumption formatting
- Simplified system prompt guidance by removing verbose assumption formatting instructions.
2026-02-11 09:27:23 +01:00