Skip to content

feat: add package manager command runner#170

Merged
exKAZUu merged 9 commits into
mainfrom
add-package-manager-runner
May 19, 2026
Merged

feat: add package manager command runner#170
exKAZUu merged 9 commits into
mainfrom
add-package-manager-runner

Conversation

@exKAZUu
Copy link
Copy Markdown
Member

@exKAZUu exKAZUu commented May 19, 2026

Summary

  • Add a reusable helper that copies a submission into a temporary project directory, overlays package-manager project files from the problem directory, runs a command with stdin and timeout handling, and cleans up afterward.
  • Support JavaScript package managers, uv-based Python projects, Maven, Gradle, Ruby/Bundler, Rust/Cargo, and Go module project files by default.
  • Harden package-manager execution with output limits, timeout escalation, POSIX process-group termination, optional GNU time based RSS measurement, EPIPE-tolerant stdin handling, merged environment variables, and outputLimitExceeded integration with commandJudgePreset.
  • Export both the command runner and the project-file copy helper from the package root.

Testing

  • yarn verify
  • bunx @willbooster/agent-skills@1.28.0 review --agent all
  • bunx @willbooster/agent-skills@1.28.0 check-pr-ci

exKAZUu and others added 2 commits May 20, 2026 00:08
Co-authored-by: WillBooster (Codex CLI) <agent@willbooster.com>
Co-authored-by: WillBooster (Codex CLI) <agent@willbooster.com>
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new helper function, runCommandInTemporaryPackageManagerProject, which facilitates running commands within a temporary project environment for various package managers. The review identified several critical improvements: implementing a buffer size limit for stdout and stderr to prevent memory exhaustion, adjusting the execution time measurement to exclude setup overhead, and merging environment variables instead of replacing them. Additionally, it was recommended to use SIGKILL for more reliable process termination and to ensure that timeouts are cleared when a subprocess error occurs to prevent memory leaks.

Comment thread src/helpers/runCommandInTemporaryPackageManagerProject.ts
Comment thread src/helpers/runCommandInTemporaryPackageManagerProject.ts
Comment thread src/helpers/runCommandInTemporaryPackageManagerProject.ts
Comment thread src/helpers/runCommandInTemporaryPackageManagerProject.ts
Comment thread src/helpers/runCommandInTemporaryPackageManagerProject.ts Outdated
exKAZUu and others added 7 commits May 20, 2026 00:15
Co-authored-by: WillBooster (Codex CLI) <agent@willbooster.com>
Co-authored-by: WillBooster (Codex CLI) <agent@willbooster.com>
Co-authored-by: WillBooster (Codex CLI) <agent@willbooster.com>
Co-authored-by: WillBooster (Codex CLI) <agent@willbooster.com>
Co-authored-by: WillBooster (Codex CLI) <agent@willbooster.com>
Co-authored-by: WillBooster (Codex CLI) <agent@willbooster.com>
Co-authored-by: WillBooster (Codex CLI) <agent@willbooster.com>
@exKAZUu exKAZUu merged commit ba6607b into main May 19, 2026
6 checks passed
@exKAZUu exKAZUu deleted the add-package-manager-runner branch May 19, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant