From 137887f1d66b522642208c5977fc0d69779945c9 Mon Sep 17 00:00:00 2001 From: Guillaume Lebedel Date: Fri, 15 May 2026 14:24:18 +0100 Subject: [PATCH 1/2] refactor: split bundled plugin into one plugin per skill, rename marketplace Restructure the marketplace to follow the multi-plugin pattern used by stackone-claude-marketplace. Each of the 7 skills now ships as its own installable plugin under plugins///, so users can pick just what they need instead of installing the whole bundle. - Rename marketplace: stackone-marketplace -> stackone-agent-plugins - Move 6 skill-only plugins to plugins/integrations/ - Move stackone-defender to plugins/security/ with its hook config, scripts, and ML dependencies scoped to the plugin folder - Drop the obsolete root .claude-plugin/plugin.json and root package.json (deps now live with the only plugin that needs them: stackone-defender) - Update release-please-config to track per-plugin plugin.json versions - Rewrite README install instructions Co-Authored-By: Claude Opus 4.7 (1M context) --- .claude-plugin/marketplace.json | 116 +- .claude-plugin/plugin.json | 29 - .release-please-config.json | 49 +- README.md | 65 +- package-lock.json | 1133 ----------------- package.json | 27 - .../.claude-plugin/plugin.json | 23 + .../integrations/stackone-agents/README.md | 17 + .../skills}/stackone-agents/SKILL.md | 0 .../references/integration-guide.md | 0 .../stackone-cli/.claude-plugin/plugin.json | 20 + plugins/integrations/stackone-cli/README.md | 17 + .../skills}/stackone-cli/SKILL.md | 0 .../.claude-plugin/plugin.json | 22 + .../integrations/stackone-connect/README.md | 17 + .../skills}/stackone-connect/SKILL.md | 0 .../references/hub-reference.md | 0 .../.claude-plugin/plugin.json | 23 + .../stackone-connectors/README.md | 17 + .../skills}/stackone-connectors/SKILL.md | 0 .../references/category-overview.md | 0 .../.claude-plugin/plugin.json | 22 + .../integrations/stackone-platform/README.md | 17 + .../skills}/stackone-platform/SKILL.md | 0 .../references/api-categories.md | 0 .../.claude-plugin/plugin.json | 20 + .../stackone-unified-connectors/README.md | 17 + .../stackone-unified-connectors/SKILL.md | 0 .../references/field-mapping-patterns.md | 0 .../references/pagination-patterns.md | 0 .../references/scope-patterns.md | 0 .../.claude-plugin/plugin.json | 22 + plugins/security/stackone-defender/README.md | 22 + .../stackone-defender/hooks}/hooks.json | 0 .../security/stackone-defender/package.json | 18 + .../scripts}/defender-daemon.config.json | 0 .../scripts}/defender-daemon.mjs | 0 .../scripts}/defender-feedback.mjs | 0 .../scripts}/scan-tool-result.mjs | 0 .../skills}/stackone-defender/SKILL.md | 0 .../references/integration-patterns.md | 0 41 files changed, 468 insertions(+), 1245 deletions(-) delete mode 100644 .claude-plugin/plugin.json delete mode 100644 package-lock.json delete mode 100644 package.json create mode 100644 plugins/integrations/stackone-agents/.claude-plugin/plugin.json create mode 100644 plugins/integrations/stackone-agents/README.md rename {skills => plugins/integrations/stackone-agents/skills}/stackone-agents/SKILL.md (100%) rename {skills => plugins/integrations/stackone-agents/skills}/stackone-agents/references/integration-guide.md (100%) create mode 100644 plugins/integrations/stackone-cli/.claude-plugin/plugin.json create mode 100644 plugins/integrations/stackone-cli/README.md rename {skills => plugins/integrations/stackone-cli/skills}/stackone-cli/SKILL.md (100%) create mode 100644 plugins/integrations/stackone-connect/.claude-plugin/plugin.json create mode 100644 plugins/integrations/stackone-connect/README.md rename {skills => plugins/integrations/stackone-connect/skills}/stackone-connect/SKILL.md (100%) rename {skills => plugins/integrations/stackone-connect/skills}/stackone-connect/references/hub-reference.md (100%) create mode 100644 plugins/integrations/stackone-connectors/.claude-plugin/plugin.json create mode 100644 plugins/integrations/stackone-connectors/README.md rename {skills => plugins/integrations/stackone-connectors/skills}/stackone-connectors/SKILL.md (100%) rename {skills => plugins/integrations/stackone-connectors/skills}/stackone-connectors/references/category-overview.md (100%) create mode 100644 plugins/integrations/stackone-platform/.claude-plugin/plugin.json create mode 100644 plugins/integrations/stackone-platform/README.md rename {skills => plugins/integrations/stackone-platform/skills}/stackone-platform/SKILL.md (100%) rename {skills => plugins/integrations/stackone-platform/skills}/stackone-platform/references/api-categories.md (100%) create mode 100644 plugins/integrations/stackone-unified-connectors/.claude-plugin/plugin.json create mode 100644 plugins/integrations/stackone-unified-connectors/README.md rename {skills => plugins/integrations/stackone-unified-connectors/skills}/stackone-unified-connectors/SKILL.md (100%) rename {skills => plugins/integrations/stackone-unified-connectors/skills}/stackone-unified-connectors/references/field-mapping-patterns.md (100%) rename {skills => plugins/integrations/stackone-unified-connectors/skills}/stackone-unified-connectors/references/pagination-patterns.md (100%) rename {skills => plugins/integrations/stackone-unified-connectors/skills}/stackone-unified-connectors/references/scope-patterns.md (100%) create mode 100644 plugins/security/stackone-defender/.claude-plugin/plugin.json create mode 100644 plugins/security/stackone-defender/README.md rename {hooks => plugins/security/stackone-defender/hooks}/hooks.json (100%) create mode 100644 plugins/security/stackone-defender/package.json rename {scripts => plugins/security/stackone-defender/scripts}/defender-daemon.config.json (100%) rename {scripts => plugins/security/stackone-defender/scripts}/defender-daemon.mjs (100%) rename {scripts => plugins/security/stackone-defender/scripts}/defender-feedback.mjs (100%) rename {scripts => plugins/security/stackone-defender/scripts}/scan-tool-result.mjs (100%) rename {skills => plugins/security/stackone-defender/skills}/stackone-defender/SKILL.md (100%) rename {skills => plugins/security/stackone-defender/skills}/stackone-defender/references/integration-patterns.md (100%) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 292df40..d64473e 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,47 +1,101 @@ { - "name": "stackone-marketplace", + "$schema": "https://anthropic.com/claude-code/marketplace.schema.json", + "name": "stackone-agent-plugins", "owner": { "name": "StackOne", "email": "engineering@stackone.com" }, "metadata": { - "description": "StackOne agent skills — integration infrastructure for AI agents with 200+ connectors, MCP, A2A, SDKs, and prompt injection defense", - "version": "2.5.0" + "description": "StackOne agent plugins — integration infrastructure for AI agents with 200+ connectors, MCP, A2A, SDKs, and prompt injection defense. One plugin per skill.", + "version": "2.5.0", + "homepage": "https://stackone.com", + "repository": "https://github.com/StackOneHQ/agent-plugins", + "pluginRoot": "./plugins" }, "plugins": [ { - "name": "stackone", - "source": { - "source": "github", - "repo": "StackOneHQ/agent-plugins-marketplace" - }, - "description": "Integration infrastructure for AI agents — account linking, 200+ connectors, 10,000+ actions, TypeScript/Python SDKs, MCP, A2A, connector development CLI, and prompt injection defense", + "name": "stackone-platform", + "source": "./plugins/integrations/stackone-platform", + "description": "Platform operations — API keys, accounts, logs, debugging, webhook configuration.", "version": "2.5.0", "category": "integrations", - "tags": [ - "stackone", - "integrations", - "integration-infrastructure", - "unified-connectors", - "connector-development", - "hris", - "ats", - "crm", - "lms", - "mcp", - "a2a", - "ai-agents", - "defender", - "prompt-injection", - "security" - ], + "tags": ["stackone", "platform", "api-keys", "accounts", "webhooks"], "author": { "name": "StackOne", - "url": "https://stackone.com" - }, - "homepage": "https://docs.stackone.com", - "repository": "https://github.com/StackOneHQ/agent-plugins-marketplace", - "license": "MIT" + "email": "engineering@stackone.com" + } + }, + { + "name": "stackone-connect", + "source": "./plugins/integrations/stackone-connect", + "description": "Account linking with Connect Sessions and the Hub React component.", + "version": "2.5.0", + "category": "integrations", + "tags": ["stackone", "connect", "account-linking", "oauth", "hub"], + "author": { + "name": "StackOne", + "email": "engineering@stackone.com" + } + }, + { + "name": "stackone-agents", + "source": "./plugins/integrations/stackone-agents", + "description": "Build AI agents that call StackOne-linked accounts via TypeScript/Python SDK, MCP, or A2A.", + "version": "2.5.0", + "category": "integrations", + "tags": ["stackone", "ai-agents", "mcp", "a2a", "openai", "langchain", "sdk"], + "author": { + "name": "StackOne", + "email": "engineering@stackone.com" + } + }, + { + "name": "stackone-connectors", + "source": "./plugins/integrations/stackone-connectors", + "description": "Discover StackOne's 200+ connectors and 9,000+ actions across HRIS, ATS, CRM, LMS, and more.", + "version": "2.5.0", + "category": "integrations", + "tags": ["stackone", "connectors", "hris", "ats", "crm", "lms", "discovery"], + "author": { + "name": "StackOne", + "email": "engineering@stackone.com" + } + }, + { + "name": "stackone-cli", + "source": "./plugins/integrations/stackone-cli", + "description": "Build and deploy custom StackOne connectors using the CLI and Connector Engine.", + "version": "2.5.0", + "category": "integrations", + "tags": ["stackone", "cli", "connector-development", "custom-connectors"], + "author": { + "name": "StackOne", + "email": "engineering@stackone.com" + } + }, + { + "name": "stackone-unified-connectors", + "source": "./plugins/integrations/stackone-unified-connectors", + "description": "Build unified/schema-based connectors that transform provider data into standardized schemas.", + "version": "2.5.0", + "category": "integrations", + "tags": ["stackone", "unified-connectors", "schema", "field-mapping"], + "author": { + "name": "StackOne", + "email": "engineering@stackone.com" + } + }, + { + "name": "stackone-defender", + "source": "./plugins/security/stackone-defender", + "description": "Prompt-injection and jailbreak detection for tool results via on-device ML classifier.", + "version": "2.5.0", + "category": "security", + "tags": ["stackone", "defender", "prompt-injection", "jailbreak", "security", "ml", "hook"], + "author": { + "name": "StackOne", + "email": "engineering@stackone.com" + } } ] } diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json deleted file mode 100644 index d3acd3c..0000000 --- a/.claude-plugin/plugin.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "stackone", - "version": "2.5.0", - "description": "Integration infrastructure for AI agents — account linking, 200+ connectors, 10,000+ actions, TypeScript/Python SDKs, MCP, A2A, unified connector development, CLI, and prompt injection defense", - "author": { - "name": "StackOne", - "url": "https://stackone.com" - }, - "homepage": "https://docs.stackone.com", - "repository": "https://github.com/StackOneHQ/agent-plugins-marketplace", - "license": "MIT", - "keywords": [ - "stackone", - "integrations", - "integration-infrastructure", - "unified-connectors", - "connector-development", - "hris", - "ats", - "crm", - "lms", - "mcp", - "a2a", - "ai-agents", - "defender", - "prompt-injection", - "security" - ] -} diff --git a/.release-please-config.json b/.release-please-config.json index 9d25822..77ccb2b 100644 --- a/.release-please-config.json +++ b/.release-please-config.json @@ -1,18 +1,13 @@ { "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", - "release-type": "node", + "release-type": "simple", "bump-minor-pre-major": true, "bump-patch-for-minor-pre-major": true, "changelog-path": "CHANGELOG.md", "packages": { ".": { - "package-name": "stackone", + "package-name": "stackone-agent-plugins", "extra-files": [ - { - "type": "json", - "path": ".claude-plugin/plugin.json", - "jsonpath": "$.version" - }, { "type": "json", "path": ".claude-plugin/marketplace.json", @@ -22,6 +17,46 @@ "type": "json", "path": ".claude-plugin/marketplace.json", "jsonpath": "$.plugins[*].version" + }, + { + "type": "json", + "path": "plugins/integrations/stackone-platform/.claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugins/integrations/stackone-connect/.claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugins/integrations/stackone-agents/.claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugins/integrations/stackone-connectors/.claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugins/integrations/stackone-cli/.claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugins/integrations/stackone-unified-connectors/.claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugins/security/stackone-defender/.claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugins/security/stackone-defender/package.json", + "jsonpath": "$.version" } ] } diff --git a/README.md b/README.md index 92aab5f..0eb3eb5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # StackOne Plugins for Agents -Agent plugins made by [StackOne](https://stackone.com) to empower your agents with knowledge of StackOne and generic utilities to have any agents call tools in a safer way. +Agent plugins made by [StackOne](https://stackone.com) — integration infrastructure for AI agents, plus a prompt-injection defense hook. ## Install @@ -8,35 +8,64 @@ Agent plugins made by [StackOne](https://stackone.com) to empower your agents wi ```bash # Add the marketplace -/plugin marketplace add stackonehq/agent-plugins-marketplace - -# Install the StackOne plugin (all 7 skills) -/plugin install stackone@stackone-marketplace +/plugin marketplace add stackonehq/agent-plugins + +# List available plugins +/plugin list @stackone-agent-plugins + +# Install any plugin (one per skill) +/plugin install stackone-platform@stackone-agent-plugins +/plugin install stackone-connect@stackone-agent-plugins +/plugin install stackone-agents@stackone-agent-plugins +/plugin install stackone-connectors@stackone-agent-plugins +/plugin install stackone-cli@stackone-agent-plugins +/plugin install stackone-unified-connectors@stackone-agent-plugins +/plugin install stackone-defender@stackone-agent-plugins ``` ### Any agent (via Skills CLI) ```bash # Install all skills (works with Claude Code, Cursor, Codex, Windsurf, etc.) -npx skills add stackonehq/agent-plugins-marketplace +npx skills add stackonehq/agent-plugins # Install a specific skill -npx skills add stackonehq/agent-plugins-marketplace@stackone-agents +npx skills add stackonehq/agent-plugins@stackone-agents ``` -## Available Skills +## Available Plugins + +| Plugin | Category | What it does | When to use | +|--------|----------|--------------|-------------| +| [`stackone-platform`](plugins/integrations/stackone-platform/) | Integrations | API keys, accounts, logs, debugging | "Set up StackOne", "list my accounts", "debug API errors" | +| [`stackone-connect`](plugins/integrations/stackone-connect/) | Integrations | Account linking via Connect Sessions and the Hub component | "Connect a provider", "embed the integration picker" | +| [`stackone-agents`](plugins/integrations/stackone-agents/) | Integrations | Build AI agents with TypeScript/Python SDK, MCP, or A2A | "Add StackOne tools to my agent", "set up MCP" | +| [`stackone-cli`](plugins/integrations/stackone-cli/) | Integrations | Custom connector development and deployment | "Build a custom connector", "deploy my connector" | +| [`stackone-connectors`](plugins/integrations/stackone-connectors/) | Integrations | Discover connectors, actions, and integration capabilities | "Which providers does StackOne support?" | +| [`stackone-unified-connectors`](plugins/integrations/stackone-unified-connectors/) | Integrations | Build unified connectors that transform provider data into standardized schemas | "Start unified build for [provider]", "map fields to schema" | +| [`stackone-defender`](plugins/security/stackone-defender/) | Security | Detect prompt injection and jailbreak attacks in tool results using local ML | "Scan for prompt injection", "is this text safe?", "protect my agent" | + +Each plugin includes a focused skill, step-by-step workflows, concrete examples, and troubleshooting. -| Skill | What it does | When to use | -|-------|-------------|-------------| -| [`stackone-platform`](skills/stackone-platform/) | Platform operations — API keys, accounts, logs, debugging | "Set up StackOne", "list my accounts", "debug API errors" | -| [`stackone-connect`](skills/stackone-connect/) | Account linking via Connect Sessions and the Hub component | "Connect a provider", "embed the integration picker" | -| [`stackone-agents`](skills/stackone-agents/) | Build AI agents with TypeScript/Python SDK, MCP, or A2A | "Add StackOne tools to my agent", "set up MCP" | -| [`stackone-cli`](skills/stackone-cli/) | Custom connector development and deployment | "Build a custom connector", "deploy my connector" | -| [`stackone-connectors`](skills/stackone-connectors/) | Discover connectors, actions, and integration capabilities | "Which providers does StackOne support?" | -| [`stackone-unified-connectors`](skills/stackone-unified-connectors/) | Build unified connectors that transform provider data into standardized schemas | "start unified build for [provider]", "map fields to schema" | -| [`stackone-defender`](skills/stackone-defender/) | Detect prompt injection and jailbreak attacks in text using local ML | "scan for prompt injection", "is this text safe?", "protect my agent" | +## Repository Structure + +``` +agent-plugins/ +├── .claude-plugin/ +│ └── marketplace.json # Marketplace manifest — lists all plugins +└── plugins/ + ├── integrations/ + │ ├── stackone-platform/ + │ ├── stackone-connect/ + │ ├── stackone-agents/ + │ ├── stackone-connectors/ + │ ├── stackone-cli/ + │ └── stackone-unified-connectors/ + └── security/ + └── stackone-defender/ # ships its own hooks/, scripts/, package.json +``` -Each skill includes step-by-step workflows, concrete examples, and troubleshooting for common errors. +Each plugin directory contains its own `.claude-plugin/plugin.json`, a `skills//` folder, and (for `stackone-defender`) the PostToolUse hook config plus ML scripts. ## Design Philosophy diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 874f8b5..0000000 --- a/package-lock.json +++ /dev/null @@ -1,1133 +0,0 @@ -{ - "name": "agent-plugins-marketplace", - "version": "2.5.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "agent-plugins-marketplace", - "version": "2.5.0", - "license": "MIT", - "dependencies": { - "@huggingface/transformers": "^3.8.1", - "@stackone/defender": "~0.7.0", - "fasttext.wasm": "^1.0.0", - "onnxruntime-node": "^1.24.3" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", - "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@huggingface/jinja": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.5.6.tgz", - "integrity": "sha512-MyMWyLnjqo+KRJYSH7oWNbsOn5onuIvfXYPcc0WOGxU0eHUV7oAYUoQTl2BMdu7ml+ea/bu11UM+EshbeHwtIA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@huggingface/transformers": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@huggingface/transformers/-/transformers-3.8.1.tgz", - "integrity": "sha512-tsTk4zVjImqdqjS8/AOZg2yNLd1z9S5v+7oUPpXaasDRwEDhB+xnglK1k5cad26lL5/ZIaeREgWWy0bs9y9pPA==", - "license": "Apache-2.0", - "dependencies": { - "@huggingface/jinja": "^0.5.3", - "onnxruntime-node": "1.21.0", - "onnxruntime-web": "1.22.0-dev.20250409-89f8206ba4", - "sharp": "^0.34.1" - } - }, - "node_modules/@huggingface/transformers/node_modules/onnxruntime-common": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.21.0.tgz", - "integrity": "sha512-Q632iLLrtCAVOTO65dh2+mNbQir/QNTVBG3h/QdZBpns7mZ0RYbLRBgGABPbpU9351AgYy7SJf1WaeVwMrBFPQ==", - "license": "MIT" - }, - "node_modules/@huggingface/transformers/node_modules/onnxruntime-node": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.21.0.tgz", - "integrity": "sha512-NeaCX6WW2L8cRCSqy3bInlo5ojjQqu2fD3D+9W5qb5irwxhEyWKXeH2vZ8W9r6VxaMPUan+4/7NDwZMtouZxEw==", - "hasInstallScript": true, - "license": "MIT", - "os": [ - "win32", - "darwin", - "linux" - ], - "dependencies": { - "global-agent": "^3.0.0", - "onnxruntime-common": "1.21.0", - "tar": "^7.0.1" - } - }, - "node_modules/@img/colour": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", - "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", - "cpu": [ - "ppc64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", - "cpu": [ - "riscv64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-ppc64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", - "cpu": [ - "ppc64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-riscv64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", - "cpu": [ - "riscv64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.7.0" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "license": "BSD-3-Clause" - }, - "node_modules/@stackone/defender": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@stackone/defender/-/defender-0.7.0.tgz", - "integrity": "sha512-tws4jG8/HUZnjUZGRkRlYu9a5jpX3gTafNQJdjlBjTNv5smfAK669zwRy2VeCRNq6v8FHXy8uky/AnbEPaXtiw==", - "license": "Apache-2.0", - "dependencies": { - "nanoid": "3.3.11" - }, - "peerDependencies": { - "@huggingface/transformers": "^3.0.0", - "fasttext.wasm": "^1.0.0", - "onnxruntime-node": ">=1.16.0" - }, - "peerDependenciesMeta": { - "@huggingface/transformers": { - "optional": true - }, - "fasttext.wasm": { - "optional": true - }, - "onnxruntime-node": { - "optional": true - } - } - }, - "node_modules/@types/node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", - "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", - "license": "MIT", - "dependencies": { - "undici-types": "~7.18.0" - } - }, - "node_modules/adm-zip": { - "version": "0.5.17", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.17.tgz", - "integrity": "sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==", - "license": "MIT", - "engines": { - "node": ">=12.0" - } - }, - "node_modules/boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "license": "MIT" - }, - "node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "license": "MIT" - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fasttext.wasm": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fasttext.wasm/-/fasttext.wasm-1.0.1.tgz", - "integrity": "sha512-9a3ton6jy+y4sqJOahv62gMploUVDh8H+BlG1HkRyHHLGLLKHjIQNoi6JnUxMH1mi6cj3LToT9Tl56ajkJ9xnQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=14.15.0" - } - }, - "node_modules/flatbuffers": { - "version": "25.9.23", - "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-25.9.23.tgz", - "integrity": "sha512-MI1qs7Lo4Syw0EOzUl0xjs2lsoeqFku44KpngfIduHBYvzm8h2+7K8YMQh1JtVVVrUvhLpNwqVi4DERegUJhPQ==", - "license": "Apache-2.0" - }, - "node_modules/global-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", - "license": "BSD-3-Clause", - "dependencies": { - "boolean": "^3.0.1", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/guid-typescript": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz", - "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==", - "license": "ISC" - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "license": "ISC" - }, - "node_modules/long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", - "license": "Apache-2.0" - }, - "node_modules/matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minizlib": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", - "license": "MIT", - "dependencies": { - "minipass": "^7.1.2" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/onnxruntime-common": { - "version": "1.24.3", - "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.24.3.tgz", - "integrity": "sha512-GeuPZO6U/LBJXvwdaqHbuUmoXiEdeCjWi/EG7Y1HNnDwJYuk6WUbNXpF6luSUY8yASul3cmUlLGrCCL1ZgVXqA==", - "license": "MIT" - }, - "node_modules/onnxruntime-node": { - "version": "1.24.3", - "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.24.3.tgz", - "integrity": "sha512-JH7+czbc8ALA819vlTgcV+Q214/+VjGeBHDjX81+ZCD0PCVCIFGFNtT0V4sXG/1JXypKPgScQcB3ij/hk3YnTg==", - "hasInstallScript": true, - "license": "MIT", - "os": [ - "win32", - "darwin", - "linux" - ], - "peer": true, - "dependencies": { - "adm-zip": "^0.5.16", - "global-agent": "^3.0.0", - "onnxruntime-common": "1.24.3" - } - }, - "node_modules/onnxruntime-web": { - "version": "1.22.0-dev.20250409-89f8206ba4", - "resolved": "https://registry.npmjs.org/onnxruntime-web/-/onnxruntime-web-1.22.0-dev.20250409-89f8206ba4.tgz", - "integrity": "sha512-0uS76OPgH0hWCPrFKlL8kYVV7ckM7t/36HfbgoFw6Nd0CZVVbQC4PkrR8mBX8LtNUFZO25IQBqV2Hx2ho3FlbQ==", - "license": "MIT", - "dependencies": { - "flatbuffers": "^25.1.24", - "guid-typescript": "^1.0.9", - "long": "^5.2.3", - "onnxruntime-common": "1.22.0-dev.20250409-89f8206ba4", - "platform": "^1.3.6", - "protobufjs": "^7.2.4" - } - }, - "node_modules/onnxruntime-web/node_modules/onnxruntime-common": { - "version": "1.22.0-dev.20250409-89f8206ba4", - "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.22.0-dev.20250409-89f8206ba4.tgz", - "integrity": "sha512-vDJMkfCfb0b1A836rgHj+ORuZf4B4+cc2bASQtpeoJLueuFc5DuYwjIZUBrSvx/fO5IrLjLz+oTrB3pcGlhovQ==", - "license": "MIT" - }, - "node_modules/platform": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", - "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==", - "license": "MIT" - }, - "node_modules/protobufjs": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", - "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/roarr": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "license": "BSD-3-Clause", - "dependencies": { - "boolean": "^3.0.1", - "detect-node": "^2.0.4", - "globalthis": "^1.0.1", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "license": "MIT" - }, - "node_modules/serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.13.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sharp": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@img/colour": "^1.0.0", - "detect-libc": "^2.1.2", - "semver": "^7.7.3" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.5", - "@img/sharp-darwin-x64": "0.34.5", - "@img/sharp-libvips-darwin-arm64": "1.2.4", - "@img/sharp-libvips-darwin-x64": "1.2.4", - "@img/sharp-libvips-linux-arm": "1.2.4", - "@img/sharp-libvips-linux-arm64": "1.2.4", - "@img/sharp-libvips-linux-ppc64": "1.2.4", - "@img/sharp-libvips-linux-riscv64": "1.2.4", - "@img/sharp-libvips-linux-s390x": "1.2.4", - "@img/sharp-libvips-linux-x64": "1.2.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", - "@img/sharp-libvips-linuxmusl-x64": "1.2.4", - "@img/sharp-linux-arm": "0.34.5", - "@img/sharp-linux-arm64": "0.34.5", - "@img/sharp-linux-ppc64": "0.34.5", - "@img/sharp-linux-riscv64": "0.34.5", - "@img/sharp-linux-s390x": "0.34.5", - "@img/sharp-linux-x64": "0.34.5", - "@img/sharp-linuxmusl-arm64": "0.34.5", - "@img/sharp-linuxmusl-x64": "0.34.5", - "@img/sharp-wasm32": "0.34.5", - "@img/sharp-win32-arm64": "0.34.5", - "@img/sharp-win32-ia32": "0.34.5", - "@img/sharp-win32-x64": "0.34.5" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "license": "BSD-3-Clause" - }, - "node_modules/tar": { - "version": "7.5.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz", - "integrity": "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.1.0", - "yallist": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "optional": true - }, - "node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", - "license": "MIT" - }, - "node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index af49161..0000000 --- a/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "agent-plugins-marketplace", - "version": "2.5.0", - "description": "Agent skills for [StackOne](https://stackone.com) — integration infrastructure for AI agents. 10,000+ production-ready actions, 200+ connectors, and an AI integration builder to extend to any API.", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/StackOneHQ/agent-plugins-marketplace.git" - }, - "keywords": [], - "author": "", - "license": "MIT", - "type": "commonjs", - "bugs": { - "url": "https://github.com/StackOneHQ/agent-plugins-marketplace/issues" - }, - "homepage": "https://github.com/StackOneHQ/agent-plugins-marketplace#readme", - "dependencies": { - "@huggingface/transformers": "^3.8.1", - "@stackone/defender": "~0.7.0", - "fasttext.wasm": "^1.0.0", - "onnxruntime-node": "^1.24.3" - } -} diff --git a/plugins/integrations/stackone-agents/.claude-plugin/plugin.json b/plugins/integrations/stackone-agents/.claude-plugin/plugin.json new file mode 100644 index 0000000..8e3d4f7 --- /dev/null +++ b/plugins/integrations/stackone-agents/.claude-plugin/plugin.json @@ -0,0 +1,23 @@ +{ + "name": "stackone-agents", + "version": "2.5.0", + "description": "Build AI agents that call StackOne-linked accounts using TypeScript SDK, Python SDK, MCP server, or A2A protocol. Supports OpenAI, Vercel AI SDK, Claude, LangChain, CrewAI, PydanticAI.", + "author": { + "name": "StackOne", + "email": "engineering@stackone.com", + "url": "https://stackone.com" + }, + "homepage": "https://docs.stackone.com", + "repository": "https://github.com/StackOneHQ/agent-plugins", + "license": "MIT", + "keywords": [ + "stackone", + "ai-agents", + "mcp", + "a2a", + "openai", + "langchain", + "vercel-ai-sdk", + "sdk" + ] +} diff --git a/plugins/integrations/stackone-agents/README.md b/plugins/integrations/stackone-agents/README.md new file mode 100644 index 0000000..83cb065 --- /dev/null +++ b/plugins/integrations/stackone-agents/README.md @@ -0,0 +1,17 @@ +# stackone-agents + +Build AI agents that call StackOne-linked accounts via TypeScript/Python SDK, MCP, or A2A. + +## Install + +```bash +/plugin marketplace add stackonehq/agent-plugins +/plugin install stackone-agents@stackone-agent-plugins +``` + +## Use + +- "Add StackOne tools to my agent" +- "Set up MCP with StackOne" +- "Integrate StackOne with OpenAI" +- "Build a multi-tenant agent" diff --git a/skills/stackone-agents/SKILL.md b/plugins/integrations/stackone-agents/skills/stackone-agents/SKILL.md similarity index 100% rename from skills/stackone-agents/SKILL.md rename to plugins/integrations/stackone-agents/skills/stackone-agents/SKILL.md diff --git a/skills/stackone-agents/references/integration-guide.md b/plugins/integrations/stackone-agents/skills/stackone-agents/references/integration-guide.md similarity index 100% rename from skills/stackone-agents/references/integration-guide.md rename to plugins/integrations/stackone-agents/skills/stackone-agents/references/integration-guide.md diff --git a/plugins/integrations/stackone-cli/.claude-plugin/plugin.json b/plugins/integrations/stackone-cli/.claude-plugin/plugin.json new file mode 100644 index 0000000..9002603 --- /dev/null +++ b/plugins/integrations/stackone-cli/.claude-plugin/plugin.json @@ -0,0 +1,20 @@ +{ + "name": "stackone-cli", + "version": "2.5.0", + "description": "Build and deploy custom StackOne connectors using the CLI and Connector Engine. Covers the full workflow from init through deployment.", + "author": { + "name": "StackOne", + "email": "engineering@stackone.com", + "url": "https://stackone.com" + }, + "homepage": "https://docs.stackone.com", + "repository": "https://github.com/StackOneHQ/agent-plugins", + "license": "MIT", + "keywords": [ + "stackone", + "cli", + "connector-development", + "custom-connectors", + "deployment" + ] +} diff --git a/plugins/integrations/stackone-cli/README.md b/plugins/integrations/stackone-cli/README.md new file mode 100644 index 0000000..a79cd59 --- /dev/null +++ b/plugins/integrations/stackone-cli/README.md @@ -0,0 +1,17 @@ +# stackone-cli + +Build and deploy custom StackOne connectors using the CLI and Connector Engine. + +## Install + +```bash +/plugin marketplace add stackonehq/agent-plugins +/plugin install stackone-cli@stackone-agent-plugins +``` + +## Use + +- "Build a custom connector" +- "Deploy my connector" +- "Use the StackOne AI builder" +- "Set up CI/CD for connectors" diff --git a/skills/stackone-cli/SKILL.md b/plugins/integrations/stackone-cli/skills/stackone-cli/SKILL.md similarity index 100% rename from skills/stackone-cli/SKILL.md rename to plugins/integrations/stackone-cli/skills/stackone-cli/SKILL.md diff --git a/plugins/integrations/stackone-connect/.claude-plugin/plugin.json b/plugins/integrations/stackone-connect/.claude-plugin/plugin.json new file mode 100644 index 0000000..01076a5 --- /dev/null +++ b/plugins/integrations/stackone-connect/.claude-plugin/plugin.json @@ -0,0 +1,22 @@ +{ + "name": "stackone-connect", + "version": "2.5.0", + "description": "Account linking with StackOne Connect Sessions and the Hub React component — full flow from session creation to webhook handling.", + "author": { + "name": "StackOne", + "email": "engineering@stackone.com", + "url": "https://stackone.com" + }, + "homepage": "https://docs.stackone.com", + "repository": "https://github.com/StackOneHQ/agent-plugins", + "license": "MIT", + "keywords": [ + "stackone", + "integrations", + "connect", + "account-linking", + "oauth", + "hub", + "react" + ] +} diff --git a/plugins/integrations/stackone-connect/README.md b/plugins/integrations/stackone-connect/README.md new file mode 100644 index 0000000..024b9aa --- /dev/null +++ b/plugins/integrations/stackone-connect/README.md @@ -0,0 +1,17 @@ +# stackone-connect + +Account linking via StackOne Connect Sessions and the Hub React component. + +## Install + +```bash +/plugin marketplace add stackonehq/agent-plugins +/plugin install stackone-connect@stackone-agent-plugins +``` + +## Use + +- "Connect a provider" +- "Embed the integration picker" +- "Create a connect session" +- "Handle account webhooks" diff --git a/skills/stackone-connect/SKILL.md b/plugins/integrations/stackone-connect/skills/stackone-connect/SKILL.md similarity index 100% rename from skills/stackone-connect/SKILL.md rename to plugins/integrations/stackone-connect/skills/stackone-connect/SKILL.md diff --git a/skills/stackone-connect/references/hub-reference.md b/plugins/integrations/stackone-connect/skills/stackone-connect/references/hub-reference.md similarity index 100% rename from skills/stackone-connect/references/hub-reference.md rename to plugins/integrations/stackone-connect/skills/stackone-connect/references/hub-reference.md diff --git a/plugins/integrations/stackone-connectors/.claude-plugin/plugin.json b/plugins/integrations/stackone-connectors/.claude-plugin/plugin.json new file mode 100644 index 0000000..1ccd0aa --- /dev/null +++ b/plugins/integrations/stackone-connectors/.claude-plugin/plugin.json @@ -0,0 +1,23 @@ +{ + "name": "stackone-connectors", + "version": "2.5.0", + "description": "Discover StackOne's 200+ connectors and 9,000+ actions across HRIS, ATS, CRM, LMS, ticketing, messaging, documents, IAM, and accounting.", + "author": { + "name": "StackOne", + "email": "engineering@stackone.com", + "url": "https://stackone.com" + }, + "homepage": "https://docs.stackone.com", + "repository": "https://github.com/StackOneHQ/agent-plugins", + "license": "MIT", + "keywords": [ + "stackone", + "integrations", + "connectors", + "hris", + "ats", + "crm", + "lms", + "discovery" + ] +} diff --git a/plugins/integrations/stackone-connectors/README.md b/plugins/integrations/stackone-connectors/README.md new file mode 100644 index 0000000..7c8bec7 --- /dev/null +++ b/plugins/integrations/stackone-connectors/README.md @@ -0,0 +1,17 @@ +# stackone-connectors + +Discover StackOne's 200+ connectors and 9,000+ actions across HRIS, ATS, CRM, LMS, ticketing, messaging, documents, IAM, and accounting. + +## Install + +```bash +/plugin marketplace add stackonehq/agent-plugins +/plugin install stackone-connectors@stackone-agent-plugins +``` + +## Use + +- "Which providers does StackOne support?" +- "What can I do with BambooHR?" +- "Recommend an integration for HR" +- "What actions are available?" diff --git a/skills/stackone-connectors/SKILL.md b/plugins/integrations/stackone-connectors/skills/stackone-connectors/SKILL.md similarity index 100% rename from skills/stackone-connectors/SKILL.md rename to plugins/integrations/stackone-connectors/skills/stackone-connectors/SKILL.md diff --git a/skills/stackone-connectors/references/category-overview.md b/plugins/integrations/stackone-connectors/skills/stackone-connectors/references/category-overview.md similarity index 100% rename from skills/stackone-connectors/references/category-overview.md rename to plugins/integrations/stackone-connectors/skills/stackone-connectors/references/category-overview.md diff --git a/plugins/integrations/stackone-platform/.claude-plugin/plugin.json b/plugins/integrations/stackone-platform/.claude-plugin/plugin.json new file mode 100644 index 0000000..2a50b18 --- /dev/null +++ b/plugins/integrations/stackone-platform/.claude-plugin/plugin.json @@ -0,0 +1,22 @@ +{ + "name": "stackone-platform", + "version": "2.5.0", + "description": "Manage StackOne resources — API keys, linked accounts, logs, debugging, and webhook configuration.", + "author": { + "name": "StackOne", + "email": "engineering@stackone.com", + "url": "https://stackone.com" + }, + "homepage": "https://docs.stackone.com", + "repository": "https://github.com/StackOneHQ/agent-plugins", + "license": "MIT", + "keywords": [ + "stackone", + "integrations", + "platform", + "api-keys", + "accounts", + "webhooks", + "debugging" + ] +} diff --git a/plugins/integrations/stackone-platform/README.md b/plugins/integrations/stackone-platform/README.md new file mode 100644 index 0000000..a641ee7 --- /dev/null +++ b/plugins/integrations/stackone-platform/README.md @@ -0,0 +1,17 @@ +# stackone-platform + +Platform operations for StackOne — API keys, accounts, logs, debugging. + +## Install + +```bash +/plugin marketplace add stackonehq/agent-plugins +/plugin install stackone-platform@stackone-agent-plugins +``` + +## Use + +- "Set up StackOne" +- "List my linked accounts" +- "Debug an API error" +- "Configure a webhook" diff --git a/skills/stackone-platform/SKILL.md b/plugins/integrations/stackone-platform/skills/stackone-platform/SKILL.md similarity index 100% rename from skills/stackone-platform/SKILL.md rename to plugins/integrations/stackone-platform/skills/stackone-platform/SKILL.md diff --git a/skills/stackone-platform/references/api-categories.md b/plugins/integrations/stackone-platform/skills/stackone-platform/references/api-categories.md similarity index 100% rename from skills/stackone-platform/references/api-categories.md rename to plugins/integrations/stackone-platform/skills/stackone-platform/references/api-categories.md diff --git a/plugins/integrations/stackone-unified-connectors/.claude-plugin/plugin.json b/plugins/integrations/stackone-unified-connectors/.claude-plugin/plugin.json new file mode 100644 index 0000000..fecc563 --- /dev/null +++ b/plugins/integrations/stackone-unified-connectors/.claude-plugin/plugin.json @@ -0,0 +1,20 @@ +{ + "name": "stackone-unified-connectors", + "version": "2.5.0", + "description": "Build unified/schema-based connectors that transform provider data into standardized schemas — field mapping, enum mapping, pagination, and scope patterns.", + "author": { + "name": "StackOne", + "email": "engineering@stackone.com", + "url": "https://stackone.com" + }, + "homepage": "https://docs.stackone.com", + "repository": "https://github.com/StackOneHQ/agent-plugins", + "license": "MIT", + "keywords": [ + "stackone", + "unified-connectors", + "schema", + "field-mapping", + "connector-development" + ] +} diff --git a/plugins/integrations/stackone-unified-connectors/README.md b/plugins/integrations/stackone-unified-connectors/README.md new file mode 100644 index 0000000..218b59f --- /dev/null +++ b/plugins/integrations/stackone-unified-connectors/README.md @@ -0,0 +1,17 @@ +# stackone-unified-connectors + +Build connectors that transform provider data into standardized schemas with consistent field names, enum values, and pagination. + +## Install + +```bash +/plugin marketplace add stackonehq/agent-plugins +/plugin install stackone-unified-connectors@stackone-agent-plugins +``` + +## Use + +- "Start unified build for [provider]" +- "Build a schema-based connector" +- "Map fields to schema" +- "Test unified connector" diff --git a/skills/stackone-unified-connectors/SKILL.md b/plugins/integrations/stackone-unified-connectors/skills/stackone-unified-connectors/SKILL.md similarity index 100% rename from skills/stackone-unified-connectors/SKILL.md rename to plugins/integrations/stackone-unified-connectors/skills/stackone-unified-connectors/SKILL.md diff --git a/skills/stackone-unified-connectors/references/field-mapping-patterns.md b/plugins/integrations/stackone-unified-connectors/skills/stackone-unified-connectors/references/field-mapping-patterns.md similarity index 100% rename from skills/stackone-unified-connectors/references/field-mapping-patterns.md rename to plugins/integrations/stackone-unified-connectors/skills/stackone-unified-connectors/references/field-mapping-patterns.md diff --git a/skills/stackone-unified-connectors/references/pagination-patterns.md b/plugins/integrations/stackone-unified-connectors/skills/stackone-unified-connectors/references/pagination-patterns.md similarity index 100% rename from skills/stackone-unified-connectors/references/pagination-patterns.md rename to plugins/integrations/stackone-unified-connectors/skills/stackone-unified-connectors/references/pagination-patterns.md diff --git a/skills/stackone-unified-connectors/references/scope-patterns.md b/plugins/integrations/stackone-unified-connectors/skills/stackone-unified-connectors/references/scope-patterns.md similarity index 100% rename from skills/stackone-unified-connectors/references/scope-patterns.md rename to plugins/integrations/stackone-unified-connectors/skills/stackone-unified-connectors/references/scope-patterns.md diff --git a/plugins/security/stackone-defender/.claude-plugin/plugin.json b/plugins/security/stackone-defender/.claude-plugin/plugin.json new file mode 100644 index 0000000..0bbb9cc --- /dev/null +++ b/plugins/security/stackone-defender/.claude-plugin/plugin.json @@ -0,0 +1,22 @@ +{ + "name": "stackone-defender", + "version": "2.5.0", + "description": "Prompt-injection and jailbreak detection for tool results via on-device ML classifier. Installs as a PostToolUse hook and flags risky content to Claude.", + "author": { + "name": "StackOne", + "email": "engineering@stackone.com", + "url": "https://stackone.com" + }, + "homepage": "https://docs.stackone.com", + "repository": "https://github.com/StackOneHQ/agent-plugins", + "license": "MIT", + "keywords": [ + "stackone", + "defender", + "prompt-injection", + "jailbreak", + "security", + "ml", + "hook" + ] +} diff --git a/plugins/security/stackone-defender/README.md b/plugins/security/stackone-defender/README.md new file mode 100644 index 0000000..1199318 --- /dev/null +++ b/plugins/security/stackone-defender/README.md @@ -0,0 +1,22 @@ +# stackone-defender + +On-device prompt-injection and jailbreak detection for Claude Code. Runs as a `PostToolUse` hook and surfaces flagged tool results to the model. + +## Install + +```bash +/plugin marketplace add stackonehq/agent-plugins +/plugin install stackone-defender@stackone-agent-plugins +``` + +On first run, the hook self-installs its ML dependencies (`@stackone/defender`, `onnxruntime-node`, `@huggingface/transformers`, `fasttext.wasm`) into the plugin's own `node_modules`. Subsequent runs reuse the persistent daemon over a Unix socket at `~/.claude/defender.sock`. + +## How it works + +- A long-lived daemon (`scripts/defender-daemon.mjs`) keeps the classifier in memory. +- The hook (`scripts/scan-tool-result.mjs`) ships every tool result to the daemon and returns either silent-pass or one-line JSON with a flag. +- The bundled skill teaches Claude how to interpret flags — they are a signal, not a verdict. + +## Feedback + +Use `defender-feedback.mjs` to mark a recent flag as a false positive so the daemon's local cache adapts. diff --git a/hooks/hooks.json b/plugins/security/stackone-defender/hooks/hooks.json similarity index 100% rename from hooks/hooks.json rename to plugins/security/stackone-defender/hooks/hooks.json diff --git a/plugins/security/stackone-defender/package.json b/plugins/security/stackone-defender/package.json new file mode 100644 index 0000000..4e6908e --- /dev/null +++ b/plugins/security/stackone-defender/package.json @@ -0,0 +1,18 @@ +{ + "name": "stackone-defender", + "version": "2.5.0", + "description": "On-device prompt-injection detection for Claude Code tool results.", + "private": true, + "type": "module", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/StackOneHQ/agent-plugins.git" + }, + "dependencies": { + "@huggingface/transformers": "^3.8.1", + "@stackone/defender": "~0.7.0", + "fasttext.wasm": "^1.0.0", + "onnxruntime-node": "^1.24.3" + } +} diff --git a/scripts/defender-daemon.config.json b/plugins/security/stackone-defender/scripts/defender-daemon.config.json similarity index 100% rename from scripts/defender-daemon.config.json rename to plugins/security/stackone-defender/scripts/defender-daemon.config.json diff --git a/scripts/defender-daemon.mjs b/plugins/security/stackone-defender/scripts/defender-daemon.mjs similarity index 100% rename from scripts/defender-daemon.mjs rename to plugins/security/stackone-defender/scripts/defender-daemon.mjs diff --git a/scripts/defender-feedback.mjs b/plugins/security/stackone-defender/scripts/defender-feedback.mjs similarity index 100% rename from scripts/defender-feedback.mjs rename to plugins/security/stackone-defender/scripts/defender-feedback.mjs diff --git a/scripts/scan-tool-result.mjs b/plugins/security/stackone-defender/scripts/scan-tool-result.mjs similarity index 100% rename from scripts/scan-tool-result.mjs rename to plugins/security/stackone-defender/scripts/scan-tool-result.mjs diff --git a/skills/stackone-defender/SKILL.md b/plugins/security/stackone-defender/skills/stackone-defender/SKILL.md similarity index 100% rename from skills/stackone-defender/SKILL.md rename to plugins/security/stackone-defender/skills/stackone-defender/SKILL.md diff --git a/skills/stackone-defender/references/integration-patterns.md b/plugins/security/stackone-defender/skills/stackone-defender/references/integration-patterns.md similarity index 100% rename from skills/stackone-defender/references/integration-patterns.md rename to plugins/security/stackone-defender/skills/stackone-defender/references/integration-patterns.md From d672850071fbdd0f343dfe4322ea5f901b30f841 Mon Sep 17 00:00:00 2001 From: Guillaume Lebedel Date: Fri, 15 May 2026 19:56:51 +0100 Subject: [PATCH 2/2] docs: address cubic/copilot review feedback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - defender README: clarify what defender-feedback.mjs actually does (appends to ~/.claude/defender-feedback.jsonl, best-effort POSTs to collector when configured) — it does NOT modify the running daemon's classifier state, as cubic and copilot both flagged - root README: drop the non-existent `/plugin list @marketplace` command and point users at the interactive `/plugin` Discover tab Co-Authored-By: Claude Opus 4.7 (1M context) --- README.md | 4 ++-- plugins/security/stackone-defender/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0eb3eb5..6ba0a82 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ Agent plugins made by [StackOne](https://stackone.com) — integration infrastru # Add the marketplace /plugin marketplace add stackonehq/agent-plugins -# List available plugins -/plugin list @stackone-agent-plugins +# Browse the catalog interactively (Discover tab) +/plugin # Install any plugin (one per skill) /plugin install stackone-platform@stackone-agent-plugins diff --git a/plugins/security/stackone-defender/README.md b/plugins/security/stackone-defender/README.md index 1199318..972b3f5 100644 --- a/plugins/security/stackone-defender/README.md +++ b/plugins/security/stackone-defender/README.md @@ -19,4 +19,4 @@ On first run, the hook self-installs its ML dependencies (`@stackone/defender`, ## Feedback -Use `defender-feedback.mjs` to mark a recent flag as a false positive so the daemon's local cache adapts. +Use `scripts/defender-feedback.mjs` to record a recent flag as a false positive. The script appends the label to `~/.claude/defender-feedback.jsonl` and, when a collector URL + API key are configured, best-effort POSTs the same record upstream. It does not modify the running daemon's classifier state.