@integrity-labs/agt-cli 0.28.670 → 0.28.671
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-5GDKWIB3.js → chunk-57XP5OG6.js} +24 -12
- package/dist/chunk-57XP5OG6.js.map +1 -0
- package/dist/{chunk-HGVJVYKW.js → chunk-DWFN5PMF.js} +22 -1
- package/dist/chunk-DWFN5PMF.js.map +1 -0
- package/dist/{chunk-Z4O42VGJ.js → chunk-ZU2BHLUS.js} +4 -4
- package/dist/{claude-pair-runtime-W6KBVHK4.js → claude-pair-runtime-ANNQRKO4.js} +2 -2
- package/dist/lib/manager-worker.js +13 -13
- package/dist/mcp/direct-chat-channel.js +21 -0
- package/dist/mcp/index.js +21 -0
- package/dist/mcp/origami.js +21 -0
- package/dist/mcp/slack-channel.js +21 -0
- package/dist/mcp/telegram-channel.js +21 -0
- package/dist/{persistent-session-RZH67PNC.js → persistent-session-LTFB4M53.js} +3 -3
- package/dist/{responsiveness-probe-NPNMNOFF.js → responsiveness-probe-P2S3UMRE.js} +3 -3
- package/dist/{session-auth-dead-CFAYSZ43.js → session-auth-dead-YHSQBOB4.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-5GDKWIB3.js.map +0 -1
- package/dist/chunk-HGVJVYKW.js.map +0 -1
- /package/dist/{chunk-Z4O42VGJ.js.map → chunk-ZU2BHLUS.js.map} +0 -0
- /package/dist/{claude-pair-runtime-W6KBVHK4.js.map → claude-pair-runtime-ANNQRKO4.js.map} +0 -0
- /package/dist/{persistent-session-RZH67PNC.js.map → persistent-session-LTFB4M53.js.map} +0 -0
- /package/dist/{responsiveness-probe-NPNMNOFF.js.map → responsiveness-probe-P2S3UMRE.js.map} +0 -0
- /package/dist/{session-auth-dead-CFAYSZ43.js.map → session-auth-dead-YHSQBOB4.js.map} +0 -0
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
isolationMode,
|
|
10
10
|
log,
|
|
11
11
|
parseEnvIntegrations
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-57XP5OG6.js";
|
|
13
13
|
import {
|
|
14
14
|
BIND_FAILURE_QUARANTINE_THRESHOLD,
|
|
15
15
|
INTEGRATIONS_SECTION_END,
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
resolveConnectivityProbe,
|
|
57
57
|
worseConnectivityOutcome,
|
|
58
58
|
wrapScheduledTaskPrompt
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-DWFN5PMF.js";
|
|
60
60
|
import {
|
|
61
61
|
parsePsRows
|
|
62
62
|
} from "./chunk-XWVM4KPK.js";
|
|
@@ -6347,7 +6347,7 @@ function exchangeFailureKind(err) {
|
|
|
6347
6347
|
}
|
|
6348
6348
|
|
|
6349
6349
|
// src/lib/api-client.ts
|
|
6350
|
-
var agtCliVersion = true ? "0.28.
|
|
6350
|
+
var agtCliVersion = true ? "0.28.671" : "dev";
|
|
6351
6351
|
var lastConfigHash = null;
|
|
6352
6352
|
function setConfigHash(hash) {
|
|
6353
6353
|
lastConfigHash = hash && hash.length > 0 ? hash : null;
|
|
@@ -10089,4 +10089,4 @@ export {
|
|
|
10089
10089
|
managerInstallSystemUnitCommand,
|
|
10090
10090
|
managerUninstallSystemUnitCommand
|
|
10091
10091
|
};
|
|
10092
|
-
//# sourceMappingURL=chunk-
|
|
10092
|
+
//# sourceMappingURL=chunk-ZU2BHLUS.js.map
|
|
@@ -100,7 +100,7 @@ async function spawnPairSession(session) {
|
|
|
100
100
|
return { ok: true };
|
|
101
101
|
} catch {
|
|
102
102
|
}
|
|
103
|
-
const { resolveClaudeBinary } = await import("./persistent-session-
|
|
103
|
+
const { resolveClaudeBinary } = await import("./persistent-session-LTFB4M53.js");
|
|
104
104
|
const claudeBin = resolveClaudeBinary();
|
|
105
105
|
const pairEnv = {
|
|
106
106
|
...process.env,
|
|
@@ -373,4 +373,4 @@ export {
|
|
|
373
373
|
startClaudePair,
|
|
374
374
|
submitClaudePairCode
|
|
375
375
|
};
|
|
376
|
-
//# sourceMappingURL=claude-pair-runtime-
|
|
376
|
+
//# sourceMappingURL=claude-pair-runtime-ANNQRKO4.js.map
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
safeWriteJsonAtomic,
|
|
56
56
|
setConfigHash,
|
|
57
57
|
tripClass
|
|
58
|
-
} from "../chunk-
|
|
58
|
+
} from "../chunk-ZU2BHLUS.js";
|
|
59
59
|
import {
|
|
60
60
|
getProjectDir as getProjectDir2,
|
|
61
61
|
getReadyTasks,
|
|
@@ -111,7 +111,7 @@ import {
|
|
|
111
111
|
takeZombieDetection,
|
|
112
112
|
toOpencodeModel,
|
|
113
113
|
writeEgressAllowlist
|
|
114
|
-
} from "../chunk-
|
|
114
|
+
} from "../chunk-57XP5OG6.js";
|
|
115
115
|
import {
|
|
116
116
|
ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
|
|
117
117
|
AnchorSessionClient,
|
|
@@ -192,7 +192,7 @@ import {
|
|
|
192
192
|
subagentActivityAgeSeconds,
|
|
193
193
|
sumTranscriptUsageInWindow,
|
|
194
194
|
transcriptActivityAgeSeconds
|
|
195
|
-
} from "../chunk-
|
|
195
|
+
} from "../chunk-DWFN5PMF.js";
|
|
196
196
|
import {
|
|
197
197
|
reapOrphanChannelMcps
|
|
198
198
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -11611,7 +11611,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
|
|
|
11611
11611
|
var dayRolloverInboundHold = /* @__PURE__ */ new Map();
|
|
11612
11612
|
var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
|
|
11613
11613
|
async function channelInboundActivityAgeSecondsFor(codeName) {
|
|
11614
|
-
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-
|
|
11614
|
+
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-P2S3UMRE.js");
|
|
11615
11615
|
const newest = newestPendingInboundActivityMtimeMs(dirname10(paneLogPath(codeName)));
|
|
11616
11616
|
if (newest === null) return null;
|
|
11617
11617
|
return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
|
|
@@ -12256,7 +12256,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
12256
12256
|
var lastVersionCheckAt = 0;
|
|
12257
12257
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
12258
12258
|
var lastResponsivenessProbeAt = 0;
|
|
12259
|
-
var agtCliVersion = true ? "0.28.
|
|
12259
|
+
var agtCliVersion = true ? "0.28.671" : "dev";
|
|
12260
12260
|
function resolveBrewPath(execFileSync3) {
|
|
12261
12261
|
try {
|
|
12262
12262
|
const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -13620,7 +13620,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
13620
13620
|
if (codeNames.length === 0) return;
|
|
13621
13621
|
void (async () => {
|
|
13622
13622
|
try {
|
|
13623
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
13623
|
+
const { collectDiagnostics } = await import("../persistent-session-LTFB4M53.js");
|
|
13624
13624
|
await api.post("/host/heartbeat", {
|
|
13625
13625
|
host_id: hostId,
|
|
13626
13626
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor)
|
|
@@ -13736,7 +13736,7 @@ async function pollCycleInner() {
|
|
|
13736
13736
|
}
|
|
13737
13737
|
try {
|
|
13738
13738
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
13739
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
13739
|
+
const { collectDiagnostics } = await import("../persistent-session-LTFB4M53.js");
|
|
13740
13740
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
13741
13741
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor) : void 0;
|
|
13742
13742
|
let tailscaleHostname;
|
|
@@ -13888,7 +13888,7 @@ async function pollCycleInner() {
|
|
|
13888
13888
|
collectPanelessActivityProbes,
|
|
13889
13889
|
getResponsivenessIntervalMs,
|
|
13890
13890
|
occupancyQualificationClassifications
|
|
13891
|
-
} = await import("../responsiveness-probe-
|
|
13891
|
+
} = await import("../responsiveness-probe-P2S3UMRE.js");
|
|
13892
13892
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
13893
13893
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
13894
13894
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -13998,7 +13998,7 @@ async function pollCycleInner() {
|
|
|
13998
13998
|
collectResponsivenessProbes,
|
|
13999
13999
|
livePendingInboundOldestAgeSeconds,
|
|
14000
14000
|
parkPendingInbound
|
|
14001
|
-
} = await import("../responsiveness-probe-
|
|
14001
|
+
} = await import("../responsiveness-probe-P2S3UMRE.js");
|
|
14002
14002
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
14003
14003
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
14004
14004
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -14154,7 +14154,7 @@ async function pollCycleInner() {
|
|
|
14154
14154
|
}
|
|
14155
14155
|
try {
|
|
14156
14156
|
const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
|
|
14157
|
-
const { probeSessionAuth } = await import("../session-auth-dead-
|
|
14157
|
+
const { probeSessionAuth } = await import("../session-auth-dead-YHSQBOB4.js");
|
|
14158
14158
|
const observations = [];
|
|
14159
14159
|
const pendingCacheCommits = [];
|
|
14160
14160
|
const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
|
|
@@ -17891,7 +17891,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
17891
17891
|
void api.post("/host/restart-ack", { host_id: hostId, agent_id: agentId, restart_requested_at: requestedAt }).catch((err) => log(`[restart-lane] ack failed for '${codeName}': ${err.message}`));
|
|
17892
17892
|
void (async () => {
|
|
17893
17893
|
try {
|
|
17894
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
17894
|
+
const { collectDiagnostics } = await import("../persistent-session-LTFB4M53.js");
|
|
17895
17895
|
await api.post("/host/heartbeat", {
|
|
17896
17896
|
host_id: hostId,
|
|
17897
17897
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor)
|
|
@@ -17942,7 +17942,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
17942
17942
|
}
|
|
17943
17943
|
try {
|
|
17944
17944
|
const hostId = await getHostId();
|
|
17945
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
17945
|
+
const { collectDiagnostics } = await import("../persistent-session-LTFB4M53.js");
|
|
17946
17946
|
await api.post("/host/heartbeat", {
|
|
17947
17947
|
host_id: hostId,
|
|
17948
17948
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor)
|
|
@@ -18573,7 +18573,7 @@ async function processClaudePairSessions(agents) {
|
|
|
18573
18573
|
killPairSession,
|
|
18574
18574
|
pairTmuxSession,
|
|
18575
18575
|
finalizeClaudePairOnboarding
|
|
18576
|
-
} = await import("../claude-pair-runtime-
|
|
18576
|
+
} = await import("../claude-pair-runtime-ANNQRKO4.js");
|
|
18577
18577
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
18578
18578
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
18579
18579
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -36599,6 +36599,27 @@ var FLAG_REGISTRY = [
|
|
|
36599
36599
|
// never auto-attach an integration nobody asked for, and both ENG-8332
|
|
36600
36600
|
// prerequisites above are still open.
|
|
36601
36601
|
defaultValue: false
|
|
36602
|
+
},
|
|
36603
|
+
{
|
|
36604
|
+
key: "host-right-sizing",
|
|
36605
|
+
description: 'ADR-0072. Gates the HostRightSizer cron, which evaluates every managed EC2 host against 7 days of memory and CPU and (at enforce) resizes it one rung inside the host\'s own maintenance window. off = the cron returns immediately: nothing is read, nothing is written. shadow = evaluate, persist a verdict row per host, and post the weekly summary \u2014 NO resize, and no actor code runs. enforce = as shadow, plus enqueue resizes. AS OF PHASE 1 (ENG-9324) THERE IS NO ACTOR, SO `enforce` BEHAVES EXACTLY LIKE `shadow`: selecting it records the mode on each verdict row and changes nothing else, and no host is resized. This note comes out when the Phase 3 actor lands; until then treat enforce as shadow-with-a-label, not as an armed fleet. Ships dark: this mechanism ends in a stop/start of a customer production host, so an unreachable flag store must resolve to NOT acting. TWO BOUNDS WORTH KNOWING BEFORE FLIPPING. (1) off is not a stop button for in-flight work \u2014 HostResizeDispatcher reads only ec2_pending_instance_type and knows nothing about this flag, so flipping to off stops new enqueues and lets every already-enqueued host complete its stop/modify/start; combined with the ~5-minute eval cache the true blast unit is one tick of open windows. A real kill switch has to live inside the dispatcher. (2) BYO hosts (ADR-0028) are EXCLUDED in Phase 1, not merely clamped to shadow: their instances live in the customer AWS account while the cron authenticates only with the platform provisioner role, so their metrics read as empty and every evaluation would land as unknown. ADR-0072 \xA79 intends them to be shadow-only ("we recommend; they resize") and making that real needs the per-host cross_account_role_arn resolved - its own slice. Pool hosts (ADR-0042) are excluded too, while host_kind is unset in prod. Both are eligibility predicates applied by the cron, documented here so the admin page showing enforce for such an org is not read as behaviour.',
|
|
36606
|
+
flagType: "enum",
|
|
36607
|
+
allowedValues: ["off", "shadow", "enforce"],
|
|
36608
|
+
// Ships dark at `off`, NOT `shadow`. Diverging deliberately from
|
|
36609
|
+
// slack-scheduled-channel-guard, whose shadow is a free local log line:
|
|
36610
|
+
// THIS shadow spends a fleet-wide CloudWatch GetMetricData sweep per tick
|
|
36611
|
+
// and writes a row per host, so defaulting to shadow would newly bill and
|
|
36612
|
+
// newly write for every org that never opted in. shadow is the per-canary
|
|
36613
|
+
// opt-in; enforce is the audited flip after the Phase 2 review.
|
|
36614
|
+
defaultValue: "off",
|
|
36615
|
+
// Evaluated centrally, in the API cron — there is no host-side reader, so
|
|
36616
|
+
// no `since` and no dependence on fleet agt-cli convergence.
|
|
36617
|
+
// NOTE: deliberately NO envVar. ADR-0072 §9 wants this gate scoped per
|
|
36618
|
+
// org/host, and an envVar would be highest-precedence (ADR-0022) — a
|
|
36619
|
+
// literal in sst.config.ts would pin every stage and make the admin page a
|
|
36620
|
+
// control that does nothing, which is the ENG-8303 class exactly.
|
|
36621
|
+
// enforce arms automated downtime on a customer's production host.
|
|
36622
|
+
sensitive: true
|
|
36602
36623
|
}
|
|
36603
36624
|
];
|
|
36604
36625
|
var REGISTRY_BY_KEY = new Map(FLAG_REGISTRY.map((definition) => [definition.key, definition]));
|
package/dist/mcp/index.js
CHANGED
|
@@ -43538,6 +43538,27 @@ var FLAG_REGISTRY = [
|
|
|
43538
43538
|
// never auto-attach an integration nobody asked for, and both ENG-8332
|
|
43539
43539
|
// prerequisites above are still open.
|
|
43540
43540
|
defaultValue: false
|
|
43541
|
+
},
|
|
43542
|
+
{
|
|
43543
|
+
key: "host-right-sizing",
|
|
43544
|
+
description: 'ADR-0072. Gates the HostRightSizer cron, which evaluates every managed EC2 host against 7 days of memory and CPU and (at enforce) resizes it one rung inside the host\'s own maintenance window. off = the cron returns immediately: nothing is read, nothing is written. shadow = evaluate, persist a verdict row per host, and post the weekly summary \u2014 NO resize, and no actor code runs. enforce = as shadow, plus enqueue resizes. AS OF PHASE 1 (ENG-9324) THERE IS NO ACTOR, SO `enforce` BEHAVES EXACTLY LIKE `shadow`: selecting it records the mode on each verdict row and changes nothing else, and no host is resized. This note comes out when the Phase 3 actor lands; until then treat enforce as shadow-with-a-label, not as an armed fleet. Ships dark: this mechanism ends in a stop/start of a customer production host, so an unreachable flag store must resolve to NOT acting. TWO BOUNDS WORTH KNOWING BEFORE FLIPPING. (1) off is not a stop button for in-flight work \u2014 HostResizeDispatcher reads only ec2_pending_instance_type and knows nothing about this flag, so flipping to off stops new enqueues and lets every already-enqueued host complete its stop/modify/start; combined with the ~5-minute eval cache the true blast unit is one tick of open windows. A real kill switch has to live inside the dispatcher. (2) BYO hosts (ADR-0028) are EXCLUDED in Phase 1, not merely clamped to shadow: their instances live in the customer AWS account while the cron authenticates only with the platform provisioner role, so their metrics read as empty and every evaluation would land as unknown. ADR-0072 \xA79 intends them to be shadow-only ("we recommend; they resize") and making that real needs the per-host cross_account_role_arn resolved - its own slice. Pool hosts (ADR-0042) are excluded too, while host_kind is unset in prod. Both are eligibility predicates applied by the cron, documented here so the admin page showing enforce for such an org is not read as behaviour.',
|
|
43545
|
+
flagType: "enum",
|
|
43546
|
+
allowedValues: ["off", "shadow", "enforce"],
|
|
43547
|
+
// Ships dark at `off`, NOT `shadow`. Diverging deliberately from
|
|
43548
|
+
// slack-scheduled-channel-guard, whose shadow is a free local log line:
|
|
43549
|
+
// THIS shadow spends a fleet-wide CloudWatch GetMetricData sweep per tick
|
|
43550
|
+
// and writes a row per host, so defaulting to shadow would newly bill and
|
|
43551
|
+
// newly write for every org that never opted in. shadow is the per-canary
|
|
43552
|
+
// opt-in; enforce is the audited flip after the Phase 2 review.
|
|
43553
|
+
defaultValue: "off",
|
|
43554
|
+
// Evaluated centrally, in the API cron — there is no host-side reader, so
|
|
43555
|
+
// no `since` and no dependence on fleet agt-cli convergence.
|
|
43556
|
+
// NOTE: deliberately NO envVar. ADR-0072 §9 wants this gate scoped per
|
|
43557
|
+
// org/host, and an envVar would be highest-precedence (ADR-0022) — a
|
|
43558
|
+
// literal in sst.config.ts would pin every stage and make the admin page a
|
|
43559
|
+
// control that does nothing, which is the ENG-8303 class exactly.
|
|
43560
|
+
// enforce arms automated downtime on a customer's production host.
|
|
43561
|
+
sensitive: true
|
|
43541
43562
|
}
|
|
43542
43563
|
];
|
|
43543
43564
|
var REGISTRY_BY_KEY = new Map(FLAG_REGISTRY.map((definition) => [definition.key, definition]));
|
package/dist/mcp/origami.js
CHANGED
|
@@ -42349,6 +42349,27 @@ var FLAG_REGISTRY = [
|
|
|
42349
42349
|
// never auto-attach an integration nobody asked for, and both ENG-8332
|
|
42350
42350
|
// prerequisites above are still open.
|
|
42351
42351
|
defaultValue: false
|
|
42352
|
+
},
|
|
42353
|
+
{
|
|
42354
|
+
key: "host-right-sizing",
|
|
42355
|
+
description: 'ADR-0072. Gates the HostRightSizer cron, which evaluates every managed EC2 host against 7 days of memory and CPU and (at enforce) resizes it one rung inside the host\'s own maintenance window. off = the cron returns immediately: nothing is read, nothing is written. shadow = evaluate, persist a verdict row per host, and post the weekly summary \u2014 NO resize, and no actor code runs. enforce = as shadow, plus enqueue resizes. AS OF PHASE 1 (ENG-9324) THERE IS NO ACTOR, SO `enforce` BEHAVES EXACTLY LIKE `shadow`: selecting it records the mode on each verdict row and changes nothing else, and no host is resized. This note comes out when the Phase 3 actor lands; until then treat enforce as shadow-with-a-label, not as an armed fleet. Ships dark: this mechanism ends in a stop/start of a customer production host, so an unreachable flag store must resolve to NOT acting. TWO BOUNDS WORTH KNOWING BEFORE FLIPPING. (1) off is not a stop button for in-flight work \u2014 HostResizeDispatcher reads only ec2_pending_instance_type and knows nothing about this flag, so flipping to off stops new enqueues and lets every already-enqueued host complete its stop/modify/start; combined with the ~5-minute eval cache the true blast unit is one tick of open windows. A real kill switch has to live inside the dispatcher. (2) BYO hosts (ADR-0028) are EXCLUDED in Phase 1, not merely clamped to shadow: their instances live in the customer AWS account while the cron authenticates only with the platform provisioner role, so their metrics read as empty and every evaluation would land as unknown. ADR-0072 \xA79 intends them to be shadow-only ("we recommend; they resize") and making that real needs the per-host cross_account_role_arn resolved - its own slice. Pool hosts (ADR-0042) are excluded too, while host_kind is unset in prod. Both are eligibility predicates applied by the cron, documented here so the admin page showing enforce for such an org is not read as behaviour.',
|
|
42356
|
+
flagType: "enum",
|
|
42357
|
+
allowedValues: ["off", "shadow", "enforce"],
|
|
42358
|
+
// Ships dark at `off`, NOT `shadow`. Diverging deliberately from
|
|
42359
|
+
// slack-scheduled-channel-guard, whose shadow is a free local log line:
|
|
42360
|
+
// THIS shadow spends a fleet-wide CloudWatch GetMetricData sweep per tick
|
|
42361
|
+
// and writes a row per host, so defaulting to shadow would newly bill and
|
|
42362
|
+
// newly write for every org that never opted in. shadow is the per-canary
|
|
42363
|
+
// opt-in; enforce is the audited flip after the Phase 2 review.
|
|
42364
|
+
defaultValue: "off",
|
|
42365
|
+
// Evaluated centrally, in the API cron — there is no host-side reader, so
|
|
42366
|
+
// no `since` and no dependence on fleet agt-cli convergence.
|
|
42367
|
+
// NOTE: deliberately NO envVar. ADR-0072 §9 wants this gate scoped per
|
|
42368
|
+
// org/host, and an envVar would be highest-precedence (ADR-0022) — a
|
|
42369
|
+
// literal in sst.config.ts would pin every stage and make the admin page a
|
|
42370
|
+
// control that does nothing, which is the ENG-8303 class exactly.
|
|
42371
|
+
// enforce arms automated downtime on a customer's production host.
|
|
42372
|
+
sensitive: true
|
|
42352
42373
|
}
|
|
42353
42374
|
];
|
|
42354
42375
|
var REGISTRY_BY_KEY = new Map(FLAG_REGISTRY.map((definition) => [definition.key, definition]));
|
|
@@ -36832,6 +36832,27 @@ var FLAG_REGISTRY = [
|
|
|
36832
36832
|
// never auto-attach an integration nobody asked for, and both ENG-8332
|
|
36833
36833
|
// prerequisites above are still open.
|
|
36834
36834
|
defaultValue: false
|
|
36835
|
+
},
|
|
36836
|
+
{
|
|
36837
|
+
key: "host-right-sizing",
|
|
36838
|
+
description: 'ADR-0072. Gates the HostRightSizer cron, which evaluates every managed EC2 host against 7 days of memory and CPU and (at enforce) resizes it one rung inside the host\'s own maintenance window. off = the cron returns immediately: nothing is read, nothing is written. shadow = evaluate, persist a verdict row per host, and post the weekly summary \u2014 NO resize, and no actor code runs. enforce = as shadow, plus enqueue resizes. AS OF PHASE 1 (ENG-9324) THERE IS NO ACTOR, SO `enforce` BEHAVES EXACTLY LIKE `shadow`: selecting it records the mode on each verdict row and changes nothing else, and no host is resized. This note comes out when the Phase 3 actor lands; until then treat enforce as shadow-with-a-label, not as an armed fleet. Ships dark: this mechanism ends in a stop/start of a customer production host, so an unreachable flag store must resolve to NOT acting. TWO BOUNDS WORTH KNOWING BEFORE FLIPPING. (1) off is not a stop button for in-flight work \u2014 HostResizeDispatcher reads only ec2_pending_instance_type and knows nothing about this flag, so flipping to off stops new enqueues and lets every already-enqueued host complete its stop/modify/start; combined with the ~5-minute eval cache the true blast unit is one tick of open windows. A real kill switch has to live inside the dispatcher. (2) BYO hosts (ADR-0028) are EXCLUDED in Phase 1, not merely clamped to shadow: their instances live in the customer AWS account while the cron authenticates only with the platform provisioner role, so their metrics read as empty and every evaluation would land as unknown. ADR-0072 \xA79 intends them to be shadow-only ("we recommend; they resize") and making that real needs the per-host cross_account_role_arn resolved - its own slice. Pool hosts (ADR-0042) are excluded too, while host_kind is unset in prod. Both are eligibility predicates applied by the cron, documented here so the admin page showing enforce for such an org is not read as behaviour.',
|
|
36839
|
+
flagType: "enum",
|
|
36840
|
+
allowedValues: ["off", "shadow", "enforce"],
|
|
36841
|
+
// Ships dark at `off`, NOT `shadow`. Diverging deliberately from
|
|
36842
|
+
// slack-scheduled-channel-guard, whose shadow is a free local log line:
|
|
36843
|
+
// THIS shadow spends a fleet-wide CloudWatch GetMetricData sweep per tick
|
|
36844
|
+
// and writes a row per host, so defaulting to shadow would newly bill and
|
|
36845
|
+
// newly write for every org that never opted in. shadow is the per-canary
|
|
36846
|
+
// opt-in; enforce is the audited flip after the Phase 2 review.
|
|
36847
|
+
defaultValue: "off",
|
|
36848
|
+
// Evaluated centrally, in the API cron — there is no host-side reader, so
|
|
36849
|
+
// no `since` and no dependence on fleet agt-cli convergence.
|
|
36850
|
+
// NOTE: deliberately NO envVar. ADR-0072 §9 wants this gate scoped per
|
|
36851
|
+
// org/host, and an envVar would be highest-precedence (ADR-0022) — a
|
|
36852
|
+
// literal in sst.config.ts would pin every stage and make the admin page a
|
|
36853
|
+
// control that does nothing, which is the ENG-8303 class exactly.
|
|
36854
|
+
// enforce arms automated downtime on a customer's production host.
|
|
36855
|
+
sensitive: true
|
|
36835
36856
|
}
|
|
36836
36857
|
];
|
|
36837
36858
|
var REGISTRY_BY_KEY = new Map(FLAG_REGISTRY.map((definition) => [definition.key, definition]));
|
|
@@ -36976,6 +36976,27 @@ var FLAG_REGISTRY = [
|
|
|
36976
36976
|
// never auto-attach an integration nobody asked for, and both ENG-8332
|
|
36977
36977
|
// prerequisites above are still open.
|
|
36978
36978
|
defaultValue: false
|
|
36979
|
+
},
|
|
36980
|
+
{
|
|
36981
|
+
key: "host-right-sizing",
|
|
36982
|
+
description: 'ADR-0072. Gates the HostRightSizer cron, which evaluates every managed EC2 host against 7 days of memory and CPU and (at enforce) resizes it one rung inside the host\'s own maintenance window. off = the cron returns immediately: nothing is read, nothing is written. shadow = evaluate, persist a verdict row per host, and post the weekly summary \u2014 NO resize, and no actor code runs. enforce = as shadow, plus enqueue resizes. AS OF PHASE 1 (ENG-9324) THERE IS NO ACTOR, SO `enforce` BEHAVES EXACTLY LIKE `shadow`: selecting it records the mode on each verdict row and changes nothing else, and no host is resized. This note comes out when the Phase 3 actor lands; until then treat enforce as shadow-with-a-label, not as an armed fleet. Ships dark: this mechanism ends in a stop/start of a customer production host, so an unreachable flag store must resolve to NOT acting. TWO BOUNDS WORTH KNOWING BEFORE FLIPPING. (1) off is not a stop button for in-flight work \u2014 HostResizeDispatcher reads only ec2_pending_instance_type and knows nothing about this flag, so flipping to off stops new enqueues and lets every already-enqueued host complete its stop/modify/start; combined with the ~5-minute eval cache the true blast unit is one tick of open windows. A real kill switch has to live inside the dispatcher. (2) BYO hosts (ADR-0028) are EXCLUDED in Phase 1, not merely clamped to shadow: their instances live in the customer AWS account while the cron authenticates only with the platform provisioner role, so their metrics read as empty and every evaluation would land as unknown. ADR-0072 \xA79 intends them to be shadow-only ("we recommend; they resize") and making that real needs the per-host cross_account_role_arn resolved - its own slice. Pool hosts (ADR-0042) are excluded too, while host_kind is unset in prod. Both are eligibility predicates applied by the cron, documented here so the admin page showing enforce for such an org is not read as behaviour.',
|
|
36983
|
+
flagType: "enum",
|
|
36984
|
+
allowedValues: ["off", "shadow", "enforce"],
|
|
36985
|
+
// Ships dark at `off`, NOT `shadow`. Diverging deliberately from
|
|
36986
|
+
// slack-scheduled-channel-guard, whose shadow is a free local log line:
|
|
36987
|
+
// THIS shadow spends a fleet-wide CloudWatch GetMetricData sweep per tick
|
|
36988
|
+
// and writes a row per host, so defaulting to shadow would newly bill and
|
|
36989
|
+
// newly write for every org that never opted in. shadow is the per-canary
|
|
36990
|
+
// opt-in; enforce is the audited flip after the Phase 2 review.
|
|
36991
|
+
defaultValue: "off",
|
|
36992
|
+
// Evaluated centrally, in the API cron — there is no host-side reader, so
|
|
36993
|
+
// no `since` and no dependence on fleet agt-cli convergence.
|
|
36994
|
+
// NOTE: deliberately NO envVar. ADR-0072 §9 wants this gate scoped per
|
|
36995
|
+
// org/host, and an envVar would be highest-precedence (ADR-0022) — a
|
|
36996
|
+
// literal in sst.config.ts would pin every stage and make the admin page a
|
|
36997
|
+
// control that does nothing, which is the ENG-8303 class exactly.
|
|
36998
|
+
// enforce arms automated downtime on a customer's production host.
|
|
36999
|
+
sensitive: true
|
|
36979
37000
|
}
|
|
36980
37001
|
];
|
|
36981
37002
|
var REGISTRY_BY_KEY = new Map(FLAG_REGISTRY.map((definition) => [definition.key, definition]));
|
|
@@ -43,8 +43,8 @@ import {
|
|
|
43
43
|
writeDirectChatSessionState,
|
|
44
44
|
writeEgressAllowlist,
|
|
45
45
|
writePersistentClaudeWrapper
|
|
46
|
-
} from "./chunk-
|
|
47
|
-
import "./chunk-
|
|
46
|
+
} from "./chunk-57XP5OG6.js";
|
|
47
|
+
import "./chunk-DWFN5PMF.js";
|
|
48
48
|
import "./chunk-XWVM4KPK.js";
|
|
49
49
|
export {
|
|
50
50
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -92,4 +92,4 @@ export {
|
|
|
92
92
|
writeEgressAllowlist,
|
|
93
93
|
writePersistentClaudeWrapper
|
|
94
94
|
};
|
|
95
|
-
//# sourceMappingURL=persistent-session-
|
|
95
|
+
//# sourceMappingURL=persistent-session-LTFB4M53.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-57XP5OG6.js";
|
|
4
|
+
import "./chunk-DWFN5PMF.js";
|
|
5
5
|
import "./chunk-XWVM4KPK.js";
|
|
6
6
|
|
|
7
7
|
// src/lib/responsiveness-probe.ts
|
|
@@ -727,4 +727,4 @@ export {
|
|
|
727
727
|
readAndResetSlackReplyBindingClassifications,
|
|
728
728
|
readAndResetSlackReplyTargetClassifications
|
|
729
729
|
};
|
|
730
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
730
|
+
//# sourceMappingURL=responsiveness-probe-P2S3UMRE.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionTranscriptDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DWFN5PMF.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/session-auth-dead.ts
|
|
6
6
|
import { closeSync, openSync, readSync, readdirSync, statSync } from "fs";
|
|
@@ -203,4 +203,4 @@ export {
|
|
|
203
203
|
decideSessionAuthState,
|
|
204
204
|
probeSessionAuth
|
|
205
205
|
};
|
|
206
|
-
//# sourceMappingURL=session-auth-dead-
|
|
206
|
+
//# sourceMappingURL=session-auth-dead-YHSQBOB4.js.map
|