feat(agent-spec): add direct argv launches - #69
Conversation
agent-session-id: a078daee-6f98-4916-91a8-d21291407789 agent-tool: Codex CLI agent-tool-version: 0.145.0 agent-model: unknown agent-runtime-profile: /nix/store/mnx8agbdq3wiyb6vz63lhgscgazkrn98-coding-agent-runtime-profile/share/coding-agents/profile.json agent-skills-manifest: /nix/store/5r69m9k2llmri3na81518zx0a7y0d3cn-agent-skills-corpus/share/agent-skills/manifest.json tooling-profile: dotfiles@0fb7e03
myobie
left a comment
There was a problem hiding this comment.
I like this direction. A structured direct-argv launch is a clearer default whenever a declaration does not need shell syntax, while preserving command as the explicit shell escape hatch.
One validation edge should be closed before this is marked ready: argv "" is a non-empty vector, so validate_launch accepts it even though element 0 is the program and spawning it can only fail later. Please reject an empty program (and add the compact/explicit regression cases) alongside the existing empty-vector and command+argv checks.
Interested in reviewing the finished PR; this comment is not yet merge approval.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7e1f4ec1e3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
agent-session-id: a078daee-6f98-4916-91a8-d21291407789 agent-tool: Codex CLI agent-tool-version: 0.145.0 agent-model: unknown agent-runtime-profile: /nix/store/mnx8agbdq3wiyb6vz63lhgscgazkrn98-coding-agent-runtime-profile/share/coding-agents/profile.json agent-skills-manifest: /nix/store/5r69m9k2llmri3na81518zx0a7y0d3cn-agent-skills-corpus/share/agent-skills/manifest.json tooling-profile: dotfiles@0fb7e03
|
Addressed the remaining launch-validation edge in 1968343: both compact and explicit Posted on behalf of @schickling
|
Why
Agent Specs currently require shell source even when the declaration already knows the exact
program and argument boundaries. Authors therefore need shell quoting and a leading
execsolelyto avoid retaining an intermediate shell process.
Closes #67.
What
argvlaunch declarations alongside the existingcommandshell form;sh -c;compile-agentoutput to the direct form.How
The declaration model preserves
commandand addsargv, rejecting empty vectors, empty programs,and declarations that provide both. Reconciliation lowers either representation into a typed task
launch. PTY tasks place direct values verbatim after
pty run ... --; terminal-free tasks pass theprogram and arguments through the existing isolation wrapper.
$VARexpansion follows the existingnon-shell field behavior, including Codex hook-gate classification, while shell commands retain
their exact historical semantics.
Rationale
Keeping
commandunchanged preserves pipelines, redirects, variable expansion, and compound shellprograms. A separate structured form avoids guessing shell syntax, preserves exact argument
boundaries, and lets bare programs resolve through the controlled task
PATH.Verification
nix flake check --print-build-logscargo clippy --all-targets --all-features -- -D warningsCanonical Agent Spec follow-up
compoundingtech/evals#44 tracks updating the
pinned canonical authoring contract and executable semantic coverage after this implementation
lands.
Posted on behalf of @schickling
agent_nameagent_session_idagent_toolagent_tool_versionagent_runtimeagent_modelruntime_profileskills_manifestworktreemachinetooling_profile