← back to Dw Boardroom Governance

src/agents/vp.ts

48 lines

/**
 * VP Agent — Delegation coordinator
 * Uses keyword routing + exec hierarchy to suggest delegates
 */

import { routeByKeywords, getExecForAgent, buildHierarchyPath } from '../engine/delegationEngine';
import { EXEC_DELEGATES } from '../types';

export interface DelegationSuggestion {
  suggestedDelegate: string | null;
  exec: string | null;
  hierarchyPath: string;
  confidence: 'high' | 'medium' | 'low';
  reasoning: string;
}

export function suggestDelegate(taskDescription: string): DelegationSuggestion {
  const agent = routeByKeywords(taskDescription);

  if (agent) {
    const exec = getExecForAgent(agent);
    return {
      suggestedDelegate: agent,
      exec,
      hierarchyPath: buildHierarchyPath(agent),
      confidence: 'high',
      reasoning: `Keyword match routed to ${agent} under ${exec || 'unknown exec'}`,
    };
  }

  // No keyword match — suggest based on context clues
  return {
    suggestedDelegate: null,
    exec: null,
    hierarchyPath: '',
    confidence: 'low',
    reasoning: 'No keyword match found. Manual delegation recommended.',
  };
}

export function getExecTeam(exec: string): string[] {
  return EXEC_DELEGATES[exec] || [];
}

export function getAllExecs(): string[] {
  return Object.keys(EXEC_DELEGATES);
}