Skip to content

Framework detector — identify agent frameworks in codebase #2

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfactoryOpt-in for autonomous Factory buildp1High priority

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions