Skip to content

Framework detector — identify agent frameworks in codebase #2

@rodchalski

Description

@rodchalski

Goal

Detect which AI agent frameworks are used in a scanned project. This feeds into the permission gap analyzer (issue #3).

Supported Frameworks (v1)

Detect via package.json, requirements.txt, pyproject.toml, go.mod, pom.xml, and import statements:

Framework Package/Import Language
LangChain langchain, @langchain/* Python, TS
LangGraph langgraph, @langchain/langgraph Python, TS
CrewAI crewai Python
OpenAI Agents SDK openai-agents, openai/agents Python
MCP @modelcontextprotocol/*, mcp TS, Python
Vercel AI SDK ai, @ai-sdk/* TS
Amazon Bedrock @aws-sdk/client-bedrock*, boto3 (bedrock) TS, Python
AutoGen autogen, pyautogen Python
Permission Protocol @permission-protocol/sdk, permission-protocol TS, Python

Output Interface

interface DetectionResult {
  frameworks: Array<{
    name: string;
    language: "typescript" | "python" | "java" | "go";
    version?: string;
    source: string; // e.g. "package.json", "requirements.txt"
  }>;
  ppInstalled: boolean; // Is Permission Protocol SDK already present?
  entryPoints: Array<{
    file: string;
    type: "agent" | "tool" | "prompt" | "mcp-server" | "mcp-client";
    framework: string;
  }>;
  files: {
    scanned: number;
    relevant: number;
  };
}

Detection Strategy

  1. Manifest scan — Check dependency files for known packages
  2. Import scan — Grep source files for framework imports to catch unlisted deps
  3. Entry point identification — Find files that instantiate agents, define tools, or configure MCP servers

Acceptance Criteria

  • Detects all 9 frameworks listed above
  • Identifies whether PP SDK is already installed
  • Finds agent/tool entry points with file paths
  • Works on TypeScript and Python projects (minimum)
  • Returns structured DetectionResult object
  • Unit tests for each framework detection

Depends On

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions