Commit Graph
12 Commits
Author SHA1 Message Date
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 b2f577f49d refactor(coding-agent/core): migrated to async streams with ScopeSignal
- Added ScopeSignal class for composable cancellation with AbortSignal and timeout support.
- Refactored bash-executor to use async/await with stream pipelines and ScopeSignal utility.
- Replaced manual abort handling with untilAborted wrapper across find, ls, notebook, and read tools.
- Simplified error handling by removing manual abort signal listener setup and cleanup logic.
2026-01-04 04:26:33 +01:00
can1357 790a5370bb feat: renamed binary from pi to omp with config migration support
- Renamed CLI binary and package from 'pi' to 'omp' across all platforms and installers.
- Changed environment variable prefix from PI_* to OMP_* with automatic migration support.
- Changed configuration directory from ~/.pi/ to ~/.omp/ with multi-path fallback discovery.
- Added getConfigDirPaths(), findConfigFile(), and readConfigFile() functions for config resolution across .omp, .pi, and .claude directories.
2026-01-03 15:54:45 +01:00
can1357 31cd0cebf9 refactor(coding-agent): extracted bash execution into dedicated executor
- Extracted bash execution logic from bash tool into dedicated BashExecutor with configurable cwd and timeout options.
- Added timeout handling with automatic process termination and timeout-specific result tracking.
- Simplified streaming output handling by replacing rolling buffer with string concatenation.
- Reformatted indentation from spaces to tabs across shell utility files.
2026-01-03 11:07:03 +01:00
can1357 f3a36eb433 feat(coding-agent): added shell environment snapshot to preserve user config
- Added shell environment snapshot feature to preserve user aliases, functions, and shell options across command executions.
- Added zsh support alongside bash for shell detection and configuration.
- Added PI_BASH_NO_CI, PI_BASH_NO_LOGIN, and PI_SHELL_PREFIX environment variables for shell customization.
- Changed Edit tool to reject .ipynb files with guidance to use NotebookEdit tool instead.
- Added shell-snapshot.ts module with snapshot caching, cleanup handlers, and source command generation.
2026-01-03 10:59:26 +01:00
can1357 50ab6b8b1b style: removed .js extension from imports and added node: prefix to builtins 2026-01-03 05:12:25 +01:00
can1357 b85d3f6aa4 merge(pi/main): integrate upstream changes through v0.31.1
Merged 53 commits from pi/main including:
- Export HTML rewrite with tree sidebar and /share command
- Hooks API enhancements (custom status, editor, session management)
- Edit diff preview before tool execution
- TUI fixes (Unicode format chars, OSC 8 hyperlinks, emoji optimization)
- Gemini CLI rate limit retry with server-provided delay
- Various bug fixes and documentation updates

Resolved conflicts by preserving Bun migration (spawn→Bun.spawn,
fs→Bun.file) while accepting upstream's new features and APIs.
2026-01-02 14:34:27 +01:00
can1357 1cee37cf92 build: migrated from Node.js to Bun for native TypeScript support
- Migrated from Node.js to Bun runtime to leverage native TypeScript execution and faster startup times.
- Replaced npm with bun package manager and updated lockfile format.
- Converted Node.js APIs (child_process, fs, readline) to Bun equivalents across all packages.
- Updated shebang lines from node/tsx to bun for CLI entry points.
- Removed TypeScript build step by using source files directly as package entry points.
- Updated CI workflows to use Bun instead of Node.js for installation and testing.
2026-01-02 13:46:05 +01:00
Mario Zechner 6632efe323 refactor(hooks): split session events into individual typed events
Major changes:
- Replace monolithic SessionEvent with reason discriminator with individual
  event types: session_start, session_before_switch, session_switch,
  session_before_new, session_new, session_before_branch, session_branch,
  session_before_compact, session_compact, session_shutdown
- Each event has dedicated result type (SessionBeforeSwitchResult, etc.)
- HookHandler type now allows bare return statements (void in return type)
- HookAPI.on() has proper overloads for each event with correct typing

Additional fixes:
- AgentSession now always subscribes to agent in constructor (was only
  subscribing when external subscribe() called, breaking internal handlers)
- Standardize on undefined over null throughout codebase
- HookUIContext methods return undefined instead of null
- SessionManager methods return undefined instead of null
- Simplify hook exports to 'export type * from types.js'
- Add detailed JSDoc for skipConversationRestore vs cancel
- Fix createBranchedSession to rebuild index in persist mode
- newSession() now returns the session file path

Updated all example hooks, tests, and emission sites to use new event types.
2025-12-30 22:42:22 +01:00
Mario Zechner 58828adf76 Reorganize file structure: core/, utils/, modes/interactive/components/, modes/interactive/theme/ 2025-12-09 00:51:33 +01:00
Mario Zechner ce5e888778 WP2: Create AgentSession basic structure + update plan for keep-old-code strategy 2025-12-09 00:05:06 +01:00
Mario Zechner ed81d2ac56 WP1: Create bash-executor.ts with unified bash execution 2025-12-09 00:01:36 +01:00