@integrity-labs/agt-cli 0.28.486 → 0.28.488

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.
@@ -5090,34 +5090,37 @@ var OAUTH_PROVIDERS = {
5090
5090
  definitionId: "linkedin-ads",
5091
5091
  authorizeUrl: "https://www.linkedin.com/oauth/v2/authorization",
5092
5092
  tokenUrl: "https://www.linkedin.com/oauth/v2/accessToken",
5093
+ // ENG-7897: this list is EXACTLY the Advertising API scope set, because
5094
+ // Advertising API is the only product added to the Brand Ninja app. Every
5095
+ // other scope we used to request here belonged to a product the app does
5096
+ // not hold, and LinkedIn rejects the ENTIRE authorize request with
5097
+ // `unauthorized_scope_error` if ANY single requested scope is ungranted -
5098
+ // so five unapproved scopes bricked the connect for every customer, on
5099
+ // every environment, rather than merely disabling five features.
5100
+ //
5101
+ // Scopes deliberately NOT requested, and the product each needs first:
5102
+ // openid / profile / email -> Sign In with LinkedIn (OpenID Connect)
5103
+ // r_organization_social -> Community Management API
5104
+ // r_marketing_leadgen_automation -> Lead Sync API
5105
+ //
5106
+ // Dropping the OIDC trio costs only the `Connected as <name>` label: the
5107
+ // userInfoUrl fetch in the callback is already best-effort and falls back
5108
+ // to a plain 'Connected'. Do NOT re-add any of these until the matching
5109
+ // product shows under "Added products" on the app - use the
5110
+ // OAUTH_LINKEDIN_ADS_SCOPES override below to widen without a deploy once
5111
+ // an approval lands, and only then promote it into this constant.
5093
5112
  defaultScopes: [
5094
- "openid",
5095
- "profile",
5096
- "email",
5097
5113
  // Advertising API: read + manage campaigns/creatives, and reporting.
5098
5114
  "r_ads",
5099
5115
  "rw_ads",
5100
- "r_ads_reporting",
5101
- // Community Management API: organization page/follower/share statistics.
5102
- "r_organization_social",
5103
- // Lead Sync API: read lead-generation forms + responses.
5104
- // linkedin-verify: `linkedin_ads_create_lead_form` WRITES a lead form, and
5105
- // it is not obvious that `rw_ads` covers that - Lead Sync may need its own
5106
- // write scope. Resolve this during the verification pass against the app's
5107
- // approved products. Do NOT guess a scope string here: an ungranted or
5108
- // misspelled scope makes LinkedIn reject the whole authorize request, so a
5109
- // wrong guess breaks every connect, not just lead forms.
5110
- "r_marketing_leadgen_automation"
5116
+ "r_ads_reporting"
5111
5117
  ],
5112
- // Read-only variant: reporting + organization stats, no campaign/creative
5113
- // mutation. Used when an install is (re)connected with read_only: true.
5118
+ // Read-only variant: reporting only, no campaign/creative mutation. Used
5119
+ // when an install is (re)connected with read_only: true. Same product
5120
+ // constraint as above - `r_organization_social` was removed with it.
5114
5121
  readOnlyScopes: [
5115
- "openid",
5116
- "profile",
5117
- "email",
5118
5122
  "r_ads",
5119
- "r_ads_reporting",
5120
- "r_organization_social"
5123
+ "r_ads_reporting"
5121
5124
  ],
5122
5125
  supportsRefresh: true,
5123
5126
  extraAuthorizeParams: {},
@@ -9249,6 +9252,17 @@ var FLAG_REGISTRY = [
9249
9252
  defaultValue: false,
9250
9253
  envVar: "AGT_FAST_MCP_RESTART_RESPAWN_ENABLED"
9251
9254
  },
9255
+ {
9256
+ key: "never-spawned-session-metric",
9257
+ description: 'Never-spawned session metric (ENG-8204): when ON, the agent-heartbeat-monitor cron emits a `SessionAliveAgeSeconds` datapoint for an ACTIVE agent that has never had a verified session (`last_session_alive_at` null), aged from `created_at`. Without it those agents emit no datapoint at all, and because the session-stale alarm sets `TreatMissingData: notBreaching`, the one alarm built for "fresh heartbeat but no session" can never fire for the very case it describes \u2014 a newly-onboarded agent whose session never spawned. Observe-first rollout gate: the cron logs the never-spawned count and oldest age EVERY run regardless of this flag, so the backlog is measurable before the alarm is armed. The AUGMENTED_NEVER_SPAWNED_SESSION_METRIC_ENABLED env var is the highest-precedence operator override; precedence is env override > flag value > this default.',
9258
+ flagType: "boolean",
9259
+ defaultValue: false,
9260
+ envVar: "AUGMENTED_NEVER_SPAWNED_SESSION_METRIC_ENABLED",
9261
+ // Enabling this pages on every active agent that has never had a session,
9262
+ // which on first flip may surface an existing backlog all at once. Read the
9263
+ // observe-phase log line before flipping.
9264
+ sensitive: true
9265
+ },
9252
9266
  {
9253
9267
  key: "channel-silent-loss-alarm",
9254
9268
  description: "Channel silent-loss alarm (ENG-6728): when ON, the responsiveness-probe route creates a per-agent CloudWatch alarm that pages on a `ChannelDeflections` Cause=replay_orphaned datapoint (a recoverable inbound aged out without delivery). Observe-first rollout gate, flipped stage-wide from the admin Feature Flags page; the underlying metric ships since ENG-6355. The AUGMENTED_CHANNEL_SILENT_LOSS_ALARM_ENABLED env var is retained as the highest-precedence operator override; precedence is env override > flag value > this default.",
@@ -14486,4 +14500,4 @@ export {
14486
14500
  stopAllSessionsAndWait,
14487
14501
  getProjectDir
14488
14502
  };
14489
- //# sourceMappingURL=chunk-SRR5XVWJ.js.map
14503
+ //# sourceMappingURL=chunk-XZI5IHQP.js.map