Skip to content
Open
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
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Opfor is an open-source red-teaming toolkit for AI agents and MCP servers. It ge
opfor/
├── core/ # @keyvaluesystems/agent-opfor-core — shared engine (npm workspace, compiled to core/dist/)
│ └── src/
│ ├── autonomous/ # Autonomous red-teaming orchestration (orchestrator, prompts, tools, state, report, knowledge)
│ ├── autonomous/ # Autonomous red-teaming orchestration (orchestrator, prompts, tools, state, report, knowledge). Optional trace-aware testing lives in lib/telemetry.ts (grounding + per-thread trace-id propagation + finding/get_trace enrichment), reusing core/src/telemetry/
│ ├── catalog/ # discoverEvaluators.ts, loadCatalog.ts — YAML evaluator/suite discovery
│ ├── config/ # types.ts, schema.ts (Zod), evaluatorsLayout.ts, skillsLayout.ts, resolveTelemetryEnv.ts, loadPrompt.ts
│ ├── execute/ # Run orchestration: runAll.ts (thin orchestrator) → evaluatorLoop.ts → attackRunner.ts (Template Method) + agentAttackDriver.ts/mcpAttackDriver.ts; plus aggregate.ts, baselineScanner.ts, runListener.ts, runAllBrowser.ts, types.ts
Expand Down Expand Up @@ -212,7 +212,7 @@ npm test # vitest in core/
| `runners/cli/src/index.ts` | CLI entrypoint — registers `setup`, `run`, and `hunt` |
| `runners/cli/src/commands/setup.ts` | Interactive wizard; emits `.opfor/configs/opfor-config-<ts>-<id>.json`; supports `--agent/--mcp/--empty` |
| `runners/cli/src/commands/run.ts` | `opfor run` — reads `--config` (or runs the setup wizard inline when omitted), calls `runAll`, then `writeReport`. Overrides: `--effort`/`--turns`/`--output`/`--env`; `--events <path>` streams NDJSON lifecycle events. |
| `runners/cli/src/commands/hunt.ts` | `opfor hunt` — autonomous red-teaming; agentic commander/operator/scout architecture; `--ui` flag for browser setup UI |
| `runners/cli/src/commands/hunt.ts` | `opfor hunt` — autonomous red-teaming; agentic commander/operator/scout architecture; `--ui` flag for browser setup UI; optional trace-aware testing via `--telemetry-config` (or a `telemetry` block in `--target-config`) |
| `runners/cli/src/lib/artifacts.ts` | `.opfor/configs/` + `.opfor/reports/` path helpers (`newConfigPath()`, `ensureOpforDirs()`) |
| `runners/mcp/src/index.ts` | MCP server: registers `opfor_list_evaluators`, `opfor_setup`, `opfor_run` tools |
| `runners/extension/service_worker.js` | Extension entry point — message routing; imports from focused ES modules |
Expand Down
17 changes: 17 additions & 0 deletions core/src/autonomous/lib/models.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Model-alias resolution shared across the autonomous runner (self_check verifier,
// trace-curation model, …). Maps short aliases to full Anthropic ids, honoring the
// ANTHROPIC_DEFAULT_*_MODEL gateway overrides.

/** Resolve a model alias to a full Anthropic API model id, respecting gateway env-var overrides. */
export function resolveModelId(model: string): string {
switch (model) {
case "opus":
return process.env.ANTHROPIC_DEFAULT_OPUS_MODEL ?? "claude-opus-4-8";
case "sonnet":
return process.env.ANTHROPIC_DEFAULT_SONNET_MODEL ?? "claude-sonnet-4-6";
case "haiku":
return process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL ?? "claude-haiku-4-5-20251001";
default:
return model; // assume a full id was provided
}
}
Loading
Loading