audit-tools 0.30.0 → 0.30.2
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/audit/adapters/astGrep.d.ts +30 -0
- package/dist/audit/adapters/astGrep.d.ts.map +1 -0
- package/dist/audit/adapters/astGrep.js +46 -0
- package/dist/audit/adapters/astGrep.js.map +1 -0
- package/dist/audit/adapters/codeql.d.ts +47 -0
- package/dist/audit/adapters/codeql.d.ts.map +1 -0
- package/dist/audit/adapters/codeql.js +52 -0
- package/dist/audit/adapters/codeql.js.map +1 -0
- package/dist/audit/adapters/normalizeExternal.d.ts +24 -1
- package/dist/audit/adapters/normalizeExternal.d.ts.map +1 -1
- package/dist/audit/adapters/normalizeExternal.js +50 -0
- package/dist/audit/adapters/normalizeExternal.js.map +1 -1
- package/dist/audit/adapters/semgrep.d.ts +34 -15
- package/dist/audit/adapters/semgrep.d.ts.map +1 -1
- package/dist/audit/adapters/semgrep.js +54 -1
- package/dist/audit/adapters/semgrep.js.map +1 -1
- package/dist/audit/cli/mergeAndIngestCommand.d.ts +29 -1
- package/dist/audit/cli/mergeAndIngestCommand.d.ts.map +1 -1
- package/dist/audit/cli/mergeAndIngestCommand.js +71 -5
- package/dist/audit/cli/mergeAndIngestCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +7 -6
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/resynthesizeCommand.d.ts.map +1 -1
- package/dist/audit/cli/resynthesizeCommand.js +3 -3
- package/dist/audit/cli/resynthesizeCommand.js.map +1 -1
- package/dist/audit/cli/submitPacketCommand.d.ts.map +1 -1
- package/dist/audit/cli/submitPacketCommand.js +6 -1
- package/dist/audit/cli/submitPacketCommand.js.map +1 -1
- package/dist/audit/contracts/workerSchemas.d.ts +13 -13
- package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
- package/dist/audit/contracts/workerSchemas.js +1 -1
- package/dist/audit/contracts/workerSchemas.js.map +1 -1
- package/dist/audit/contracts/wrapperResponse.d.ts +7 -0
- package/dist/audit/contracts/wrapperResponse.d.ts.map +1 -1
- package/dist/audit/contracts/wrapperResponse.js +1 -0
- package/dist/audit/contracts/wrapperResponse.js.map +1 -1
- package/dist/audit/extractors/graph.d.ts.map +1 -1
- package/dist/audit/extractors/graph.js +47 -0
- package/dist/audit/extractors/graph.js.map +1 -1
- package/dist/audit/io/artifacts.d.ts +2 -2
- package/dist/audit/io/artifacts.d.ts.map +1 -1
- package/dist/audit/io/artifacts.js +14 -11
- package/dist/audit/io/artifacts.js.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.d.ts +17 -0
- package/dist/audit/orchestrator/designReviewPrompt.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.js +26 -0
- package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -1
- package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
- package/dist/audit/orchestrator/executorRunners.js +20 -0
- package/dist/audit/orchestrator/executorRunners.js.map +1 -1
- package/dist/audit/orchestrator/executors.d.ts.map +1 -1
- package/dist/audit/orchestrator/executors.js +5 -0
- package/dist/audit/orchestrator/executors.js.map +1 -1
- package/dist/audit/orchestrator/nextStep.d.ts +37 -0
- package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
- package/dist/audit/orchestrator/nextStep.js +45 -0
- package/dist/audit/orchestrator/nextStep.js.map +1 -1
- package/dist/audit/supervisor/operatorHandoff.d.ts +12 -0
- package/dist/audit/supervisor/operatorHandoff.d.ts.map +1 -1
- package/dist/audit/supervisor/operatorHandoff.js +3 -1
- package/dist/audit/supervisor/operatorHandoff.js.map +1 -1
- package/dist/audit/types/externalAnalyzer.d.ts +68 -2
- package/dist/audit/types/externalAnalyzer.d.ts.map +1 -1
- package/dist/audit/types/externalAnalyzer.js +23 -0
- package/dist/audit/types/externalAnalyzer.js.map +1 -1
- package/dist/audit/types/reviewPlanning.d.ts +14 -14
- package/dist/audit/validation/auditResults.d.ts +17 -0
- package/dist/audit/validation/auditResults.d.ts.map +1 -1
- package/dist/audit/validation/auditResults.js +39 -0
- package/dist/audit/validation/auditResults.js.map +1 -1
- package/dist/audit/validation/sessionConfig.d.ts.map +1 -1
- package/dist/audit/validation/sessionConfig.js +4 -0
- package/dist/audit/validation/sessionConfig.js.map +1 -1
- package/dist/remediate/review/autonomousGate.d.ts +74 -0
- package/dist/remediate/review/autonomousGate.d.ts.map +1 -0
- package/dist/remediate/review/autonomousGate.js +179 -0
- package/dist/remediate/review/autonomousGate.js.map +1 -0
- package/dist/remediate/steps/contractPipeline.d.ts +8 -0
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +1 -0
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.d.ts +10 -0
- package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.js +32 -1
- package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts +34 -0
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +144 -8
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/shared/index.d.ts +11 -2
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +6 -2
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/io/auditToolsPaths.d.ts +35 -0
- package/dist/shared/io/auditToolsPaths.d.ts.map +1 -1
- package/dist/shared/io/auditToolsPaths.js +46 -1
- package/dist/shared/io/auditToolsPaths.js.map +1 -1
- package/dist/shared/io/frictionCapture.d.ts +83 -0
- package/dist/shared/io/frictionCapture.d.ts.map +1 -0
- package/dist/shared/io/frictionCapture.js +79 -0
- package/dist/shared/io/frictionCapture.js.map +1 -0
- package/dist/shared/io/gitignoreArtifacts.d.ts +94 -0
- package/dist/shared/io/gitignoreArtifacts.d.ts.map +1 -0
- package/dist/shared/io/gitignoreArtifacts.js +147 -0
- package/dist/shared/io/gitignoreArtifacts.js.map +1 -0
- package/dist/shared/quota/antigravityQuotaSource.d.ts.map +1 -1
- package/dist/shared/quota/antigravityQuotaSource.js +2 -0
- package/dist/shared/quota/antigravityQuotaSource.js.map +1 -1
- package/dist/shared/quota/claudeOAuthQuotaSource.d.ts +35 -2
- package/dist/shared/quota/claudeOAuthQuotaSource.d.ts.map +1 -1
- package/dist/shared/quota/claudeOAuthQuotaSource.js +157 -17
- package/dist/shared/quota/claudeOAuthQuotaSource.js.map +1 -1
- package/dist/shared/quota/codexQuotaSource.d.ts.map +1 -1
- package/dist/shared/quota/codexQuotaSource.js +2 -0
- package/dist/shared/quota/codexQuotaSource.js.map +1 -1
- package/dist/shared/quota/copilotQuotaSource.d.ts.map +1 -1
- package/dist/shared/quota/copilotQuotaSource.js +2 -0
- package/dist/shared/quota/copilotQuotaSource.js.map +1 -1
- package/dist/shared/quota/errorParsing.d.ts +19 -0
- package/dist/shared/quota/errorParsing.d.ts.map +1 -1
- package/dist/shared/quota/errorParsing.js +14 -1
- package/dist/shared/quota/errorParsing.js.map +1 -1
- package/dist/shared/quota/hostSessionQuotaSource.d.ts +138 -0
- package/dist/shared/quota/hostSessionQuotaSource.d.ts.map +1 -0
- package/dist/shared/quota/hostSessionQuotaSource.js +213 -0
- package/dist/shared/quota/hostSessionQuotaSource.js.map +1 -0
- package/dist/shared/quota/httpQuotaSource.d.ts +7 -3
- package/dist/shared/quota/httpQuotaSource.d.ts.map +1 -1
- package/dist/shared/quota/httpQuotaSource.js.map +1 -1
- package/dist/shared/reporting/auditDeliverable.d.ts +36 -0
- package/dist/shared/reporting/auditDeliverable.d.ts.map +1 -0
- package/dist/shared/reporting/auditDeliverable.js +85 -0
- package/dist/shared/reporting/auditDeliverable.js.map +1 -0
- package/dist/shared/types/sessionConfig.d.ts +13 -0
- package/dist/shared/types/sessionConfig.d.ts.map +1 -1
- package/package.json +1 -1
- package/schemas/audit_result.schema.json +2 -2
- package/schemas/audit_results.schema.json +2 -2
- package/schemas/finding.schema.json +2 -2
- package/scripts/postinstall.mjs +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hostSessionQuotaSource.d.ts","sourceRoot":"","sources":["../../../src/shared/quota/hostSessionQuotaSource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,8BAA8B,iBAAiB,CAAC;AAE7D,kGAAkG;AAClG,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAOnD,2EAA2E;AAC3E,MAAM,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;AAEjC,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,oGAAoG;IACpG,QAAQ,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;OAIG;IACH,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,6BAA6B;IAC5C,wEAAwE;IACxE,gBAAgB,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC5D;AA2BD;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,WAAW;IACxD,QAAQ,CAAC,IAAI,kBAAkC;IAE/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgB;IACpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8C;IAE3E,8DAA8D;IAC9D,OAAO,CAAC,eAAe,CAAuB;IAC9C,yDAAyD;IACzD,OAAO,CAAC,UAAU,CAAS;IAC3B,kFAAkF;IAClF,OAAO,CAAC,OAAO,CAAkC;IACjD,mFAAmF;IACnF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;gBAEnC,OAAO,EAAE,6BAA6B;IAWlD;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAYhB,4EAA4E;IAC5E,aAAa,IAAI,MAAM,GAAG,IAAI;IAM9B,mFAAmF;IACnF,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAItC;;;;;;;;;OASG;IACH,WAAW,CACT,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,qBAAqB;IAmElB,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAIrF;;;;OAIG;IACG,UAAU,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAkBtE"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-session fixed-window QuotaSource.
|
|
3
|
+
*
|
|
4
|
+
* Models a host *account* usage cap (e.g. Claude Code's "You've hit your session
|
|
5
|
+
* limit · resets 3:30pm") as a fixed window that opens again at a stated reset.
|
|
6
|
+
* Unlike the sliding-window learned source, the host session limit is a hard
|
|
7
|
+
* wall the operator account hits — there is no per-request budget to learn, only
|
|
8
|
+
* a binary "open / paused-until-reset" state plus a throttle band as the window
|
|
9
|
+
* fills.
|
|
10
|
+
*
|
|
11
|
+
* Design contract (CP-BLOCK-IMPL-host-session-quota):
|
|
12
|
+
*
|
|
13
|
+
* - **Channel isolation (CE-003).** A session limit is recorded ONLY from the
|
|
14
|
+
* worker ERROR / STATUS channel via {@link detectRateLimitFromChannel}. The
|
|
15
|
+
* consumed AuditResult content is never inspected, so a healthy result that
|
|
16
|
+
* merely quotes a limit string cannot pause the run.
|
|
17
|
+
* - **Throttle before the wall.** The snapshot exposes `remaining_pct` so the
|
|
18
|
+
* scheduler's existing LOW / CRITICAL bands throttle the wave BEFORE the
|
|
19
|
+
* account is fully exhausted, rather than only reacting after a hard 429.
|
|
20
|
+
* - **Auto-pause / auto-resume.** Recording a limit sets `cooldown_until` to the
|
|
21
|
+
* parsed reset (next-future-occurrence for clock times; DEFAULT_COOLDOWN_MS
|
|
22
|
+
* when unparseable). Once an injected `now` passes the reset the source
|
|
23
|
+
* auto-resumes (snapshot reports the window open again).
|
|
24
|
+
* - **Bounded re-limit escalation (no livelock).** Re-queuing the same packet
|
|
25
|
+
* non-consumingly is fine, but an unresettable / clock-skewed limit that keeps
|
|
26
|
+
* re-tripping for the SAME packet must not loop forever. After
|
|
27
|
+
* `maxConsecutiveReLimits` cycles (or a cumulative wall) the source ESCALATES
|
|
28
|
+
* to a terminal hard failure surfaced to the operator (structured stderr +
|
|
29
|
+
* run-ledger), and the caller stops re-queuing that packet.
|
|
30
|
+
* - **Own-provider self-monitoring only.** The source keys off the
|
|
31
|
+
* provider/model it owns; it never reasons about other providers' quota and
|
|
32
|
+
* never overwrites learned (sliding-window) limits.
|
|
33
|
+
*
|
|
34
|
+
* This module owns only the host-session window + escalation bookkeeping; the
|
|
35
|
+
* non-consuming re-queue itself is performed by the rolling engine
|
|
36
|
+
* ({@link dropProvider}), which moves in-flight packets back to `pending_tokens`
|
|
37
|
+
* without ever marking them consumed.
|
|
38
|
+
*/
|
|
39
|
+
import { DEFAULT_COOLDOWN_MS, detectRateLimitFromChannel, } from "./errorParsing.js";
|
|
40
|
+
export const HOST_SESSION_QUOTA_SOURCE_NAME = "host_session";
|
|
41
|
+
/** Default number of consecutive non-consuming re-limits of the SAME packet before escalating. */
|
|
42
|
+
export const DEFAULT_MAX_CONSECUTIVE_RE_LIMITS = 3;
|
|
43
|
+
/** `remaining_pct` reported while the window is open and no limit has been seen. */
|
|
44
|
+
const WINDOW_OPEN_REMAINING_PCT = 1;
|
|
45
|
+
/** `remaining_pct` reported while the window is paused (limit active, before reset). */
|
|
46
|
+
const WINDOW_PAUSED_REMAINING_PCT = 0;
|
|
47
|
+
function emitEscalationToStderr(escalation) {
|
|
48
|
+
try {
|
|
49
|
+
process.stderr.write(JSON.stringify({
|
|
50
|
+
ts: escalation.escalated_at,
|
|
51
|
+
kind: "host_session_quota_escalation",
|
|
52
|
+
packet_id: escalation.packet_id,
|
|
53
|
+
consecutive_re_limits: escalation.consecutive_re_limits,
|
|
54
|
+
cumulative_wall_ms: escalation.cumulative_wall_ms,
|
|
55
|
+
reason: escalation.reason,
|
|
56
|
+
}) + "\n");
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// Observability must never abort a run.
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Fixed-window host-session QuotaSource. Stateful: it remembers the active
|
|
64
|
+
* cooldown and the per-packet re-limit count so the bounded-escalation guard can
|
|
65
|
+
* fire. Conforms to the shared {@link QuotaSource} contract.
|
|
66
|
+
*/
|
|
67
|
+
export class HostSessionQuotaSource {
|
|
68
|
+
name = HOST_SESSION_QUOTA_SOURCE_NAME;
|
|
69
|
+
providerModelKey;
|
|
70
|
+
now;
|
|
71
|
+
maxConsecutiveReLimits;
|
|
72
|
+
maxCumulativeWallMs;
|
|
73
|
+
defaultCooldownMs;
|
|
74
|
+
onEscalation;
|
|
75
|
+
/** Epoch ms the window is paused until, or null when open. */
|
|
76
|
+
cooldownUntilMs = null;
|
|
77
|
+
/** ISO captured-at of the most recent state mutation. */
|
|
78
|
+
capturedAt;
|
|
79
|
+
/** Per-packet re-limit tracker (only the currently-relimiting packet matters). */
|
|
80
|
+
tracker = null;
|
|
81
|
+
/** Packets already escalated — a non-consuming re-queue must never re-arm them. */
|
|
82
|
+
escalated = new Set();
|
|
83
|
+
constructor(options) {
|
|
84
|
+
this.providerModelKey = options.providerModelKey;
|
|
85
|
+
this.now = options.now ?? Date.now;
|
|
86
|
+
this.maxConsecutiveReLimits =
|
|
87
|
+
options.maxConsecutiveReLimits ?? DEFAULT_MAX_CONSECUTIVE_RE_LIMITS;
|
|
88
|
+
this.maxCumulativeWallMs = options.maxCumulativeWallMs ?? null;
|
|
89
|
+
this.defaultCooldownMs = options.defaultCooldownMs ?? DEFAULT_COOLDOWN_MS;
|
|
90
|
+
this.onEscalation = options.onEscalation ?? emitEscalationToStderr;
|
|
91
|
+
this.capturedAt = new Date(this.now()).toISOString();
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* True once an injected `now` has passed the recorded reset: the fixed window
|
|
95
|
+
* has reopened and the source auto-resumes.
|
|
96
|
+
*/
|
|
97
|
+
isPaused() {
|
|
98
|
+
if (this.cooldownUntilMs == null)
|
|
99
|
+
return false;
|
|
100
|
+
if (this.now() >= this.cooldownUntilMs) {
|
|
101
|
+
// Auto-resume: window reopened, clear the pause + the re-limit tracker so
|
|
102
|
+
// the next limit (a genuinely new exhaustion) starts a fresh count.
|
|
103
|
+
this.cooldownUntilMs = null;
|
|
104
|
+
this.tracker = null;
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
/** ISO cooldown the window is currently paused until, or null when open. */
|
|
110
|
+
cooldownUntil() {
|
|
111
|
+
return this.isPaused() && this.cooldownUntilMs != null
|
|
112
|
+
? new Date(this.cooldownUntilMs).toISOString()
|
|
113
|
+
: null;
|
|
114
|
+
}
|
|
115
|
+
/** True when the given packet has already been escalated to a terminal failure. */
|
|
116
|
+
isEscalated(packetId) {
|
|
117
|
+
return this.escalated.has(packetId);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Record a worker-output line for a packet. CHANNEL-ISOLATED: a session limit
|
|
121
|
+
* is only ever recorded from the ERROR / STATUS channel; `result` text is
|
|
122
|
+
* ignored entirely (CE-003), so a healthy result quoting a limit string is a
|
|
123
|
+
* no-op (`recorded: false`, no pause).
|
|
124
|
+
*
|
|
125
|
+
* On a real limit it sets `cooldown_until` to the parsed reset and, if this is
|
|
126
|
+
* the same packet re-limiting against an unchanged window, increments the
|
|
127
|
+
* bounded counter — escalating once the bound is crossed.
|
|
128
|
+
*/
|
|
129
|
+
recordLimit(channel, text, packetId) {
|
|
130
|
+
const nowMs = this.now();
|
|
131
|
+
const detection = detectRateLimitFromChannel(channel, text, nowMs);
|
|
132
|
+
if (!detection.isRateLimited) {
|
|
133
|
+
return { recorded: false, cooldown_until: null, escalation: null };
|
|
134
|
+
}
|
|
135
|
+
const cooldownMs = detection.retryAfterMs != null && detection.retryAfterMs > 0
|
|
136
|
+
? detection.retryAfterMs
|
|
137
|
+
: this.defaultCooldownMs;
|
|
138
|
+
const resetMs = nowMs + cooldownMs;
|
|
139
|
+
// Track consecutive re-limits of the SAME packet. A re-limit is "the same"
|
|
140
|
+
// when the same packet trips again before the window it last set has
|
|
141
|
+
// reopened — i.e. an unresettable / clock-skewed wall, not normal progress.
|
|
142
|
+
if (this.tracker && this.tracker.packet_id === packetId) {
|
|
143
|
+
this.tracker.consecutive_re_limits += 1;
|
|
144
|
+
this.tracker.cumulative_wall_ms += cooldownMs;
|
|
145
|
+
this.tracker.last_reset_ms = resetMs;
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
this.tracker = {
|
|
149
|
+
packet_id: packetId,
|
|
150
|
+
consecutive_re_limits: 1,
|
|
151
|
+
cumulative_wall_ms: cooldownMs,
|
|
152
|
+
last_reset_ms: resetMs,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
this.cooldownUntilMs = resetMs;
|
|
156
|
+
this.capturedAt = new Date(nowMs).toISOString();
|
|
157
|
+
const overCycleBound = this.tracker.consecutive_re_limits > this.maxConsecutiveReLimits;
|
|
158
|
+
const overWallBound = this.maxCumulativeWallMs != null &&
|
|
159
|
+
this.tracker.cumulative_wall_ms > this.maxCumulativeWallMs;
|
|
160
|
+
if (overCycleBound || overWallBound) {
|
|
161
|
+
const escalation = {
|
|
162
|
+
packet_id: packetId,
|
|
163
|
+
consecutive_re_limits: this.tracker.consecutive_re_limits,
|
|
164
|
+
cumulative_wall_ms: this.tracker.cumulative_wall_ms,
|
|
165
|
+
reason: overCycleBound
|
|
166
|
+
? `Host session limit re-tripped ${this.tracker.consecutive_re_limits} times for the same packet ` +
|
|
167
|
+
`(bound ${this.maxConsecutiveReLimits}); the reset is not clearing — escalating to operator instead of livelocking.`
|
|
168
|
+
: `Host session limit held the same packet paused for ${this.tracker.cumulative_wall_ms}ms cumulative ` +
|
|
169
|
+
`(bound ${this.maxCumulativeWallMs}ms); escalating to operator instead of livelocking.`,
|
|
170
|
+
escalated_at: new Date(nowMs).toISOString(),
|
|
171
|
+
};
|
|
172
|
+
this.escalated.add(packetId);
|
|
173
|
+
this.tracker = null;
|
|
174
|
+
this.onEscalation(escalation);
|
|
175
|
+
return {
|
|
176
|
+
recorded: true,
|
|
177
|
+
cooldown_until: new Date(resetMs).toISOString(),
|
|
178
|
+
escalation,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
return {
|
|
182
|
+
recorded: true,
|
|
183
|
+
cooldown_until: new Date(resetMs).toISOString(),
|
|
184
|
+
escalation: null,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
async queryCurrentUsage(providerModelKey) {
|
|
188
|
+
return (await this.probeUsage(providerModelKey)).snapshot;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Own-provider self-monitoring: only answers for the key it owns. For any other
|
|
192
|
+
* key it is `not_applicable` (no signal expected → never a degrade), so it
|
|
193
|
+
* composes with the sliding-window / learned sources without overwriting them.
|
|
194
|
+
*/
|
|
195
|
+
async probeUsage(providerModelKey) {
|
|
196
|
+
if (providerModelKey !== this.providerModelKey) {
|
|
197
|
+
return { snapshot: null, status: "not_applicable" };
|
|
198
|
+
}
|
|
199
|
+
const paused = this.isPaused();
|
|
200
|
+
const snapshot = {
|
|
201
|
+
remaining_pct: paused ? WINDOW_PAUSED_REMAINING_PCT : WINDOW_OPEN_REMAINING_PCT,
|
|
202
|
+
reset_at: paused && this.cooldownUntilMs != null
|
|
203
|
+
? new Date(this.cooldownUntilMs).toISOString()
|
|
204
|
+
: null,
|
|
205
|
+
requests_remaining: null,
|
|
206
|
+
tokens_remaining: null,
|
|
207
|
+
captured_at: this.capturedAt,
|
|
208
|
+
source: this.name,
|
|
209
|
+
};
|
|
210
|
+
return { snapshot, status: "ok" };
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=hostSessionQuotaSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hostSessionQuotaSource.js","sourceRoot":"","sources":["../../../src/shared/quota/hostSessionQuotaSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,13 @@ import type { QuotaProbeResult, QuotaSource, QuotaUsageSnapshot } from "./quotaS
|
|
|
14
14
|
* `fetchSnapshot`, yields `null` so the {@link CompositeQuotaSource} falls
|
|
15
15
|
* through to the next source.
|
|
16
16
|
*
|
|
17
|
-
* Token refresh is
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* Token refresh is the subclass's call, not this base's: most sources degrade on
|
|
18
|
+
* expiry/401 (the host owns their credential). The Claude source is the
|
|
19
|
+
* exception — it refreshes its CLI credential and persists the rotated token
|
|
20
|
+
* under a file lock (double-checked), because that file is otherwise abandoned
|
|
21
|
+
* once the access token expires. Any source that refreshes MUST do so atomically
|
|
22
|
+
* under a lock so a rotated refresh token is never lost — see
|
|
23
|
+
* {@link ClaudeOAuthQuotaSource}.
|
|
20
24
|
*/
|
|
21
25
|
export interface FetchResponseLike {
|
|
22
26
|
ok: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpQuotaSource.d.ts","sourceRoot":"","sources":["../../../src/shared/quota/httpQuotaSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE1F
|
|
1
|
+
{"version":3,"file":"httpQuotaSource.d.ts","sourceRoot":"","sources":["../../../src/shared/quota/httpQuotaSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpQuotaSource.js","sourceRoot":"","sources":["../../../src/shared/quota/httpQuotaSource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"httpQuotaSource.js","sourceRoot":"","sources":["../../../src/shared/quota/httpQuotaSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { AuditFindingsReport, Finding } from "../types/finding.js";
|
|
2
|
+
/**
|
|
3
|
+
* Build the canonical `audit-findings.json` machine contract over `findings`.
|
|
4
|
+
* The summary is derived deterministically; no work-blocks are emitted (the
|
|
5
|
+
* deliverable is a flat, re-consumable finding set). Stamped with the same
|
|
6
|
+
* `contract_version` the auditor emits, so `validateAuditFindingsReport` accepts
|
|
7
|
+
* it and the remediator's structured fast-path consumes it losslessly.
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildAuditFindingsDeliverable(findings: readonly Finding[]): AuditFindingsReport;
|
|
10
|
+
/**
|
|
11
|
+
* Render the `audit-report.md` human deliverable for `findings` using the ONE
|
|
12
|
+
* shared finding renderer (parity with the auditor's report). `title` and
|
|
13
|
+
* `intro` let the caller frame the deliverable (e.g. "leftovers from an
|
|
14
|
+
* autonomous run").
|
|
15
|
+
*/
|
|
16
|
+
export declare function renderAuditDeliverableMarkdown(findings: readonly Finding[], options?: {
|
|
17
|
+
title?: string;
|
|
18
|
+
intro?: string;
|
|
19
|
+
}): string;
|
|
20
|
+
export interface AuditDeliverablePair {
|
|
21
|
+
/** The canonical machine contract (audit-findings.json content). */
|
|
22
|
+
findings_report: AuditFindingsReport;
|
|
23
|
+
/** The human render (audit-report.md content). */
|
|
24
|
+
report_markdown: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Build BOTH halves of the re-consumable audit deliverable pair at once. The
|
|
28
|
+
* JSON is the source of truth; the markdown is its render. The caller writes
|
|
29
|
+
* `findings_report` to `audit-findings.json` and `report_markdown` to
|
|
30
|
+
* `audit-report.md`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildAuditDeliverablePair(findings: readonly Finding[], options?: {
|
|
33
|
+
title?: string;
|
|
34
|
+
intro?: string;
|
|
35
|
+
}): AuditDeliverablePair;
|
|
36
|
+
//# sourceMappingURL=auditDeliverable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auditDeliverable.d.ts","sourceRoot":"","sources":["../../../src/shared/reporting/auditDeliverable.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,mBAAmB,EAEnB,OAAO,EAER,MAAM,qBAAqB,CAAC;AAmB7B;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,mBAAmB,CAgBrB;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,MAAM,CAcR;AAED,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,eAAe,EAAE,mBAAmB,CAAC;IACrC,kDAAkD;IAClD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,oBAAoB,CAKtB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Shared audit-deliverable emitter: build the canonical `audit-findings.json`
|
|
2
|
+
// machine contract + its `audit-report.md` human render from a Finding[] set.
|
|
3
|
+
//
|
|
4
|
+
// Single-sourced here (in `audit-tools/shared`) so BOTH halves of the pipeline
|
|
5
|
+
// emit an identical, re-consumable pair. The autonomous remediator uses it to
|
|
6
|
+
// re-emit the findings it left LIVE (never auto-fixed, never durably rejected)
|
|
7
|
+
// as a standard deliverable pair that round-trips straight back through the
|
|
8
|
+
// remediator's `defaultInputCandidates` (`audit-findings.json` preferred over
|
|
9
|
+
// `audit-report.md`) on the next nightly run — no special leftover format, no
|
|
10
|
+
// durable rejection state.
|
|
11
|
+
import { AUDIT_FINDINGS_CONTRACT_VERSION } from "../validation/findingsReport.js";
|
|
12
|
+
import { renderFindingBlockLines } from "./findingDisplay.js";
|
|
13
|
+
const SEVERITY_KEYS = ["critical", "high", "medium", "low", "info"];
|
|
14
|
+
function severityBreakdown(findings) {
|
|
15
|
+
const out = {};
|
|
16
|
+
for (const key of SEVERITY_KEYS)
|
|
17
|
+
out[key] = 0;
|
|
18
|
+
for (const f of findings)
|
|
19
|
+
out[f.severity] = (out[f.severity] ?? 0) + 1;
|
|
20
|
+
return out;
|
|
21
|
+
}
|
|
22
|
+
function lensBreakdown(findings) {
|
|
23
|
+
const out = {};
|
|
24
|
+
for (const f of findings)
|
|
25
|
+
out[f.lens] = (out[f.lens] ?? 0) + 1;
|
|
26
|
+
return out;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Build the canonical `audit-findings.json` machine contract over `findings`.
|
|
30
|
+
* The summary is derived deterministically; no work-blocks are emitted (the
|
|
31
|
+
* deliverable is a flat, re-consumable finding set). Stamped with the same
|
|
32
|
+
* `contract_version` the auditor emits, so `validateAuditFindingsReport` accepts
|
|
33
|
+
* it and the remediator's structured fast-path consumes it losslessly.
|
|
34
|
+
*/
|
|
35
|
+
export function buildAuditFindingsDeliverable(findings) {
|
|
36
|
+
const summary = {
|
|
37
|
+
finding_count: findings.length,
|
|
38
|
+
work_block_count: 0,
|
|
39
|
+
severity_breakdown: severityBreakdown(findings),
|
|
40
|
+
audited_file_count: 0,
|
|
41
|
+
excluded_file_count: 0,
|
|
42
|
+
runtime_validation_status_breakdown: {},
|
|
43
|
+
lens_breakdown: lensBreakdown(findings),
|
|
44
|
+
};
|
|
45
|
+
return {
|
|
46
|
+
contract_version: AUDIT_FINDINGS_CONTRACT_VERSION,
|
|
47
|
+
summary,
|
|
48
|
+
findings: [...findings],
|
|
49
|
+
work_blocks: [],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Render the `audit-report.md` human deliverable for `findings` using the ONE
|
|
54
|
+
* shared finding renderer (parity with the auditor's report). `title` and
|
|
55
|
+
* `intro` let the caller frame the deliverable (e.g. "leftovers from an
|
|
56
|
+
* autonomous run").
|
|
57
|
+
*/
|
|
58
|
+
export function renderAuditDeliverableMarkdown(findings, options = {}) {
|
|
59
|
+
const lines = [`# ${options.title ?? "Audit Report"}`, ""];
|
|
60
|
+
if (options.intro) {
|
|
61
|
+
lines.push(options.intro, "");
|
|
62
|
+
}
|
|
63
|
+
if (findings.length === 0) {
|
|
64
|
+
lines.push("No findings.", "");
|
|
65
|
+
return lines.join("\n");
|
|
66
|
+
}
|
|
67
|
+
lines.push(`## Findings (${findings.length})`, "");
|
|
68
|
+
for (const finding of findings) {
|
|
69
|
+
lines.push(...renderFindingBlockLines(finding));
|
|
70
|
+
}
|
|
71
|
+
return lines.join("\n");
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Build BOTH halves of the re-consumable audit deliverable pair at once. The
|
|
75
|
+
* JSON is the source of truth; the markdown is its render. The caller writes
|
|
76
|
+
* `findings_report` to `audit-findings.json` and `report_markdown` to
|
|
77
|
+
* `audit-report.md`.
|
|
78
|
+
*/
|
|
79
|
+
export function buildAuditDeliverablePair(findings, options = {}) {
|
|
80
|
+
return {
|
|
81
|
+
findings_report: buildAuditFindingsDeliverable(findings),
|
|
82
|
+
report_markdown: renderAuditDeliverableMarkdown(findings, options),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=auditDeliverable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auditDeliverable.js","sourceRoot":"","sources":["../../../src/shared/reporting/auditDeliverable.ts"],"names":[],"mappings":"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"}
|
|
@@ -318,6 +318,19 @@ export interface SessionConfig {
|
|
|
318
318
|
timeout_ms?: number;
|
|
319
319
|
ui_mode?: SessionUiMode;
|
|
320
320
|
host_can_dispatch_subagents?: boolean;
|
|
321
|
+
/**
|
|
322
|
+
* Run unattended (nightly autonomous pipeline). Host-agnostic — ONE flag
|
|
323
|
+
* drives the whole path, with no cloud/local fork. When set, the
|
|
324
|
+
* review-approval gate does NOT halt for a human: it auto-approves only the
|
|
325
|
+
* findings whose ambiguity tier is "safe" AND whose change-kind is positively
|
|
326
|
+
* on the fail-closed non-destructiveness ALLOWLIST (additive / localized /
|
|
327
|
+
* reversible — see src/remediate/review/autonomousGate.ts). Every other
|
|
328
|
+
* finding is left LIVE and re-emitted as a re-consumable audit deliverable
|
|
329
|
+
* pair (audit-findings.json + audit-report.md); leftovers are NEVER durably
|
|
330
|
+
* rejected, so the next nightly run re-evaluates them fresh. Ambiguity-only:
|
|
331
|
+
* there is NO cost / severity / run-budget gate.
|
|
332
|
+
*/
|
|
333
|
+
autonomous_mode?: boolean;
|
|
321
334
|
subprocess_template?: SubprocessTemplateConfig;
|
|
322
335
|
claude_code?: ClaudeCodeConfig;
|
|
323
336
|
codex?: CodexConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -100,7 +100,8 @@
|
|
|
100
100
|
"operability",
|
|
101
101
|
"config_deployment",
|
|
102
102
|
"observability"
|
|
103
|
-
]
|
|
103
|
+
],
|
|
104
|
+
"description": "Optional: when omitted, the tool defaults it from the enclosing AuditResult.lens before validation. Supply it only to override the result lens for a cross-lens finding."
|
|
104
105
|
},
|
|
105
106
|
"summary": {
|
|
106
107
|
"type": "string"
|
|
@@ -306,7 +307,6 @@
|
|
|
306
307
|
"category",
|
|
307
308
|
"severity",
|
|
308
309
|
"confidence",
|
|
309
|
-
"lens",
|
|
310
310
|
"summary",
|
|
311
311
|
"affected_files",
|
|
312
312
|
"evidence"
|
|
@@ -102,7 +102,8 @@
|
|
|
102
102
|
"operability",
|
|
103
103
|
"config_deployment",
|
|
104
104
|
"observability"
|
|
105
|
-
]
|
|
105
|
+
],
|
|
106
|
+
"description": "Optional: when omitted, the tool defaults it from the enclosing AuditResult.lens before validation. Supply it only to override the result lens for a cross-lens finding."
|
|
106
107
|
},
|
|
107
108
|
"summary": {
|
|
108
109
|
"type": "string"
|
|
@@ -308,7 +309,6 @@
|
|
|
308
309
|
"category",
|
|
309
310
|
"severity",
|
|
310
311
|
"confidence",
|
|
311
|
-
"lens",
|
|
312
312
|
"summary",
|
|
313
313
|
"affected_files",
|
|
314
314
|
"evidence"
|
|
@@ -46,7 +46,8 @@
|
|
|
46
46
|
"operability",
|
|
47
47
|
"config_deployment",
|
|
48
48
|
"observability"
|
|
49
|
-
]
|
|
49
|
+
],
|
|
50
|
+
"description": "Optional: when omitted, the tool defaults it from the enclosing AuditResult.lens before validation. Supply it only to override the result lens for a cross-lens finding."
|
|
50
51
|
},
|
|
51
52
|
"summary": {
|
|
52
53
|
"type": "string"
|
|
@@ -252,7 +253,6 @@
|
|
|
252
253
|
"category",
|
|
253
254
|
"severity",
|
|
254
255
|
"confidence",
|
|
255
|
-
"lens",
|
|
256
256
|
"summary",
|
|
257
257
|
"affected_files",
|
|
258
258
|
"evidence"
|
package/scripts/postinstall.mjs
CHANGED
|
@@ -21,4 +21,68 @@ for (const script of ["./audit/postinstall.mjs", "./remediate/postinstall.mjs"])
|
|
|
21
21
|
failed = true;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
+
|
|
25
|
+
// Manage the consuming repo's .gitignore for the artifacts audit-tools emits
|
|
26
|
+
// (always-ignore build/install assets + friction sidecar; visibility-conditional
|
|
27
|
+
// ignore of deliverables + meta-audit reflections). This is best-effort and must
|
|
28
|
+
// NEVER fail the install: the helper degrades on any error, and we wrap the whole
|
|
29
|
+
// step so a missing shared dist (fresh `npm ci`) or a detection hiccup is a warn,
|
|
30
|
+
// not a non-zero exit.
|
|
31
|
+
await manageArtifactGitignore();
|
|
32
|
+
|
|
24
33
|
process.exit(failed ? 1 : 0);
|
|
34
|
+
|
|
35
|
+
async function manageArtifactGitignore() {
|
|
36
|
+
try {
|
|
37
|
+
const shared = await import("audit-tools/shared");
|
|
38
|
+
if (typeof shared.ensureArtifactGitignore !== "function") {
|
|
39
|
+
return; // shared dist not built yet (fresh npm ci) — skip silently.
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// The consuming repo root: npm sets INIT_CWD to the dir `npm install` ran in.
|
|
43
|
+
const repoRoot = process.env.INIT_CWD || process.cwd();
|
|
44
|
+
|
|
45
|
+
// Explicit operator override always wins. Accept private/public/track/ignore.
|
|
46
|
+
const override = resolveVisibilityOverride();
|
|
47
|
+
|
|
48
|
+
const result = shared.ensureArtifactGitignore({
|
|
49
|
+
repoRoot,
|
|
50
|
+
override,
|
|
51
|
+
runGh: runGhRepoVisibility,
|
|
52
|
+
});
|
|
53
|
+
if (result.changed) {
|
|
54
|
+
console.log(
|
|
55
|
+
`[audit-tools] postinstall: updated ${result.path} (repo visibility: ${result.visibility}).`,
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
} catch (err) {
|
|
59
|
+
console.warn(
|
|
60
|
+
`[audit-tools] postinstall: .gitignore management skipped (${err?.message ?? err}).`,
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Operator override via env: AUDIT_TOOLS_REPO_VISIBILITY=private|public (also
|
|
66
|
+
// accepts track=private / ignore=public). Anything else => no override.
|
|
67
|
+
function resolveVisibilityOverride() {
|
|
68
|
+
const raw = (process.env.AUDIT_TOOLS_REPO_VISIBILITY || "").trim().toLowerCase();
|
|
69
|
+
if (raw === "private" || raw === "track") return "private";
|
|
70
|
+
if (raw === "public" || raw === "ignore") return "public";
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Probe `gh repo view --json isPrivate`. Returns gh stdout, or null on any
|
|
75
|
+
// failure (gh missing, not a gh-known repo, non-zero exit). Never throws.
|
|
76
|
+
function runGhRepoVisibility(repoRoot) {
|
|
77
|
+
try {
|
|
78
|
+
const result = spawnSync("gh", ["repo", "view", "--json", "isPrivate"], {
|
|
79
|
+
cwd: repoRoot,
|
|
80
|
+
encoding: "utf8",
|
|
81
|
+
shell: process.platform === "win32",
|
|
82
|
+
});
|
|
83
|
+
if (result.error || (result.status ?? 0) !== 0) return null;
|
|
84
|
+
return typeof result.stdout === "string" ? result.stdout : null;
|
|
85
|
+
} catch {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|