{
  "action_maps": [
    {
      "label": "async_get_weather",
      "mappings": [],
      "matched_via": "none",
      "subject_id": "cap_async_get_weather"
    },
    {
      "label": "function_with_state",
      "mappings": [],
      "matched_via": "none",
      "subject_id": "cap_function_with_state"
    },
    {
      "label": "get_weather",
      "mappings": [],
      "matched_via": "none",
      "subject_id": "cap_get_weather"
    },
    {
      "label": "greet",
      "mappings": [],
      "matched_via": "none",
      "subject_id": "cap_post_greet_name"
    },
    {
      "label": "processPayment",
      "mappings": [],
      "matched_via": "none",
      "subject_id": "cap_post_new_payment"
    },
    {
      "label": "weather_tool_with_decorator",
      "mappings": [],
      "matched_via": "none",
      "subject_id": "cap_weather_tool_with_decorator"
    },
    {
      "label": "delete_all_documents",
      "mappings": [
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Honoring a change freeze is configuration change control.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-3",
          "name": "Configuration Change Control",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: A freeze restricts who/when changes may be applied.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-5",
          "name": "Access Restrictions for Change",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Deploying during a freeze is acting beyond authority.)",
          "confidence": "inferred",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "INFERRED"
        },
        {
          "basis": "a destructive change during a freeze maps to data destruction",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "T1485",
          "name": "Data Destruction",
          "provenance": "EXTRACTED"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_delete_all_documents"
    },
    {
      "label": "delete_all_documents_async",
      "mappings": [
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Honoring a change freeze is configuration change control.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-3",
          "name": "Configuration Change Control",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: A freeze restricts who/when changes may be applied.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-5",
          "name": "Access Restrictions for Change",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Deploying during a freeze is acting beyond authority.)",
          "confidence": "inferred",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "INFERRED"
        },
        {
          "basis": "a destructive change during a freeze maps to data destruction",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "T1485",
          "name": "Data Destruction",
          "provenance": "EXTRACTED"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_delete_all_documents_async"
    },
    {
      "label": "delete_by_filter",
      "mappings": [
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Honoring a change freeze is configuration change control.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-3",
          "name": "Configuration Change Control",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: A freeze restricts who/when changes may be applied.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-5",
          "name": "Access Restrictions for Change",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Deploying during a freeze is acting beyond authority.)",
          "confidence": "inferred",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "INFERRED"
        },
        {
          "basis": "a destructive change during a freeze maps to data destruction",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "T1485",
          "name": "Data Destruction",
          "provenance": "EXTRACTED"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_delete_by_filter"
    },
    {
      "label": "delete_documents",
      "mappings": [
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Honoring a change freeze is configuration change control.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-3",
          "name": "Configuration Change Control",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: A freeze restricts who/when changes may be applied.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-5",
          "name": "Access Restrictions for Change",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Deploying during a freeze is acting beyond authority.)",
          "confidence": "inferred",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "INFERRED"
        },
        {
          "basis": "a destructive change during a freeze maps to data destruction",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "T1485",
          "name": "Data Destruction",
          "provenance": "EXTRACTED"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_delete_documents"
    },
    {
      "label": "delete_documents_async",
      "mappings": [
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Honoring a change freeze is configuration change control.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-3",
          "name": "Configuration Change Control",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: A freeze restricts who/when changes may be applied.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-5",
          "name": "Access Restrictions for Change",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Deploying during a freeze is acting beyond authority.)",
          "confidence": "inferred",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "INFERRED"
        },
        {
          "basis": "a destructive change during a freeze maps to data destruction",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "T1485",
          "name": "Data Destruction",
          "provenance": "EXTRACTED"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_delete_documents_async"
    },
    {
      "label": "delete_files",
      "mappings": [
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Honoring a change freeze is configuration change control.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-3",
          "name": "Configuration Change Control",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: A freeze restricts who/when changes may be applied.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "CM-5",
          "name": "Access Restrictions for Change",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'delete'; confirm against published text (asserted basis: Deploying during a freeze is acting beyond authority.)",
          "confidence": "inferred",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "INFERRED"
        },
        {
          "basis": "a destructive change during a freeze maps to data destruction",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "T1485",
          "name": "Data Destruction",
          "provenance": "EXTRACTED"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_delete_files"
    },
    {
      "label": "run",
      "mappings": [
        {
          "basis": "heuristic: side-effecting action with no second authorizer detected -- confirm against published text",
          "confidence": "ambiguous",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "AMBIGUOUS"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_run"
    },
    {
      "label": "run_all",
      "mappings": [
        {
          "basis": "heuristic: side-effecting action with no second authorizer detected -- confirm against published text",
          "confidence": "ambiguous",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "AMBIGUOUS"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_run_all"
    },
    {
      "label": "run_async",
      "mappings": [
        {
          "basis": "heuristic: side-effecting action with no second authorizer detected -- confirm against published text",
          "confidence": "ambiguous",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "AMBIGUOUS"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_run_async"
    },
    {
      "label": "run_async_generator",
      "mappings": [
        {
          "basis": "heuristic: side-effecting action with no second authorizer detected -- confirm against published text",
          "confidence": "ambiguous",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "AMBIGUOUS"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_run_async_generator"
    },
    {
      "label": "run_async_pipeline",
      "mappings": [
        {
          "basis": "heuristic: side-effecting action with no second authorizer detected -- confirm against published text",
          "confidence": "ambiguous",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "AMBIGUOUS"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_run_async_pipeline"
    },
    {
      "label": "run_inner",
      "mappings": [
        {
          "basis": "heuristic: side-effecting action with no second authorizer detected -- confirm against published text",
          "confidence": "ambiguous",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "AMBIGUOUS"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_run_inner"
    },
    {
      "label": "run_pipeline_without_any_breakpoints",
      "mappings": [
        {
          "basis": "heuristic: side-effecting action with no second authorizer detected -- confirm against published text",
          "confidence": "ambiguous",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "AMBIGUOUS"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_run_pipeline_without_any_breakpoints"
    },
    {
      "label": "run_rag_pipeline",
      "mappings": [
        {
          "basis": "heuristic: side-effecting action with no second authorizer detected -- confirm against published text",
          "confidence": "ambiguous",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "AMBIGUOUS"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_run_rag_pipeline"
    },
    {
      "label": "run_snippet",
      "mappings": [
        {
          "basis": "heuristic: side-effecting action with no second authorizer detected -- confirm against published text",
          "confidence": "ambiguous",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "AMBIGUOUS"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_run_snippet"
    },
    {
      "label": "run_sync_pipeline",
      "mappings": [
        {
          "basis": "heuristic: side-effecting action with no second authorizer detected -- confirm against published text",
          "confidence": "ambiguous",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM06",
          "name": "Excessive Agency",
          "provenance": "AMBIGUOUS"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_run_sync_pipeline"
    },
    {
      "label": "send_email",
      "mappings": [
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Blocking export to an out-of-scope endpoint is information-flow enforcement.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "AC-4",
          "name": "Information Flow Enforcement",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Preventing data leaving the controlled boundary is boundary protection.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "SC-7",
          "name": "Boundary Protection",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Uncontrolled egress of regulated data is a data-governance failure.)",
          "confidence": "inferred",
          "fw": "EU AI Act",
          "id": "Art 10",
          "name": "Data and data governance",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Egress of regulated records is sensitive-information disclosure.)",
          "confidence": "inferred",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM02",
          "name": "Sensitive Information Disclosure",
          "provenance": "INFERRED"
        },
        {
          "basis": "Data leaving to an external domain maps to the Exfiltration tactic; confirm the specific technique with an analyst.",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "TA0010",
          "name": "Exfiltration",
          "provenance": "EXTRACTED"
        },
        {
          "basis": "uncontrolled egress of regulated data maps to exfiltration",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "T1048",
          "name": "Exfiltration Over Alternative Protocol",
          "provenance": "EXTRACTED"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_send_email"
    },
    {
      "label": "send_event",
      "mappings": [
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Blocking export to an out-of-scope endpoint is information-flow enforcement.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "AC-4",
          "name": "Information Flow Enforcement",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Preventing data leaving the controlled boundary is boundary protection.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "SC-7",
          "name": "Boundary Protection",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Uncontrolled egress of regulated data is a data-governance failure.)",
          "confidence": "inferred",
          "fw": "EU AI Act",
          "id": "Art 10",
          "name": "Data and data governance",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Egress of regulated records is sensitive-information disclosure.)",
          "confidence": "inferred",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM02",
          "name": "Sensitive Information Disclosure",
          "provenance": "INFERRED"
        },
        {
          "basis": "Data leaving to an external domain maps to the Exfiltration tactic; confirm the specific technique with an analyst.",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "TA0010",
          "name": "Exfiltration",
          "provenance": "EXTRACTED"
        },
        {
          "basis": "uncontrolled egress of regulated data maps to exfiltration",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "T1048",
          "name": "Exfiltration Over Alternative Protocol",
          "provenance": "EXTRACTED"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_send_event"
    },
    {
      "label": "send_telemetry",
      "mappings": [
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Blocking export to an out-of-scope endpoint is information-flow enforcement.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "AC-4",
          "name": "Information Flow Enforcement",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Preventing data leaving the controlled boundary is boundary protection.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "SC-7",
          "name": "Boundary Protection",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Uncontrolled egress of regulated data is a data-governance failure.)",
          "confidence": "inferred",
          "fw": "EU AI Act",
          "id": "Art 10",
          "name": "Data and data governance",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Egress of regulated records is sensitive-information disclosure.)",
          "confidence": "inferred",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM02",
          "name": "Sensitive Information Disclosure",
          "provenance": "INFERRED"
        },
        {
          "basis": "Data leaving to an external domain maps to the Exfiltration tactic; confirm the specific technique with an analyst.",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "TA0010",
          "name": "Exfiltration",
          "provenance": "EXTRACTED"
        },
        {
          "basis": "uncontrolled egress of regulated data maps to exfiltration",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "T1048",
          "name": "Exfiltration Over Alternative Protocol",
          "provenance": "EXTRACTED"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_send_telemetry"
    },
    {
      "label": "send_telemetry_wrapper",
      "mappings": [
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Blocking export to an out-of-scope endpoint is information-flow enforcement.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "AC-4",
          "name": "Information Flow Enforcement",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Preventing data leaving the controlled boundary is boundary protection.)",
          "confidence": "inferred",
          "fw": "NIST SP 800-53r5",
          "id": "SC-7",
          "name": "Boundary Protection",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Uncontrolled egress of regulated data is a data-governance failure.)",
          "confidence": "inferred",
          "fw": "EU AI Act",
          "id": "Art 10",
          "name": "Data and data governance",
          "provenance": "INFERRED"
        },
        {
          "basis": "inferred from action verb 'send'; confirm against published text (asserted basis: Egress of regulated records is sensitive-information disclosure.)",
          "confidence": "inferred",
          "fw": "OWASP LLM Top 10 (2025)",
          "id": "LLM02",
          "name": "Sensitive Information Disclosure",
          "provenance": "INFERRED"
        },
        {
          "basis": "Data leaving to an external domain maps to the Exfiltration tactic; confirm the specific technique with an analyst.",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "TA0010",
          "name": "Exfiltration",
          "provenance": "EXTRACTED"
        },
        {
          "basis": "uncontrolled egress of regulated data maps to exfiltration",
          "confidence": "advisory",
          "fw": "MITRE ATT&CK",
          "id": "T1048",
          "name": "Exfiltration Over Alternative Protocol",
          "provenance": "EXTRACTED"
        }
      ],
      "matched_via": "heuristic",
      "subject_id": "fn_send_telemetry_wrapper"
    },
    {
      "label": "shutdown",
      "mappings": [],
      "matched_via": "none",
      "subject_id": "fn_shutdown"
    },
    {
      "label": "compare_branches",
      "mappings": [],
      "matched_via": "none",
      "subject_id": "op_get_repos_owner_repo_compare_basehead"
    }
  ],
  "edges": [
    {
      "dst": "fn_delete_all_documents",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_delete_all_documents_async",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_delete_by_filter",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_delete_documents",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_delete_documents_async",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_delete_files",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_run",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_run_all",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_run_async",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_run_async_generator",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_run_async_pipeline",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_run_inner",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_run_pipeline_without_any_breakpoints",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_run_rag_pipeline",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_run_snippet",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_run_sync_pipeline",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_send_email",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_send_event",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_send_telemetry",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_send_telemetry_wrapper",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "fn_shutdown",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "op_get_repos_owner_repo_compare_basehead",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "op_post_greet_name",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "op_post_new_payment",
      "provenance": "EXTRACTED",
      "rel": "EXECUTES",
      "src": "agent_haystack"
    },
    {
      "dst": "cap_async_get_weather",
      "provenance": "EXTRACTED",
      "rel": "HAS_CAPABILITY",
      "src": "agent_haystack"
    },
    {
      "dst": "cap_function_with_state",
      "provenance": "EXTRACTED",
      "rel": "HAS_CAPABILITY",
      "src": "agent_haystack"
    },
    {
      "dst": "cap_get_weather",
      "provenance": "EXTRACTED",
      "rel": "HAS_CAPABILITY",
      "src": "agent_haystack"
    },
    {
      "dst": "cap_post_greet_name",
      "provenance": "EXTRACTED",
      "rel": "HAS_CAPABILITY",
      "src": "agent_haystack"
    },
    {
      "dst": "cap_post_new_payment",
      "provenance": "EXTRACTED",
      "rel": "HAS_CAPABILITY",
      "src": "agent_haystack"
    },
    {
      "dst": "cap_weather_tool_with_decorator",
      "provenance": "EXTRACTED",
      "rel": "HAS_CAPABILITY",
      "src": "agent_haystack"
    }
  ],
  "frameworks": [],
  "nodes": [
    {
      "id": "agent_haystack",
      "name": "haystack",
      "props": {
        "source_kind": "directory"
      },
      "provenance": "EXTRACTED",
      "type": "Agent"
    },
    {
      "id": "cap_async_get_weather",
      "name": "async_get_weather",
      "props": {
        "action": "async_get_weather"
      },
      "provenance": "EXTRACTED",
      "type": "Capability"
    },
    {
      "id": "cap_function_with_state",
      "name": "function_with_state",
      "props": {
        "action": "function_with_state"
      },
      "provenance": "EXTRACTED",
      "type": "Capability"
    },
    {
      "id": "cap_get_weather",
      "name": "get_weather",
      "props": {
        "action": "get_weather"
      },
      "provenance": "EXTRACTED",
      "type": "Capability"
    },
    {
      "id": "cap_post_greet_name",
      "name": "greet",
      "props": {
        "action": "greet"
      },
      "provenance": "EXTRACTED",
      "type": "Capability"
    },
    {
      "id": "cap_post_new_payment",
      "name": "processPayment",
      "props": {
        "action": "processPayment"
      },
      "provenance": "EXTRACTED",
      "type": "Capability"
    },
    {
      "id": "cap_weather_tool_with_decorator",
      "name": "weather_tool_with_decorator",
      "props": {
        "action": "weather_tool_with_decorator"
      },
      "provenance": "EXTRACTED",
      "type": "Capability"
    },
    {
      "id": "fn_delete_all_documents",
      "name": "delete_all_documents",
      "props": {
        "action": "delete_all_documents"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_delete_all_documents_async",
      "name": "delete_all_documents_async",
      "props": {
        "action": "delete_all_documents_async"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_delete_by_filter",
      "name": "delete_by_filter",
      "props": {
        "action": "delete_by_filter"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_delete_documents",
      "name": "delete_documents",
      "props": {
        "action": "delete_documents"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_delete_documents_async",
      "name": "delete_documents_async",
      "props": {
        "action": "delete_documents_async"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_delete_files",
      "name": "delete_files",
      "props": {
        "action": "delete_files"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_run",
      "name": "run",
      "props": {
        "action": "run"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_run_all",
      "name": "run_all",
      "props": {
        "action": "run_all"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_run_async",
      "name": "run_async",
      "props": {
        "action": "run_async"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_run_async_generator",
      "name": "run_async_generator",
      "props": {
        "action": "run_async_generator"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_run_async_pipeline",
      "name": "run_async_pipeline",
      "props": {
        "action": "run_async_pipeline"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_run_inner",
      "name": "run_inner",
      "props": {
        "action": "run_inner"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_run_pipeline_without_any_breakpoints",
      "name": "run_pipeline_without_any_breakpoints",
      "props": {
        "action": "run_pipeline_without_any_breakpoints"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_run_rag_pipeline",
      "name": "run_rag_pipeline",
      "props": {
        "action": "run_rag_pipeline"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_run_snippet",
      "name": "run_snippet",
      "props": {
        "action": "run_snippet"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_run_sync_pipeline",
      "name": "run_sync_pipeline",
      "props": {
        "action": "run_sync_pipeline"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_send_email",
      "name": "send_email",
      "props": {
        "action": "send_email"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_send_event",
      "name": "send_event",
      "props": {
        "action": "send_event"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_send_telemetry",
      "name": "send_telemetry",
      "props": {
        "action": "send_telemetry"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_send_telemetry_wrapper",
      "name": "send_telemetry_wrapper",
      "props": {
        "action": "send_telemetry_wrapper"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "fn_shutdown",
      "name": "shutdown",
      "props": {
        "action": "shutdown"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "op_get_repos_owner_repo_compare_basehead",
      "name": "compare_branches",
      "props": {
        "action": "compare_branches"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "op_post_greet_name",
      "name": "greet",
      "props": {
        "action": "greet"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    },
    {
      "id": "op_post_new_payment",
      "name": "processPayment",
      "props": {
        "action": "processPayment"
      },
      "provenance": "EXTRACTED",
      "type": "Task"
    }
  ],
  "note": "Proposed CWN mappings, confidence-tagged. Confirm against the current published control text before relying on them for audit. Enterprise control ids are mapped at onboarding by your GRC team, never auto-asserted.",
  "source": "haystack",
  "source_kind": "directory"
}
