Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/adversarial-fuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ on:
- "internal/connectors/**"
- "internal/runtimefuzz/**"
- "docs/connectors.md"
- "docs/**"
- "README.md"
- "testdata/adversarial/**"
- "testdata/fuzz/**"
- ".github/workflows/adversarial-fuzz.yml"
Expand Down
30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Changelog

All notable changes to Agent Control Plane are documented here.

## [0.1.0-alpha.3] - 2026-09-12

### Added

- Runtime audit ingestion for JSONL, OpenTelemetry JSON, and API Gateway metadata.
- Streaming runtime aggregation with bounded input handling and agent-specific provider matching.
- Versioned `runtime.v1` event schema.
- Runtime findings with SARIF 2.1.0 export, JSON baseline support, and expiring suppressions.
- Rejection of sensitive runtime metadata fields, including prompts, arguments, bodies, headers, authorization data, tokens, and secrets.
- Deterministic `runtime-diff` snapshots with text, JSON, CSV, and HTML output.
- Read-only metadata normalizers for GitHub, GitLab, Docker, and Kubernetes.
- Metadata-only cloud audit normalization for AWS, GCP, and Azure.
- Review-only `policy-draft.v1` generation from runtime activity and correlated cloud resources.
- Adversarial and fuzz checks covering runtime parsers, metadata handling, and connector sanitization.

### Security and boundaries

This alpha remains a local, deterministic, read-only analysis tool. It does not execute scanned content, resolve credentials, contact external APIs from the scan path, read secret values, modify IAM, block traffic, or enforce generated policies. Policy drafts always require human review.

### Verification

The release workflow runs the full test suite, race tests, `go vet`, fuzz payload validation, and the long-running runtime fuzz gates before GoReleaser publishes platform archives and checksums.

## [0.1.0-alpha.2]

Previous public alpha release.
31 changes: 30 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,23 @@ go run ./cmd/agentctl scan ./workspace --format json --output report.json
go run ./cmd/agentctl scan ./workspace --format sarif --fail-on high --output agentctl.sarif
```

Runtime-аудит принимает metadata-only JSONL, OpenTelemetry JSON или API Gateway events:

```bash
go run ./cmd/agentctl runtime-audit events.jsonl \
--inventory static-report.json --format sarif --fail-on high \
--output runtime.sarif
go run ./cmd/agentctl runtime-audit events.jsonl \
--inventory static-report.json --format json --output runtime.json
go run ./cmd/agentctl runtime-diff before-runtime.json after-runtime.json \
--format html --output runtime-diff.html
```

Runtime input is intentionally metadata-only. Prompts, tool arguments, request and
response bodies, authorization headers, tokens and secrets are rejected or omitted.
Runtime findings can be compared with a JSON baseline and can use expiring
reviewed suppressions in the same way as static findings.

For incremental CI gates, keep a reviewed JSON report and suppress findings that
were already accepted in that baseline:

Expand Down Expand Up @@ -129,6 +146,17 @@ ACP-005 is emitted only for MCP policy sources such as `.mcp.json`,
Source-code references to an MCP server are inventory evidence but do not create
a policy finding by themselves.

The runtime audit correlates observed agent activity with that inventory. It supports
streaming JSONL aggregation, OpenTelemetry/API Gateway normalization, runtime SARIF,
stable baselines and expiring suppressions. `runtime-diff` compares snapshots and
exports text, JSON, CSV or HTML.

The read-only connector metadata layer normalizes already-fetched GitHub, GitLab,
Docker and Kubernetes metadata. Cloud audit normalization supports AWS, GCP and
Azure event shapes, and policy generation produces review-only `policy-draft.v1`
objects from observed usage. These layers do not call external APIs, resolve
credentials, read secret values, change IAM, block traffic or enforce policies.

The default policy excludes common non-production paths such as tests, examples, samples, tutorials, fixtures, documentation and schemas. Agent definitions under tooling directories such as `.claude` and `.github`, Markdown agent files, and framework library layouts remain scannable when they contain strong agent signals. Use `.agentctl/config.yaml` to add workspace-specific exclusions and approved providers or MCP servers. `agentctl init` never overwrites an existing policy.

## Risk rules
Expand Down Expand Up @@ -164,11 +192,12 @@ The alpha includes ten explainable rules:

- Detection is heuristic and should be reviewed by a human.
- The alpha scans local repositories and configuration files. A read-only connector metadata layer now normalizes GitHub, GitLab, Docker and Kubernetes discovery payloads; network clients and credential resolution remain outside the local scan path.
- No runtime proxy, IAM remediation, hosted control plane, dashboard or compliance certification is included.
- No runtime proxy, IAM remediation, hosted control plane, dashboard, issue export or compliance certification is included. Cloud policy output is a draft and requires human review.
- JSON and SARIF are stable report formats for static and runtime findings. Runtime snapshots can be compared with `agentctl runtime-diff` and exported as CSV or HTML; issue export is planned.

SARIF is available now. Use `--fail-on high` or `--fail-on critical` to make findings a CI gate; the default `none` keeps scans informational.
Use `agentctl --help`, `agentctl scan --help`, or `agentctl init --help` for the supported command surface.
Use `agentctl runtime-audit --help` and `agentctl runtime-diff --help` for runtime commands.

### GitHub Actions example

Expand Down
Loading