@shield-agent/kya 0.23.1 → 0.24.0
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/.cursor-plugin/plugin.json +2 -2
- package/.mcp.json +1 -1
- package/README.md +42 -10
- package/amp/settings.example.json +1 -1
- package/assets/report-activity.png +0 -0
- package/assets/report-certify.png +0 -0
- package/assets/report-changes.png +0 -0
- package/assets/report-gateway-backends.png +0 -0
- package/assets/report-gateway-listeners.png +0 -0
- package/assets/report-gateway-playground.png +0 -0
- package/assets/report-gateway-policies.png +0 -0
- package/assets/report-gateway-routes.png +0 -0
- package/assets/report-gateway.png +0 -0
- package/assets/report-overview.png +0 -0
- package/claude/claude_desktop_config.example.json +1 -1
- package/cline/cline_mcp_settings.example.json +1 -1
- package/copilot/mcp-config.example.json +1 -1
- package/dist/certify/context.d.ts +7 -0
- package/dist/certify/context.d.ts.map +1 -1
- package/dist/certify/context.js +9 -1
- package/dist/certify/context.js.map +1 -1
- package/dist/certify/evaluate.d.ts.map +1 -1
- package/dist/certify/evaluate.js +13 -1
- package/dist/certify/evaluate.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/hook.d.ts +6 -0
- package/dist/commands/hook.d.ts.map +1 -1
- package/dist/commands/hook.js +203 -46
- package/dist/commands/hook.js.map +1 -1
- package/dist/commands/import-traces.d.ts +1 -1
- package/dist/commands/import-traces.d.ts.map +1 -1
- package/dist/commands/import-traces.js +10 -6
- package/dist/commands/import-traces.js.map +1 -1
- package/dist/commands/investigate.d.ts.map +1 -1
- package/dist/commands/investigate.js +4 -0
- package/dist/commands/investigate.js.map +1 -1
- package/dist/commands/notify-flush.d.ts.map +1 -1
- package/dist/commands/notify-flush.js +1 -1
- package/dist/commands/notify-flush.js.map +1 -1
- package/dist/importers/agt.d.ts +24 -0
- package/dist/importers/agt.d.ts.map +1 -0
- package/dist/importers/agt.js +242 -0
- package/dist/importers/agt.js.map +1 -0
- package/dist/importers/formats.d.ts +8 -5
- package/dist/importers/formats.d.ts.map +1 -1
- package/dist/importers/formats.js +16 -10
- package/dist/importers/formats.js.map +1 -1
- package/dist/importers/index.d.ts +17 -0
- package/dist/importers/index.d.ts.map +1 -1
- package/dist/importers/index.js +67 -18
- package/dist/importers/index.js.map +1 -1
- package/dist/investigate/incidents.d.ts +3 -1
- package/dist/investigate/incidents.d.ts.map +1 -1
- package/dist/investigate/incidents.js +4 -0
- package/dist/investigate/incidents.js.map +1 -1
- package/dist/investigate/index.d.ts +2 -0
- package/dist/investigate/index.d.ts.map +1 -1
- package/dist/investigate/index.js +2 -0
- package/dist/investigate/index.js.map +1 -1
- package/dist/investigate/last-run.d.ts +33 -0
- package/dist/investigate/last-run.d.ts.map +1 -0
- package/dist/investigate/last-run.js +157 -0
- package/dist/investigate/last-run.js.map +1 -0
- package/dist/node-upgrade.js +1 -1
- package/dist/node-upgrade.js.map +1 -1
- package/dist/notify/index.d.ts +1 -0
- package/dist/notify/index.d.ts.map +1 -1
- package/dist/notify/index.js +6 -0
- package/dist/notify/index.js.map +1 -1
- package/dist/notify/log.d.ts +45 -0
- package/dist/notify/log.d.ts.map +1 -0
- package/dist/notify/log.js +163 -0
- package/dist/notify/log.js.map +1 -0
- package/dist/notify/sender.d.ts +14 -0
- package/dist/notify/sender.d.ts.map +1 -1
- package/dist/notify/sender.js +32 -8
- package/dist/notify/sender.js.map +1 -1
- package/dist/offline-evaluate.d.ts +8 -0
- package/dist/offline-evaluate.d.ts.map +1 -1
- package/dist/offline-evaluate.js +19 -8
- package/dist/offline-evaluate.js.map +1 -1
- package/dist/otel/exporter.d.ts +5 -2
- package/dist/otel/exporter.d.ts.map +1 -1
- package/dist/otel/exporter.js +8 -2
- package/dist/otel/exporter.js.map +1 -1
- package/dist/otel/stats.d.ts +21 -0
- package/dist/otel/stats.d.ts.map +1 -0
- package/dist/otel/stats.js +80 -0
- package/dist/otel/stats.js.map +1 -0
- package/dist/receipt/render-receipt.d.ts +31 -0
- package/dist/receipt/render-receipt.d.ts.map +1 -1
- package/dist/receipt/render-receipt.js +204 -2
- package/dist/receipt/render-receipt.js.map +1 -1
- package/dist/trail.d.ts +10 -0
- package/dist/trail.d.ts.map +1 -1
- package/dist/trail.js +7 -0
- package/dist/trail.js.map +1 -1
- package/droid/README.md +1 -1
- package/droid/mcp.example.json +1 -1
- package/gemini/settings.example.json +1 -1
- package/grok/README.md +1 -1
- package/kilo/kilo.example.json +1 -1
- package/kimi/mcp.example.json +1 -1
- package/kiro/mcp.example.json +1 -1
- package/manifest.json +1 -1
- package/mastracode/mcp.example.json +1 -1
- package/mcp.json +1 -1
- package/openai/codex.config.example.toml +1 -1
- package/opencode/opencode.example.json +1 -1
- package/package.json +2 -2
- package/qwen/settings.example.json +1 -1
- package/server.json +2 -2
|
@@ -8,7 +8,9 @@ import { type Finding } from "./detectors.js";
|
|
|
8
8
|
import { type Incident } from "./incidents.js";
|
|
9
9
|
export type { DetectorId, Finding, Severity } from "./detectors.js";
|
|
10
10
|
export type { Incident } from "./incidents.js";
|
|
11
|
+
export { detectorTitle } from "./incidents.js";
|
|
11
12
|
export { renderFixBrief } from "./fix-brief.js";
|
|
13
|
+
export { buildInvestigateLastRun, INVESTIGATE_LAST_FILE, investigateLastRunPath, loadInvestigateLastRun, writeInvestigateLastRun, type InvestigateLastRun, type InvestigateLastRunFinding, } from "./last-run.js";
|
|
12
14
|
export interface InvestigateOptions {
|
|
13
15
|
/** Cap the number of incidents listed in the plain-text report. */
|
|
14
16
|
readonly topIncidents?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/investigate/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAgB,KAAK,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/D,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/investigate/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAgB,KAAK,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/D,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,KAAK,GAAE,kBAAuB,GAC7B,iBAAiB,CAQnB;AAID,8EAA8E;AAC9E,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,EACzB,IAAI,GAAE,kBAAuB,GAC5B,MAAM,CAiCR"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { runDetectors } from "./detectors.js";
|
|
2
2
|
import { groupIncidents } from "./incidents.js";
|
|
3
3
|
import { renderFixBrief } from "./fix-brief.js";
|
|
4
|
+
export { detectorTitle } from "./incidents.js";
|
|
4
5
|
export { renderFixBrief } from "./fix-brief.js";
|
|
6
|
+
export { buildInvestigateLastRun, INVESTIGATE_LAST_FILE, investigateLastRunPath, loadInvestigateLastRun, writeInvestigateLastRun, } from "./last-run.js";
|
|
5
7
|
export function investigateTrail(events, _opts = {}) {
|
|
6
8
|
const findings = runDetectors(events);
|
|
7
9
|
const incidents = groupIncidents(findings, events);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/investigate/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAA+B,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAiB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/investigate/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { TrailEvent } from "../trail.js";
|
|
2
|
+
import type { DetectorId, Severity } from "./detectors.js";
|
|
3
|
+
import type { InvestigateResult } from "./index.js";
|
|
4
|
+
/** File name inside the global .kya dir, shared by writer and loader. */
|
|
5
|
+
export declare const INVESTIGATE_LAST_FILE = "investigate-last.json";
|
|
6
|
+
export interface InvestigateLastRunFinding {
|
|
7
|
+
readonly detectorId: DetectorId;
|
|
8
|
+
readonly severity: Severity;
|
|
9
|
+
readonly title: string;
|
|
10
|
+
/** Findings emitted by this detector in the run. */
|
|
11
|
+
readonly count: number;
|
|
12
|
+
}
|
|
13
|
+
export interface InvestigateLastRun {
|
|
14
|
+
readonly ranAt: string;
|
|
15
|
+
/** Days covered by the analyzed trail (oldest to newest event, min 1). */
|
|
16
|
+
readonly windowDays: number;
|
|
17
|
+
readonly findings: readonly InvestigateLastRunFinding[];
|
|
18
|
+
/** Number of grouped incidents. */
|
|
19
|
+
readonly incidents: number;
|
|
20
|
+
/** First lines of the top incident's markdown fix brief, when any. */
|
|
21
|
+
readonly briefSnippet?: string;
|
|
22
|
+
}
|
|
23
|
+
/** Compact per-detector rollup of one investigateTrail() result. */
|
|
24
|
+
export declare function buildInvestigateLastRun(result: InvestigateResult, events: readonly TrailEvent[], ranAt?: string): InvestigateLastRun;
|
|
25
|
+
export declare function investigateLastRunPath(env?: NodeJS.ProcessEnv): string;
|
|
26
|
+
/** Persist the summary; a failed write must never fail the investigate command. */
|
|
27
|
+
export declare function writeInvestigateLastRun(summary: InvestigateLastRun, env?: NodeJS.ProcessEnv): void;
|
|
28
|
+
/**
|
|
29
|
+
* Read the persisted summary for the report. Missing, oversize, or corrupt
|
|
30
|
+
* state yields undefined - the report simply renders without the section.
|
|
31
|
+
*/
|
|
32
|
+
export declare function loadInvestigateLastRun(env?: NodeJS.ProcessEnv): InvestigateLastRun | undefined;
|
|
33
|
+
//# sourceMappingURL=last-run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"last-run.d.ts","sourceRoot":"","sources":["../../src/investigate/last-run.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAQ7D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACxD,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAuBD,oEAAoE;AACpE,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,KAAK,GAAE,MAAiC,GACvC,kBAAkB,CAuCpB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAEnF;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,kBAAkB,EAC3B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,IAAI,CAON;AA0BD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,kBAAkB,GAAG,SAAS,CAoChC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Last-run summary for `kya investigate`, persisted to
|
|
3
|
+
* <kya-home>/.kya/investigate-last.json so the report can render the most
|
|
4
|
+
* recent analysis without re-running the detectors. Write side is called by
|
|
5
|
+
* the investigate command; the read side (loadInvestigateLastRun) feeds the
|
|
6
|
+
* receipt model. Both sides are best-effort and never throw.
|
|
7
|
+
*/
|
|
8
|
+
import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
9
|
+
import { join } from "node:path";
|
|
10
|
+
import { globalConfigDir } from "../config.js";
|
|
11
|
+
import { detectorTitle } from "./incidents.js";
|
|
12
|
+
/** File name inside the global .kya dir, shared by writer and loader. */
|
|
13
|
+
export const INVESTIGATE_LAST_FILE = "investigate-last.json";
|
|
14
|
+
/** Cap on the persisted/loaded summary; the real file is a few KB. */
|
|
15
|
+
const MAX_LAST_RUN_BYTES = 64 * 1024;
|
|
16
|
+
const MAX_TITLE_LEN = 160;
|
|
17
|
+
const MAX_SNIPPET_LEN = 800;
|
|
18
|
+
const BRIEF_SNIPPET_LINES = 8;
|
|
19
|
+
const SEVERITY_RANK = {
|
|
20
|
+
low: 0,
|
|
21
|
+
medium: 1,
|
|
22
|
+
high: 2,
|
|
23
|
+
critical: 3,
|
|
24
|
+
};
|
|
25
|
+
/** Trail coverage in days, min 1; unparseable timestamps yield 1. */
|
|
26
|
+
function trailWindowDays(events) {
|
|
27
|
+
let min = Number.POSITIVE_INFINITY;
|
|
28
|
+
let max = Number.NEGATIVE_INFINITY;
|
|
29
|
+
for (const e of events) {
|
|
30
|
+
const t = Date.parse(e.ts);
|
|
31
|
+
if (Number.isNaN(t))
|
|
32
|
+
continue;
|
|
33
|
+
if (t < min)
|
|
34
|
+
min = t;
|
|
35
|
+
if (t > max)
|
|
36
|
+
max = t;
|
|
37
|
+
}
|
|
38
|
+
if (!Number.isFinite(min) || !Number.isFinite(max))
|
|
39
|
+
return 1;
|
|
40
|
+
return Math.max(1, Math.ceil((max - min) / 86_400_000));
|
|
41
|
+
}
|
|
42
|
+
/** Compact per-detector rollup of one investigateTrail() result. */
|
|
43
|
+
export function buildInvestigateLastRun(result, events, ranAt = new Date().toISOString()) {
|
|
44
|
+
const byDetector = new Map();
|
|
45
|
+
for (const f of result.findings) {
|
|
46
|
+
const cur = byDetector.get(f.detectorId);
|
|
47
|
+
if (!cur) {
|
|
48
|
+
byDetector.set(f.detectorId, { severity: f.severity, count: 1 });
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
cur.count += 1;
|
|
52
|
+
if (SEVERITY_RANK[f.severity] > SEVERITY_RANK[cur.severity])
|
|
53
|
+
cur.severity = f.severity;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const findings = [...byDetector.entries()]
|
|
57
|
+
.map(([detectorId, v]) => ({
|
|
58
|
+
detectorId,
|
|
59
|
+
severity: v.severity,
|
|
60
|
+
title: detectorTitle(detectorId),
|
|
61
|
+
count: v.count,
|
|
62
|
+
}))
|
|
63
|
+
.sort((a, b) => SEVERITY_RANK[b.severity] - SEVERITY_RANK[a.severity] ||
|
|
64
|
+
a.detectorId.localeCompare(b.detectorId));
|
|
65
|
+
// Incidents arrive severity-sorted from groupIncidents; the first one's
|
|
66
|
+
// brief is the most actionable snippet for the report.
|
|
67
|
+
const top = result.incidents[0];
|
|
68
|
+
const brief = top ? result.briefs.get(top.id) : undefined;
|
|
69
|
+
const briefSnippet = brief
|
|
70
|
+
? brief.split("\n").slice(0, BRIEF_SNIPPET_LINES).join("\n").slice(0, MAX_SNIPPET_LEN)
|
|
71
|
+
: undefined;
|
|
72
|
+
return {
|
|
73
|
+
ranAt,
|
|
74
|
+
windowDays: trailWindowDays(events),
|
|
75
|
+
findings,
|
|
76
|
+
incidents: result.incidents.length,
|
|
77
|
+
...(briefSnippet ? { briefSnippet } : {}),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export function investigateLastRunPath(env = process.env) {
|
|
81
|
+
return join(globalConfigDir(env), INVESTIGATE_LAST_FILE);
|
|
82
|
+
}
|
|
83
|
+
/** Persist the summary; a failed write must never fail the investigate command. */
|
|
84
|
+
export function writeInvestigateLastRun(summary, env = process.env) {
|
|
85
|
+
try {
|
|
86
|
+
mkdirSync(globalConfigDir(env), { recursive: true });
|
|
87
|
+
writeFileSync(investigateLastRunPath(env), `${JSON.stringify(summary, null, 2)}\n`, "utf8");
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
/* best-effort side file */
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const SEVERITIES = new Set(["low", "medium", "high", "critical"]);
|
|
94
|
+
function parseFinding(raw) {
|
|
95
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
96
|
+
return undefined;
|
|
97
|
+
const f = raw;
|
|
98
|
+
if (typeof f.detectorId !== "string" ||
|
|
99
|
+
typeof f.severity !== "string" ||
|
|
100
|
+
!SEVERITIES.has(f.severity) ||
|
|
101
|
+
typeof f.title !== "string" ||
|
|
102
|
+
typeof f.count !== "number" ||
|
|
103
|
+
!Number.isFinite(f.count) ||
|
|
104
|
+
f.count < 0) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
detectorId: f.detectorId,
|
|
109
|
+
severity: f.severity,
|
|
110
|
+
title: f.title.slice(0, MAX_TITLE_LEN),
|
|
111
|
+
count: Math.floor(f.count),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Read the persisted summary for the report. Missing, oversize, or corrupt
|
|
116
|
+
* state yields undefined - the report simply renders without the section.
|
|
117
|
+
*/
|
|
118
|
+
export function loadInvestigateLastRun(env = process.env) {
|
|
119
|
+
try {
|
|
120
|
+
const path = investigateLastRunPath(env);
|
|
121
|
+
if (!existsSync(path))
|
|
122
|
+
return undefined;
|
|
123
|
+
if (statSync(path).size > MAX_LAST_RUN_BYTES)
|
|
124
|
+
return undefined;
|
|
125
|
+
const raw = JSON.parse(readFileSync(path, "utf8"));
|
|
126
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
127
|
+
return undefined;
|
|
128
|
+
const o = raw;
|
|
129
|
+
if (typeof o.ranAt !== "string" || !o.ranAt)
|
|
130
|
+
return undefined;
|
|
131
|
+
const windowDays = typeof o.windowDays === "number" && Number.isFinite(o.windowDays) && o.windowDays > 0
|
|
132
|
+
? Math.floor(o.windowDays)
|
|
133
|
+
: 1;
|
|
134
|
+
const incidents = typeof o.incidents === "number" && Number.isFinite(o.incidents) && o.incidents >= 0
|
|
135
|
+
? Math.floor(o.incidents)
|
|
136
|
+
: 0;
|
|
137
|
+
const findings = Array.isArray(o.findings)
|
|
138
|
+
? o.findings
|
|
139
|
+
.map(parseFinding)
|
|
140
|
+
.filter((f) => f !== undefined)
|
|
141
|
+
: [];
|
|
142
|
+
const briefSnippet = typeof o.briefSnippet === "string" && o.briefSnippet.trim()
|
|
143
|
+
? o.briefSnippet.slice(0, MAX_SNIPPET_LEN)
|
|
144
|
+
: undefined;
|
|
145
|
+
return {
|
|
146
|
+
ranAt: o.ranAt,
|
|
147
|
+
windowDays,
|
|
148
|
+
findings,
|
|
149
|
+
incidents,
|
|
150
|
+
...(briefSnippet ? { briefSnippet } : {}),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=last-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"last-run.js","sourceRoot":"","sources":["../../src/investigate/last-run.ts"],"names":[],"mappings":"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"}
|
package/dist/node-upgrade.js
CHANGED
|
@@ -214,7 +214,7 @@ function defaultConfirm(question) {
|
|
|
214
214
|
});
|
|
215
215
|
});
|
|
216
216
|
}
|
|
217
|
-
const SKIP_COMMANDS = new Set(["help", "serve-mcp", "receipt-serve"]);
|
|
217
|
+
const SKIP_COMMANDS = new Set(["help", "hook", "serve-mcp", "receipt-serve"]);
|
|
218
218
|
/**
|
|
219
219
|
* Returns an exit code when the upgrade ran and the original command was
|
|
220
220
|
* handed off to the new Node; undefined when the current process should
|
package/dist/node-upgrade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-upgrade.js","sourceRoot":"","sources":["../src/node-upgrade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-upgrade.js","sourceRoot":"","sources":["../src/node-upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/notify/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { TrailEvent } from "../trail.js";
|
|
2
2
|
import { type NotifyTemplate } from "./templates.js";
|
|
3
3
|
import { type NotifyDeps } from "./sender.js";
|
|
4
|
+
export { appendNotifyLog, NOTIFY_LOG_FILE, NOTIFY_LOG_KEEP_LINES, NOTIFY_LOG_MAX_LINES, notifyLogPath, notifyTargetLabel, readNotifyLog, summarizeNotifyLog, type NotifyLogEntry, type NotifyLogSummary, type NotifyTargetRow, } from "./log.js";
|
|
4
5
|
export { CIRCUIT_FAILURES_TO_OPEN, CIRCUIT_OPEN_MS, DEFAULT_TIMEOUT_MS, RATE_LIMIT_MAX_SENDS, RATE_LIMIT_WINDOW_MS, RETRY_DELAYS_MS, notifyStats, postWebhook, resetNotifyState, sendWithRetry, type NotifyDeps, } from "./sender.js";
|
|
5
6
|
export { NOTIFY_KIND, NOTIFY_TEMPLATES, allowedEventFields, buildGenericPayload, buildJiraPayload, buildLinearPayload, buildMinimizedPayload, buildPayload, buildSlackPayload, headline, type NotifyTemplate, } from "./templates.js";
|
|
6
7
|
export interface NotifyWebhookConfig {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notify/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notify/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,QAAQ,EACR,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;KACxC,CAAC;CACH;AAED,2FAA2F;AAC3F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAgC,CAAC;AAClF,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAgDpD,mGAAmG;AACnG,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,eAAe,EAAE,CAenB;AAED,oGAAoG;AACpG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAQpF;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
package/dist/notify/index.js
CHANGED
|
@@ -14,10 +14,15 @@
|
|
|
14
14
|
* Secrets hygiene: payloads are built from the allow-listed, already-redacted trail fields only
|
|
15
15
|
* (see templates.ts) and the serialized body is checked with assertNoSecrets before sending; a
|
|
16
16
|
* rejected body degrades to a four-field minimized payload instead of being dropped silently.
|
|
17
|
+
*
|
|
18
|
+
* Every delivery attempt is appended to <kya-home>/.kya/notify-log.jsonl (see log.ts) so the
|
|
19
|
+
* report can show per-target delivery health; the ledger records host[:port] labels only,
|
|
20
|
+
* never full webhook URLs (they can embed secrets in the path).
|
|
17
21
|
*/
|
|
18
22
|
import { assertNoSecrets } from "../dash/render.js";
|
|
19
23
|
import { NOTIFY_TEMPLATES, buildMinimizedPayload, buildPayload, } from "./templates.js";
|
|
20
24
|
import { sendWithRetry } from "./sender.js";
|
|
25
|
+
export { appendNotifyLog, NOTIFY_LOG_FILE, NOTIFY_LOG_KEEP_LINES, NOTIFY_LOG_MAX_LINES, notifyLogPath, notifyTargetLabel, readNotifyLog, summarizeNotifyLog, } from "./log.js";
|
|
21
26
|
export { CIRCUIT_FAILURES_TO_OPEN, CIRCUIT_OPEN_MS, DEFAULT_TIMEOUT_MS, RATE_LIMIT_MAX_SENDS, RATE_LIMIT_WINDOW_MS, RETRY_DELAYS_MS, notifyStats, postWebhook, resetNotifyState, sendWithRetry, } from "./sender.js";
|
|
22
27
|
export { NOTIFY_KIND, NOTIFY_TEMPLATES, allowedEventFields, buildGenericPayload, buildJiraPayload, buildLinearPayload, buildMinimizedPayload, buildPayload, buildSlackPayload, headline, } from "./templates.js";
|
|
23
28
|
export const NOTIFYABLE_VERDICTS = ["DENY", "REQUIRE_APPROVE"];
|
|
@@ -105,6 +110,7 @@ export async function notifyOnTrailEvent(event, config, env = process.env, deps
|
|
|
105
110
|
body: serializePayload(w.template, event),
|
|
106
111
|
...(w.headers ? { headers: w.headers } : {}),
|
|
107
112
|
...(w.timeoutMs !== undefined ? { timeoutMs: w.timeoutMs } : {}),
|
|
113
|
+
ledger: { env, verdict: event.verdict },
|
|
108
114
|
}, deps);
|
|
109
115
|
}
|
|
110
116
|
catch {
|
package/dist/notify/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notify/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notify/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export declare const NOTIFY_LOG_FILE = "notify-log.jsonl";
|
|
2
|
+
/** Rewrite threshold / retention: over MAX lines the file is cut to KEEP. */
|
|
3
|
+
export declare const NOTIFY_LOG_KEEP_LINES = 500;
|
|
4
|
+
export declare const NOTIFY_LOG_MAX_LINES = 1000;
|
|
5
|
+
export interface NotifyLogEntry {
|
|
6
|
+
readonly ts: string;
|
|
7
|
+
/** Target host[:port] only - never the full webhook URL. */
|
|
8
|
+
readonly target: string;
|
|
9
|
+
readonly verdict: string;
|
|
10
|
+
readonly ok: boolean;
|
|
11
|
+
readonly httpStatus?: number;
|
|
12
|
+
/** Error class when not delivered: timeout / network / rate-limit / circuit-open. */
|
|
13
|
+
readonly error?: string;
|
|
14
|
+
/** 1-based send attempt; 0 marks a drop before any send (rate limit, open circuit). */
|
|
15
|
+
readonly attempt: number;
|
|
16
|
+
}
|
|
17
|
+
export interface NotifyTargetRow {
|
|
18
|
+
readonly target: string;
|
|
19
|
+
readonly delivered: number;
|
|
20
|
+
readonly failed: number;
|
|
21
|
+
readonly lastTs: string;
|
|
22
|
+
readonly lastOk: boolean;
|
|
23
|
+
/** Last attempt detail: HTTP status or error class, when known. */
|
|
24
|
+
readonly lastDetail?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface NotifyLogSummary {
|
|
27
|
+
readonly targets: readonly NotifyTargetRow[];
|
|
28
|
+
readonly delivered: number;
|
|
29
|
+
readonly failed: number;
|
|
30
|
+
readonly lastTs: string;
|
|
31
|
+
}
|
|
32
|
+
export declare function notifyLogPath(env?: NodeJS.ProcessEnv): string;
|
|
33
|
+
/** host[:port] of a webhook URL, safe to persist; "unknown" when unparseable. */
|
|
34
|
+
export declare function notifyTargetLabel(url: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Append one delivery attempt. When the file has grown past the size gate and
|
|
37
|
+
* holds more than NOTIFY_LOG_MAX_LINES lines, it is rewritten with the last
|
|
38
|
+
* NOTIFY_LOG_KEEP_LINES. Never throws.
|
|
39
|
+
*/
|
|
40
|
+
export declare function appendNotifyLog(env: NodeJS.ProcessEnv, entry: NotifyLogEntry): void;
|
|
41
|
+
/** Read the ledger (tail-capped, tolerant of bad lines). Missing file yields []. */
|
|
42
|
+
export declare function readNotifyLog(env?: NodeJS.ProcessEnv): NotifyLogEntry[];
|
|
43
|
+
/** Per-target rollup for the report; undefined when the ledger is empty. */
|
|
44
|
+
export declare function summarizeNotifyLog(entries: readonly NotifyLogEntry[]): NotifyLogSummary | undefined;
|
|
45
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/notify/log.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAElD,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAczC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAE1E;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,KAAK,EAAE,cAAc,GACpB,IAAI,CAYN;AA4BD,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,cAAc,EAAE,CA4BpF;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,SAAS,cAAc,EAAE,GACjC,gBAAgB,GAAG,SAAS,CAkC9B"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Append-only delivery ledger for alert routing: one JSON line per delivery
|
|
3
|
+
* attempt at <kya-home>/.kya/notify-log.jsonl. This is the persistent
|
|
4
|
+
* counterpart of sender.ts's in-memory stats so the report can show
|
|
5
|
+
* per-target delivered/failed counts and the last attempt. Best-effort:
|
|
6
|
+
* nothing here ever throws, and a full URL is never recorded - only the
|
|
7
|
+
* target host[:port], since webhook URLs can embed secrets in their path.
|
|
8
|
+
*/
|
|
9
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
import { globalConfigDir } from "../config.js";
|
|
12
|
+
export const NOTIFY_LOG_FILE = "notify-log.jsonl";
|
|
13
|
+
/** Rewrite threshold / retention: over MAX lines the file is cut to KEEP. */
|
|
14
|
+
export const NOTIFY_LOG_KEEP_LINES = 500;
|
|
15
|
+
export const NOTIFY_LOG_MAX_LINES = 1000;
|
|
16
|
+
/**
|
|
17
|
+
* Size gate for the line-count check: appends stay cheap (no read) below
|
|
18
|
+
* this; above it the file is read and trimmed when it exceeds MAX lines.
|
|
19
|
+
* Growth is bounded either way.
|
|
20
|
+
*/
|
|
21
|
+
const NOTIFY_LOG_REWRITE_CHECK_BYTES = 64 * 1024;
|
|
22
|
+
/** Tail-read cap, mirroring trail.ts's approach to oversized JSONL state. */
|
|
23
|
+
const MAX_LOG_READ_BYTES = 256 * 1024;
|
|
24
|
+
const MAX_TARGET_LEN = 120;
|
|
25
|
+
const MAX_VERDICT_LEN = 40;
|
|
26
|
+
const MAX_ERROR_LEN = 60;
|
|
27
|
+
export function notifyLogPath(env = process.env) {
|
|
28
|
+
return join(globalConfigDir(env), NOTIFY_LOG_FILE);
|
|
29
|
+
}
|
|
30
|
+
/** host[:port] of a webhook URL, safe to persist; "unknown" when unparseable. */
|
|
31
|
+
export function notifyTargetLabel(url) {
|
|
32
|
+
try {
|
|
33
|
+
const host = new URL(url).host;
|
|
34
|
+
return host ? host.slice(0, MAX_TARGET_LEN) : "unknown";
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return "unknown";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Append one delivery attempt. When the file has grown past the size gate and
|
|
42
|
+
* holds more than NOTIFY_LOG_MAX_LINES lines, it is rewritten with the last
|
|
43
|
+
* NOTIFY_LOG_KEEP_LINES. Never throws.
|
|
44
|
+
*/
|
|
45
|
+
export function appendNotifyLog(env, entry) {
|
|
46
|
+
try {
|
|
47
|
+
mkdirSync(globalConfigDir(env), { recursive: true });
|
|
48
|
+
const path = notifyLogPath(env);
|
|
49
|
+
appendFileSync(path, `${JSON.stringify(entry)}\n`, "utf8");
|
|
50
|
+
if (statSync(path).size < NOTIFY_LOG_REWRITE_CHECK_BYTES)
|
|
51
|
+
return;
|
|
52
|
+
const lines = readFileSync(path, "utf8").split("\n").filter(Boolean);
|
|
53
|
+
if (lines.length <= NOTIFY_LOG_MAX_LINES)
|
|
54
|
+
return;
|
|
55
|
+
writeFileSync(path, `${lines.slice(-NOTIFY_LOG_KEEP_LINES).join("\n")}\n`, "utf8");
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
/* the ledger must never affect delivery */
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function parseEntry(raw) {
|
|
62
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
63
|
+
return undefined;
|
|
64
|
+
const e = raw;
|
|
65
|
+
if (typeof e.ts !== "string" ||
|
|
66
|
+
typeof e.target !== "string" ||
|
|
67
|
+
typeof e.verdict !== "string" ||
|
|
68
|
+
typeof e.ok !== "boolean" ||
|
|
69
|
+
typeof e.attempt !== "number" ||
|
|
70
|
+
!Number.isFinite(e.attempt)) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
ts: e.ts,
|
|
75
|
+
target: e.target.slice(0, MAX_TARGET_LEN),
|
|
76
|
+
verdict: e.verdict.slice(0, MAX_VERDICT_LEN),
|
|
77
|
+
ok: e.ok,
|
|
78
|
+
...(typeof e.httpStatus === "number" && Number.isFinite(e.httpStatus)
|
|
79
|
+
? { httpStatus: Math.floor(e.httpStatus) }
|
|
80
|
+
: {}),
|
|
81
|
+
...(typeof e.error === "string" ? { error: e.error.slice(0, MAX_ERROR_LEN) } : {}),
|
|
82
|
+
attempt: Math.floor(e.attempt),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/** Read the ledger (tail-capped, tolerant of bad lines). Missing file yields []. */
|
|
86
|
+
export function readNotifyLog(env = process.env) {
|
|
87
|
+
try {
|
|
88
|
+
const path = notifyLogPath(env);
|
|
89
|
+
if (!existsSync(path))
|
|
90
|
+
return [];
|
|
91
|
+
let text;
|
|
92
|
+
const size = statSync(path).size;
|
|
93
|
+
if (size <= MAX_LOG_READ_BYTES) {
|
|
94
|
+
text = readFileSync(path, "utf8");
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// Oversize: the tail wins, first (possibly partial) line dropped.
|
|
98
|
+
text = readFileSync(path, "utf8").slice(-MAX_LOG_READ_BYTES);
|
|
99
|
+
const nl = text.indexOf("\n");
|
|
100
|
+
text = nl === -1 ? "" : text.slice(nl + 1);
|
|
101
|
+
}
|
|
102
|
+
const out = [];
|
|
103
|
+
for (const line of text.split("\n")) {
|
|
104
|
+
if (!line)
|
|
105
|
+
continue;
|
|
106
|
+
try {
|
|
107
|
+
const entry = parseEntry(JSON.parse(line));
|
|
108
|
+
if (entry)
|
|
109
|
+
out.push(entry);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
/* skip bad lines */
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return out;
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return [];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/** Per-target rollup for the report; undefined when the ledger is empty. */
|
|
122
|
+
export function summarizeNotifyLog(entries) {
|
|
123
|
+
if (entries.length === 0)
|
|
124
|
+
return undefined;
|
|
125
|
+
const byTarget = new Map();
|
|
126
|
+
let delivered = 0;
|
|
127
|
+
let failed = 0;
|
|
128
|
+
let lastTs = "";
|
|
129
|
+
for (const e of entries) {
|
|
130
|
+
if (e.ok)
|
|
131
|
+
delivered++;
|
|
132
|
+
else
|
|
133
|
+
failed++;
|
|
134
|
+
if (e.ts > lastTs)
|
|
135
|
+
lastTs = e.ts;
|
|
136
|
+
const row = byTarget.get(e.target) ?? { delivered: 0, failed: 0, last: e };
|
|
137
|
+
if (e.ok)
|
|
138
|
+
row.delivered++;
|
|
139
|
+
else
|
|
140
|
+
row.failed++;
|
|
141
|
+
if (e.ts >= row.last.ts)
|
|
142
|
+
row.last = e;
|
|
143
|
+
byTarget.set(e.target, row);
|
|
144
|
+
}
|
|
145
|
+
const targets = [...byTarget.entries()]
|
|
146
|
+
.map(([target, r]) => ({
|
|
147
|
+
target,
|
|
148
|
+
delivered: r.delivered,
|
|
149
|
+
failed: r.failed,
|
|
150
|
+
lastTs: r.last.ts,
|
|
151
|
+
lastOk: r.last.ok,
|
|
152
|
+
...(r.last.ok
|
|
153
|
+
? r.last.httpStatus !== undefined
|
|
154
|
+
? { lastDetail: `HTTP ${r.last.httpStatus}` }
|
|
155
|
+
: {}
|
|
156
|
+
: {
|
|
157
|
+
lastDetail: r.last.error ?? (r.last.httpStatus !== undefined ? `HTTP ${r.last.httpStatus}` : "failed"),
|
|
158
|
+
}),
|
|
159
|
+
}))
|
|
160
|
+
.sort((a, b) => b.lastTs.localeCompare(a.lastTs) || a.target.localeCompare(b.target));
|
|
161
|
+
return { targets, delivered, failed, lastTs };
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/notify/log.ts"],"names":[],"mappings":"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"}
|