@integrity-labs/agt-cli 0.28.508 → 0.28.510

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.
@@ -32955,29 +32955,44 @@ var INTEGRATION_REGISTRY = [
32955
32955
  id: "vercel",
32956
32956
  name: "Vercel",
32957
32957
  category: "infrastructure",
32958
- description: "Check on Vercel app deployments \u2014 status, build/runtime logs \u2014 and search Vercel documentation. Remote streamable-HTTP MCP at https://mcp.vercel.com.",
32959
- // Same OAuth pattern as Granola/Higgsfield: Claude Code brokers the
32960
- // browser sign-in at runtime; nothing for the manager API to provision.
32961
- supported_auth_types: ["none"],
32958
+ description: "Check on Vercel app deployments \u2014 what's live, deployment status, and build logs \u2014 through Vercel's REST API with your own API token.",
32959
+ // ENG-8421: api_key, NOT the host-brokered MCP this used to be.
32960
+ //
32961
+ // Vercel MCP (`https://mcp.vercel.com`) is not completable from the
32962
+ // console, and that is a vendor constraint rather than a gap in our
32963
+ // plumbing. Established empirically 2026-08-03: Dynamic Client
32964
+ // Registration REJECTS an https redirect (`invalid_redirect_uri` — "not
32965
+ // approved for use by this authorization server") and ACCEPTS only
32966
+ // localhost; the device-code grant, the one flow needing no redirect, is
32967
+ // refused to DCR clients (`unauthorized_client`). So the only client
32968
+ // Vercel permits is a local one redirecting to its own ephemeral port —
32969
+ // i.e. Claude Code on the agent's host, driven by an operator running
32970
+ // `/mcp` in tmux. No console work can remove that step.
32971
+ //
32972
+ // The REST API has none of those constraints: plain bearer auth
32973
+ // (unauthenticated → `{"code":"forbidden","missingToken":true}`, bogus
32974
+ // bearer → `{"invalidToken":true}`), so a token the customer creates in
32975
+ // their own Vercel dashboard works directly. That makes this an ordinary
32976
+ // paste-a-key integration, and it means WE hold the credential — so it can
32977
+ // be stored, rotated, revoked and audited, none of which was true when the
32978
+ // grant lived in Claude Code's `~/.claude.json` on the host.
32979
+ //
32980
+ // Tools are declared as data on `integration_definitions.metadata.tools`
32981
+ // and dispatch through the existing Direct HTTP broker (the v0 pattern) —
32982
+ // there is deliberately no bespoke Vercel client and no bespoke broker.
32983
+ supported_auth_types: ["api_key"],
32962
32984
  capabilities: [
32963
- { id: "vercel:read-deployments", name: "Read Deployments", description: "List teams/projects, check deployment status, and read build/runtime logs.", access: "read" },
32964
- { id: "vercel:search-docs", name: "Search Documentation", description: "Search Vercel platform documentation.", access: "read" }
32985
+ { id: "vercel:read-deployments", name: "Read Deployments", description: "List teams/projects, check deployment status, and read build logs.", access: "read" }
32965
32986
  ],
32966
- docs_url: "https://vercel.com/docs/agent-resources/vercel-mcp",
32967
- // Beta until the headless OAuth flow (and Vercel's OAuth-client allowlist,
32968
- // which is vendor-side and outside our control) is verified end-to-end.
32969
- beta: true,
32970
- // No `auth`/`headers` — host-brokered OAuth (Claude Code authenticates
32971
- // directly with Vercel; nothing for us to inject). Declaring this here
32972
- // (rather than a hardcoded buildMcpJson/writeIntegrations branch, the
32973
- // pre-ENG-8035 Higgsfield-era pattern) lets the generic remote-MCP loop
32974
- // render the `.mcp.json` entry AND enrolls 'vercel' in the
32975
- // `registryRemoteMcpKeys` prune universe automatically, so an uninstall
32976
- // actually removes the entry instead of leaving it stale.
32977
- remoteMcp: {
32978
- type: "http",
32979
- url: "https://mcp.vercel.com"
32980
- }
32987
+ docs_url: "https://vercel.com/docs/rest-api",
32988
+ // Beta until the REST tool surface has been exercised against a real
32989
+ // customer token. (The previous reason "until the headless OAuth flow is
32990
+ // verified end-to-end" — is void: there is no OAuth flow any more.)
32991
+ beta: true
32992
+ // NO `remoteMcp`. See the tombstone in the claudecode adapter's prune
32993
+ // universe: dropping this field also drops `vercel` from
32994
+ // `registryRemoteMcpKeys`, which would strand the `.mcp.json` entry on
32995
+ // every host that installed the MCP variant.
32981
32996
  },
32982
32997
  {
32983
32998
  id: "qmd",
@@ -34980,6 +34995,22 @@ var FLAG_REGISTRY = [
34980
34995
  // safe: `since` is excluded from projectDefinition, so it does not roll
34981
34996
  // FLAGS_SCHEMA_VERSION.
34982
34997
  },
34998
+ {
34999
+ key: "agt-version-drift-alarm",
35000
+ description: "Arms the ENG-8341 agt CLI version-drift alert. When a host has fallen behind its EFFECTIVE target (env pin > DB pin > release channel) across two or more of its OWN maintenance windows, the monitor opens a host_agt_version_drift alert. OBSERVE-FIRST rollout gate: the cron computes and LOGS the drift for every host on every run regardless of this flag, so the real fleet spread is measurable before anyone is paged - the ticket asks for the threshold to be set from observed data rather than a guess. Off = compute and log, open nothing. Boolean gate; ships dark. Evaluated API-side, in the cron.",
35001
+ flagType: "boolean",
35002
+ // Declared safe value is `false`. Fail-safe direction for a NEW alerting
35003
+ // cron is silence: ~21 hosts with no prior drift signal means the first
35004
+ // armed pass could open an alert for every host that is behind at once.
35005
+ // The cron also carries a bootstrap floor (agent-stall-monitor.ts's
35006
+ // precedent) so arming it does not retroactively page for drift that
35007
+ // started before the monitor existed.
35008
+ defaultValue: false,
35009
+ // Arming this makes a previously-invisible backlog visible all at once, in
35010
+ // the same shape ENG-8204's never-spawned-session-metric warned about - so
35011
+ // the flip is a deliberate, confirmed one (ADR-0022 sensitive-flag confirm).
35012
+ sensitive: true
35013
+ },
34983
35014
  {
34984
35015
  key: "memory-extraction",
34985
35016
  description: "Host-side durable-memory extraction (ENG-6200): the manager extracts candidate memories from completed conversations and POSTs them to /host/memories/candidates, which writes dream_log via promoteCandidates. Post persistent-session cutover this is the ONLY live consolidation path. Boolean gate; ships dark \u2014 when off the manager runs no extraction, so 0 dream_log rows fleet-wide is the expected steady state until it is armed.",
package/dist/mcp/index.js CHANGED
@@ -21500,6 +21500,16 @@ function describeReconnectRequestResult(resp) {
21500
21500
  text: "A reconnect request for this integration was already sent recently, so no new notification went out. Stop retrying the failing tool and wait for the reconnect.",
21501
21501
  isError: false
21502
21502
  };
21503
+ case "notified_disputed":
21504
+ return {
21505
+ text: "Reconnect request sent. Note that the platform still shows this integration as connected, so your report and the stored status disagree \u2014 your manager has been notified with both, and with the error you reported. Stop retrying the failing tool; a human has to resolve the disagreement.",
21506
+ isError: false
21507
+ };
21508
+ // CS-1542: retained for older API stages that still return it. The route no
21509
+ // longer emits `healthy` - a stored status is not a probe, so it is not
21510
+ // allowed to end the request - but a host can run a newer CLI than the API
21511
+ // it talks to, and the previous copy ("no reconnect request was sent") is
21512
+ // the honest thing to say if this ever does come back.
21503
21513
  case "healthy":
21504
21514
  return {
21505
21515
  text: "The platform shows this integration as connected, so no reconnect request was sent. If the tool is still failing, tell your operator exactly what error you saw instead of retrying.",
@@ -39282,29 +39282,44 @@ var INTEGRATION_REGISTRY = [
39282
39282
  id: "vercel",
39283
39283
  name: "Vercel",
39284
39284
  category: "infrastructure",
39285
- description: "Check on Vercel app deployments \u2014 status, build/runtime logs \u2014 and search Vercel documentation. Remote streamable-HTTP MCP at https://mcp.vercel.com.",
39286
- // Same OAuth pattern as Granola/Higgsfield: Claude Code brokers the
39287
- // browser sign-in at runtime; nothing for the manager API to provision.
39288
- supported_auth_types: ["none"],
39285
+ description: "Check on Vercel app deployments \u2014 what's live, deployment status, and build logs \u2014 through Vercel's REST API with your own API token.",
39286
+ // ENG-8421: api_key, NOT the host-brokered MCP this used to be.
39287
+ //
39288
+ // Vercel MCP (`https://mcp.vercel.com`) is not completable from the
39289
+ // console, and that is a vendor constraint rather than a gap in our
39290
+ // plumbing. Established empirically 2026-08-03: Dynamic Client
39291
+ // Registration REJECTS an https redirect (`invalid_redirect_uri` — "not
39292
+ // approved for use by this authorization server") and ACCEPTS only
39293
+ // localhost; the device-code grant, the one flow needing no redirect, is
39294
+ // refused to DCR clients (`unauthorized_client`). So the only client
39295
+ // Vercel permits is a local one redirecting to its own ephemeral port —
39296
+ // i.e. Claude Code on the agent's host, driven by an operator running
39297
+ // `/mcp` in tmux. No console work can remove that step.
39298
+ //
39299
+ // The REST API has none of those constraints: plain bearer auth
39300
+ // (unauthenticated → `{"code":"forbidden","missingToken":true}`, bogus
39301
+ // bearer → `{"invalidToken":true}`), so a token the customer creates in
39302
+ // their own Vercel dashboard works directly. That makes this an ordinary
39303
+ // paste-a-key integration, and it means WE hold the credential — so it can
39304
+ // be stored, rotated, revoked and audited, none of which was true when the
39305
+ // grant lived in Claude Code's `~/.claude.json` on the host.
39306
+ //
39307
+ // Tools are declared as data on `integration_definitions.metadata.tools`
39308
+ // and dispatch through the existing Direct HTTP broker (the v0 pattern) —
39309
+ // there is deliberately no bespoke Vercel client and no bespoke broker.
39310
+ supported_auth_types: ["api_key"],
39289
39311
  capabilities: [
39290
- { id: "vercel:read-deployments", name: "Read Deployments", description: "List teams/projects, check deployment status, and read build/runtime logs.", access: "read" },
39291
- { id: "vercel:search-docs", name: "Search Documentation", description: "Search Vercel platform documentation.", access: "read" }
39312
+ { id: "vercel:read-deployments", name: "Read Deployments", description: "List teams/projects, check deployment status, and read build logs.", access: "read" }
39292
39313
  ],
39293
- docs_url: "https://vercel.com/docs/agent-resources/vercel-mcp",
39294
- // Beta until the headless OAuth flow (and Vercel's OAuth-client allowlist,
39295
- // which is vendor-side and outside our control) is verified end-to-end.
39296
- beta: true,
39297
- // No `auth`/`headers` — host-brokered OAuth (Claude Code authenticates
39298
- // directly with Vercel; nothing for us to inject). Declaring this here
39299
- // (rather than a hardcoded buildMcpJson/writeIntegrations branch, the
39300
- // pre-ENG-8035 Higgsfield-era pattern) lets the generic remote-MCP loop
39301
- // render the `.mcp.json` entry AND enrolls 'vercel' in the
39302
- // `registryRemoteMcpKeys` prune universe automatically, so an uninstall
39303
- // actually removes the entry instead of leaving it stale.
39304
- remoteMcp: {
39305
- type: "http",
39306
- url: "https://mcp.vercel.com"
39307
- }
39314
+ docs_url: "https://vercel.com/docs/rest-api",
39315
+ // Beta until the REST tool surface has been exercised against a real
39316
+ // customer token. (The previous reason "until the headless OAuth flow is
39317
+ // verified end-to-end" — is void: there is no OAuth flow any more.)
39318
+ beta: true
39319
+ // NO `remoteMcp`. See the tombstone in the claudecode adapter's prune
39320
+ // universe: dropping this field also drops `vercel` from
39321
+ // `registryRemoteMcpKeys`, which would strand the `.mcp.json` entry on
39322
+ // every host that installed the MCP variant.
39308
39323
  },
39309
39324
  {
39310
39325
  id: "qmd",
@@ -40871,6 +40886,22 @@ var FLAG_REGISTRY = [
40871
40886
  // safe: `since` is excluded from projectDefinition, so it does not roll
40872
40887
  // FLAGS_SCHEMA_VERSION.
40873
40888
  },
40889
+ {
40890
+ key: "agt-version-drift-alarm",
40891
+ description: "Arms the ENG-8341 agt CLI version-drift alert. When a host has fallen behind its EFFECTIVE target (env pin > DB pin > release channel) across two or more of its OWN maintenance windows, the monitor opens a host_agt_version_drift alert. OBSERVE-FIRST rollout gate: the cron computes and LOGS the drift for every host on every run regardless of this flag, so the real fleet spread is measurable before anyone is paged - the ticket asks for the threshold to be set from observed data rather than a guess. Off = compute and log, open nothing. Boolean gate; ships dark. Evaluated API-side, in the cron.",
40892
+ flagType: "boolean",
40893
+ // Declared safe value is `false`. Fail-safe direction for a NEW alerting
40894
+ // cron is silence: ~21 hosts with no prior drift signal means the first
40895
+ // armed pass could open an alert for every host that is behind at once.
40896
+ // The cron also carries a bootstrap floor (agent-stall-monitor.ts's
40897
+ // precedent) so arming it does not retroactively page for drift that
40898
+ // started before the monitor existed.
40899
+ defaultValue: false,
40900
+ // Arming this makes a previously-invisible backlog visible all at once, in
40901
+ // the same shape ENG-8204's never-spawned-session-metric warned about - so
40902
+ // the flip is a deliberate, confirmed one (ADR-0022 sensitive-flag confirm).
40903
+ sensitive: true
40904
+ },
40874
40905
  {
40875
40906
  key: "memory-extraction",
40876
40907
  description: "Host-side durable-memory extraction (ENG-6200): the manager extracts candidate memories from completed conversations and POSTs them to /host/memories/candidates, which writes dream_log via promoteCandidates. Post persistent-session cutover this is the ONLY live consolidation path. Boolean gate; ships dark \u2014 when off the manager runs no extraction, so 0 dream_log rows fleet-wide is the expected steady state until it is armed.",
@@ -33177,29 +33177,44 @@ var INTEGRATION_REGISTRY = [
33177
33177
  id: "vercel",
33178
33178
  name: "Vercel",
33179
33179
  category: "infrastructure",
33180
- description: "Check on Vercel app deployments \u2014 status, build/runtime logs \u2014 and search Vercel documentation. Remote streamable-HTTP MCP at https://mcp.vercel.com.",
33181
- // Same OAuth pattern as Granola/Higgsfield: Claude Code brokers the
33182
- // browser sign-in at runtime; nothing for the manager API to provision.
33183
- supported_auth_types: ["none"],
33180
+ description: "Check on Vercel app deployments \u2014 what's live, deployment status, and build logs \u2014 through Vercel's REST API with your own API token.",
33181
+ // ENG-8421: api_key, NOT the host-brokered MCP this used to be.
33182
+ //
33183
+ // Vercel MCP (`https://mcp.vercel.com`) is not completable from the
33184
+ // console, and that is a vendor constraint rather than a gap in our
33185
+ // plumbing. Established empirically 2026-08-03: Dynamic Client
33186
+ // Registration REJECTS an https redirect (`invalid_redirect_uri` — "not
33187
+ // approved for use by this authorization server") and ACCEPTS only
33188
+ // localhost; the device-code grant, the one flow needing no redirect, is
33189
+ // refused to DCR clients (`unauthorized_client`). So the only client
33190
+ // Vercel permits is a local one redirecting to its own ephemeral port —
33191
+ // i.e. Claude Code on the agent's host, driven by an operator running
33192
+ // `/mcp` in tmux. No console work can remove that step.
33193
+ //
33194
+ // The REST API has none of those constraints: plain bearer auth
33195
+ // (unauthenticated → `{"code":"forbidden","missingToken":true}`, bogus
33196
+ // bearer → `{"invalidToken":true}`), so a token the customer creates in
33197
+ // their own Vercel dashboard works directly. That makes this an ordinary
33198
+ // paste-a-key integration, and it means WE hold the credential — so it can
33199
+ // be stored, rotated, revoked and audited, none of which was true when the
33200
+ // grant lived in Claude Code's `~/.claude.json` on the host.
33201
+ //
33202
+ // Tools are declared as data on `integration_definitions.metadata.tools`
33203
+ // and dispatch through the existing Direct HTTP broker (the v0 pattern) —
33204
+ // there is deliberately no bespoke Vercel client and no bespoke broker.
33205
+ supported_auth_types: ["api_key"],
33184
33206
  capabilities: [
33185
- { id: "vercel:read-deployments", name: "Read Deployments", description: "List teams/projects, check deployment status, and read build/runtime logs.", access: "read" },
33186
- { id: "vercel:search-docs", name: "Search Documentation", description: "Search Vercel platform documentation.", access: "read" }
33207
+ { id: "vercel:read-deployments", name: "Read Deployments", description: "List teams/projects, check deployment status, and read build logs.", access: "read" }
33187
33208
  ],
33188
- docs_url: "https://vercel.com/docs/agent-resources/vercel-mcp",
33189
- // Beta until the headless OAuth flow (and Vercel's OAuth-client allowlist,
33190
- // which is vendor-side and outside our control) is verified end-to-end.
33191
- beta: true,
33192
- // No `auth`/`headers` — host-brokered OAuth (Claude Code authenticates
33193
- // directly with Vercel; nothing for us to inject). Declaring this here
33194
- // (rather than a hardcoded buildMcpJson/writeIntegrations branch, the
33195
- // pre-ENG-8035 Higgsfield-era pattern) lets the generic remote-MCP loop
33196
- // render the `.mcp.json` entry AND enrolls 'vercel' in the
33197
- // `registryRemoteMcpKeys` prune universe automatically, so an uninstall
33198
- // actually removes the entry instead of leaving it stale.
33199
- remoteMcp: {
33200
- type: "http",
33201
- url: "https://mcp.vercel.com"
33202
- }
33209
+ docs_url: "https://vercel.com/docs/rest-api",
33210
+ // Beta until the REST tool surface has been exercised against a real
33211
+ // customer token. (The previous reason "until the headless OAuth flow is
33212
+ // verified end-to-end" — is void: there is no OAuth flow any more.)
33213
+ beta: true
33214
+ // NO `remoteMcp`. See the tombstone in the claudecode adapter's prune
33215
+ // universe: dropping this field also drops `vercel` from
33216
+ // `registryRemoteMcpKeys`, which would strand the `.mcp.json` entry on
33217
+ // every host that installed the MCP variant.
33203
33218
  },
33204
33219
  {
33205
33220
  id: "qmd",
@@ -35149,6 +35164,22 @@ var FLAG_REGISTRY = [
35149
35164
  // safe: `since` is excluded from projectDefinition, so it does not roll
35150
35165
  // FLAGS_SCHEMA_VERSION.
35151
35166
  },
35167
+ {
35168
+ key: "agt-version-drift-alarm",
35169
+ description: "Arms the ENG-8341 agt CLI version-drift alert. When a host has fallen behind its EFFECTIVE target (env pin > DB pin > release channel) across two or more of its OWN maintenance windows, the monitor opens a host_agt_version_drift alert. OBSERVE-FIRST rollout gate: the cron computes and LOGS the drift for every host on every run regardless of this flag, so the real fleet spread is measurable before anyone is paged - the ticket asks for the threshold to be set from observed data rather than a guess. Off = compute and log, open nothing. Boolean gate; ships dark. Evaluated API-side, in the cron.",
35170
+ flagType: "boolean",
35171
+ // Declared safe value is `false`. Fail-safe direction for a NEW alerting
35172
+ // cron is silence: ~21 hosts with no prior drift signal means the first
35173
+ // armed pass could open an alert for every host that is behind at once.
35174
+ // The cron also carries a bootstrap floor (agent-stall-monitor.ts's
35175
+ // precedent) so arming it does not retroactively page for drift that
35176
+ // started before the monitor existed.
35177
+ defaultValue: false,
35178
+ // Arming this makes a previously-invisible backlog visible all at once, in
35179
+ // the same shape ENG-8204's never-spawned-session-metric warned about - so
35180
+ // the flip is a deliberate, confirmed one (ADR-0022 sensitive-flag confirm).
35181
+ sensitive: true
35182
+ },
35152
35183
  {
35153
35184
  key: "memory-extraction",
35154
35185
  description: "Host-side durable-memory extraction (ENG-6200): the manager extracts candidate memories from completed conversations and POSTs them to /host/memories/candidates, which writes dream_log via promoteCandidates. Post persistent-session cutover this is the ONLY live consolidation path. Boolean gate; ships dark \u2014 when off the manager runs no extraction, so 0 dream_log rows fleet-wide is the expected steady state until it is armed.",
@@ -33503,29 +33503,44 @@ var INTEGRATION_REGISTRY = [
33503
33503
  id: "vercel",
33504
33504
  name: "Vercel",
33505
33505
  category: "infrastructure",
33506
- description: "Check on Vercel app deployments \u2014 status, build/runtime logs \u2014 and search Vercel documentation. Remote streamable-HTTP MCP at https://mcp.vercel.com.",
33507
- // Same OAuth pattern as Granola/Higgsfield: Claude Code brokers the
33508
- // browser sign-in at runtime; nothing for the manager API to provision.
33509
- supported_auth_types: ["none"],
33506
+ description: "Check on Vercel app deployments \u2014 what's live, deployment status, and build logs \u2014 through Vercel's REST API with your own API token.",
33507
+ // ENG-8421: api_key, NOT the host-brokered MCP this used to be.
33508
+ //
33509
+ // Vercel MCP (`https://mcp.vercel.com`) is not completable from the
33510
+ // console, and that is a vendor constraint rather than a gap in our
33511
+ // plumbing. Established empirically 2026-08-03: Dynamic Client
33512
+ // Registration REJECTS an https redirect (`invalid_redirect_uri` — "not
33513
+ // approved for use by this authorization server") and ACCEPTS only
33514
+ // localhost; the device-code grant, the one flow needing no redirect, is
33515
+ // refused to DCR clients (`unauthorized_client`). So the only client
33516
+ // Vercel permits is a local one redirecting to its own ephemeral port —
33517
+ // i.e. Claude Code on the agent's host, driven by an operator running
33518
+ // `/mcp` in tmux. No console work can remove that step.
33519
+ //
33520
+ // The REST API has none of those constraints: plain bearer auth
33521
+ // (unauthenticated → `{"code":"forbidden","missingToken":true}`, bogus
33522
+ // bearer → `{"invalidToken":true}`), so a token the customer creates in
33523
+ // their own Vercel dashboard works directly. That makes this an ordinary
33524
+ // paste-a-key integration, and it means WE hold the credential — so it can
33525
+ // be stored, rotated, revoked and audited, none of which was true when the
33526
+ // grant lived in Claude Code's `~/.claude.json` on the host.
33527
+ //
33528
+ // Tools are declared as data on `integration_definitions.metadata.tools`
33529
+ // and dispatch through the existing Direct HTTP broker (the v0 pattern) —
33530
+ // there is deliberately no bespoke Vercel client and no bespoke broker.
33531
+ supported_auth_types: ["api_key"],
33510
33532
  capabilities: [
33511
- { id: "vercel:read-deployments", name: "Read Deployments", description: "List teams/projects, check deployment status, and read build/runtime logs.", access: "read" },
33512
- { id: "vercel:search-docs", name: "Search Documentation", description: "Search Vercel platform documentation.", access: "read" }
33533
+ { id: "vercel:read-deployments", name: "Read Deployments", description: "List teams/projects, check deployment status, and read build logs.", access: "read" }
33513
33534
  ],
33514
- docs_url: "https://vercel.com/docs/agent-resources/vercel-mcp",
33515
- // Beta until the headless OAuth flow (and Vercel's OAuth-client allowlist,
33516
- // which is vendor-side and outside our control) is verified end-to-end.
33517
- beta: true,
33518
- // No `auth`/`headers` — host-brokered OAuth (Claude Code authenticates
33519
- // directly with Vercel; nothing for us to inject). Declaring this here
33520
- // (rather than a hardcoded buildMcpJson/writeIntegrations branch, the
33521
- // pre-ENG-8035 Higgsfield-era pattern) lets the generic remote-MCP loop
33522
- // render the `.mcp.json` entry AND enrolls 'vercel' in the
33523
- // `registryRemoteMcpKeys` prune universe automatically, so an uninstall
33524
- // actually removes the entry instead of leaving it stale.
33525
- remoteMcp: {
33526
- type: "http",
33527
- url: "https://mcp.vercel.com"
33528
- }
33535
+ docs_url: "https://vercel.com/docs/rest-api",
33536
+ // Beta until the REST tool surface has been exercised against a real
33537
+ // customer token. (The previous reason "until the headless OAuth flow is
33538
+ // verified end-to-end" — is void: there is no OAuth flow any more.)
33539
+ beta: true
33540
+ // NO `remoteMcp`. See the tombstone in the claudecode adapter's prune
33541
+ // universe: dropping this field also drops `vercel` from
33542
+ // `registryRemoteMcpKeys`, which would strand the `.mcp.json` entry on
33543
+ // every host that installed the MCP variant.
33529
33544
  },
33530
33545
  {
33531
33546
  id: "qmd",
@@ -35475,6 +35490,22 @@ var FLAG_REGISTRY = [
35475
35490
  // safe: `since` is excluded from projectDefinition, so it does not roll
35476
35491
  // FLAGS_SCHEMA_VERSION.
35477
35492
  },
35493
+ {
35494
+ key: "agt-version-drift-alarm",
35495
+ description: "Arms the ENG-8341 agt CLI version-drift alert. When a host has fallen behind its EFFECTIVE target (env pin > DB pin > release channel) across two or more of its OWN maintenance windows, the monitor opens a host_agt_version_drift alert. OBSERVE-FIRST rollout gate: the cron computes and LOGS the drift for every host on every run regardless of this flag, so the real fleet spread is measurable before anyone is paged - the ticket asks for the threshold to be set from observed data rather than a guess. Off = compute and log, open nothing. Boolean gate; ships dark. Evaluated API-side, in the cron.",
35496
+ flagType: "boolean",
35497
+ // Declared safe value is `false`. Fail-safe direction for a NEW alerting
35498
+ // cron is silence: ~21 hosts with no prior drift signal means the first
35499
+ // armed pass could open an alert for every host that is behind at once.
35500
+ // The cron also carries a bootstrap floor (agent-stall-monitor.ts's
35501
+ // precedent) so arming it does not retroactively page for drift that
35502
+ // started before the monitor existed.
35503
+ defaultValue: false,
35504
+ // Arming this makes a previously-invisible backlog visible all at once, in
35505
+ // the same shape ENG-8204's never-spawned-session-metric warned about - so
35506
+ // the flip is a deliberate, confirmed one (ADR-0022 sensitive-flag confirm).
35507
+ sensitive: true
35508
+ },
35478
35509
  {
35479
35510
  key: "memory-extraction",
35480
35511
  description: "Host-side durable-memory extraction (ENG-6200): the manager extracts candidate memories from completed conversations and POSTs them to /host/memories/candidates, which writes dream_log via promoteCandidates. Post persistent-session cutover this is the ONLY live consolidation path. Boolean gate; ships dark \u2014 when off the manager runs no extraction, so 0 dream_log rows fleet-wide is the expected steady state until it is armed.",
@@ -37,7 +37,7 @@ import {
37
37
  writeDirectChatSessionState,
38
38
  writeEgressAllowlist,
39
39
  writePersistentClaudeWrapper
40
- } from "./chunk-LNPJI2AE.js";
40
+ } from "./chunk-7DZNVMMX.js";
41
41
  import "./chunk-XWVM4KPK.js";
42
42
  export {
43
43
  EGRESS_BASELINE_DOMAINS,
@@ -79,4 +79,4 @@ export {
79
79
  writeEgressAllowlist,
80
80
  writePersistentClaudeWrapper
81
81
  };
82
- //# sourceMappingURL=persistent-session-VX37ESOS.js.map
82
+ //# sourceMappingURL=persistent-session-4VF7V4HB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-LNPJI2AE.js";
3
+ } from "./chunk-7DZNVMMX.js";
4
4
  import "./chunk-XWVM4KPK.js";
5
5
 
6
6
  // src/lib/responsiveness-probe.ts
@@ -662,4 +662,4 @@ export {
662
662
  readAndResetSlackReplyBindingClassifications,
663
663
  readAndResetSlackReplyTargetClassifications
664
664
  };
665
- //# sourceMappingURL=responsiveness-probe-5MEW5XNI.js.map
665
+ //# sourceMappingURL=responsiveness-probe-PWS3FIRF.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.508",
3
+ "version": "0.28.510",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {