Agent harness platform and meta framework.
Find a file
tegwick 8faa14ae7b GLAS-WP-0018: record hub ids from fix-consistency
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: sonnet
Assistant-Process: 328925@bnt-lap001
Assistant-Session: 14b795fd-c632-4c01-8d28-e7e490c7b0ed
2026-10-24 23:52:29 +02:00
.forgejo/workflows fix: enforce sandbox execution boundary 2026-08-21 10:40:29 +02:00
docs fix(harness): limit provider credential routes to workload commands 2026-10-16 07:43:50 +02:00
examples Make profile runtime readiness explicit 2026-08-23 11:32:23 +02:00
history GLAS-WP-0018: assess session-scoped agent identity and tool boundary; propose workplan 2026-10-24 23:49:27 +02:00
profiles GLAS-WP-0016-T02: record sand-boxer egress profile, FI profile readiness unverified 2026-10-13 22:52:12 +02:00
registry docs(reuse): establish reviewed NetKingdom security capabilities 2026-10-14 06:39:10 +02:00
research A list of kings names 2026-08-20 16:50:00 +02:00
scripts fix(harness): limit provider credential routes to workload commands 2026-10-16 07:43:50 +02:00
src/glas_harness fix(harness): limit provider credential routes to workload commands 2026-10-16 07:43:50 +02:00
tests fix(harness): limit provider credential routes to workload commands 2026-10-16 07:43:50 +02:00
workplans GLAS-WP-0018: record hub ids from fix-consistency 2026-10-24 23:52:29 +02:00
.generated-work-records.json build: adopt staged work-record generation 2026-10-19 13:30:56 +02:00
.generated-work-records.mk build: adopt staged work-record generation 2026-10-19 13:30:56 +02:00
.gitignore chore: keep generated orientation brief local 2026-10-19 13:50:21 +02:00
.repo-classification.yaml Initial commit 2026-06-22 19:22:49 +00:00
AGENTS.md AGENTS.md: fill unresolved {CREDENTIAL_ROUTING} placeholder with the credential-routing section 2026-09-22 08:27:44 +02:00
INTENT.md Name snuggles-inventor as the code-generation owner in the boundary. 2026-09-24 09:56:40 +02:00
LICENSE Adopt Target Revenue Source License V1C1 (org-wide preliminary rollout) 2026-07-30 00:17:57 +02:00
Makefile build: adopt staged work-record generation 2026-10-19 13:30:56 +02:00
pyproject.toml fix: enforce sandbox execution boundary 2026-08-21 10:40:29 +02:00
README.md docs: reconcile Claude readiness with authorization chain proof 2026-09-06 19:21:56 +02:00
SCOPE.md chore: keep generated orientation brief local 2026-10-19 13:50:21 +02:00
WORK-RECORDS.md GLAS-WP-0018: assess session-scoped agent identity and tool boundary; propose workplan 2026-10-24 23:49:27 +02:00

glas-harness

glas-harness is the primary execution-layer abstraction for governed agent work. Consumers select a versioned Glas profile; Glas resolves the concrete rein, model route, sandbox profile, tool policy, and limits, runs the outer lifecycle, and returns one normalized evidence envelope.

The consumer contract does not name a Python rein class or provider CLI:

assignment / channel / activity
  -> ExecutionRequest(harness_profile_ref=...)
  -> Glas profile resolution
  -> rein + model + sandbox + tool policy
  -> normalized ExecutionEvidence

Profiles

Catalog YAML rejects duplicate mapping keys, including collisions introduced by merge keys. Use one explicit value per key; later entries cannot override earlier credential routes, limits, or rein capabilities. Errors identify the file and line without printing the duplicate key or value.

List and validate every committed catalog profile, including its independently declared runtime readiness:

glas-harness profiles
glas-harness profiles --json

Current constellations include:

  • harness.agent-dev-local@1.0.0: rein-aharness, Claude Code model route, local bwrap sandbox.
  • harness.agent-dev-openweights-local@1.0.0: rein-openweights, OpenRouter open-weight route, local bwrap sandbox.
  • harness.agent-dev@1.0.0: rein-aharness, remote agent-dev sandbox.

The two local profiles remain blocked pending their combined runtime, credential-delivery and provider acceptance. Owner-mediated execution is implemented, with separate non-secret boundary, runtime-startup, egress and synthetic-credential proofs. Those proofs do not establish a real local model run. The remote profile is unverified: it may be used only as an explicitly labeled proof attempt. No committed profile is currently declared ready.

Start a bounded proof attempt through the currently unverified remote profile:

glas-harness run \
  --harness-profile harness.agent-dev@1.0.0 \
  --repo /absolute/path/to/repo \
  --title "Bounded change" \
  --description "Make the requested change and commit it"

There is no governed default rein, model, sandbox, or tool profile. Unknown, disabled, incompatible, ambiguous, and operationally blocked selections are refused before sandbox creation. An unverified selection is allowed so a bounded proof can establish or disprove readiness, and its evidence retains that state.

After creation, execution uses only the reachability-derived sandbox workspace: same-host commands use sand-boxer owner-mediated execution, while remote workspaces are reached over SSH. The source checkout is provisioning input, not a rein workdir.

See SCOPE.md, INTENT.md, docs/execution-profiles.md, and docs/harness-contract.md.

Development

uv run pytest -q