@integrity-labs/agt-cli 0.28.902 → 0.28.904
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-UGLLCAZ7.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/mcp/whatsapp-channel.js +11 -1
- package/dist/mcp/whatsapp-link.js +11 -1
- 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-UGLLCAZ7.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/bin/agt.js
CHANGED
|
@@ -40,12 +40,12 @@ import {
|
|
|
40
40
|
success,
|
|
41
41
|
table,
|
|
42
42
|
warn
|
|
43
|
-
} from "../chunk-
|
|
43
|
+
} from "../chunk-UGLLCAZ7.js";
|
|
44
44
|
import {
|
|
45
45
|
getProjectDir,
|
|
46
46
|
isSessionResumeDisabled,
|
|
47
47
|
readDirectChatSessionState
|
|
48
|
-
} from "../chunk-
|
|
48
|
+
} from "../chunk-2LV6SJ7W.js";
|
|
49
49
|
import {
|
|
50
50
|
AnchorSessionClient,
|
|
51
51
|
CHANNEL_REGISTRY,
|
|
@@ -79,7 +79,7 @@ import {
|
|
|
79
79
|
serializeManifestForSlackCli,
|
|
80
80
|
sessionFileExists,
|
|
81
81
|
sessionTranscriptDir
|
|
82
|
-
} from "../chunk-
|
|
82
|
+
} from "../chunk-Q2GQY64J.js";
|
|
83
83
|
import "../chunk-XWVM4KPK.js";
|
|
84
84
|
|
|
85
85
|
// src/bin/agt.ts
|
|
@@ -5467,7 +5467,7 @@ import { execFileSync, execSync } from "child_process";
|
|
|
5467
5467
|
import { existsSync as existsSync11, realpathSync as realpathSync2 } from "fs";
|
|
5468
5468
|
import chalk18 from "chalk";
|
|
5469
5469
|
import ora16 from "ora";
|
|
5470
|
-
var cliVersion = true ? "0.28.
|
|
5470
|
+
var cliVersion = true ? "0.28.904" : "dev";
|
|
5471
5471
|
async function fetchLatestVersion() {
|
|
5472
5472
|
const host2 = getHost();
|
|
5473
5473
|
if (!host2) return null;
|
|
@@ -6658,7 +6658,7 @@ function handleError(err) {
|
|
|
6658
6658
|
}
|
|
6659
6659
|
|
|
6660
6660
|
// src/bin/agt.ts
|
|
6661
|
-
var cliVersion2 = true ? "0.28.
|
|
6661
|
+
var cliVersion2 = true ? "0.28.904" : "dev";
|
|
6662
6662
|
var program = new Command();
|
|
6663
6663
|
program.name("agt").description("Augmented CLI \u2014 agent provisioning and management").version(cliVersion2).option("--json", "Emit machine-readable JSON output (suppress spinners and colors)").option("--skip-update-check", "Skip the automatic update check on startup");
|
|
6664
6664
|
program.hook("preAction", async (thisCommand, actionCommand) => {
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
rotateDailySession,
|
|
20
20
|
sessionFileExists,
|
|
21
21
|
todayLocalIso
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-Q2GQY64J.js";
|
|
23
23
|
import {
|
|
24
24
|
reapOrphanChannelMcps
|
|
25
25
|
} from "./chunk-XWVM4KPK.js";
|
|
@@ -5730,4 +5730,4 @@ export {
|
|
|
5730
5730
|
stopAllSessionsAndWait,
|
|
5731
5731
|
getProjectDir
|
|
5732
5732
|
};
|
|
5733
|
-
//# sourceMappingURL=chunk-
|
|
5733
|
+
//# sourceMappingURL=chunk-2LV6SJ7W.js.map
|
|
@@ -1912,18 +1912,18 @@ var INTEGRATION_REGISTRY = [
|
|
|
1912
1912
|
// and migrations). "Deck Browser" makes the computer-use purpose obvious.
|
|
1913
1913
|
name: "Deck Browser",
|
|
1914
1914
|
category: "workspace-productivity",
|
|
1915
|
-
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.
|
|
1915
|
+
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.",
|
|
1916
1916
|
// Deck is REST-only (base https://api.deck.co/v2, Bearer `sk_live_` account
|
|
1917
1917
|
// key) — it ships NO MCP server, so unlike anchor-browser there is no
|
|
1918
1918
|
// `remoteMcp`/`nativeMcp` drop-in; the agent-facing tools are brokered
|
|
1919
1919
|
// server-side (deck-broker.ts). Deck is the first PREMIUM integration:
|
|
1920
|
-
//
|
|
1920
|
+
// Ninjafy owns ONE Deck account that every customer agent's runs bill back
|
|
1921
1921
|
// to (per-org charging is tracked in ENG-6920, not yet live), so the account
|
|
1922
1922
|
// key is a single platform-held secret (`DECK_ACCOUNT_KEY`), NOT a per-agent
|
|
1923
1923
|
// credential. Auth type is therefore `none` — customers never enter a key.
|
|
1924
1924
|
// Per-agent isolation is modelled on Deck's first-class resources: that one
|
|
1925
1925
|
// key provisions one Deck agent (`agt_`) + vault credential (`cred_`) per
|
|
1926
|
-
//
|
|
1926
|
+
// Ninjafy agent via POST /:id/provision-deck; the ids land in
|
|
1927
1927
|
// `agent_integrations.config` (deck_agent_id / deck_credential_id), so
|
|
1928
1928
|
// revocation + audit happen at the per-agent Deck-resource level without a
|
|
1929
1929
|
// distinct API key per agent (Deck exposes no key-minting admin API).
|
|
@@ -1936,7 +1936,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
1936
1936
|
docs_url: "https://docs.deck.co/",
|
|
1937
1937
|
beta: true,
|
|
1938
1938
|
// ENG-6920: Deck is the first PREMIUM integration. Unlike the customer-auth
|
|
1939
|
-
// integrations, every Deck run bills back to
|
|
1939
|
+
// integrations, every Deck run bills back to Ninjafy's single account
|
|
1940
1940
|
// key, and Deck is usage-priced, so it is gated on a per-org opt-in and
|
|
1941
1941
|
// metered. ENG-7032: `meters` declares the billable operations; the priced
|
|
1942
1942
|
// rate card (integration_rate_cards) holds the amounts. Each event_type must
|
|
@@ -1959,11 +1959,11 @@ var INTEGRATION_REGISTRY = [
|
|
|
1959
1959
|
id: "browserbase",
|
|
1960
1960
|
name: "Browserbase",
|
|
1961
1961
|
category: "workspace-productivity",
|
|
1962
|
-
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:
|
|
1962
|
+
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.",
|
|
1963
1963
|
// Browserbase is REST-only (base https://api.browserbase.com/v1, `X-BB-API-Key`
|
|
1964
1964
|
// header - NOT Bearer) and ships NO MCP server, so the agent-facing tools are
|
|
1965
1965
|
// brokered server-side (browserbase-broker.ts). It is a PREMIUM integration on
|
|
1966
|
-
// the Deck model (ENG-7947):
|
|
1966
|
+
// the Deck model (ENG-7947): Ninjafy owns ONE Browserbase account that every
|
|
1967
1967
|
// customer agent's sessions bill back to, so the account key is a single
|
|
1968
1968
|
// platform-held secret (`BROWSERBASE_ACCOUNT_KEY`), NOT a per-agent credential.
|
|
1969
1969
|
// Auth type is `none` - customers never enter a key. Per-agent isolation is a
|
|
@@ -1982,7 +1982,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
1982
1982
|
],
|
|
1983
1983
|
docs_url: "https://docs.browserbase.com/",
|
|
1984
1984
|
beta: true,
|
|
1985
|
-
// ENG-7947: PREMIUM, usage-priced. Every session bills back to
|
|
1985
|
+
// ENG-7947: PREMIUM, usage-priced. Every session bills back to Ninjafy's
|
|
1986
1986
|
// single account key as proxy data + session time, so it is gated on a per-org
|
|
1987
1987
|
// opt-in and metered. `meters` declares the billable operations; the priced
|
|
1988
1988
|
// rate card (integration_rate_cards) holds the amounts. Each event_type must
|
|
@@ -2020,11 +2020,11 @@ var INTEGRATION_REGISTRY = [
|
|
|
2020
2020
|
id: "elevenlabs",
|
|
2021
2021
|
name: "ElevenLabs",
|
|
2022
2022
|
category: "media",
|
|
2023
|
-
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.
|
|
2023
|
+
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.",
|
|
2024
2024
|
// ElevenLabs is REST-only for our use (POST /v1/speech-to-text, `xi-api-key`
|
|
2025
2025
|
// header, NOT Bearer) — it ships no MCP server, so the agent-facing tools are
|
|
2026
2026
|
// brokered server-side (scribe-broker.ts). It is a PREMIUM integration on the
|
|
2027
|
-
// Deck model (ADR-0031, epic ENG-6920):
|
|
2027
|
+
// Deck model (ADR-0031, epic ENG-6920): Ninjafy owns ONE ElevenLabs account
|
|
2028
2028
|
// that every customer agent's transcriptions bill back to, so the account key
|
|
2029
2029
|
// is a single platform-held secret (`ELEVENLABS_ACCOUNT_KEY`), NOT a per-agent
|
|
2030
2030
|
// credential. Auth type is therefore `none` — customers never enter a key.
|
|
@@ -2073,7 +2073,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
2073
2073
|
tts: { meterEventType: "tts" }
|
|
2074
2074
|
},
|
|
2075
2075
|
// ENG-7005 / ENG-7048: premium (billable). Both surfaces bill back to
|
|
2076
|
-
//
|
|
2076
|
+
// Ninjafy's single account key and are usage-priced, so the integration is
|
|
2077
2077
|
// gated on a per-org opt-in and metered. The two surfaces share the one
|
|
2078
2078
|
// `elevenlabs` definition (and so the one per-org monthly budget). Pricing
|
|
2079
2079
|
// amounts live in integration_rate_cards; this only declares the model.
|
|
@@ -2098,9 +2098,9 @@ var INTEGRATION_REGISTRY = [
|
|
|
2098
2098
|
id: "grok-voice",
|
|
2099
2099
|
name: "Grok Voice",
|
|
2100
2100
|
category: "media",
|
|
2101
|
-
description: "Real-time two-way voice for your agent, powered by xAI Grok. Speak to the agent and hear it reply.
|
|
2101
|
+
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.",
|
|
2102
2102
|
// Grok Voice is a PREMIUM integration on the platform-key model (mirrors
|
|
2103
|
-
// ElevenLabs / ADR-0031):
|
|
2103
|
+
// ElevenLabs / ADR-0031): Ninjafy holds one xAI account key and every
|
|
2104
2104
|
// customer agent's voice minutes bill back to it, so auth_type is `none` -
|
|
2105
2105
|
// customers never enter a key. Enabling this integration (resolved via the
|
|
2106
2106
|
// agent/team/org scope chain) is what unlocks voice in Direct Chat; it
|
|
@@ -2123,7 +2123,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
2123
2123
|
realtime: { meterEventType: "voice_session", listVoices: true },
|
|
2124
2124
|
stt: { meterEventType: "transcription" }
|
|
2125
2125
|
},
|
|
2126
|
-
// Premium (billable): voice minutes bill back to
|
|
2126
|
+
// Premium (billable): voice minutes bill back to Ninjafy's xAI account key,
|
|
2127
2127
|
// usage-priced and gated on a per-org opt-in. Pricing amounts live in
|
|
2128
2128
|
// integration_rate_cards; this only declares the model + meter.
|
|
2129
2129
|
premium: {
|
|
@@ -2174,8 +2174,8 @@ var INTEGRATION_REGISTRY = [
|
|
|
2174
2174
|
id: "image-gen",
|
|
2175
2175
|
name: "Image Generation",
|
|
2176
2176
|
category: "media",
|
|
2177
|
-
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).
|
|
2178
|
-
// No vendor key to enter:
|
|
2177
|
+
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.",
|
|
2178
|
+
// No vendor key to enter: Ninjafy owns the shared Vercel AI Gateway virtual
|
|
2179
2179
|
// key (AI_GATEWAY_API_KEY) that fronts the image providers, so auth is `none`
|
|
2180
2180
|
// (customers never enter a key), same as ElevenLabs.
|
|
2181
2181
|
supported_auth_types: ["none"],
|
|
@@ -2184,7 +2184,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
2184
2184
|
],
|
|
2185
2185
|
docs_url: "https://platform.openai.com/docs/guides/images",
|
|
2186
2186
|
beta: true,
|
|
2187
|
-
// ENG-7472: premium (billable). Image gen bills back to
|
|
2187
|
+
// ENG-7472: premium (billable). Image gen bills back to Ninjafy's shared
|
|
2188
2188
|
// Vercel AI Gateway key and is usage-priced per generated image, so it is gated
|
|
2189
2189
|
// on a per-org opt-in (isOrgEntitledToPremium) + a per-org monthly USD budget,
|
|
2190
2190
|
// and metered on integration_usage_events. This budget is PER-ORG, distinct
|
|
@@ -2208,8 +2208,8 @@ var INTEGRATION_REGISTRY = [
|
|
|
2208
2208
|
id: "video-gen",
|
|
2209
2209
|
name: "Video Generation",
|
|
2210
2210
|
category: "media",
|
|
2211
|
-
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.
|
|
2212
|
-
// Platform-key model (mirrors Grok Voice / ADR-0031):
|
|
2211
|
+
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.",
|
|
2212
|
+
// Platform-key model (mirrors Grok Voice / ADR-0031): Ninjafy holds one xAI
|
|
2213
2213
|
// account key (XAI_API_KEY) and every customer render bills back to it, so
|
|
2214
2214
|
// auth is `none` - customers never enter a key.
|
|
2215
2215
|
supported_auth_types: ["none"],
|
|
@@ -2218,7 +2218,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
2218
2218
|
],
|
|
2219
2219
|
docs_url: "https://docs.x.ai/developers/model-capabilities/video/generation",
|
|
2220
2220
|
beta: true,
|
|
2221
|
-
// Premium (billable): renders bill back to
|
|
2221
|
+
// Premium (billable): renders bill back to Ninjafy's xAI account key,
|
|
2222
2222
|
// usage-priced per second of output video, so it is gated on a per-org opt-in
|
|
2223
2223
|
// (isOrgEntitledToPremium) + a per-org monthly USD budget, and metered on
|
|
2224
2224
|
// integration_usage_events. Pricing lives in integration_rate_cards; this only
|
|
@@ -2296,7 +2296,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
2296
2296
|
// under the MCP.
|
|
2297
2297
|
//
|
|
2298
2298
|
// Bring-your-own-key: generations bill to the customer's own Higgsfield
|
|
2299
|
-
// account, so an install is never metered by
|
|
2299
|
+
// account, so an install is never metered by Ninjafy.
|
|
2300
2300
|
//
|
|
2301
2301
|
// NOTE: this entry carries no `remoteMcp`, so it contributes nothing to
|
|
2302
2302
|
// `registryRemoteMcpKeys` and cannot prune the `higgsfield` key an older
|
|
@@ -2736,12 +2736,12 @@ var INTEGRATION_REGISTRY = [
|
|
|
2736
2736
|
beta: true,
|
|
2737
2737
|
capabilities: [
|
|
2738
2738
|
{ 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" },
|
|
2739
|
-
{ id: "augmented-support:file-requests", name: "File Requests", description: "File bug / feature / integration requests to
|
|
2739
|
+
{ id: "augmented-support:file-requests", name: "File Requests", description: "File bug / feature / integration requests to Ninjafy support.", access: "write" },
|
|
2740
2740
|
{ 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" }
|
|
2741
2741
|
]
|
|
2742
2742
|
},
|
|
2743
2743
|
{
|
|
2744
|
-
// ENG-8332: the
|
|
2744
|
+
// ENG-8332: the Ninjafy HELP knowledge base, split out of
|
|
2745
2745
|
// `augmented-support` so an agent can be given the docs WITHOUT also being
|
|
2746
2746
|
// given a ticket-filing button, an agent-proposal button, and org-wide read
|
|
2747
2747
|
// of agents, hosts, integrations, alerts, flags and the audit log. That
|
|
@@ -2769,14 +2769,14 @@ var INTEGRATION_REGISTRY = [
|
|
|
2769
2769
|
// ENG-8804: Granted centrally (ENG-8542 auto-grant), never connected by a human.
|
|
2770
2770
|
platform_internal: true,
|
|
2771
2771
|
category: "knowledge",
|
|
2772
|
-
description: "The
|
|
2772
|
+
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.",
|
|
2773
2773
|
supported_auth_types: ["none"],
|
|
2774
2774
|
beta: true,
|
|
2775
2775
|
capabilities: [
|
|
2776
2776
|
{
|
|
2777
2777
|
id: "augmented-help-kb:read",
|
|
2778
2778
|
name: "Read Help Docs",
|
|
2779
|
-
description: "Search and read published
|
|
2779
|
+
description: "Search and read published Ninjafy help articles (org-neutral product documentation). Read-only; no ticket filing, no agent proposals, no org-state reads.",
|
|
2780
2780
|
access: "read"
|
|
2781
2781
|
}
|
|
2782
2782
|
]
|
|
@@ -2789,7 +2789,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
2789
2789
|
// ENG-7217: Firecrawl migrates from a customer-API-key stdio MCP
|
|
2790
2790
|
// (`npx firecrawl-mcp`, FIRECRAWL_API_KEY) to a PREMIUM, platform-managed
|
|
2791
2791
|
// integration on the Deck / ElevenLabs model (ADR-0031, epic ENG-6920):
|
|
2792
|
-
//
|
|
2792
|
+
// Ninjafy holds ONE Firecrawl account key (`FIRECRAWL_ACCOUNT_KEY`) that
|
|
2793
2793
|
// every customer agent's web-data calls bill back to. The agent-facing tools
|
|
2794
2794
|
// are brokered server-side (firecrawl-broker.ts, reusing the official
|
|
2795
2795
|
// @mendable/firecrawl-js SDK) rather than via the stdio MCP, so managed usage
|
|
@@ -2948,9 +2948,9 @@ var INTEGRATION_REGISTRY = [
|
|
|
2948
2948
|
id: "ayrshare",
|
|
2949
2949
|
name: "Ayrshare",
|
|
2950
2950
|
category: "social",
|
|
2951
|
-
description: "Read and report on your social media - post history, analytics, and connected-account status - across LinkedIn, Instagram, Facebook, TikTok, YouTube, Pinterest, and more.
|
|
2951
|
+
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.",
|
|
2952
2952
|
// ENG-7722 / ADR-0046: Ayrshare is a PREMIUM, platform-managed integration on
|
|
2953
|
-
// the Deck / Firecrawl model (ADR-0031, epic ENG-6920):
|
|
2953
|
+
// the Deck / Firecrawl model (ADR-0031, epic ENG-6920): Ninjafy owns ONE
|
|
2954
2954
|
// Business Plan account (`AYRSHARE_API_KEY`) and every customer agent's profile
|
|
2955
2955
|
// + posts bill back to it, so the key is a single platform-held secret, NOT a
|
|
2956
2956
|
// per-agent credential. Auth type is therefore `none` - customers never enter a
|
|
@@ -2985,7 +2985,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
2985
2985
|
},
|
|
2986
2986
|
{
|
|
2987
2987
|
// ENG-7439: X Search is a PREMIUM, platform-managed integration on the
|
|
2988
|
-
// Deck / Firecrawl / ElevenLabs model (ADR-0031, epic ENG-6920):
|
|
2988
|
+
// Deck / Firecrawl / ElevenLabs model (ADR-0031, epic ENG-6920): Ninjafy
|
|
2989
2989
|
// holds ONE X (Twitter) developer app whose OAuth2 app-only bearer
|
|
2990
2990
|
// (X_APP_BEARER_TOKEN) every customer agent's search bills back to, so the
|
|
2991
2991
|
// key is a single platform-held secret, NOT a per-agent credential. Auth
|
|
@@ -3003,7 +3003,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
3003
3003
|
id: "x-search",
|
|
3004
3004
|
name: "X Search",
|
|
3005
3005
|
category: "social",
|
|
3006
|
-
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.
|
|
3006
|
+
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.",
|
|
3007
3007
|
supported_auth_types: ["none"],
|
|
3008
3008
|
capabilities: [
|
|
3009
3009
|
{ id: "x-search:read", name: "Search Posts", description: "Search recent public X posts (last ~7 days) via x_search_recent.", access: "read" }
|
|
@@ -3035,7 +3035,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
3035
3035
|
// per definition, so an org can take Local Business Data without taking the
|
|
3036
3036
|
// pricier, more ToS-sensitive social scraping.
|
|
3037
3037
|
//
|
|
3038
|
-
//
|
|
3038
|
+
// Ninjafy holds ONE Apify account whose token (APIFY_API_TOKEN, read
|
|
3039
3039
|
// from SSM - the API Lambda env is at the 4KB cap) every customer run bills
|
|
3040
3040
|
// back to, so the key is a single platform-held secret, NOT a per-agent
|
|
3041
3041
|
// credential. Auth type is `none` - customers never enter a key. Tools run on
|
|
@@ -3057,7 +3057,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
3057
3057
|
id: "social-scraping",
|
|
3058
3058
|
name: "Social Scraping",
|
|
3059
3059
|
category: "social",
|
|
3060
|
-
description: "Pull public posts and videos from TikTok, Instagram and YouTube - captions, media, engagement counts and URLs - for brand, competitor and campaign research.
|
|
3060
|
+
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.",
|
|
3061
3061
|
supported_auth_types: ["none"],
|
|
3062
3062
|
capabilities: [
|
|
3063
3063
|
{ 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" },
|
|
@@ -3103,7 +3103,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
3103
3103
|
id: "local-business-data",
|
|
3104
3104
|
name: "Local Business Data",
|
|
3105
3105
|
category: "knowledge",
|
|
3106
|
-
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.
|
|
3106
|
+
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.",
|
|
3107
3107
|
supported_auth_types: ["none"],
|
|
3108
3108
|
capabilities: [
|
|
3109
3109
|
{ 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" },
|
|
@@ -3203,7 +3203,7 @@ var INTEGRATION_REGISTRY = [
|
|
|
3203
3203
|
// here rather than read from the rate card, which is a real drift
|
|
3204
3204
|
// hazard — so it is held by a test that reprices both from the migration
|
|
3205
3205
|
// and fails if they disagree, rather than by anyone remembering.
|
|
3206
|
-
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
|
|
3206
|
+
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.",
|
|
3207
3207
|
access: "write",
|
|
3208
3208
|
requires_org_opt_in: true
|
|
3209
3209
|
}
|
|
@@ -14537,4 +14537,4 @@ export {
|
|
|
14537
14537
|
peekCurrentSession,
|
|
14538
14538
|
readDailySessionPin
|
|
14539
14539
|
};
|
|
14540
|
-
//# sourceMappingURL=chunk-
|
|
14540
|
+
//# sourceMappingURL=chunk-Q2GQY64J.js.map
|