@integrity-labs/agt-cli 0.28.902 → 0.28.903
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/agt.js +5 -5
- package/dist/{chunk-BSFQVMNO.js → chunk-2LV6SJ7W.js} +2 -2
- package/dist/{chunk-5MATVCQ3.js → chunk-Q2GQY64J.js} +34 -34
- package/dist/chunk-Q2GQY64J.js.map +1 -0
- package/dist/{chunk-JULXOS6K.js → chunk-WL2PIPOM.js} +4 -4
- package/dist/{claude-pair-runtime-RSQD6NA4.js → claude-pair-runtime-UZPPOEIB.js} +2 -2
- package/dist/lib/manager-worker.js +14 -14
- package/dist/mcp/direct-chat-channel.js +33 -33
- package/dist/mcp/index.js +33 -33
- package/dist/mcp/origami.js +33 -33
- package/dist/mcp/slack-channel.js +33 -33
- package/dist/mcp/telegram-channel.js +33 -33
- package/dist/{persistent-session-4N3JK3P6.js → persistent-session-TPADZX4C.js} +3 -3
- package/dist/{responsiveness-probe-M67GFG47.js → responsiveness-probe-P2L74AKB.js} +3 -3
- package/dist/{session-auth-dead-Z7I2KPES.js → session-auth-dead-YKD22CHZ.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-5MATVCQ3.js.map +0 -1
- /package/dist/{chunk-BSFQVMNO.js.map → chunk-2LV6SJ7W.js.map} +0 -0
- /package/dist/{chunk-JULXOS6K.js.map → chunk-WL2PIPOM.js.map} +0 -0
- /package/dist/{claude-pair-runtime-RSQD6NA4.js.map → claude-pair-runtime-UZPPOEIB.js.map} +0 -0
- /package/dist/{persistent-session-4N3JK3P6.js.map → persistent-session-TPADZX4C.js.map} +0 -0
- /package/dist/{responsiveness-probe-M67GFG47.js.map → responsiveness-probe-P2L74AKB.js.map} +0 -0
- /package/dist/{session-auth-dead-Z7I2KPES.js.map → session-auth-dead-YKD22CHZ.js.map} +0 -0
package/dist/mcp/index.js
CHANGED
|
@@ -25794,18 +25794,18 @@ var INTEGRATION_REGISTRY = [
|
|
|
25794
25794
|
// and migrations). "Deck Browser" makes the computer-use purpose obvious.
|
|
25795
25795
|
name: "Deck Browser",
|
|
25796
25796
|
category: "workspace-productivity",
|
|
25797
|
-
description: "Computer-use agents that operate any software through its real interface (no API required) and return schema-validated results. A higher-level alternative to Anchor Browser: Deck owns the auth lifecycle (encrypted credential vault, login, MFA, CAPTCHA) and provisions isolated desktop sessions on demand.
|
|
25797
|
+
description: "Computer-use agents that operate any software through its real interface (no API required) and return schema-validated results. A higher-level alternative to Anchor Browser: Deck owns the auth lifecycle (encrypted credential vault, login, MFA, CAPTCHA) and provisions isolated desktop sessions on demand. Ninjafy manages Deck access for you and gives each agent its own isolated Deck workspace, so there is no credential to enter.",
|
|
25798
25798
|
// Deck is REST-only (base https://api.deck.co/v2, Bearer `sk_live_` account
|
|
25799
25799
|
// key) — it ships NO MCP server, so unlike anchor-browser there is no
|
|
25800
25800
|
// `remoteMcp`/`nativeMcp` drop-in; the agent-facing tools are brokered
|
|
25801
25801
|
// server-side (deck-broker.ts). Deck is the first PREMIUM integration:
|
|
25802
|
-
//
|
|
25802
|
+
// Ninjafy owns ONE Deck account that every customer agent's runs bill back
|
|
25803
25803
|
// to (per-org charging is tracked in ENG-6920, not yet live), so the account
|
|
25804
25804
|
// key is a single platform-held secret (`DECK_ACCOUNT_KEY`), NOT a per-agent
|
|
25805
25805
|
// credential. Auth type is therefore `none` — customers never enter a key.
|
|
25806
25806
|
// Per-agent isolation is modelled on Deck's first-class resources: that one
|
|
25807
25807
|
// key provisions one Deck agent (`agt_`) + vault credential (`cred_`) per
|
|
25808
|
-
//
|
|
25808
|
+
// Ninjafy agent via POST /:id/provision-deck; the ids land in
|
|
25809
25809
|
// `agent_integrations.config` (deck_agent_id / deck_credential_id), so
|
|
25810
25810
|
// revocation + audit happen at the per-agent Deck-resource level without a
|
|
25811
25811
|
// distinct API key per agent (Deck exposes no key-minting admin API).
|
|
@@ -25818,7 +25818,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
25818
25818
|
docs_url: "https://docs.deck.co/",
|
|
25819
25819
|
beta: true,
|
|
25820
25820
|
// ENG-6920: Deck is the first PREMIUM integration. Unlike the customer-auth
|
|
25821
|
-
// integrations, every Deck run bills back to
|
|
25821
|
+
// integrations, every Deck run bills back to Ninjafy's single account
|
|
25822
25822
|
// key, and Deck is usage-priced, so it is gated on a per-org opt-in and
|
|
25823
25823
|
// metered. ENG-7032: `meters` declares the billable operations; the priced
|
|
25824
25824
|
// rate card (integration_rate_cards) holds the amounts. Each event_type must
|
|
@@ -25841,11 +25841,11 @@ var INTEGRATION_REGISTRY = [
|
|
|
25841
25841
|
id: "browserbase",
|
|
25842
25842
|
name: "Browserbase",
|
|
25843
25843
|
category: "workspace-productivity",
|
|
25844
|
-
description: "A hosted browser your agents drive to operate real websites, behind residential proxies and staying signed in via a per-agent encrypted login profile. An operator logs an agent into a site once through a secure live view; every later session reuses that authenticated profile - no credential to enter and the agent never handles the login. A lower-level, self-driven alternative to Deck Browser:
|
|
25844
|
+
description: "A hosted browser your agents drive to operate real websites, behind residential proxies and staying signed in via a per-agent encrypted login profile. An operator logs an agent into a site once through a secure live view; every later session reuses that authenticated profile - no credential to enter and the agent never handles the login. A lower-level, self-driven alternative to Deck Browser: Ninjafy manages the Browserbase account for you and gives each agent its own isolated login profile.",
|
|
25845
25845
|
// Browserbase is REST-only (base https://api.browserbase.com/v1, `X-BB-API-Key`
|
|
25846
25846
|
// header - NOT Bearer) and ships NO MCP server, so the agent-facing tools are
|
|
25847
25847
|
// brokered server-side (browserbase-broker.ts). It is a PREMIUM integration on
|
|
25848
|
-
// the Deck model (ENG-7947):
|
|
25848
|
+
// the Deck model (ENG-7947): Ninjafy owns ONE Browserbase account that every
|
|
25849
25849
|
// customer agent's sessions bill back to, so the account key is a single
|
|
25850
25850
|
// platform-held secret (`BROWSERBASE_ACCOUNT_KEY`), NOT a per-agent credential.
|
|
25851
25851
|
// Auth type is `none` - customers never enter a key. Per-agent isolation is a
|
|
@@ -25864,7 +25864,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
25864
25864
|
],
|
|
25865
25865
|
docs_url: "https://docs.browserbase.com/",
|
|
25866
25866
|
beta: true,
|
|
25867
|
-
// ENG-7947: PREMIUM, usage-priced. Every session bills back to
|
|
25867
|
+
// ENG-7947: PREMIUM, usage-priced. Every session bills back to Ninjafy's
|
|
25868
25868
|
// single account key as proxy data + session time, so it is gated on a per-org
|
|
25869
25869
|
// opt-in and metered. `meters` declares the billable operations; the priced
|
|
25870
25870
|
// rate card (integration_rate_cards) holds the amounts. Each event_type must
|
|
@@ -25902,11 +25902,11 @@ var INTEGRATION_REGISTRY = [
|
|
|
25902
25902
|
id: "elevenlabs",
|
|
25903
25903
|
name: "ElevenLabs",
|
|
25904
25904
|
category: "media",
|
|
25905
|
-
description: "Speech-to-text for inbound voice notes. When a teammate sends an agent a voice message (Slack, Telegram, etc.), the agent uploads the audio and gets back an accurate transcript via ElevenLabs Scribe, so a voice note is no longer a black box.
|
|
25905
|
+
description: "Speech-to-text for inbound voice notes. When a teammate sends an agent a voice message (Slack, Telegram, etc.), the agent uploads the audio and gets back an accurate transcript via ElevenLabs Scribe, so a voice note is no longer a black box. Ninjafy manages ElevenLabs access for you - there is no key to enter.",
|
|
25906
25906
|
// ElevenLabs is REST-only for our use (POST /v1/speech-to-text, `xi-api-key`
|
|
25907
25907
|
// header, NOT Bearer) — it ships no MCP server, so the agent-facing tools are
|
|
25908
25908
|
// brokered server-side (scribe-broker.ts). It is a PREMIUM integration on the
|
|
25909
|
-
// Deck model (ADR-0031, epic ENG-6920):
|
|
25909
|
+
// Deck model (ADR-0031, epic ENG-6920): Ninjafy owns ONE ElevenLabs account
|
|
25910
25910
|
// that every customer agent's transcriptions bill back to, so the account key
|
|
25911
25911
|
// is a single platform-held secret (`ELEVENLABS_ACCOUNT_KEY`), NOT a per-agent
|
|
25912
25912
|
// credential. Auth type is therefore `none` — customers never enter a key.
|
|
@@ -25955,7 +25955,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
25955
25955
|
tts: { meterEventType: "tts" }
|
|
25956
25956
|
},
|
|
25957
25957
|
// ENG-7005 / ENG-7048: premium (billable). Both surfaces bill back to
|
|
25958
|
-
//
|
|
25958
|
+
// Ninjafy's single account key and are usage-priced, so the integration is
|
|
25959
25959
|
// gated on a per-org opt-in and metered. The two surfaces share the one
|
|
25960
25960
|
// `elevenlabs` definition (and so the one per-org monthly budget). Pricing
|
|
25961
25961
|
// amounts live in integration_rate_cards; this only declares the model.
|
|
@@ -25980,9 +25980,9 @@ var INTEGRATION_REGISTRY = [
|
|
|
25980
25980
|
id: "grok-voice",
|
|
25981
25981
|
name: "Grok Voice",
|
|
25982
25982
|
category: "media",
|
|
25983
|
-
description: "Real-time two-way voice for your agent, powered by xAI Grok. Speak to the agent and hear it reply.
|
|
25983
|
+
description: "Real-time two-way voice for your agent, powered by xAI Grok. Speak to the agent and hear it reply. Ninjafy manages Grok Voice access for you - there is no key to enter.",
|
|
25984
25984
|
// Grok Voice is a PREMIUM integration on the platform-key model (mirrors
|
|
25985
|
-
// ElevenLabs / ADR-0031):
|
|
25985
|
+
// ElevenLabs / ADR-0031): Ninjafy holds one xAI account key and every
|
|
25986
25986
|
// customer agent's voice minutes bill back to it, so auth_type is `none` -
|
|
25987
25987
|
// customers never enter a key. Enabling this integration (resolved via the
|
|
25988
25988
|
// agent/team/org scope chain) is what unlocks voice in Direct Chat; it
|
|
@@ -26005,7 +26005,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
26005
26005
|
realtime: { meterEventType: "voice_session", listVoices: true },
|
|
26006
26006
|
stt: { meterEventType: "transcription" }
|
|
26007
26007
|
},
|
|
26008
|
-
// Premium (billable): voice minutes bill back to
|
|
26008
|
+
// Premium (billable): voice minutes bill back to Ninjafy's xAI account key,
|
|
26009
26009
|
// usage-priced and gated on a per-org opt-in. Pricing amounts live in
|
|
26010
26010
|
// integration_rate_cards; this only declares the model + meter.
|
|
26011
26011
|
premium: {
|
|
@@ -26056,8 +26056,8 @@ var INTEGRATION_REGISTRY = [
|
|
|
26056
26056
|
id: "image-gen",
|
|
26057
26057
|
name: "Image Generation",
|
|
26058
26058
|
category: "media",
|
|
26059
|
-
description: "AI image generation from a text prompt. An agent passes a prompt to generate_image and gets back a generated raster image, which it can deliver to a chat channel or embed on an Augmented Live page (ENG-7535).
|
|
26060
|
-
// No vendor key to enter:
|
|
26059
|
+
description: "AI image generation from a text prompt. An agent passes a prompt to generate_image and gets back a generated raster image, which it can deliver to a chat channel or embed on an Augmented Live page (ENG-7535). Ninjafy manages the model access for you - there is no key to enter. Generation runs through the Vercel AI Gateway (OpenAI gpt-image-2 today). It is a PREMIUM, usage-billed capability: gated on a per-org opt-in and a monthly USD budget, and metered per generated image.",
|
|
26060
|
+
// No vendor key to enter: Ninjafy owns the shared Vercel AI Gateway virtual
|
|
26061
26061
|
// key (AI_GATEWAY_API_KEY) that fronts the image providers, so auth is `none`
|
|
26062
26062
|
// (customers never enter a key), same as ElevenLabs.
|
|
26063
26063
|
supported_auth_types: ["none"],
|
|
@@ -26066,7 +26066,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
26066
26066
|
],
|
|
26067
26067
|
docs_url: "https://platform.openai.com/docs/guides/images",
|
|
26068
26068
|
beta: true,
|
|
26069
|
-
// ENG-7472: premium (billable). Image gen bills back to
|
|
26069
|
+
// ENG-7472: premium (billable). Image gen bills back to Ninjafy's shared
|
|
26070
26070
|
// Vercel AI Gateway key and is usage-priced per generated image, so it is gated
|
|
26071
26071
|
// on a per-org opt-in (isOrgEntitledToPremium) + a per-org monthly USD budget,
|
|
26072
26072
|
// and metered on integration_usage_events. This budget is PER-ORG, distinct
|
|
@@ -26090,8 +26090,8 @@ var INTEGRATION_REGISTRY = [
|
|
|
26090
26090
|
id: "video-gen",
|
|
26091
26091
|
name: "Video Generation",
|
|
26092
26092
|
category: "media",
|
|
26093
|
-
description: "AI video generation from a text prompt or an input image. An agent passes a prompt (plus optionally image_url) to generate_video and gets back a short generated video with audio, which it can deliver to a chat channel.
|
|
26094
|
-
// Platform-key model (mirrors Grok Voice / ADR-0031):
|
|
26093
|
+
description: "AI video generation from a text prompt or an input image. An agent passes a prompt (plus optionally image_url) to generate_video and gets back a short generated video with audio, which it can deliver to a chat channel. Ninjafy manages the model access for you - there is no key to enter. Generation runs direct against xAI Grok Imagine: text-to-video on the base grok-imagine-video model, image-to-video on grok-imagine-video-1.5. It is a PREMIUM, usage-billed capability: gated on a per-org opt-in and a monthly USD budget, and metered per second of generated video.",
|
|
26094
|
+
// Platform-key model (mirrors Grok Voice / ADR-0031): Ninjafy holds one xAI
|
|
26095
26095
|
// account key (XAI_API_KEY) and every customer render bills back to it, so
|
|
26096
26096
|
// auth is `none` - customers never enter a key.
|
|
26097
26097
|
supported_auth_types: ["none"],
|
|
@@ -26100,7 +26100,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
26100
26100
|
],
|
|
26101
26101
|
docs_url: "https://docs.x.ai/developers/model-capabilities/video/generation",
|
|
26102
26102
|
beta: true,
|
|
26103
|
-
// Premium (billable): renders bill back to
|
|
26103
|
+
// Premium (billable): renders bill back to Ninjafy's xAI account key,
|
|
26104
26104
|
// usage-priced per second of output video, so it is gated on a per-org opt-in
|
|
26105
26105
|
// (isOrgEntitledToPremium) + a per-org monthly USD budget, and metered on
|
|
26106
26106
|
// integration_usage_events. Pricing lives in integration_rate_cards; this only
|
|
@@ -26178,7 +26178,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
26178
26178
|
// under the MCP.
|
|
26179
26179
|
//
|
|
26180
26180
|
// Bring-your-own-key: generations bill to the customer's own Higgsfield
|
|
26181
|
-
// account, so an install is never metered by
|
|
26181
|
+
// account, so an install is never metered by Ninjafy.
|
|
26182
26182
|
//
|
|
26183
26183
|
// NOTE: this entry carries no `remoteMcp`, so it contributes nothing to
|
|
26184
26184
|
// `registryRemoteMcpKeys` and cannot prune the `higgsfield` key an older
|
|
@@ -26618,12 +26618,12 @@ var INTEGRATION_REGISTRY = [
|
|
|
26618
26618
|
beta: true,
|
|
26619
26619
|
capabilities: [
|
|
26620
26620
|
{ id: "augmented-support:read-diagnostics", name: "Read Diagnostics", description: "Read your own org's agents, hosts, integrations, alerts, flags, and audit log (projection only - never credentials or transcripts).", access: "read" },
|
|
26621
|
-
{ id: "augmented-support:file-requests", name: "File Requests", description: "File bug / feature / integration requests to
|
|
26621
|
+
{ id: "augmented-support:file-requests", name: "File Requests", description: "File bug / feature / integration requests to Ninjafy support.", access: "write" },
|
|
26622
26622
|
{ id: "augmented-support:propose-writes", name: "Propose Self-Remediation", description: "Propose creating an agent in your own org; executed only after a human approves a server-rendered diff.", access: "write" }
|
|
26623
26623
|
]
|
|
26624
26624
|
},
|
|
26625
26625
|
{
|
|
26626
|
-
// ENG-8332: the
|
|
26626
|
+
// ENG-8332: the Ninjafy HELP knowledge base, split out of
|
|
26627
26627
|
// `augmented-support` so an agent can be given the docs WITHOUT also being
|
|
26628
26628
|
// given a ticket-filing button, an agent-proposal button, and org-wide read
|
|
26629
26629
|
// of agents, hosts, integrations, alerts, flags and the audit log. That
|
|
@@ -26651,14 +26651,14 @@ var INTEGRATION_REGISTRY = [
|
|
|
26651
26651
|
// ENG-8804: Granted centrally (ENG-8542 auto-grant), never connected by a human.
|
|
26652
26652
|
platform_internal: true,
|
|
26653
26653
|
category: "knowledge",
|
|
26654
|
-
description: "The
|
|
26654
|
+
description: "The Ninjafy help knowledge base: search and read the shared, published product documentation (how-tos, common fixes, FAQs). Identical for every organization and org-neutral by design - it grants no view of your org's own state, and cannot file tickets or propose changes. Distinct from your organization's own knowledge store.",
|
|
26655
26655
|
supported_auth_types: ["none"],
|
|
26656
26656
|
beta: true,
|
|
26657
26657
|
capabilities: [
|
|
26658
26658
|
{
|
|
26659
26659
|
id: "augmented-help-kb:read",
|
|
26660
26660
|
name: "Read Help Docs",
|
|
26661
|
-
description: "Search and read published
|
|
26661
|
+
description: "Search and read published Ninjafy help articles (org-neutral product documentation). Read-only; no ticket filing, no agent proposals, no org-state reads.",
|
|
26662
26662
|
access: "read"
|
|
26663
26663
|
}
|
|
26664
26664
|
]
|
|
@@ -26671,7 +26671,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
26671
26671
|
// ENG-7217: Firecrawl migrates from a customer-API-key stdio MCP
|
|
26672
26672
|
// (`npx firecrawl-mcp`, FIRECRAWL_API_KEY) to a PREMIUM, platform-managed
|
|
26673
26673
|
// integration on the Deck / ElevenLabs model (ADR-0031, epic ENG-6920):
|
|
26674
|
-
//
|
|
26674
|
+
// Ninjafy holds ONE Firecrawl account key (`FIRECRAWL_ACCOUNT_KEY`) that
|
|
26675
26675
|
// every customer agent's web-data calls bill back to. The agent-facing tools
|
|
26676
26676
|
// are brokered server-side (firecrawl-broker.ts, reusing the official
|
|
26677
26677
|
// @mendable/firecrawl-js SDK) rather than via the stdio MCP, so managed usage
|
|
@@ -26830,9 +26830,9 @@ var INTEGRATION_REGISTRY = [
|
|
|
26830
26830
|
id: "ayrshare",
|
|
26831
26831
|
name: "Ayrshare",
|
|
26832
26832
|
category: "social",
|
|
26833
|
-
description: "Read and report on your social media - post history, analytics, and connected-account status - across LinkedIn, Instagram, Facebook, TikTok, YouTube, Pinterest, and more.
|
|
26833
|
+
description: "Read and report on your social media - post history, analytics, and connected-account status - across LinkedIn, Instagram, Facebook, TikTok, YouTube, Pinterest, and more. Ninjafy manages Ayrshare access for you - there is no key to enter; connect your social accounts once. Publishing on your behalf ships in a later release.",
|
|
26834
26834
|
// ENG-7722 / ADR-0046: Ayrshare is a PREMIUM, platform-managed integration on
|
|
26835
|
-
// the Deck / Firecrawl model (ADR-0031, epic ENG-6920):
|
|
26835
|
+
// the Deck / Firecrawl model (ADR-0031, epic ENG-6920): Ninjafy owns ONE
|
|
26836
26836
|
// Business Plan account (`AYRSHARE_API_KEY`) and every customer agent's profile
|
|
26837
26837
|
// + posts bill back to it, so the key is a single platform-held secret, NOT a
|
|
26838
26838
|
// per-agent credential. Auth type is therefore `none` - customers never enter a
|
|
@@ -26867,7 +26867,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
26867
26867
|
},
|
|
26868
26868
|
{
|
|
26869
26869
|
// ENG-7439: X Search is a PREMIUM, platform-managed integration on the
|
|
26870
|
-
// Deck / Firecrawl / ElevenLabs model (ADR-0031, epic ENG-6920):
|
|
26870
|
+
// Deck / Firecrawl / ElevenLabs model (ADR-0031, epic ENG-6920): Ninjafy
|
|
26871
26871
|
// holds ONE X (Twitter) developer app whose OAuth2 app-only bearer
|
|
26872
26872
|
// (X_APP_BEARER_TOKEN) every customer agent's search bills back to, so the
|
|
26873
26873
|
// key is a single platform-held secret, NOT a per-agent credential. Auth
|
|
@@ -26885,7 +26885,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
26885
26885
|
id: "x-search",
|
|
26886
26886
|
name: "X Search",
|
|
26887
26887
|
category: "social",
|
|
26888
|
-
description: "Read-only X (Twitter) search: recent public posts by keyword, hashtag, author, or any X search operator - for sentiment sweeps, topic monitoring, and trend research.
|
|
26888
|
+
description: "Read-only X (Twitter) search: recent public posts by keyword, hashtag, author, or any X search operator - for sentiment sweeps, topic monitoring, and trend research. Ninjafy manages X access for you - there is no key to enter.",
|
|
26889
26889
|
supported_auth_types: ["none"],
|
|
26890
26890
|
capabilities: [
|
|
26891
26891
|
{ id: "x-search:read", name: "Search Posts", description: "Search recent public X posts (last ~7 days) via x_search_recent.", access: "read" }
|
|
@@ -26917,7 +26917,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
26917
26917
|
// per definition, so an org can take Local Business Data without taking the
|
|
26918
26918
|
// pricier, more ToS-sensitive social scraping.
|
|
26919
26919
|
//
|
|
26920
|
-
//
|
|
26920
|
+
// Ninjafy holds ONE Apify account whose token (APIFY_API_TOKEN, read
|
|
26921
26921
|
// from SSM - the API Lambda env is at the 4KB cap) every customer run bills
|
|
26922
26922
|
// back to, so the key is a single platform-held secret, NOT a per-agent
|
|
26923
26923
|
// credential. Auth type is `none` - customers never enter a key. Tools run on
|
|
@@ -26939,7 +26939,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
26939
26939
|
id: "social-scraping",
|
|
26940
26940
|
name: "Social Scraping",
|
|
26941
26941
|
category: "social",
|
|
26942
|
-
description: "Pull public posts and videos from TikTok, Instagram and YouTube - captions, media, engagement counts and URLs - for brand, competitor and campaign research.
|
|
26942
|
+
description: "Pull public posts and videos from TikTok, Instagram and YouTube - captions, media, engagement counts and URLs - for brand, competitor and campaign research. Ninjafy manages the scraping account for you; there is no key to enter.",
|
|
26943
26943
|
supported_auth_types: ["none"],
|
|
26944
26944
|
capabilities: [
|
|
26945
26945
|
{ id: "social-scraping:scrape", name: "Scrape Social Posts", description: "Scrape public TikTok, Instagram and YouTube content (social_scrape_tiktok, social_scrape_instagram, social_scrape_youtube).", access: "write" },
|
|
@@ -26985,7 +26985,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
26985
26985
|
id: "local-business-data",
|
|
26986
26986
|
name: "Local Business Data",
|
|
26987
26987
|
category: "knowledge",
|
|
26988
|
-
description: "Find local businesses on Google Maps and pull their public listing details - name, address, phone, website, category, rating and review count - for local market research, competitor lists and lead research.
|
|
26988
|
+
description: "Find local businesses on Google Maps and pull their public listing details - name, address, phone, website, category, rating and review count - for local market research, competitor lists and lead research. Ninjafy manages the data account for you; there is no key to enter.",
|
|
26989
26989
|
supported_auth_types: ["none"],
|
|
26990
26990
|
capabilities: [
|
|
26991
26991
|
{ id: "local-business-data:search", name: "Search Local Businesses", description: "Search Google Maps for businesses and return their public listing details (local_business_search).", access: "write" },
|
|
@@ -27085,7 +27085,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
27085
27085
|
// here rather than read from the rate card, which is a real drift
|
|
27086
27086
|
// hazard — so it is held by a test that reprices both from the migration
|
|
27087
27087
|
// and fails if they disagree, rather than by anyone remembering.
|
|
27088
|
-
description: "Let an agent advise on a meeting while it is happening. Audio is transcribed on the Mac as usual; short passages are then checked by
|
|
27088
|
+
description: "Let an agent advise on a meeting while it is happening. Audio is transcribed on the Mac as usual; short passages are then checked by Ninjafy to decide when the agent should speak up, and the agent sees those moments in real time. Off until you turn it on. Billed per minute the advisor is armed \u2014 about $0.90 for a half-hour advised meeting (A$1.50 in Australian dollars); a meeting you record without arming the advisor costs nothing.",
|
|
27089
27089
|
access: "write",
|
|
27090
27090
|
requires_org_opt_in: true
|
|
27091
27091
|
}
|
package/dist/mcp/origami.js
CHANGED
|
@@ -39925,18 +39925,18 @@ var INTEGRATION_REGISTRY = [
|
|
|
39925
39925
|
// and migrations). "Deck Browser" makes the computer-use purpose obvious.
|
|
39926
39926
|
name: "Deck Browser",
|
|
39927
39927
|
category: "workspace-productivity",
|
|
39928
|
-
description: "Computer-use agents that operate any software through its real interface (no API required) and return schema-validated results. A higher-level alternative to Anchor Browser: Deck owns the auth lifecycle (encrypted credential vault, login, MFA, CAPTCHA) and provisions isolated desktop sessions on demand.
|
|
39928
|
+
description: "Computer-use agents that operate any software through its real interface (no API required) and return schema-validated results. A higher-level alternative to Anchor Browser: Deck owns the auth lifecycle (encrypted credential vault, login, MFA, CAPTCHA) and provisions isolated desktop sessions on demand. Ninjafy manages Deck access for you and gives each agent its own isolated Deck workspace, so there is no credential to enter.",
|
|
39929
39929
|
// Deck is REST-only (base https://api.deck.co/v2, Bearer `sk_live_` account
|
|
39930
39930
|
// key) — it ships NO MCP server, so unlike anchor-browser there is no
|
|
39931
39931
|
// `remoteMcp`/`nativeMcp` drop-in; the agent-facing tools are brokered
|
|
39932
39932
|
// server-side (deck-broker.ts). Deck is the first PREMIUM integration:
|
|
39933
|
-
//
|
|
39933
|
+
// Ninjafy owns ONE Deck account that every customer agent's runs bill back
|
|
39934
39934
|
// to (per-org charging is tracked in ENG-6920, not yet live), so the account
|
|
39935
39935
|
// key is a single platform-held secret (`DECK_ACCOUNT_KEY`), NOT a per-agent
|
|
39936
39936
|
// credential. Auth type is therefore `none` — customers never enter a key.
|
|
39937
39937
|
// Per-agent isolation is modelled on Deck's first-class resources: that one
|
|
39938
39938
|
// key provisions one Deck agent (`agt_`) + vault credential (`cred_`) per
|
|
39939
|
-
//
|
|
39939
|
+
// Ninjafy agent via POST /:id/provision-deck; the ids land in
|
|
39940
39940
|
// `agent_integrations.config` (deck_agent_id / deck_credential_id), so
|
|
39941
39941
|
// revocation + audit happen at the per-agent Deck-resource level without a
|
|
39942
39942
|
// distinct API key per agent (Deck exposes no key-minting admin API).
|
|
@@ -39949,7 +39949,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
39949
39949
|
docs_url: "https://docs.deck.co/",
|
|
39950
39950
|
beta: true,
|
|
39951
39951
|
// ENG-6920: Deck is the first PREMIUM integration. Unlike the customer-auth
|
|
39952
|
-
// integrations, every Deck run bills back to
|
|
39952
|
+
// integrations, every Deck run bills back to Ninjafy's single account
|
|
39953
39953
|
// key, and Deck is usage-priced, so it is gated on a per-org opt-in and
|
|
39954
39954
|
// metered. ENG-7032: `meters` declares the billable operations; the priced
|
|
39955
39955
|
// rate card (integration_rate_cards) holds the amounts. Each event_type must
|
|
@@ -39972,11 +39972,11 @@ var INTEGRATION_REGISTRY = [
|
|
|
39972
39972
|
id: "browserbase",
|
|
39973
39973
|
name: "Browserbase",
|
|
39974
39974
|
category: "workspace-productivity",
|
|
39975
|
-
description: "A hosted browser your agents drive to operate real websites, behind residential proxies and staying signed in via a per-agent encrypted login profile. An operator logs an agent into a site once through a secure live view; every later session reuses that authenticated profile - no credential to enter and the agent never handles the login. A lower-level, self-driven alternative to Deck Browser:
|
|
39975
|
+
description: "A hosted browser your agents drive to operate real websites, behind residential proxies and staying signed in via a per-agent encrypted login profile. An operator logs an agent into a site once through a secure live view; every later session reuses that authenticated profile - no credential to enter and the agent never handles the login. A lower-level, self-driven alternative to Deck Browser: Ninjafy manages the Browserbase account for you and gives each agent its own isolated login profile.",
|
|
39976
39976
|
// Browserbase is REST-only (base https://api.browserbase.com/v1, `X-BB-API-Key`
|
|
39977
39977
|
// header - NOT Bearer) and ships NO MCP server, so the agent-facing tools are
|
|
39978
39978
|
// brokered server-side (browserbase-broker.ts). It is a PREMIUM integration on
|
|
39979
|
-
// the Deck model (ENG-7947):
|
|
39979
|
+
// the Deck model (ENG-7947): Ninjafy owns ONE Browserbase account that every
|
|
39980
39980
|
// customer agent's sessions bill back to, so the account key is a single
|
|
39981
39981
|
// platform-held secret (`BROWSERBASE_ACCOUNT_KEY`), NOT a per-agent credential.
|
|
39982
39982
|
// Auth type is `none` - customers never enter a key. Per-agent isolation is a
|
|
@@ -39995,7 +39995,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
39995
39995
|
],
|
|
39996
39996
|
docs_url: "https://docs.browserbase.com/",
|
|
39997
39997
|
beta: true,
|
|
39998
|
-
// ENG-7947: PREMIUM, usage-priced. Every session bills back to
|
|
39998
|
+
// ENG-7947: PREMIUM, usage-priced. Every session bills back to Ninjafy's
|
|
39999
39999
|
// single account key as proxy data + session time, so it is gated on a per-org
|
|
40000
40000
|
// opt-in and metered. `meters` declares the billable operations; the priced
|
|
40001
40001
|
// rate card (integration_rate_cards) holds the amounts. Each event_type must
|
|
@@ -40033,11 +40033,11 @@ var INTEGRATION_REGISTRY = [
|
|
|
40033
40033
|
id: "elevenlabs",
|
|
40034
40034
|
name: "ElevenLabs",
|
|
40035
40035
|
category: "media",
|
|
40036
|
-
description: "Speech-to-text for inbound voice notes. When a teammate sends an agent a voice message (Slack, Telegram, etc.), the agent uploads the audio and gets back an accurate transcript via ElevenLabs Scribe, so a voice note is no longer a black box.
|
|
40036
|
+
description: "Speech-to-text for inbound voice notes. When a teammate sends an agent a voice message (Slack, Telegram, etc.), the agent uploads the audio and gets back an accurate transcript via ElevenLabs Scribe, so a voice note is no longer a black box. Ninjafy manages ElevenLabs access for you - there is no key to enter.",
|
|
40037
40037
|
// ElevenLabs is REST-only for our use (POST /v1/speech-to-text, `xi-api-key`
|
|
40038
40038
|
// header, NOT Bearer) — it ships no MCP server, so the agent-facing tools are
|
|
40039
40039
|
// brokered server-side (scribe-broker.ts). It is a PREMIUM integration on the
|
|
40040
|
-
// Deck model (ADR-0031, epic ENG-6920):
|
|
40040
|
+
// Deck model (ADR-0031, epic ENG-6920): Ninjafy owns ONE ElevenLabs account
|
|
40041
40041
|
// that every customer agent's transcriptions bill back to, so the account key
|
|
40042
40042
|
// is a single platform-held secret (`ELEVENLABS_ACCOUNT_KEY`), NOT a per-agent
|
|
40043
40043
|
// credential. Auth type is therefore `none` — customers never enter a key.
|
|
@@ -40086,7 +40086,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
40086
40086
|
tts: { meterEventType: "tts" }
|
|
40087
40087
|
},
|
|
40088
40088
|
// ENG-7005 / ENG-7048: premium (billable). Both surfaces bill back to
|
|
40089
|
-
//
|
|
40089
|
+
// Ninjafy's single account key and are usage-priced, so the integration is
|
|
40090
40090
|
// gated on a per-org opt-in and metered. The two surfaces share the one
|
|
40091
40091
|
// `elevenlabs` definition (and so the one per-org monthly budget). Pricing
|
|
40092
40092
|
// amounts live in integration_rate_cards; this only declares the model.
|
|
@@ -40111,9 +40111,9 @@ var INTEGRATION_REGISTRY = [
|
|
|
40111
40111
|
id: "grok-voice",
|
|
40112
40112
|
name: "Grok Voice",
|
|
40113
40113
|
category: "media",
|
|
40114
|
-
description: "Real-time two-way voice for your agent, powered by xAI Grok. Speak to the agent and hear it reply.
|
|
40114
|
+
description: "Real-time two-way voice for your agent, powered by xAI Grok. Speak to the agent and hear it reply. Ninjafy manages Grok Voice access for you - there is no key to enter.",
|
|
40115
40115
|
// Grok Voice is a PREMIUM integration on the platform-key model (mirrors
|
|
40116
|
-
// ElevenLabs / ADR-0031):
|
|
40116
|
+
// ElevenLabs / ADR-0031): Ninjafy holds one xAI account key and every
|
|
40117
40117
|
// customer agent's voice minutes bill back to it, so auth_type is `none` -
|
|
40118
40118
|
// customers never enter a key. Enabling this integration (resolved via the
|
|
40119
40119
|
// agent/team/org scope chain) is what unlocks voice in Direct Chat; it
|
|
@@ -40136,7 +40136,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
40136
40136
|
realtime: { meterEventType: "voice_session", listVoices: true },
|
|
40137
40137
|
stt: { meterEventType: "transcription" }
|
|
40138
40138
|
},
|
|
40139
|
-
// Premium (billable): voice minutes bill back to
|
|
40139
|
+
// Premium (billable): voice minutes bill back to Ninjafy's xAI account key,
|
|
40140
40140
|
// usage-priced and gated on a per-org opt-in. Pricing amounts live in
|
|
40141
40141
|
// integration_rate_cards; this only declares the model + meter.
|
|
40142
40142
|
premium: {
|
|
@@ -40187,8 +40187,8 @@ var INTEGRATION_REGISTRY = [
|
|
|
40187
40187
|
id: "image-gen",
|
|
40188
40188
|
name: "Image Generation",
|
|
40189
40189
|
category: "media",
|
|
40190
|
-
description: "AI image generation from a text prompt. An agent passes a prompt to generate_image and gets back a generated raster image, which it can deliver to a chat channel or embed on an Augmented Live page (ENG-7535).
|
|
40191
|
-
// No vendor key to enter:
|
|
40190
|
+
description: "AI image generation from a text prompt. An agent passes a prompt to generate_image and gets back a generated raster image, which it can deliver to a chat channel or embed on an Augmented Live page (ENG-7535). Ninjafy manages the model access for you - there is no key to enter. Generation runs through the Vercel AI Gateway (OpenAI gpt-image-2 today). It is a PREMIUM, usage-billed capability: gated on a per-org opt-in and a monthly USD budget, and metered per generated image.",
|
|
40191
|
+
// No vendor key to enter: Ninjafy owns the shared Vercel AI Gateway virtual
|
|
40192
40192
|
// key (AI_GATEWAY_API_KEY) that fronts the image providers, so auth is `none`
|
|
40193
40193
|
// (customers never enter a key), same as ElevenLabs.
|
|
40194
40194
|
supported_auth_types: ["none"],
|
|
@@ -40197,7 +40197,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
40197
40197
|
],
|
|
40198
40198
|
docs_url: "https://platform.openai.com/docs/guides/images",
|
|
40199
40199
|
beta: true,
|
|
40200
|
-
// ENG-7472: premium (billable). Image gen bills back to
|
|
40200
|
+
// ENG-7472: premium (billable). Image gen bills back to Ninjafy's shared
|
|
40201
40201
|
// Vercel AI Gateway key and is usage-priced per generated image, so it is gated
|
|
40202
40202
|
// on a per-org opt-in (isOrgEntitledToPremium) + a per-org monthly USD budget,
|
|
40203
40203
|
// and metered on integration_usage_events. This budget is PER-ORG, distinct
|
|
@@ -40221,8 +40221,8 @@ var INTEGRATION_REGISTRY = [
|
|
|
40221
40221
|
id: "video-gen",
|
|
40222
40222
|
name: "Video Generation",
|
|
40223
40223
|
category: "media",
|
|
40224
|
-
description: "AI video generation from a text prompt or an input image. An agent passes a prompt (plus optionally image_url) to generate_video and gets back a short generated video with audio, which it can deliver to a chat channel.
|
|
40225
|
-
// Platform-key model (mirrors Grok Voice / ADR-0031):
|
|
40224
|
+
description: "AI video generation from a text prompt or an input image. An agent passes a prompt (plus optionally image_url) to generate_video and gets back a short generated video with audio, which it can deliver to a chat channel. Ninjafy manages the model access for you - there is no key to enter. Generation runs direct against xAI Grok Imagine: text-to-video on the base grok-imagine-video model, image-to-video on grok-imagine-video-1.5. It is a PREMIUM, usage-billed capability: gated on a per-org opt-in and a monthly USD budget, and metered per second of generated video.",
|
|
40225
|
+
// Platform-key model (mirrors Grok Voice / ADR-0031): Ninjafy holds one xAI
|
|
40226
40226
|
// account key (XAI_API_KEY) and every customer render bills back to it, so
|
|
40227
40227
|
// auth is `none` - customers never enter a key.
|
|
40228
40228
|
supported_auth_types: ["none"],
|
|
@@ -40231,7 +40231,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
40231
40231
|
],
|
|
40232
40232
|
docs_url: "https://docs.x.ai/developers/model-capabilities/video/generation",
|
|
40233
40233
|
beta: true,
|
|
40234
|
-
// Premium (billable): renders bill back to
|
|
40234
|
+
// Premium (billable): renders bill back to Ninjafy's xAI account key,
|
|
40235
40235
|
// usage-priced per second of output video, so it is gated on a per-org opt-in
|
|
40236
40236
|
// (isOrgEntitledToPremium) + a per-org monthly USD budget, and metered on
|
|
40237
40237
|
// integration_usage_events. Pricing lives in integration_rate_cards; this only
|
|
@@ -40309,7 +40309,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
40309
40309
|
// under the MCP.
|
|
40310
40310
|
//
|
|
40311
40311
|
// Bring-your-own-key: generations bill to the customer's own Higgsfield
|
|
40312
|
-
// account, so an install is never metered by
|
|
40312
|
+
// account, so an install is never metered by Ninjafy.
|
|
40313
40313
|
//
|
|
40314
40314
|
// NOTE: this entry carries no `remoteMcp`, so it contributes nothing to
|
|
40315
40315
|
// `registryRemoteMcpKeys` and cannot prune the `higgsfield` key an older
|
|
@@ -40749,12 +40749,12 @@ var INTEGRATION_REGISTRY = [
|
|
|
40749
40749
|
beta: true,
|
|
40750
40750
|
capabilities: [
|
|
40751
40751
|
{ id: "augmented-support:read-diagnostics", name: "Read Diagnostics", description: "Read your own org's agents, hosts, integrations, alerts, flags, and audit log (projection only - never credentials or transcripts).", access: "read" },
|
|
40752
|
-
{ id: "augmented-support:file-requests", name: "File Requests", description: "File bug / feature / integration requests to
|
|
40752
|
+
{ id: "augmented-support:file-requests", name: "File Requests", description: "File bug / feature / integration requests to Ninjafy support.", access: "write" },
|
|
40753
40753
|
{ id: "augmented-support:propose-writes", name: "Propose Self-Remediation", description: "Propose creating an agent in your own org; executed only after a human approves a server-rendered diff.", access: "write" }
|
|
40754
40754
|
]
|
|
40755
40755
|
},
|
|
40756
40756
|
{
|
|
40757
|
-
// ENG-8332: the
|
|
40757
|
+
// ENG-8332: the Ninjafy HELP knowledge base, split out of
|
|
40758
40758
|
// `augmented-support` so an agent can be given the docs WITHOUT also being
|
|
40759
40759
|
// given a ticket-filing button, an agent-proposal button, and org-wide read
|
|
40760
40760
|
// of agents, hosts, integrations, alerts, flags and the audit log. That
|
|
@@ -40782,14 +40782,14 @@ var INTEGRATION_REGISTRY = [
|
|
|
40782
40782
|
// ENG-8804: Granted centrally (ENG-8542 auto-grant), never connected by a human.
|
|
40783
40783
|
platform_internal: true,
|
|
40784
40784
|
category: "knowledge",
|
|
40785
|
-
description: "The
|
|
40785
|
+
description: "The Ninjafy help knowledge base: search and read the shared, published product documentation (how-tos, common fixes, FAQs). Identical for every organization and org-neutral by design - it grants no view of your org's own state, and cannot file tickets or propose changes. Distinct from your organization's own knowledge store.",
|
|
40786
40786
|
supported_auth_types: ["none"],
|
|
40787
40787
|
beta: true,
|
|
40788
40788
|
capabilities: [
|
|
40789
40789
|
{
|
|
40790
40790
|
id: "augmented-help-kb:read",
|
|
40791
40791
|
name: "Read Help Docs",
|
|
40792
|
-
description: "Search and read published
|
|
40792
|
+
description: "Search and read published Ninjafy help articles (org-neutral product documentation). Read-only; no ticket filing, no agent proposals, no org-state reads.",
|
|
40793
40793
|
access: "read"
|
|
40794
40794
|
}
|
|
40795
40795
|
]
|
|
@@ -40802,7 +40802,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
40802
40802
|
// ENG-7217: Firecrawl migrates from a customer-API-key stdio MCP
|
|
40803
40803
|
// (`npx firecrawl-mcp`, FIRECRAWL_API_KEY) to a PREMIUM, platform-managed
|
|
40804
40804
|
// integration on the Deck / ElevenLabs model (ADR-0031, epic ENG-6920):
|
|
40805
|
-
//
|
|
40805
|
+
// Ninjafy holds ONE Firecrawl account key (`FIRECRAWL_ACCOUNT_KEY`) that
|
|
40806
40806
|
// every customer agent's web-data calls bill back to. The agent-facing tools
|
|
40807
40807
|
// are brokered server-side (firecrawl-broker.ts, reusing the official
|
|
40808
40808
|
// @mendable/firecrawl-js SDK) rather than via the stdio MCP, so managed usage
|
|
@@ -40961,9 +40961,9 @@ var INTEGRATION_REGISTRY = [
|
|
|
40961
40961
|
id: "ayrshare",
|
|
40962
40962
|
name: "Ayrshare",
|
|
40963
40963
|
category: "social",
|
|
40964
|
-
description: "Read and report on your social media - post history, analytics, and connected-account status - across LinkedIn, Instagram, Facebook, TikTok, YouTube, Pinterest, and more.
|
|
40964
|
+
description: "Read and report on your social media - post history, analytics, and connected-account status - across LinkedIn, Instagram, Facebook, TikTok, YouTube, Pinterest, and more. Ninjafy manages Ayrshare access for you - there is no key to enter; connect your social accounts once. Publishing on your behalf ships in a later release.",
|
|
40965
40965
|
// ENG-7722 / ADR-0046: Ayrshare is a PREMIUM, platform-managed integration on
|
|
40966
|
-
// the Deck / Firecrawl model (ADR-0031, epic ENG-6920):
|
|
40966
|
+
// the Deck / Firecrawl model (ADR-0031, epic ENG-6920): Ninjafy owns ONE
|
|
40967
40967
|
// Business Plan account (`AYRSHARE_API_KEY`) and every customer agent's profile
|
|
40968
40968
|
// + posts bill back to it, so the key is a single platform-held secret, NOT a
|
|
40969
40969
|
// per-agent credential. Auth type is therefore `none` - customers never enter a
|
|
@@ -40998,7 +40998,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
40998
40998
|
},
|
|
40999
40999
|
{
|
|
41000
41000
|
// ENG-7439: X Search is a PREMIUM, platform-managed integration on the
|
|
41001
|
-
// Deck / Firecrawl / ElevenLabs model (ADR-0031, epic ENG-6920):
|
|
41001
|
+
// Deck / Firecrawl / ElevenLabs model (ADR-0031, epic ENG-6920): Ninjafy
|
|
41002
41002
|
// holds ONE X (Twitter) developer app whose OAuth2 app-only bearer
|
|
41003
41003
|
// (X_APP_BEARER_TOKEN) every customer agent's search bills back to, so the
|
|
41004
41004
|
// key is a single platform-held secret, NOT a per-agent credential. Auth
|
|
@@ -41016,7 +41016,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
41016
41016
|
id: "x-search",
|
|
41017
41017
|
name: "X Search",
|
|
41018
41018
|
category: "social",
|
|
41019
|
-
description: "Read-only X (Twitter) search: recent public posts by keyword, hashtag, author, or any X search operator - for sentiment sweeps, topic monitoring, and trend research.
|
|
41019
|
+
description: "Read-only X (Twitter) search: recent public posts by keyword, hashtag, author, or any X search operator - for sentiment sweeps, topic monitoring, and trend research. Ninjafy manages X access for you - there is no key to enter.",
|
|
41020
41020
|
supported_auth_types: ["none"],
|
|
41021
41021
|
capabilities: [
|
|
41022
41022
|
{ id: "x-search:read", name: "Search Posts", description: "Search recent public X posts (last ~7 days) via x_search_recent.", access: "read" }
|
|
@@ -41048,7 +41048,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
41048
41048
|
// per definition, so an org can take Local Business Data without taking the
|
|
41049
41049
|
// pricier, more ToS-sensitive social scraping.
|
|
41050
41050
|
//
|
|
41051
|
-
//
|
|
41051
|
+
// Ninjafy holds ONE Apify account whose token (APIFY_API_TOKEN, read
|
|
41052
41052
|
// from SSM - the API Lambda env is at the 4KB cap) every customer run bills
|
|
41053
41053
|
// back to, so the key is a single platform-held secret, NOT a per-agent
|
|
41054
41054
|
// credential. Auth type is `none` - customers never enter a key. Tools run on
|
|
@@ -41070,7 +41070,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
41070
41070
|
id: "social-scraping",
|
|
41071
41071
|
name: "Social Scraping",
|
|
41072
41072
|
category: "social",
|
|
41073
|
-
description: "Pull public posts and videos from TikTok, Instagram and YouTube - captions, media, engagement counts and URLs - for brand, competitor and campaign research.
|
|
41073
|
+
description: "Pull public posts and videos from TikTok, Instagram and YouTube - captions, media, engagement counts and URLs - for brand, competitor and campaign research. Ninjafy manages the scraping account for you; there is no key to enter.",
|
|
41074
41074
|
supported_auth_types: ["none"],
|
|
41075
41075
|
capabilities: [
|
|
41076
41076
|
{ id: "social-scraping:scrape", name: "Scrape Social Posts", description: "Scrape public TikTok, Instagram and YouTube content (social_scrape_tiktok, social_scrape_instagram, social_scrape_youtube).", access: "write" },
|
|
@@ -41116,7 +41116,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
41116
41116
|
id: "local-business-data",
|
|
41117
41117
|
name: "Local Business Data",
|
|
41118
41118
|
category: "knowledge",
|
|
41119
|
-
description: "Find local businesses on Google Maps and pull their public listing details - name, address, phone, website, category, rating and review count - for local market research, competitor lists and lead research.
|
|
41119
|
+
description: "Find local businesses on Google Maps and pull their public listing details - name, address, phone, website, category, rating and review count - for local market research, competitor lists and lead research. Ninjafy manages the data account for you; there is no key to enter.",
|
|
41120
41120
|
supported_auth_types: ["none"],
|
|
41121
41121
|
capabilities: [
|
|
41122
41122
|
{ id: "local-business-data:search", name: "Search Local Businesses", description: "Search Google Maps for businesses and return their public listing details (local_business_search).", access: "write" },
|
|
@@ -41216,7 +41216,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
41216
41216
|
// here rather than read from the rate card, which is a real drift
|
|
41217
41217
|
// hazard — so it is held by a test that reprices both from the migration
|
|
41218
41218
|
// and fails if they disagree, rather than by anyone remembering.
|
|
41219
|
-
description: "Let an agent advise on a meeting while it is happening. Audio is transcribed on the Mac as usual; short passages are then checked by
|
|
41219
|
+
description: "Let an agent advise on a meeting while it is happening. Audio is transcribed on the Mac as usual; short passages are then checked by Ninjafy to decide when the agent should speak up, and the agent sees those moments in real time. Off until you turn it on. Billed per minute the advisor is armed \u2014 about $0.90 for a half-hour advised meeting (A$1.50 in Australian dollars); a meeting you record without arming the advisor costs nothing.",
|
|
41220
41220
|
access: "write",
|
|
41221
41221
|
requires_org_opt_in: true
|
|
41222
41222
|
}
|