@integrity-labs/agt-cli 0.28.423 → 0.28.425

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.
@@ -33469,6 +33469,86 @@ var INTEGRATION_REGISTRY = [
33469
33469
  ]
33470
33470
  }
33471
33471
  },
33472
+ {
33473
+ // Social Scraping: a PREMIUM, platform-managed integration on the Deck /
33474
+ // Firecrawl / X-Search model (ADR-0031, epic ENG-6920; ADR-0053). Backed by
33475
+ // Apify, but deliberately NOT surfaced as an "Apify" integration - the
33476
+ // integration is what a customer picks, and Apify is a vendor, not a job.
33477
+ // Splitting by job also means opt-in, rate card and monthly budget are keyed
33478
+ // per definition, so an org can take Local Business Data without taking the
33479
+ // pricier, more ToS-sensitive social scraping.
33480
+ //
33481
+ // Augmented holds ONE Apify account whose token (APIFY_API_TOKEN, read
33482
+ // from SSM - the API Lambda env is at the 4KB cap) every customer run bills
33483
+ // back to, so the key is a single platform-held secret, NOT a per-agent
33484
+ // credential. Auth type is `none` - customers never enter a key. Tools run on
33485
+ // a brokered-REST lane (apify-brokers.ts) so each run is metered at one
33486
+ // chokepoint and gated on a per-org monthly USD cap + the per-org premium
33487
+ // opt-in.
33488
+ //
33489
+ // "PPE-only" is guaranteed by a curated allowlist: the broker only ever runs
33490
+ // Actors on it, so a rental / pay-per-usage Actor can never surprise-bill the
33491
+ // shared account. (Apify's x402 rail enforces PPE-only at the payment layer;
33492
+ // we are on the account-key rail - Option A in the spike.) See
33493
+ // docs/design/apify-premium-option-a-ppe-allowlist.md.
33494
+ //
33495
+ // No `installable` here on purpose: this is a seed integration
33496
+ // (integration-definitions.json), so the seed catalog already makes it
33497
+ // picker-visible. This registry entry exists ONLY to carry the `premium`
33498
+ // descriptor that `isPremiumDefinition` reads - which arms the per-org opt-in
33499
+ // gate, the priced acknowledgement modal, and the admin pricing tab.
33500
+ id: "social-scraping",
33501
+ name: "Social Scraping",
33502
+ category: "social",
33503
+ description: "Pull public posts and videos from TikTok, Instagram and YouTube - captions, media, engagement counts and URLs - for brand, competitor and campaign research. Augmented Team manages the scraping account for you; there is no key to enter.",
33504
+ supported_auth_types: ["none"],
33505
+ capabilities: [
33506
+ { 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" },
33507
+ { id: "social-scraping:status", name: "Check Scrape Runs", description: "Poll a running scrape for status + results (social_scrape_status).", access: "read" }
33508
+ ],
33509
+ docs_url: "https://docs.apify.com/api/v2",
33510
+ beta: true,
33511
+ // Premium (billable). The upstream pay-per-event cost is per-Actor and
33512
+ // VARIABLE (each Actor's creator sets its own event prices), unlike X-Search's
33513
+ // fixed per-post price. So we meter the ACTUAL cost charged to us for each
33514
+ // run, as a pass-through: `units` = the run's `usageTotalUsd` in whole US
33515
+ // cents (the physical unit `usd_cent`), and the rate card prices each cent at
33516
+ // a managed markup (1.5x USD). This keeps margin safe across cheap and
33517
+ // expensive scrapes alike. `event_type` must match what the broker writes to
33518
+ // integration_usage_events. Until the rate row is seeded a run prices at 0
33519
+ // (budget gate inert) - the rate-card migration ships in the same PR.
33520
+ premium: {
33521
+ pricing: "usage",
33522
+ note: "Billed per result on the upstream pay-per-event cost of each scrape, at a managed markup.",
33523
+ meters: [{ event_type: "actor_run", unit: "usd_cent" }]
33524
+ }
33525
+ },
33526
+ {
33527
+ // Local Business Data: the second Apify-backed premium integration (ADR-0053).
33528
+ // Same platform-held account, same pass-through metering model, but a separate
33529
+ // definition so its opt-in, rate card and monthly budget are independent of
33530
+ // Social Scraping's - see the note on that entry for why the split exists.
33531
+ //
33532
+ // Distinct from Firecrawl on purpose: Firecrawl covers generic web
33533
+ // scrape/crawl/search, and we deliberately do NOT ship an Apify-backed
33534
+ // duplicate of that. This is the local-places job Firecrawl does not do.
33535
+ id: "local-business-data",
33536
+ name: "Local Business Data",
33537
+ category: "knowledge",
33538
+ 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. Augmented Team manages the data account for you; there is no key to enter.",
33539
+ supported_auth_types: ["none"],
33540
+ capabilities: [
33541
+ { 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" },
33542
+ { id: "local-business-data:status", name: "Check Searches", description: "Poll a running search for status + results (local_business_search_status).", access: "read" }
33543
+ ],
33544
+ docs_url: "https://docs.apify.com/api/v2",
33545
+ beta: true,
33546
+ premium: {
33547
+ pricing: "usage",
33548
+ note: "Billed per place returned on the upstream pay-per-event cost of each search, at a managed markup.",
33549
+ meters: [{ event_type: "actor_run", unit: "usd_cent" }]
33550
+ }
33551
+ },
33472
33552
  {
33473
33553
  // Seed-catalog toolkit (composed by the ultimate-app-coder bundle). Registered
33474
33554
  // here only so the manager's ensureToolkitCli installs the binary via the
@@ -37803,7 +37883,7 @@ function recordReplyTargetClassification(agentDir, channel, classification) {
37803
37883
  import { readFileSync as readFileSync15, unlinkSync as unlinkSync5 } from "fs";
37804
37884
  import { join as join15 } from "path";
37805
37885
  var SCHEDULED_TURN_MARKER_FILENAME2 = ".current-scheduled-turn.json";
37806
- var SCHEDULED_TURN_MAX_AGE_MS = 30 * 60 * 1e3;
37886
+ var SCHEDULED_TURN_MAX_AGE_MS = 15 * 60 * 1e3;
37807
37887
  function validateScheduledTurnMarker(raw, now, maxAgeMs = SCHEDULED_TURN_MAX_AGE_MS) {
37808
37888
  if (!raw || typeof raw !== "object") return null;
37809
37889
  const m = raw;