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
27 changes: 15 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,17 @@ test-changed-charts:

test-opencode-server-agents:
@set -euo pipefail; \
expected="$$(printf '%s\n' '---' "description: Use for bounded generic coding, debugging, or repository tasks when the assigning primary agent's execution budget is nearing completion or it otherwise needs execution capacity; the primary retains task interpretation, safety, delivery decisions, and final synthesis" 'mode: subagent' 'model: openai/gpt-6-sol' 'variant: default' '---')"; \
expected="$$(printf '%s\n' '---' "description: Use for bounded generic coding, debugging, or repository tasks when the assigning primary agent's execution budget is nearing completion or it otherwise needs execution capacity; the primary retains task interpretation, safety, delivery decisions, and final synthesis" 'mode: subagent' 'model: openai/gpt-6.1-sol' 'variant: medium' '---')"; \
test "$$(cat opencode-server/files/agents/terra.md)" = "$$expected"; \
expected_devops="$$(printf '%s\n' '---' 'description: Read-only DevOps integration and delivery reviewer for proposed designs or completed changes involving CI, GitHub Actions, shared workflows, artifacts, GitOps handoffs, runners, permissions, and deployment contracts; requires a supplied integration map and never implements or mutates systems' 'mode: subagent' 'model: openai/gpt-6-sol' 'permission:' ' "*": deny' ' edit: deny' ' bash: deny' '---')"; \
expected_devops="$$(printf '%s\n' '---' 'description: Read-only DevOps integration and delivery reviewer for proposed designs or completed changes involving CI, GitHub Actions, shared workflows, artifacts, GitOps handoffs, runners, permissions, and deployment contracts; requires a supplied integration map and never implements or mutates systems' 'mode: subagent' 'model: openai/gpt-6.1-sol' 'variant: medium' 'permission:' ' "*": deny' ' edit: deny' ' bash: deny' '---')"; \
actual_devops="$$(awk '{print} /^---$$/{n++; if (n==2) exit}' opencode-server/files/agents/devops-engineer.md)"; \
test "$$actual_devops" = "$$expected_devops"; \
! grep -Fq 'variant:' opencode-server/files/agents/devops-engineer.md; \
grep -Fqx 'variant: medium' opencode-server/files/agents/devops-engineer.md; \
grep -Fqx 'Use `DESIGN` mode only for a supplied proposal. Assess whether the proposed contracts, owners, validations, and delivery stages are sufficiently specified to proceed to implementation.' opencode-server/files/agents/devops-engineer.md; \
grep -Fqx 'Use `CHANGE` mode only for a completed diff and all affected workflows. Assess the implemented integration contract and supplied validation evidence. Flag needless bespoke automation even where no supplied contract expressly prohibits it.' opencode-server/files/agents/devops-engineer.md; \
grep -Fqx '## VERDICT: ADVANCE / HOLD / REJECT' opencode-server/files/agents/devops-engineer.md; \
for agent in default makeitwork xnoto career teacher; do grep -Fq '`devops-engineer` for CI, workflow, shared-workflow, artifact,' "opencode-server/files/agents/$$agent.md"; done; \
expected_cloud="$$(printf '%s\n' '---' 'description: Read-only preimplementation cloud architecture review for new services or material service-selection, topology, state, recovery, scaling, or cost changes; challenges supplied designs for requirements fit and unnecessary complexity, not routine changes or completed-code review' 'mode: subagent' 'model: openai/gpt-6-sol' 'variant: default' 'permission:' ' "*": deny' ' edit: deny' ' bash: deny' '---')"; \
expected_cloud="$$(printf '%s\n' '---' 'description: Read-only preimplementation cloud architecture review for new services or material service-selection, topology, state, recovery, scaling, or cost changes; challenges supplied designs for requirements fit and unnecessary complexity, not routine changes or completed-code review' 'mode: subagent' 'model: openai/gpt-6.1-sol' 'variant: medium' 'permission:' ' "*": deny' ' edit: deny' ' bash: deny' '---')"; \
actual_cloud="$$(awk '{print} /^---$$/{n++; if (n==2) exit}' opencode-server/files/agents/cloud-architecture-reviewer.md)"; \
test "$$actual_cloud" = "$$expected_cloud"; \
grep -Fqx '## Required inputs' opencode-server/files/agents/cloud-architecture-reviewer.md; \
Expand Down Expand Up @@ -77,15 +77,18 @@ test-opencode-server-agents:
done; \
for reviewer in adversarial-code-reviewer infra-security-reviewer recruiter-resume-reviewer; do \
reviewer_frontmatter="$$(awk '{print} /^---$$/{n++; if (n==2) exit}' "opencode-server/files/agents/$$reviewer.md")"; \
grep -Fqx 'model: openai/gpt-6-sol' <<< "$$reviewer_frontmatter"; \
grep -Fqx 'variant: high' <<< "$$reviewer_frontmatter"; \
grep -Fqx 'model: openai/gpt-6.1-sol' <<< "$$reviewer_frontmatter"; \
case "$$reviewer" in recruiter-resume-reviewer) variant=high ;; *) variant=xhigh ;; esac; \
grep -Fqx "variant: $$variant" <<< "$$reviewer_frontmatter"; \
done; \
for agent in luna qa-engineer; do \
luna_frontmatter="$$(awk '{print} /^---$$/{n++; if (n==2) exit}' "opencode-server/files/agents/$$agent.md")"; \
grep -Fqx 'model: openai/gpt-6-luna' <<< "$$luna_frontmatter"; \
test "$$(grep -Ec '^variant:' <<< "$$luna_frontmatter")" -eq 0; \
case "$$agent" in luna) variant=low ;; *) variant=medium ;; esac; \
grep -Fqx "variant: $$variant" <<< "$$luna_frontmatter"; \
done; \
grep -Fqx 'version: 0.5.3' opencode-server/Chart.yaml; \
grep -Fqx 'version: 0.5.4' opencode-server/Chart.yaml; \
grep -Fqx ' "model": "openai/gpt-6.1-sol",' opencode-server/files/opencode.json; \
grep -Fqx ' "default_agent": "default",' opencode-server/files/opencode.json; \
! grep -Fq 'twilio-docs' opencode-server/files/opencode.json; \
test ! -e opencode-server/files/skills/twilio-docs-troubleshooting; \
Expand Down Expand Up @@ -181,7 +184,7 @@ test-opencode-server-agents:
for agent in $$primary_agents; do \
frontmatter="$$(awk '{print} /^---$$/{n++; if (n==2) exit}' "opencode-server/files/agents/$$agent.md")"; \
grep -Fqx 'model: openai/gpt-6.1-sol' <<< "$$frontmatter"; \
test "$$(grep -Ec '^variant:' <<< "$$frontmatter")" -eq 0; \
grep -Fqx 'variant: medium' <<< "$$frontmatter"; \
policy="$$(tr -s '[:space:]' ' ' < "opencode-server/files/agents/$$agent.md")"; \
grep -Fqi 'without a custom project name' <<< "$$policy"; \
grep -Fqi 'retry once' <<< "$$policy"; \
Expand Down Expand Up @@ -243,8 +246,8 @@ test-opencode-server-agents:
grep -Fqx ' terra.md: |-' <<< "$$rendered"; \
grep -Fqx " description: Use for bounded generic coding, debugging, or repository tasks when the assigning primary agent's execution budget is nearing completion or it otherwise needs execution capacity; the primary retains task interpretation, safety, delivery decisions, and final synthesis" <<< "$$rendered"; \
grep -Fqx ' mode: subagent' <<< "$$rendered"; \
grep -Fqx ' model: openai/gpt-6-sol' <<< "$$rendered"; \
grep -Fqx ' variant: default' <<< "$$rendered"; \
grep -Fqx ' model: openai/gpt-6.1-sol' <<< "$$rendered"; \
grep -Fqx ' variant: medium' <<< "$$rendered"; \
grep -Fqx ' - key: terra.md' <<< "$$rendered"; \
grep -Fqx ' path: agents/terra.md' <<< "$$rendered"; \
grep -Fqx ' devops-engineer.md: |-' <<< "$$rendered"; \
Expand All @@ -254,7 +257,7 @@ test-opencode-server-agents:
archive_dir="$$(mktemp -d)"; \
trap 'rm -rf "$$archive_dir"' EXIT; \
helm package opencode-server --destination "$$archive_dir" > /dev/null; \
archive="$$(find "$$archive_dir" -maxdepth 1 -type f -name 'opencode-server-0.5.3.tgz' -print -quit)"; \
archive="$$(find "$$archive_dir" -maxdepth 1 -type f -name 'opencode-server-0.5.4.tgz' -print -quit)"; \
test -n "$$archive"; \
archive_entries="$$(tar -tzf "$$archive")"; \
! grep -Fq 'twilio-docs-troubleshooting' <<< "$$archive_entries"; \
Expand Down
2 changes: 1 addition & 1 deletion opencode-server/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v2
name: opencode-server
description: OpenCode server Deployment and non-secret configuration
version: 0.5.3
version: 0.5.4
appVersion: "2.0.22"
type: application
Loading
Loading