Files
portal/tools/router-config.mjs
T
Дмитрий 2fe4e1c4bc feat(brain): router-config + nodes.yaml capabilities (phase 2 task 8)
Phase 2 Task 8 of LLM-first router overhaul.

- tools/router-config.mjs: 4 constants (CLASSIFIER_MODEL='claude-sonnet-4-6',
  REVIEWER_MODEL='claude-opus-4-7', INHERITANCE_MAX_AGE_MIN=30,
  REVIEWER_MAX_NEIGHBOR_EPISODES=10). Sonnet 4.6 ID resolved via ProxyAPI
  /v1/models 2026-05-25 — only alias 'claude-sonnet-4-6' is exposed (no dated
  YYYYMMDD form on this reseller); alias is canonical here.
- docs/registry/nodes.yaml: capabilities: line added to all 85 nodes
  (1-2 sentences describing what each node DOES, not when to choose it —
  classifier infers selection from capabilities + user prompt). Generated
  by Sonnet subagent from CLAUDE.md §3.x + Tooling §4.X attribute blocks
  + spec §18.3 format. Spot-checked + verified no forbidden 'use when' framing.
- docs/registry/schema.json: +capabilities top-level node property
  (type:string minLength:1). G12 'permissive' note in plan was stale —
  schema had additionalProperties:false; explicit extension is the
  cleanest compliant path.

Verify (plan Step 2): nodes=85 caps=85, exit 0.
Tests: tools/router-config.test.mjs 4/4 PASS + tools/registry-load.test.mjs
11/11 PASS (Ajv schema-validate on amended schema GREEN).
2026-05-25 14:28:24 +03:00

11 lines
578 B
JavaScript

// tools/router-config.mjs — central router constants (Phase 2 Task 8)
// Source: spec docs/superpowers/specs/2026-05-24-llm-first-router-overhaul-design.md v2.3
// Resolved Sonnet/Opus IDs via ProxyAPI /v1/models 2026-05-25:
// ProxyAPI exposes Sonnet 4.6 only as alias `claude-sonnet-4-6` (no dated YYYYMMDD form)
// — alias is canonical here. Opus 4.7 — `claude-opus-4-7`.
export const CLASSIFIER_MODEL = 'claude-sonnet-4-6';
export const REVIEWER_MODEL = 'claude-opus-4-7';
export const INHERITANCE_MAX_AGE_MIN = 30;
export const REVIEWER_MAX_NEIGHBOR_EPISODES = 10;