@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.
- package/dist/bin/agt.js +5 -5
- package/dist/{chunk-4ZPOP7EW.js → chunk-DUOFKTAD.js} +5 -1
- package/dist/{chunk-4ZPOP7EW.js.map → chunk-DUOFKTAD.js.map} +1 -1
- package/dist/{chunk-PODKITVQ.js → chunk-LGVB4OTX.js} +61 -9
- package/dist/{chunk-PODKITVQ.js.map → chunk-LGVB4OTX.js.map} +1 -1
- package/dist/{chunk-N4QVPPYS.js → chunk-W4KAZQBS.js} +2 -2
- package/dist/{claude-pair-runtime-PUWAIK73.js → claude-pair-runtime-A52UZQ6V.js} +2 -2
- package/dist/lib/manager-worker.js +38 -13
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/{persistent-session-W23U7GQU.js → persistent-session-N6FIS7UY.js} +3 -3
- package/dist/{responsiveness-probe-IRQKIEBW.js → responsiveness-probe-OBQCSEFT.js} +32 -7
- package/dist/responsiveness-probe-OBQCSEFT.js.map +1 -0
- package/dist/{session-auth-dead-VDDXVJTX.js → session-auth-dead-LIPEYPBX.js} +2 -2
- package/package.json +1 -1
- package/dist/responsiveness-probe-IRQKIEBW.js.map +0 -1
- /package/dist/{chunk-N4QVPPYS.js.map → chunk-W4KAZQBS.js.map} +0 -0
- /package/dist/{claude-pair-runtime-PUWAIK73.js.map → claude-pair-runtime-A52UZQ6V.js.map} +0 -0
- /package/dist/{persistent-session-W23U7GQU.js.map → persistent-session-N6FIS7UY.js.map} +0 -0
- /package/dist/{session-auth-dead-VDDXVJTX.js.map → session-auth-dead-LIPEYPBX.js.map} +0 -0
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
parseEnvIntegrations,
|
|
17
17
|
shellQuote,
|
|
18
18
|
summarizeUnanswerablePane
|
|
19
|
-
} from "./chunk-
|
|
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-
|
|
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.
|
|
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(
|
|
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-
|
|
10898
|
+
//# sourceMappingURL=chunk-LGVB4OTX.js.map
|