@integrity-labs/agt-cli 0.28.831 → 0.28.833

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.
@@ -16,7 +16,7 @@ import {
16
16
  parseEnvIntegrations,
17
17
  shellQuote,
18
18
  summarizeUnanswerablePane
19
- } from "./chunk-N4QVPPYS.js";
19
+ } from "./chunk-W4KAZQBS.js";
20
20
  import {
21
21
  BIND_FAILURE_QUARANTINE_THRESHOLD,
22
22
  INTEGRATIONS_SECTION_END,
@@ -30,6 +30,8 @@ import {
30
30
  REMOTE_MCP_PROXY_ENV,
31
31
  RESTART_BREAKER_NEW_AGENT_GRACE_CEILING,
32
32
  RESTART_BREAKER_NEW_AGENT_GRACE_MS,
33
+ RESTART_BREAKER_OPERATOR_COMMAND_MAX,
34
+ RESTART_BREAKER_OPERATOR_COMMAND_WINDOW_MS,
33
35
  RESTART_BREAKER_OPERATOR_MAX,
34
36
  RESTART_BREAKER_PROVISIONING_MAX,
35
37
  RESTART_BREAKER_PROVISIONING_WINDOW_MS,
@@ -74,7 +76,7 @@ import {
74
76
  sessionTranscriptDir,
75
77
  worseConnectivityOutcome,
76
78
  wrapScheduledTaskPrompt
77
- } from "./chunk-4ZPOP7EW.js";
79
+ } from "./chunk-DUOFKTAD.js";
78
80
  import {
79
81
  parsePsRows
80
82
  } from "./chunk-XWVM4KPK.js";
@@ -6535,7 +6537,7 @@ function exchangeFailureKind(err) {
6535
6537
  }
6536
6538
 
6537
6539
  // src/lib/api-client.ts
6538
- var agtCliVersion = true ? "0.28.831" : "dev";
6540
+ var agtCliVersion = true ? "0.28.833" : "dev";
6539
6541
  var lastConfigHash = null;
6540
6542
  function setConfigHash(hash) {
6541
6543
  lastConfigHash = hash && hash.length > 0 ? hash : null;
@@ -8044,7 +8046,10 @@ var KNOWN_REASON_CLASS_MAP = {
8044
8046
  // compiler forces every new class into this allowlist, so a `trippedClass`
8045
8047
  // rehydrated from manager-state.json can never name a class this build does
8046
8048
  // not know about.
8047
- scheduled: true
8049
+ scheduled: true,
8050
+ // ENG-10066: the operator-command class. Same Record-not-Set reasoning again —
8051
+ // the compiler forces every new class into this allowlist.
8052
+ "operator-command": true
8048
8053
  };
8049
8054
  var KNOWN_REASON_CLASSES = new Set(
8050
8055
  Object.keys(KNOWN_REASON_CLASS_MAP)
@@ -8099,6 +8104,12 @@ var SCHEDULED_REASONS = /* @__PURE__ */ new Set([
8099
8104
  function isScheduledRestartReason(reason) {
8100
8105
  return SCHEDULED_REASONS.has(reason);
8101
8106
  }
8107
+ var OPERATOR_COMMAND_REASONS = /* @__PURE__ */ new Set([
8108
+ "channel-restart-flag"
8109
+ ]);
8110
+ function isOperatorCommandReason(reason) {
8111
+ return OPERATOR_COMMAND_REASONS.has(reason);
8112
+ }
8102
8113
  var OPERATOR_CONFIG_REASONS = /* @__PURE__ */ new Set([
8103
8114
  "operator-integration-change"
8104
8115
  ]);
@@ -8113,6 +8124,7 @@ function restartReasonClass(reason) {
8113
8124
  if (isSelfHealingReason(reason)) return "self-healing";
8114
8125
  if (isOperatorConfigReason(reason)) return "operator-config";
8115
8126
  if (isScheduledRestartReason(reason)) return "scheduled";
8127
+ if (isOperatorCommandReason(reason)) return "operator-command";
8116
8128
  return isProvisioningReloadReason(reason) ? "provisioning" : "crash";
8117
8129
  }
8118
8130
  function countByClass(events) {
@@ -8122,6 +8134,7 @@ function countByClass(events) {
8122
8134
  let selfHealing = 0;
8123
8135
  let operatorConfig = 0;
8124
8136
  let scheduled = 0;
8137
+ let operatorCommand = 0;
8125
8138
  for (const e of events) {
8126
8139
  const klass = restartReasonClass(e.reason);
8127
8140
  if (klass === "provisioning") provisioning += 1;
@@ -8129,6 +8142,7 @@ function countByClass(events) {
8129
8142
  else if (klass === "self-healing") selfHealing += 1;
8130
8143
  else if (klass === "operator-config") operatorConfig += 1;
8131
8144
  else if (klass === "scheduled") scheduled += 1;
8145
+ else if (klass === "operator-command") operatorCommand += 1;
8132
8146
  else crash += 1;
8133
8147
  }
8134
8148
  return {
@@ -8137,7 +8151,8 @@ function countByClass(events) {
8137
8151
  "credential-rotation": credentialRotation,
8138
8152
  "self-healing": selfHealing,
8139
8153
  "operator-config": operatorConfig,
8140
- scheduled
8154
+ scheduled,
8155
+ "operator-command": operatorCommand
8141
8156
  };
8142
8157
  }
8143
8158
  function maxProvisioningBucket(events) {
@@ -8169,6 +8184,8 @@ var DEFAULT_PROVISIONING_WINDOW_MS = RESTART_BREAKER_PROVISIONING_WINDOW_MS;
8169
8184
  var DEFAULT_OPERATOR_MAX = RESTART_BREAKER_OPERATOR_MAX;
8170
8185
  var DEFAULT_SCHEDULED_MAX = RESTART_BREAKER_SCHEDULED_MAX;
8171
8186
  var DEFAULT_SCHEDULED_WINDOW_MS = RESTART_BREAKER_SCHEDULED_WINDOW_MS;
8187
+ var DEFAULT_OPERATOR_COMMAND_MAX = RESTART_BREAKER_OPERATOR_COMMAND_MAX;
8188
+ var DEFAULT_OPERATOR_COMMAND_WINDOW_MS = RESTART_BREAKER_OPERATOR_COMMAND_WINDOW_MS;
8172
8189
  function readEnvNumber(name, fallback) {
8173
8190
  const raw = process.env[name];
8174
8191
  if (!raw) return fallback;
@@ -8204,6 +8221,8 @@ var RestartBreaker = class {
8204
8221
  scheduledMax;
8205
8222
  /** ENG-9138: sliding window for the scheduled tally. */
8206
8223
  scheduledWindowMs;
8224
+ operatorCommandMax;
8225
+ operatorCommandWindowMs;
8207
8226
  /** Longest window any tally needs — how long the events log must retain. */
8208
8227
  retentionMs;
8209
8228
  now;
@@ -8232,6 +8251,11 @@ var RestartBreaker = class {
8232
8251
  this.operatorMax = opts.operatorMax ?? readEnvNumber("AGT_RESTART_BREAKER_OPERATOR_MAX", DEFAULT_OPERATOR_MAX);
8233
8252
  this.scheduledMax = opts.scheduledMax ?? readEnvNumber("AGT_RESTART_BREAKER_SCHEDULED_MAX", DEFAULT_SCHEDULED_MAX);
8234
8253
  this.scheduledWindowMs = opts.scheduledWindowMs ?? readEnvNumber("AGT_RESTART_BREAKER_SCHEDULED_WINDOW_MS", DEFAULT_SCHEDULED_WINDOW_MS);
8254
+ this.operatorCommandMax = opts.operatorCommandMax ?? readEnvNumber("AGT_RESTART_BREAKER_OPERATOR_COMMAND_MAX", DEFAULT_OPERATOR_COMMAND_MAX);
8255
+ this.operatorCommandWindowMs = opts.operatorCommandWindowMs ?? readEnvNumber(
8256
+ "AGT_RESTART_BREAKER_OPERATOR_COMMAND_WINDOW_MS",
8257
+ DEFAULT_OPERATOR_COMMAND_WINDOW_MS
8258
+ );
8235
8259
  this.now = opts.now ?? Date.now;
8236
8260
  this.runtimeKey = opts.runtimeKey ?? ((codeName) => codeName);
8237
8261
  this.agentCreatedAt = opts.agentCreatedAt ?? (() => void 0);
@@ -8269,11 +8293,28 @@ var RestartBreaker = class {
8269
8293
  if (!Number.isFinite(this.provisioningWindowMs) || this.provisioningWindowMs < 1e3) {
8270
8294
  throw new Error("restart-breaker provisioningWindowMs must be a finite number >= 1000");
8271
8295
  }
8296
+ if (!Number.isFinite(this.scheduledMax) || this.scheduledMax < 1) {
8297
+ throw new Error("restart-breaker scheduledMax must be a finite number >= 1");
8298
+ }
8299
+ if (!Number.isFinite(this.scheduledWindowMs) || this.scheduledWindowMs < 1e3) {
8300
+ throw new Error("restart-breaker scheduledWindowMs must be a finite number >= 1000");
8301
+ }
8302
+ if (!Number.isFinite(this.operatorCommandMax) || this.operatorCommandMax < 1) {
8303
+ throw new Error("restart-breaker operatorCommandMax must be a finite number >= 1");
8304
+ }
8305
+ if (!Number.isFinite(this.operatorCommandWindowMs) || this.operatorCommandWindowMs < 1e3) {
8306
+ throw new Error("restart-breaker operatorCommandWindowMs must be a finite number >= 1000");
8307
+ }
8272
8308
  const minimumGraceCeiling = Math.max(this.provisioningMax, this.operatorMax);
8273
8309
  if (this.newAgentGraceCeiling < minimumGraceCeiling) {
8274
8310
  this.newAgentGraceCeiling = minimumGraceCeiling;
8275
8311
  }
8276
- this.retentionMs = Math.max(this.windowMs, this.provisioningWindowMs, this.scheduledWindowMs);
8312
+ this.retentionMs = Math.max(
8313
+ this.windowMs,
8314
+ this.provisioningWindowMs,
8315
+ this.scheduledWindowMs,
8316
+ this.operatorCommandWindowMs
8317
+ );
8277
8318
  }
8278
8319
  /**
8279
8320
  * ENG-8215: the clamp record, if the configured provisioning max had to be
@@ -8365,6 +8406,9 @@ var RestartBreaker = class {
8365
8406
  const scheduledEvents = prior.filter(
8366
8407
  (e) => e.at >= at - this.scheduledWindowMs && isScheduledRestartReason(e.reason)
8367
8408
  );
8409
+ const operatorCommandEvents = prior.filter(
8410
+ (e) => e.at >= at - this.operatorCommandWindowMs && isOperatorCommandReason(e.reason)
8411
+ );
8368
8412
  const windowCount = prior.filter((e) => e.at >= at - this.windowMs).length;
8369
8413
  const classCounts = {
8370
8414
  crash: crashCount,
@@ -8372,13 +8416,19 @@ var RestartBreaker = class {
8372
8416
  "credential-rotation": credRotCount,
8373
8417
  "self-healing": selfHealCount,
8374
8418
  "operator-config": operatorEvents.length,
8375
- scheduled: scheduledEvents.length
8419
+ scheduled: scheduledEvents.length,
8420
+ "operator-command": operatorCommandEvents.length
8376
8421
  };
8377
8422
  const scheduledLoop = scheduledEvents.length > this.scheduledMax ? {
8378
8423
  count: scheduledEvents.length,
8379
8424
  windowMs: this.scheduledWindowMs,
8380
8425
  reason: scheduledEvents[scheduledEvents.length - 1].reason
8381
8426
  } : void 0;
8427
+ const operatorCommandLoop = operatorCommandEvents.length > this.operatorCommandMax ? {
8428
+ count: operatorCommandEvents.length,
8429
+ windowMs: this.operatorCommandWindowMs,
8430
+ reason: operatorCommandEvents[operatorCommandEvents.length - 1].reason
8431
+ } : void 0;
8382
8432
  const provBucket = maxProvisioningBucket(provEvents);
8383
8433
  const operatorBucket = maxBucketWhere(operatorEvents, isOperatorConfigReason);
8384
8434
  const createdAt = this.newAgentGraceMs > 0 ? this.agentCreatedAt(codeName) : void 0;
@@ -8440,7 +8490,8 @@ var RestartBreaker = class {
8440
8490
  maxProvisioningBucketKey: provBucket.key,
8441
8491
  ...graceCeilingExceeded ? { newAgentGraceCeilingExceeded: true } : {},
8442
8492
  // ENG-9138: a co-occurring rollover loop still reports on a real trip.
8443
- ...scheduledLoop ? { scheduledLoop } : {}
8493
+ ...scheduledLoop ? { scheduledLoop } : {},
8494
+ ...operatorCommandLoop ? { operatorCommandLoop } : {}
8444
8495
  };
8445
8496
  }
8446
8497
  const suppressedOperator = operatorBucket.count > this.operatorMax;
@@ -8453,6 +8504,7 @@ var RestartBreaker = class {
8453
8504
  maxProvisioningBucket: provBucket.count,
8454
8505
  maxProvisioningBucketKey: provBucket.key,
8455
8506
  ...scheduledLoop ? { scheduledLoop } : {},
8507
+ ...operatorCommandLoop ? { operatorCommandLoop } : {},
8456
8508
  ...newAgentGraceActive ? {
8457
8509
  newAgentGraceSuppressedTrip: wouldHaveTripped,
8458
8510
  ...newAgentGraceExpiresAt !== void 0 ? { newAgentGraceExpiresAt } : {},
@@ -10843,4 +10895,4 @@ export {
10843
10895
  managerInstallSystemUnitCommand,
10844
10896
  managerUninstallSystemUnitCommand
10845
10897
  };
10846
- //# sourceMappingURL=chunk-PODKITVQ.js.map
10898
+ //# sourceMappingURL=chunk-LGVB4OTX.js.map