@integrity-labs/agt-cli 0.28.1077 → 0.28.1079
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-4WAUXFY7.js → chunk-5SASCNYV.js} +82 -10
- package/dist/chunk-5SASCNYV.js.map +1 -0
- package/dist/{chunk-QNS7N4QX.js → chunk-OGMCA67P.js} +2 -2
- package/dist/{chunk-RAIBOJ2A.js → chunk-TTSW5ZM2.js} +4 -4
- package/dist/{claude-pair-runtime-ZRXCZHYJ.js → claude-pair-runtime-ZHB5I7E6.js} +2 -2
- package/dist/lib/manager-worker.js +16 -16
- package/dist/mcp/direct-chat-channel.js +11 -0
- package/dist/mcp/index.js +11 -0
- package/dist/mcp/origami.js +11 -0
- package/dist/mcp/slack-channel.js +11 -0
- package/dist/mcp/telegram-channel.js +11 -0
- package/dist/{persistent-session-E2NNUB3S.js → persistent-session-UZUEF6BV.js} +3 -3
- package/dist/{responsiveness-probe-JBERGTQ3.js → responsiveness-probe-K5DU6QFZ.js} +3 -3
- package/dist/{session-auth-dead-KKW23735.js → session-auth-dead-47ZVQPUP.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-4WAUXFY7.js.map +0 -1
- /package/dist/{chunk-QNS7N4QX.js.map → chunk-OGMCA67P.js.map} +0 -0
- /package/dist/{chunk-RAIBOJ2A.js.map → chunk-TTSW5ZM2.js.map} +0 -0
- /package/dist/{claude-pair-runtime-ZRXCZHYJ.js.map → claude-pair-runtime-ZHB5I7E6.js.map} +0 -0
- /package/dist/{persistent-session-E2NNUB3S.js.map → persistent-session-UZUEF6BV.js.map} +0 -0
- /package/dist/{responsiveness-probe-JBERGTQ3.js.map → responsiveness-probe-K5DU6QFZ.js.map} +0 -0
- /package/dist/{session-auth-dead-KKW23735.js.map → session-auth-dead-47ZVQPUP.js.map} +0 -0
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
rotateDailySession,
|
|
25
25
|
sessionFileExists,
|
|
26
26
|
todayLocalIso
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-5SASCNYV.js";
|
|
28
28
|
import {
|
|
29
29
|
classifyUnanswerablePane,
|
|
30
30
|
findUsageLimitResetHint,
|
|
@@ -6113,4 +6113,4 @@ export {
|
|
|
6113
6113
|
stopAllSessionsAndWait,
|
|
6114
6114
|
getProjectDir
|
|
6115
6115
|
};
|
|
6116
|
-
//# sourceMappingURL=chunk-
|
|
6116
|
+
//# sourceMappingURL=chunk-OGMCA67P.js.map
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
parseEnvFileEntries,
|
|
17
17
|
parseEnvIntegrations,
|
|
18
18
|
shellQuote
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-OGMCA67P.js";
|
|
20
20
|
import {
|
|
21
21
|
BIND_FAILURE_QUARANTINE_THRESHOLD,
|
|
22
22
|
INTEGRATIONS_SECTION_END,
|
|
@@ -79,7 +79,7 @@ import {
|
|
|
79
79
|
sessionTranscriptDir,
|
|
80
80
|
worseConnectivityOutcome,
|
|
81
81
|
wrapScheduledTaskPrompt
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-5SASCNYV.js";
|
|
83
83
|
import {
|
|
84
84
|
classifyUnanswerablePane,
|
|
85
85
|
isConsumerTermsDialogVisible,
|
|
@@ -7122,7 +7122,7 @@ function exchangeFailureKind(err) {
|
|
|
7122
7122
|
}
|
|
7123
7123
|
|
|
7124
7124
|
// src/lib/api-client.ts
|
|
7125
|
-
var agtCliVersion = true ? "0.28.
|
|
7125
|
+
var agtCliVersion = true ? "0.28.1079" : "dev";
|
|
7126
7126
|
var lastConfigHash = null;
|
|
7127
7127
|
function setConfigHash(hash) {
|
|
7128
7128
|
lastConfigHash = hash && hash.length > 0 ? hash : null;
|
|
@@ -12095,4 +12095,4 @@ export {
|
|
|
12095
12095
|
managerInstallSystemUnitCommand,
|
|
12096
12096
|
managerUninstallSystemUnitCommand
|
|
12097
12097
|
};
|
|
12098
|
-
//# sourceMappingURL=chunk-
|
|
12098
|
+
//# sourceMappingURL=chunk-TTSW5ZM2.js.map
|
|
@@ -266,7 +266,7 @@ async function spawnPairSession(session) {
|
|
|
266
266
|
return { ok: true };
|
|
267
267
|
} catch {
|
|
268
268
|
}
|
|
269
|
-
const { resolveClaudeBinary } = await import("./persistent-session-
|
|
269
|
+
const { resolveClaudeBinary } = await import("./persistent-session-UZUEF6BV.js");
|
|
270
270
|
const claudeBin = resolveClaudeBinary();
|
|
271
271
|
const pairEnv = {
|
|
272
272
|
...process.env,
|
|
@@ -734,4 +734,4 @@ export {
|
|
|
734
734
|
startClaudePair,
|
|
735
735
|
submitClaudePairCode
|
|
736
736
|
};
|
|
737
|
-
//# sourceMappingURL=claude-pair-runtime-
|
|
737
|
+
//# sourceMappingURL=claude-pair-runtime-ZHB5I7E6.js.map
|
|
@@ -67,7 +67,7 @@ import {
|
|
|
67
67
|
safeWriteJsonAtomic,
|
|
68
68
|
setConfigHash,
|
|
69
69
|
tripClass
|
|
70
|
-
} from "../chunk-
|
|
70
|
+
} from "../chunk-TTSW5ZM2.js";
|
|
71
71
|
import {
|
|
72
72
|
getProjectDir as getProjectDir2,
|
|
73
73
|
getReadyTasks,
|
|
@@ -154,7 +154,7 @@ import {
|
|
|
154
154
|
webFetchBaselineValue,
|
|
155
155
|
webFetchRestartNeeded,
|
|
156
156
|
writeEgressAllowlist
|
|
157
|
-
} from "../chunk-
|
|
157
|
+
} from "../chunk-OGMCA67P.js";
|
|
158
158
|
import {
|
|
159
159
|
ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
|
|
160
160
|
AnchorSessionClient,
|
|
@@ -263,7 +263,7 @@ import {
|
|
|
263
263
|
subagentActivityAgeSeconds,
|
|
264
264
|
sumTranscriptUsageInWindow,
|
|
265
265
|
transcriptActivityAgeSeconds
|
|
266
|
-
} from "../chunk-
|
|
266
|
+
} from "../chunk-5SASCNYV.js";
|
|
267
267
|
import {
|
|
268
268
|
classifyUnanswerablePane,
|
|
269
269
|
paneRemedy
|
|
@@ -14141,7 +14141,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
|
|
|
14141
14141
|
var dayRolloverInboundHold = /* @__PURE__ */ new Map();
|
|
14142
14142
|
var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
|
|
14143
14143
|
async function channelInboundActivityAgeSecondsFor(codeName) {
|
|
14144
|
-
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-
|
|
14144
|
+
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-K5DU6QFZ.js");
|
|
14145
14145
|
const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
|
|
14146
14146
|
if (newest === null) return null;
|
|
14147
14147
|
return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
|
|
@@ -14899,7 +14899,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
14899
14899
|
var lastVersionCheckAt = 0;
|
|
14900
14900
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
14901
14901
|
var lastResponsivenessProbeAt = 0;
|
|
14902
|
-
var agtCliVersion = true ? "0.28.
|
|
14902
|
+
var agtCliVersion = true ? "0.28.1079" : "dev";
|
|
14903
14903
|
function resolveBrewPath(execFileSync3) {
|
|
14904
14904
|
try {
|
|
14905
14905
|
const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -16516,7 +16516,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
16516
16516
|
if (codeNames.length === 0) return;
|
|
16517
16517
|
void (async () => {
|
|
16518
16518
|
try {
|
|
16519
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
16519
|
+
const { collectDiagnostics } = await import("../persistent-session-UZUEF6BV.js");
|
|
16520
16520
|
await api.post("/host/heartbeat", {
|
|
16521
16521
|
host_id: hostId,
|
|
16522
16522
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
|
|
@@ -16658,7 +16658,7 @@ async function pollCycleInner() {
|
|
|
16658
16658
|
}
|
|
16659
16659
|
try {
|
|
16660
16660
|
const { detectHostSecurity } = await import("../host-security-KQYYZZVW.js");
|
|
16661
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
16661
|
+
const { collectDiagnostics } = await import("../persistent-session-UZUEF6BV.js");
|
|
16662
16662
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
16663
16663
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor) : void 0;
|
|
16664
16664
|
let tailscaleHostname;
|
|
@@ -16866,7 +16866,7 @@ async function pollCycleInner() {
|
|
|
16866
16866
|
collectPanelessActivityProbes,
|
|
16867
16867
|
getResponsivenessIntervalMs,
|
|
16868
16868
|
occupancyQualificationClassifications
|
|
16869
|
-
} = await import("../responsiveness-probe-
|
|
16869
|
+
} = await import("../responsiveness-probe-K5DU6QFZ.js");
|
|
16870
16870
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
16871
16871
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
16872
16872
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -16983,7 +16983,7 @@ async function pollCycleInner() {
|
|
|
16983
16983
|
collectResponsivenessProbes,
|
|
16984
16984
|
livePendingInboundOldestAgeSeconds,
|
|
16985
16985
|
parkPendingInbound
|
|
16986
|
-
} = await import("../responsiveness-probe-
|
|
16986
|
+
} = await import("../responsiveness-probe-K5DU6QFZ.js");
|
|
16987
16987
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-M6AFZWNU.js");
|
|
16988
16988
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
16989
16989
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -17269,7 +17269,7 @@ async function pollCycleInner() {
|
|
|
17269
17269
|
}
|
|
17270
17270
|
}
|
|
17271
17271
|
);
|
|
17272
|
-
const { parkPendingInbound } = await import("../responsiveness-probe-
|
|
17272
|
+
const { parkPendingInbound } = await import("../responsiveness-probe-K5DU6QFZ.js");
|
|
17273
17273
|
const { parked, deadLettered } = parkPendingInbound(codeName, new Date(fatalNowMs));
|
|
17274
17274
|
paneFatalStreak.delete(codeName);
|
|
17275
17275
|
paneFatalRestarts.set(codeName, [...history, fatalNowMs]);
|
|
@@ -17300,7 +17300,7 @@ async function pollCycleInner() {
|
|
|
17300
17300
|
TRANSCRIPT_MOUNT_ESCALATION_REFRESH_MS,
|
|
17301
17301
|
bindSourceEscalations
|
|
17302
17302
|
} = await import("../transcript-mount-health-OHE6IVJV.js");
|
|
17303
|
-
const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-
|
|
17303
|
+
const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-UZUEF6BV.js");
|
|
17304
17304
|
const mountConfig = resolveTranscriptMountConfig();
|
|
17305
17305
|
const liveAgents = agentState.persistentSessionAgents;
|
|
17306
17306
|
for (const tracked of [
|
|
@@ -17465,7 +17465,7 @@ async function pollCycleInner() {
|
|
|
17465
17465
|
}
|
|
17466
17466
|
try {
|
|
17467
17467
|
const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-VR5QGP3J.js");
|
|
17468
|
-
const { probeSessionAuth } = await import("../session-auth-dead-
|
|
17468
|
+
const { probeSessionAuth } = await import("../session-auth-dead-47ZVQPUP.js");
|
|
17469
17469
|
const observations = [];
|
|
17470
17470
|
const pendingCacheCommits = [];
|
|
17471
17471
|
const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
|
|
@@ -22030,7 +22030,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
22030
22030
|
try {
|
|
22031
22031
|
const freshId = rotateSessionForWedge(codeName);
|
|
22032
22032
|
consecutiveWedgeCycles.delete(codeName);
|
|
22033
|
-
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-
|
|
22033
|
+
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-K5DU6QFZ.js");
|
|
22034
22034
|
const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
|
|
22035
22035
|
const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
|
|
22036
22036
|
const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
|
|
@@ -22073,7 +22073,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
22073
22073
|
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}`));
|
|
22074
22074
|
void (async () => {
|
|
22075
22075
|
try {
|
|
22076
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
22076
|
+
const { collectDiagnostics } = await import("../persistent-session-UZUEF6BV.js");
|
|
22077
22077
|
await api.post("/host/heartbeat", {
|
|
22078
22078
|
host_id: hostId,
|
|
22079
22079
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
|
|
@@ -22124,7 +22124,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
22124
22124
|
}
|
|
22125
22125
|
try {
|
|
22126
22126
|
const hostId = await getHostId();
|
|
22127
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
22127
|
+
const { collectDiagnostics } = await import("../persistent-session-UZUEF6BV.js");
|
|
22128
22128
|
await api.post("/host/heartbeat", {
|
|
22129
22129
|
host_id: hostId,
|
|
22130
22130
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
|
|
@@ -22796,7 +22796,7 @@ async function processClaudePairSessions(agents) {
|
|
|
22796
22796
|
// cannot take it for itself — by the time it runs, the write it is looking
|
|
22797
22797
|
// for may already have happened.
|
|
22798
22798
|
snapshotPairConfig
|
|
22799
|
-
} = await import("../claude-pair-runtime-
|
|
22799
|
+
} = await import("../claude-pair-runtime-ZHB5I7E6.js");
|
|
22800
22800
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
22801
22801
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
22802
22802
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -38112,6 +38112,17 @@ var FLAG_REGISTRY = [
|
|
|
38112
38112
|
// It widens who may DECIDE an approval, so it is a control, not a display toggle.
|
|
38113
38113
|
sensitive: true
|
|
38114
38114
|
},
|
|
38115
|
+
{
|
|
38116
|
+
key: "approval-unified-authority",
|
|
38117
|
+
description: "One authority check for every approval ingress (ENG-11207, ADR-0124 Phase 0b): canDecide() runs inside tryDispatchApprovalCore for console, Slack (channel, alerts, Socket Mode, which also carries Telegram) and Direct Chat taps alike. off = not computed. shadow = compute the verdict and log approval_authority_would_reject (ingress, verb, org, reason) for every tap it would refuse, then decide exactly as today. enforce = reserved for the per-(org, verb) allowlist slice; until that ships it behaves as shadow. Evaluated per-org. Ships dark.",
|
|
38118
|
+
flagType: "enum",
|
|
38119
|
+
allowedValues: ["off", "shadow", "enforce"],
|
|
38120
|
+
// Safe/default value is `off` (no computation, no extra reads on the tap path). A flag-DB read
|
|
38121
|
+
// error degrades to this, so an outage can never change who may decide.
|
|
38122
|
+
defaultValue: "off",
|
|
38123
|
+
// Its enforce value will refuse approvals, so mutating it is worth confirming.
|
|
38124
|
+
sensitive: true
|
|
38125
|
+
},
|
|
38115
38126
|
{
|
|
38116
38127
|
key: "slack-reply-binding",
|
|
38117
38128
|
description: "Slack reply-target binding (ENG-7396 / WS2, cross-thread reply routing): the model names which inbound it answers (inbound_id) and the server resolves the destination from its own verified record. shadow = classify + count only, routing unchanged; warn = same routing plus a tool-result note so the model self-corrects; enforce = route a bound reply to the registry thread and REJECT a reply whose target matches no inbound this process delivered. The channel server can't evaluate flags, so the manager materializes the resolved value into the AGT_SLACK_REPLY_BINDING spawn env (the operator/canary override, ADR-0022). Ships shadow.",
|
package/dist/mcp/index.js
CHANGED
|
@@ -30330,6 +30330,17 @@ var FLAG_REGISTRY = [
|
|
|
30330
30330
|
// It widens who may DECIDE an approval, so it is a control, not a display toggle.
|
|
30331
30331
|
sensitive: true
|
|
30332
30332
|
},
|
|
30333
|
+
{
|
|
30334
|
+
key: "approval-unified-authority",
|
|
30335
|
+
description: "One authority check for every approval ingress (ENG-11207, ADR-0124 Phase 0b): canDecide() runs inside tryDispatchApprovalCore for console, Slack (channel, alerts, Socket Mode, which also carries Telegram) and Direct Chat taps alike. off = not computed. shadow = compute the verdict and log approval_authority_would_reject (ingress, verb, org, reason) for every tap it would refuse, then decide exactly as today. enforce = reserved for the per-(org, verb) allowlist slice; until that ships it behaves as shadow. Evaluated per-org. Ships dark.",
|
|
30336
|
+
flagType: "enum",
|
|
30337
|
+
allowedValues: ["off", "shadow", "enforce"],
|
|
30338
|
+
// Safe/default value is `off` (no computation, no extra reads on the tap path). A flag-DB read
|
|
30339
|
+
// error degrades to this, so an outage can never change who may decide.
|
|
30340
|
+
defaultValue: "off",
|
|
30341
|
+
// Its enforce value will refuse approvals, so mutating it is worth confirming.
|
|
30342
|
+
sensitive: true
|
|
30343
|
+
},
|
|
30333
30344
|
{
|
|
30334
30345
|
key: "slack-reply-binding",
|
|
30335
30346
|
description: "Slack reply-target binding (ENG-7396 / WS2, cross-thread reply routing): the model names which inbound it answers (inbound_id) and the server resolves the destination from its own verified record. shadow = classify + count only, routing unchanged; warn = same routing plus a tool-result note so the model self-corrects; enforce = route a bound reply to the registry thread and REJECT a reply whose target matches no inbound this process delivered. The channel server can't evaluate flags, so the manager materializes the resolved value into the AGT_SLACK_REPLY_BINDING spawn env (the operator/canary override, ADR-0022). Ships shadow.",
|
package/dist/mcp/origami.js
CHANGED
|
@@ -44253,6 +44253,17 @@ var FLAG_REGISTRY = [
|
|
|
44253
44253
|
// It widens who may DECIDE an approval, so it is a control, not a display toggle.
|
|
44254
44254
|
sensitive: true
|
|
44255
44255
|
},
|
|
44256
|
+
{
|
|
44257
|
+
key: "approval-unified-authority",
|
|
44258
|
+
description: "One authority check for every approval ingress (ENG-11207, ADR-0124 Phase 0b): canDecide() runs inside tryDispatchApprovalCore for console, Slack (channel, alerts, Socket Mode, which also carries Telegram) and Direct Chat taps alike. off = not computed. shadow = compute the verdict and log approval_authority_would_reject (ingress, verb, org, reason) for every tap it would refuse, then decide exactly as today. enforce = reserved for the per-(org, verb) allowlist slice; until that ships it behaves as shadow. Evaluated per-org. Ships dark.",
|
|
44259
|
+
flagType: "enum",
|
|
44260
|
+
allowedValues: ["off", "shadow", "enforce"],
|
|
44261
|
+
// Safe/default value is `off` (no computation, no extra reads on the tap path). A flag-DB read
|
|
44262
|
+
// error degrades to this, so an outage can never change who may decide.
|
|
44263
|
+
defaultValue: "off",
|
|
44264
|
+
// Its enforce value will refuse approvals, so mutating it is worth confirming.
|
|
44265
|
+
sensitive: true
|
|
44266
|
+
},
|
|
44256
44267
|
{
|
|
44257
44268
|
key: "slack-reply-binding",
|
|
44258
44269
|
description: "Slack reply-target binding (ENG-7396 / WS2, cross-thread reply routing): the model names which inbound it answers (inbound_id) and the server resolves the destination from its own verified record. shadow = classify + count only, routing unchanged; warn = same routing plus a tool-result note so the model self-corrects; enforce = route a bound reply to the registry thread and REJECT a reply whose target matches no inbound this process delivered. The channel server can't evaluate flags, so the manager materializes the resolved value into the AGT_SLACK_REPLY_BINDING spawn env (the operator/canary override, ADR-0022). Ships shadow.",
|
|
@@ -38883,6 +38883,17 @@ var FLAG_REGISTRY = [
|
|
|
38883
38883
|
// It widens who may DECIDE an approval, so it is a control, not a display toggle.
|
|
38884
38884
|
sensitive: true
|
|
38885
38885
|
},
|
|
38886
|
+
{
|
|
38887
|
+
key: "approval-unified-authority",
|
|
38888
|
+
description: "One authority check for every approval ingress (ENG-11207, ADR-0124 Phase 0b): canDecide() runs inside tryDispatchApprovalCore for console, Slack (channel, alerts, Socket Mode, which also carries Telegram) and Direct Chat taps alike. off = not computed. shadow = compute the verdict and log approval_authority_would_reject (ingress, verb, org, reason) for every tap it would refuse, then decide exactly as today. enforce = reserved for the per-(org, verb) allowlist slice; until that ships it behaves as shadow. Evaluated per-org. Ships dark.",
|
|
38889
|
+
flagType: "enum",
|
|
38890
|
+
allowedValues: ["off", "shadow", "enforce"],
|
|
38891
|
+
// Safe/default value is `off` (no computation, no extra reads on the tap path). A flag-DB read
|
|
38892
|
+
// error degrades to this, so an outage can never change who may decide.
|
|
38893
|
+
defaultValue: "off",
|
|
38894
|
+
// Its enforce value will refuse approvals, so mutating it is worth confirming.
|
|
38895
|
+
sensitive: true
|
|
38896
|
+
},
|
|
38886
38897
|
{
|
|
38887
38898
|
key: "slack-reply-binding",
|
|
38888
38899
|
description: "Slack reply-target binding (ENG-7396 / WS2, cross-thread reply routing): the model names which inbound it answers (inbound_id) and the server resolves the destination from its own verified record. shadow = classify + count only, routing unchanged; warn = same routing plus a tool-result note so the model self-corrects; enforce = route a bound reply to the registry thread and REJECT a reply whose target matches no inbound this process delivered. The channel server can't evaluate flags, so the manager materializes the resolved value into the AGT_SLACK_REPLY_BINDING spawn env (the operator/canary override, ADR-0022). Ships shadow.",
|
|
@@ -38989,6 +38989,17 @@ var FLAG_REGISTRY = [
|
|
|
38989
38989
|
// It widens who may DECIDE an approval, so it is a control, not a display toggle.
|
|
38990
38990
|
sensitive: true
|
|
38991
38991
|
},
|
|
38992
|
+
{
|
|
38993
|
+
key: "approval-unified-authority",
|
|
38994
|
+
description: "One authority check for every approval ingress (ENG-11207, ADR-0124 Phase 0b): canDecide() runs inside tryDispatchApprovalCore for console, Slack (channel, alerts, Socket Mode, which also carries Telegram) and Direct Chat taps alike. off = not computed. shadow = compute the verdict and log approval_authority_would_reject (ingress, verb, org, reason) for every tap it would refuse, then decide exactly as today. enforce = reserved for the per-(org, verb) allowlist slice; until that ships it behaves as shadow. Evaluated per-org. Ships dark.",
|
|
38995
|
+
flagType: "enum",
|
|
38996
|
+
allowedValues: ["off", "shadow", "enforce"],
|
|
38997
|
+
// Safe/default value is `off` (no computation, no extra reads on the tap path). A flag-DB read
|
|
38998
|
+
// error degrades to this, so an outage can never change who may decide.
|
|
38999
|
+
defaultValue: "off",
|
|
39000
|
+
// Its enforce value will refuse approvals, so mutating it is worth confirming.
|
|
39001
|
+
sensitive: true
|
|
39002
|
+
},
|
|
38992
39003
|
{
|
|
38993
39004
|
key: "slack-reply-binding",
|
|
38994
39005
|
description: "Slack reply-target binding (ENG-7396 / WS2, cross-thread reply routing): the model names which inbound it answers (inbound_id) and the server resolves the destination from its own verified record. shadow = classify + count only, routing unchanged; warn = same routing plus a tool-result note so the model self-corrects; enforce = route a bound reply to the registry thread and REJECT a reply whose target matches no inbound this process delivered. The channel server can't evaluate flags, so the manager materializes the resolved value into the AGT_SLACK_REPLY_BINDING spawn env (the operator/canary override, ADR-0022). Ships shadow.",
|
|
@@ -68,8 +68,8 @@ import {
|
|
|
68
68
|
writeDirectChatSessionState,
|
|
69
69
|
writeEgressAllowlist,
|
|
70
70
|
writePersistentClaudeWrapper
|
|
71
|
-
} from "./chunk-
|
|
72
|
-
import "./chunk-
|
|
71
|
+
} from "./chunk-OGMCA67P.js";
|
|
72
|
+
import "./chunk-5SASCNYV.js";
|
|
73
73
|
import "./chunk-OCMJ5E6J.js";
|
|
74
74
|
import "./chunk-XWVM4KPK.js";
|
|
75
75
|
import "./chunk-EL5MWGGH.js";
|
|
@@ -145,4 +145,4 @@ export {
|
|
|
145
145
|
writeEgressAllowlist,
|
|
146
146
|
writePersistentClaudeWrapper
|
|
147
147
|
};
|
|
148
|
-
//# sourceMappingURL=persistent-session-
|
|
148
|
+
//# sourceMappingURL=persistent-session-UZUEF6BV.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-OGMCA67P.js";
|
|
4
|
+
import "./chunk-5SASCNYV.js";
|
|
5
5
|
import "./chunk-OCMJ5E6J.js";
|
|
6
6
|
import "./chunk-XWVM4KPK.js";
|
|
7
7
|
import "./chunk-EL5MWGGH.js";
|
|
@@ -802,4 +802,4 @@ export {
|
|
|
802
802
|
readAndResetSlackReplyBindingClassifications,
|
|
803
803
|
readAndResetSlackReplyTargetClassifications
|
|
804
804
|
};
|
|
805
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
805
|
+
//# sourceMappingURL=responsiveness-probe-K5DU6QFZ.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionTranscriptDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5SASCNYV.js";
|
|
4
4
|
import "./chunk-DGUM43GV.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/session-auth-dead.ts
|
|
@@ -204,4 +204,4 @@ export {
|
|
|
204
204
|
decideSessionAuthState,
|
|
205
205
|
probeSessionAuth
|
|
206
206
|
};
|
|
207
|
-
//# sourceMappingURL=session-auth-dead-
|
|
207
|
+
//# sourceMappingURL=session-auth-dead-47ZVQPUP.js.map
|