From eb664733c7573f1b0182257f8b7d61133f37e672 Mon Sep 17 00:00:00 2001 From: Abir Abbas Date: Fri, 26 Jun 2026 14:52:11 -0400 Subject: [PATCH 1/2] chore: add agentfield-package.yaml for `af install` Declares this node's entrypoint, default port, and required/optional environment so it can be installed and started with `af install`/`af run` (see Agent-Field/agentfield#692). Secrets are prompted once and stored encrypted; nothing is committed in plaintext. Co-Authored-By: Claude Opus 4.8 (1M context) --- agentfield-package.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 agentfield-package.yaml diff --git a/agentfield-package.yaml b/agentfield-package.yaml new file mode 100644 index 0000000..387a35d --- /dev/null +++ b/agentfield-package.yaml @@ -0,0 +1,39 @@ +name: sec-af +version: 0.1.0 +description: Security review agent node (scans repositories for vulnerabilities) +author: Agent-Field + +entrypoint: + start: python -m sec_af.app + healthcheck: /health + +agent_node: + node_id: sec-af + default_port: 8080 + +user_environment: + required: + - name: OPENROUTER_API_KEY + description: LLM provider key (OpenRouter) + type: secret + scope: global + optional: + - name: AGENTFIELD_SERVER + description: Control-plane URL + default: http://localhost:8080 + - name: AGENTFIELD_API_KEY + description: Control-plane API key (if auth is enabled) + type: secret + scope: global + - name: HARNESS_PROVIDER + description: Coding-agent harness provider + default: opencode + - name: HARNESS_MODEL + description: Model the harness uses + default: openrouter/moonshotai/kimi-k2.5 + - name: AI_MODEL + description: Model for direct AI calls + default: openrouter/moonshotai/kimi-k2.5 + - name: SCAN_REPOS_PATH + description: Local path where repos to scan are mounted + default: ./workspaces From 1f13fcaabab6a04c6fb7a4f2b5c375d0ca33efcd Mon Sep 17 00:00:00 2001 From: Abir Abbas Date: Tue, 7 Jul 2026 21:03:46 -0400 Subject: [PATCH 2/2] chore: stamp config_version: v1 and fix workspaces env var MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Declare the manifest schema version explicitly (v1 — the current format; omitting it means legacy v0). Also replace SCAN_REPOS_PATH (which the code never reads) with SEC_AF_WORKSPACES_DIR, the variable app.py actually uses for the clone directory (default /workspaces), so the declared env matches runtime behaviour. Co-Authored-By: Claude Opus 4.8 (1M context) --- agentfield-package.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/agentfield-package.yaml b/agentfield-package.yaml index 387a35d..c677a4d 100644 --- a/agentfield-package.yaml +++ b/agentfield-package.yaml @@ -1,3 +1,4 @@ +config_version: v1 # manifest schema version (omit = legacy v0) name: sec-af version: 0.1.0 description: Security review agent node (scans repositories for vulnerabilities) @@ -34,6 +35,6 @@ user_environment: - name: AI_MODEL description: Model for direct AI calls default: openrouter/moonshotai/kimi-k2.5 - - name: SCAN_REPOS_PATH - description: Local path where repos to scan are mounted - default: ./workspaces + - name: SEC_AF_WORKSPACES_DIR + description: Directory where repos to scan are cloned (falls back to ~/.sec-af/workspaces if not writable) + default: /workspaces