fullcourtdefense-cli 1.27.3 → 1.27.4
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/commands/hook.js +11 -3
- package/dist/version.json +1 -1
- package/package.json +1 -1
package/dist/commands/hook.js
CHANGED
|
@@ -682,14 +682,22 @@ function tryLocalPolicyEnforcement(ctx, call, detail, opts = {}) {
|
|
|
682
682
|
(0, telemetry_1.triggerFlush)(true);
|
|
683
683
|
ctx.respond(true, `Blocked by FullCourtDefense${local.policyName ? ` (${local.policyName})` : ''} — enforced locally while the policy service is unreachable.${approvalNote}`, `FullCourtDefense blocked this ${ctx.event} using the locally cached org policy${local.policyName ? ` "${local.policyName}"` : ''} (${detail}).${approvalNote} Do not retry until the connection is restored or the policy allows it.`);
|
|
684
684
|
}
|
|
685
|
+
// Monitor machines land here by design (zero synchronous network calls), not
|
|
686
|
+
// because anything is down — never tell the developer the service is
|
|
687
|
+
// unreachable when it is simply not consulted.
|
|
688
|
+
const monitorPath = opts.countAsGateFailure === false;
|
|
685
689
|
if (local.verdict === 'log') {
|
|
686
690
|
// Warn-only rule, offline: still a real warning + Warned in the fleet.
|
|
687
691
|
const warning = warnByPolicy(call, local, ctx.event, ctx.exitsProcess, 'local-first');
|
|
688
|
-
ctx.respond(false, warning.userMsg,
|
|
692
|
+
ctx.respond(false, warning.userMsg, monitorPath
|
|
693
|
+
? warning.agentMsg
|
|
694
|
+
: `${warning.agentMsg} (policy service unreachable — evaluated from the locally cached org policies).`);
|
|
689
695
|
}
|
|
690
|
-
spoolCallEvent(call, { decision: 'allow', reason: `local policy allow (offline): ${detail}`, offlineEnforced: true });
|
|
696
|
+
spoolCallEvent(call, { decision: 'allow', reason: `local policy allow (${monitorPath ? 'monitor' : 'offline'}): ${detail}`, offlineEnforced: true });
|
|
691
697
|
(0, telemetry_1.triggerFlush)(false);
|
|
692
|
-
ctx.respond(false, undefined,
|
|
698
|
+
ctx.respond(false, undefined, monitorPath
|
|
699
|
+
? undefined
|
|
700
|
+
: `FullCourtDefense: policy service unreachable — this ${ctx.event} was checked against the locally cached org policies and allowed.`);
|
|
693
701
|
}
|
|
694
702
|
/** Per-event attribution that maps onto the existing Shield runtime headers (prompt path). */
|
|
695
703
|
function attributionFor(event, p) {
|
package/dist/version.json
CHANGED