Skip to content

feat: agent.yaml parser, payload renderer, and go.work workspace#46

Merged
robbycochran merged 2 commits into
mainfrom
rc/phase2-agent-parser
Jun 8, 2026
Merged

feat: agent.yaml parser, payload renderer, and go.work workspace#46
robbycochran merged 2 commits into
mainfrom
rc/phase2-agent-parser

Conversation

@robbycochran

Copy link
Copy Markdown
Collaborator

Summary

  • Adds internal/agent package: AgentConfig struct with YAML parsing, BuildEnvSh/BuildRunSh generators, RenderPayload for self-contained payload directories
  • Adds go.work Go workspace linking root module and sandbox/launcher, enabling the launcher to import internal/ packages in follow-up PRs
  • Changes gws type in providers.toml from custom to openshell (matches reality after feat: GWS native provider with gateway-managed OAuth refresh #44)
  • 18 tests covering parser validation, env generation, payload rendering, path traversal protection

Context

Phase 2 foundation for payload consolidation. This PR introduces the agent config format that replaces profile.toml with declarative YAML. Follow-up PRs will wire this into harness up/harness create, refactor the launcher, and migrate profiles/ to agents/.

Test plan

  • go test ./internal/agent/... passes (18 tests)
  • go test ./... passes (no regressions)
  • cd sandbox/launcher && go test ./... passes
  • go vet ./... clean

Phase 2 foundation: adds the agent config package that replaces profile.toml
with a declarative YAML format. The payload renderer generates self-contained
payload directories (env.sh, run.sh, bin/, task.md) uploaded to sandboxes.

New:
- internal/agent: AgentConfig struct, Parse/ParseFile, BuildEnvSh, BuildRunSh,
  RenderPayload with path traversal protection on include: paths
- go.work: Go workspace linking root module and sandbox/launcher module,
  enabling the launcher to import internal/ packages in follow-up PRs
- 18 tests covering parser validation, env generation, run.sh template,
  payload rendering, and security edge cases

Also:
- providers.toml: change gws type from custom to openshell (matches
  reality after GWS native provider in PR 44)
The launcher will be replaced by the harness binary in a container image,
eliminating the need for a Go workspace. The separate sandbox/launcher
module will be deleted when the harness gains in-cluster support.
@robbycochran robbycochran merged commit c064748 into main Jun 8, 2026
6 checks passed
@robbycochran robbycochran deleted the rc/phase2-agent-parser branch June 13, 2026 14:03
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