npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@cdot65/prisma-airs

v0.3.0

Published

Prisma AIRS (AI Runtime Security) plugin for OpenClaw - Full security suite with audit logging, context injection, outbound blocking, and tool gating

Readme

@cdot65/prisma-airs

OpenClaw plugin for Prisma AIRS (AI Runtime Security) from Palo Alto Networks.

Features

  • Gateway RPC: prisma-airs.scan, prisma-airs.status
  • Agent Tools: prisma_airs_scan, prisma_airs_scan_prompt, prisma_airs_scan_response, prisma_airs_check_tool_safety
  • CLI: openclaw prisma-airs, openclaw prisma-airs-scan
  • Deterministic hooks: audit, context injection, outbound blocking, tool gating
  • Probabilistic tools: model-driven scanning when deterministic hooks are overkill
  • Scanning modes: per-feature deterministic, probabilistic, or off

Detection capabilities:

  • Prompt injection
  • Data leakage (DLP)
  • Malicious URLs
  • Toxic content
  • Database security
  • Malicious code
  • AI agent threats
  • Grounding violations
  • Custom topic guardrails

Installation

Install from npm

openclaw plugins install @cdot65/prisma-airs

Restart Gateway

# systemd (Linux)
openclaw gateway restart

# or manually
openclaw gateway stop && openclaw gateway start

Verify Installation

# Check plugin is loaded
openclaw plugins list | grep prisma

# Check status
openclaw prisma-airs

Configuration

1. Set API Key

Get your API key from Strata Cloud Manager.

Set it in plugin config (via gateway web UI or config file):

{
  "plugins": {
    "entries": {
      "prisma-airs": {
        "config": {
          "api_key": "your-key"
        }
      }
    }
  }
}

2. Plugin Config (optional)

{
  "plugins": {
    "entries": {
      "prisma-airs": {
        "config": {
          "api_key": "your-key",
          "profile_name": "default",
          "app_name": "openclaw",
          "reminder_mode": "on",
          "audit_mode": "deterministic",
          "context_injection_mode": "deterministic",
          "outbound_mode": "deterministic",
          "tool_gating_mode": "deterministic"
        }
      }
    }
  }
}

Scanning Modes

Each security feature supports three modes:

| Mode | Behavior | | --------------- | -------------------------------------------------------------------------- | | deterministic | Hook fires on every event (default). Scanning is automatic and guaranteed. | | probabilistic | Registers a tool instead of a hook. The model decides when to scan. | | off | Feature is disabled entirely. |

Reminder mode is simpler: on (default) or off.

| Setting | Values | Default | | ------------------------ | ----------------------------------------- | --------------- | | audit_mode | deterministic / probabilistic / off | deterministic | | context_injection_mode | deterministic / probabilistic / off | deterministic | | outbound_mode | deterministic / probabilistic / off | deterministic | | tool_gating_mode | deterministic / probabilistic / off | deterministic | | reminder_mode | on / off | on |

Probabilistic tools registered when a feature is set to probabilistic:

  • prisma_airs_scan_prompt — replaces audit + context injection
  • prisma_airs_scan_response — replaces outbound scanning
  • prisma_airs_check_tool_safety — replaces tool gating

fail_closed constraint: When fail_closed=true (default), all features must be deterministic or off. Probabilistic mode is rejected because the model might skip scanning.

Usage

CLI

# Check status
openclaw prisma-airs

# Scan text
openclaw prisma-airs-scan "message to scan"
openclaw prisma-airs-scan --json "message"

Gateway RPC

# Status
openclaw gateway call prisma-airs.status

# Scan
openclaw gateway call prisma-airs.scan --params '{"prompt":"user input"}'

Agent Tool

Agents can use prisma_airs_scan directly:

{
  "tool": "prisma_airs_scan",
  "params": {
    "prompt": "content to scan",
    "sessionId": "conversation-123"
  }
}

TypeScript

import { scan } from "@cdot65/prisma-airs";

const result = await scan({
  prompt: "user message",
  sessionId: "conv-123",
  apiKey: "your-api-key",
});

if (result.action === "block") {
  console.log("Blocked:", result.categories);
}

ScanResult

interface ScanResult {
  action: "allow" | "warn" | "block";
  severity: "SAFE" | "LOW" | "MEDIUM" | "HIGH" | "CRITICAL";
  categories: string[];
  scanId: string;
  reportId: string;
  profileName: string;
  promptDetected: {
    injection: boolean;
    dlp: boolean;
    urlCats: boolean;
    toxicContent: boolean;
    maliciousCode: boolean;
    agent: boolean;
    topicViolation: boolean;
  };
  responseDetected: {
    dlp: boolean;
    urlCats: boolean;
    dbSecurity: boolean;
    toxicContent: boolean;
    maliciousCode: boolean;
    agent: boolean;
    ungrounded: boolean;
    topicViolation: boolean;
  };
  sessionId?: string;
  trId?: string;
  latencyMs: number;
  timeout: boolean;
  hasError: boolean;
  contentErrors: ContentError[];
  error?: string;
}

Requirements

Links

License

MIT