@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.
Files changed (114) hide show
  1. package/.cursor-plugin/plugin.json +2 -2
  2. package/.mcp.json +1 -1
  3. package/README.md +42 -10
  4. package/amp/settings.example.json +1 -1
  5. package/assets/report-activity.png +0 -0
  6. package/assets/report-certify.png +0 -0
  7. package/assets/report-changes.png +0 -0
  8. package/assets/report-gateway-backends.png +0 -0
  9. package/assets/report-gateway-listeners.png +0 -0
  10. package/assets/report-gateway-playground.png +0 -0
  11. package/assets/report-gateway-policies.png +0 -0
  12. package/assets/report-gateway-routes.png +0 -0
  13. package/assets/report-gateway.png +0 -0
  14. package/assets/report-overview.png +0 -0
  15. package/claude/claude_desktop_config.example.json +1 -1
  16. package/cline/cline_mcp_settings.example.json +1 -1
  17. package/copilot/mcp-config.example.json +1 -1
  18. package/dist/certify/context.d.ts +7 -0
  19. package/dist/certify/context.d.ts.map +1 -1
  20. package/dist/certify/context.js +9 -1
  21. package/dist/certify/context.js.map +1 -1
  22. package/dist/certify/evaluate.d.ts.map +1 -1
  23. package/dist/certify/evaluate.js +13 -1
  24. package/dist/certify/evaluate.js.map +1 -1
  25. package/dist/cli.d.ts.map +1 -1
  26. package/dist/cli.js +18 -4
  27. package/dist/cli.js.map +1 -1
  28. package/dist/commands/hook.d.ts +6 -0
  29. package/dist/commands/hook.d.ts.map +1 -1
  30. package/dist/commands/hook.js +203 -46
  31. package/dist/commands/hook.js.map +1 -1
  32. package/dist/commands/import-traces.d.ts +1 -1
  33. package/dist/commands/import-traces.d.ts.map +1 -1
  34. package/dist/commands/import-traces.js +10 -6
  35. package/dist/commands/import-traces.js.map +1 -1
  36. package/dist/commands/investigate.d.ts.map +1 -1
  37. package/dist/commands/investigate.js +4 -0
  38. package/dist/commands/investigate.js.map +1 -1
  39. package/dist/commands/notify-flush.d.ts.map +1 -1
  40. package/dist/commands/notify-flush.js +1 -1
  41. package/dist/commands/notify-flush.js.map +1 -1
  42. package/dist/importers/agt.d.ts +24 -0
  43. package/dist/importers/agt.d.ts.map +1 -0
  44. package/dist/importers/agt.js +242 -0
  45. package/dist/importers/agt.js.map +1 -0
  46. package/dist/importers/formats.d.ts +8 -5
  47. package/dist/importers/formats.d.ts.map +1 -1
  48. package/dist/importers/formats.js +16 -10
  49. package/dist/importers/formats.js.map +1 -1
  50. package/dist/importers/index.d.ts +17 -0
  51. package/dist/importers/index.d.ts.map +1 -1
  52. package/dist/importers/index.js +67 -18
  53. package/dist/importers/index.js.map +1 -1
  54. package/dist/investigate/incidents.d.ts +3 -1
  55. package/dist/investigate/incidents.d.ts.map +1 -1
  56. package/dist/investigate/incidents.js +4 -0
  57. package/dist/investigate/incidents.js.map +1 -1
  58. package/dist/investigate/index.d.ts +2 -0
  59. package/dist/investigate/index.d.ts.map +1 -1
  60. package/dist/investigate/index.js +2 -0
  61. package/dist/investigate/index.js.map +1 -1
  62. package/dist/investigate/last-run.d.ts +33 -0
  63. package/dist/investigate/last-run.d.ts.map +1 -0
  64. package/dist/investigate/last-run.js +157 -0
  65. package/dist/investigate/last-run.js.map +1 -0
  66. package/dist/node-upgrade.js +1 -1
  67. package/dist/node-upgrade.js.map +1 -1
  68. package/dist/notify/index.d.ts +1 -0
  69. package/dist/notify/index.d.ts.map +1 -1
  70. package/dist/notify/index.js +6 -0
  71. package/dist/notify/index.js.map +1 -1
  72. package/dist/notify/log.d.ts +45 -0
  73. package/dist/notify/log.d.ts.map +1 -0
  74. package/dist/notify/log.js +163 -0
  75. package/dist/notify/log.js.map +1 -0
  76. package/dist/notify/sender.d.ts +14 -0
  77. package/dist/notify/sender.d.ts.map +1 -1
  78. package/dist/notify/sender.js +32 -8
  79. package/dist/notify/sender.js.map +1 -1
  80. package/dist/offline-evaluate.d.ts +8 -0
  81. package/dist/offline-evaluate.d.ts.map +1 -1
  82. package/dist/offline-evaluate.js +19 -8
  83. package/dist/offline-evaluate.js.map +1 -1
  84. package/dist/otel/exporter.d.ts +5 -2
  85. package/dist/otel/exporter.d.ts.map +1 -1
  86. package/dist/otel/exporter.js +8 -2
  87. package/dist/otel/exporter.js.map +1 -1
  88. package/dist/otel/stats.d.ts +21 -0
  89. package/dist/otel/stats.d.ts.map +1 -0
  90. package/dist/otel/stats.js +80 -0
  91. package/dist/otel/stats.js.map +1 -0
  92. package/dist/receipt/render-receipt.d.ts +31 -0
  93. package/dist/receipt/render-receipt.d.ts.map +1 -1
  94. package/dist/receipt/render-receipt.js +204 -2
  95. package/dist/receipt/render-receipt.js.map +1 -1
  96. package/dist/trail.d.ts +10 -0
  97. package/dist/trail.d.ts.map +1 -1
  98. package/dist/trail.js +7 -0
  99. package/dist/trail.js.map +1 -1
  100. package/droid/README.md +1 -1
  101. package/droid/mcp.example.json +1 -1
  102. package/gemini/settings.example.json +1 -1
  103. package/grok/README.md +1 -1
  104. package/kilo/kilo.example.json +1 -1
  105. package/kimi/mcp.example.json +1 -1
  106. package/kiro/mcp.example.json +1 -1
  107. package/manifest.json +1 -1
  108. package/mastracode/mcp.example.json +1 -1
  109. package/mcp.json +1 -1
  110. package/openai/codex.config.example.toml +1 -1
  111. package/opencode/opencode.example.json +1 -1
  112. package/package.json +2 -2
  113. package/qwen/settings.example.json +1 -1
  114. 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;AAEhD,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
+ {"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":"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"}
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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"}
@@ -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
@@ -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":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAetC,MAAM,UAAU,gBAAgB,CAAC,UAAkB,OAAO,CAAC,OAAO;IAChE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAkB,OAAO,CAAC,OAAO;IAC7D,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC;AAC1D,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,GAAsB;IAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAC/B,GAAsB,EACtB,OAAqB,EAAE;IAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACnD,IAAI,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACpC,IAAI,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAA0B;IAChD,IAAI,IAAwB,CAAC;IAC7B,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,KAAK,GAAG,mBAAmB;YAAE,SAAS;QAC1C,IACE,KAAK,GAAG,SAAS;YACjB,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,SAAS,CAAC;YAC1C,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,SAAS,CAAC,EACjE,CAAC;YACD,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACrC,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAoB,EAAE,GAAsB;IACtE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QACrE,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACxD,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC;QACpF,KAAK,MAAM;YACT,OAAO,SAAS,CAAC,CAAC,gDAAgD;IACtE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAoB,EACpB,GAAsB,EACtB,OAAqB,EAAE;IAEvB,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC;IAC5C,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAChF,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY;IACnB,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,UAAU,CAAC,OAAoB,EAAE,SAAiB;IAAa,QAAQ,OAAO,EAAE,CAAC;QACtF,KAAK,KAAK;YACR,OAAO,WAAW,SAAS,EAAE,CAAC;QAChC,KAAK,KAAK;YACR,OAAO,WAAW,SAAS,EAAE,CAAC;QAChC,KAAK,OAAO;YACV,OAAO,sBAAsB,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC7D,KAAK,MAAM;YACT,OAAO,kBAAkB,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAoB,EACpB,SAAiB,EACjB,GAAsB,EACtB,WAA4B,OAAO,CAAC,QAAQ;IAE5C,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IACvD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACrC,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3D,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAuB;IACxC,2EAA2E;IAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,+DAA+D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACzF,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAChC,OAAoB,EACpB,GAAsB,EACtB,IAAuB;IAEvB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,qEAAqE;QACrE,MAAM,OAAO,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kCAAkC,CAAC;QACnG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IACD,MAAM,KAAK,GAAa,CAAC,QAAQ,CAAC,CAAC;IACnC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpC,MAAM;QACR,KAAK,KAAK;YACR,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gCAAgC,CAAC,CAAC;YACjF,MAAM;QACR,KAAK,KAAK;YACR,KAAK,CAAC,IAAI,CACR,mBAAmB,GAAG,CAAC,OAAO,IAAI,YAAY,GAAG,EACjD,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,CACvB,CAAC;YACF,MAAM;QACR,KAAK,MAAM;YACT,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACrD,MAAM;IACV,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,GAAW,EACX,IAAuB,EACvB,GAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;YACrC,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAc,EACd,GAAsB,EACtB,IAAuB,EACvB,OAA2B,EAC3B,OAAqB,EAAE;IAEvB,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7D,IAAI,GAAG,CAAC,mBAAmB,KAAK,GAAG,IAAI,GAAG,CAAC,gBAAgB,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IACtF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAChD,IAAI,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAE7C,MAAM,IAAI,GAAG,qBAAqB,mBAAmB,eAAe,OAAO,IAAI,CAAC;IAChF,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAE7C,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QACzB,MAAM,GAAG,GACP,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO;YAC7C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC;QAC3C,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,eAAe,KAAK,GAAG,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,YAAY,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC;YACnC,EAAE,CAAC,KAAK,CACN,sBAAsB,SAAS,2BAA2B,OAAO,4BAA4B,OAAO,MAAM,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,uBAAuB,CAChK,CAAC;YACF,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE;gBAChC,GAAG,GAAG;gBACN,gBAAgB,EAAE,GAAG;gBACrB,eAAe,EAAE,GAAG;aACrB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,sBAAsB,CAAC,EAAE,CAAC;QACrE,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,MAAM,GACV,SAAS,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;YAC5D,CAAC,CAAC,SAAS,SAAS,EAAE;YACtB,CAAC,CAAC,EAAE,CAAC;QACT,EAAE,CAAC,KAAK,CACN,QAAQ,SAAS,6BAA6B,OAAO,yBAAyB,OAAO,GAAG,MAAM,IAAI;YAChG,SAAS,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,uDAAuD;YAC9F,iBAAiB,OAAO,GAAG,CAC9B,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,IAAI,cAAc,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,+CAA+C,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO;QACtB,CAAC,CAAC,GAAG,IAAI,2BAA2B,OAAO,0BAA0B;QACrE,CAAC,CAAC,GAAG,IAAI,4EAA4E,CAAC;IACxF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,EAAE,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,EAAE,CAAC,KAAK,CACN,kEAAkE,OAAO,KAAK;YAC5E,iFAAiF,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -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":"AAkBA,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,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,CAwBf"}
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"}
@@ -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 {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notify/index.ts"],"names":[],"mappings":"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"}
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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"}