@vauban-org/agent-sdk 1.8.0 → 1.9.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/CONTRACT.md CHANGED
@@ -2622,6 +2622,18 @@ export function computeKellyFraction(historicalTradeCount: number, expectedRetur
2622
2622
  fraction: number;
2623
2623
  mode: "bootstrap" | "kelly";
2624
2624
  };
2625
+ ```
2626
+
2627
+ ### `computeQuality`
2628
+
2629
+ ```typescript
2630
+ export function computeQuality(inputs: QualityInputs): number;
2631
+ ```
2632
+
2633
+ ### `computeQualityWithBreakdown`
2634
+
2635
+ ```typescript
2636
+ export function computeQualityWithBreakdown(inputs: QualityInputs): QualityBreakdown;
2625
2637
 
2626
2638
  // Warning: (ae-missing-release-tag) "computeRoi" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
2627
2639
  //
@@ -8868,6 +8880,40 @@ export function publishAllSignals(brainPort: SignalBrainPort, cycle: CycleSnapsh
8868
8880
 
8869
8881
  ```typescript
8870
8882
  export function publishSignal(brainPort: SignalBrainPort, cycle: CycleSnapshot, axiomId: AxiomId, score: number, rationale: string): Promise<void>;
8883
+ ```
8884
+
8885
+ ### `QualityBreakdown`
8886
+
8887
+ ```typescript
8888
+ export interface QualityBreakdown {
8889
+ readonly contributions: readonly QualityContribution[];
8890
+ readonly score: number;
8891
+ }
8892
+ ```
8893
+
8894
+ ### `QualityContribution`
8895
+
8896
+ ```typescript
8897
+ export interface QualityContribution {
8898
+ readonly delta: number;
8899
+ readonly reason: string;
8900
+ readonly signal: string;
8901
+ }
8902
+ ```
8903
+
8904
+ ### `QualityInputs`
8905
+
8906
+ ```typescript
8907
+ export interface QualityInputs {
8908
+ readonly alertsSent?: number;
8909
+ readonly customScore?: number;
8910
+ readonly errorsEncountered?: number;
8911
+ readonly invoicesProcessed?: number;
8912
+ readonly lessons?: readonly unknown[];
8913
+ readonly postsPublished?: number;
8914
+ readonly postsRejectedByHITL?: number;
8915
+ readonly threatsBlocked?: number;
8916
+ }
8871
8917
 
8872
8918
  // Warning: (ae-missing-release-tag) "queryReflexionMemory" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
8873
8919
  //
@@ -8909,6 +8955,14 @@ export interface RandomPort {
8909
8955
 
8910
8956
  ```typescript
8911
8957
  export function reactLoop(opts: ReactLoopOptions): Promise<ReactResult>;
8958
+ ```
8959
+
8960
+ ### `ReactLoopLogger`
8961
+
8962
+ ```typescript
8963
+ export interface ReactLoopLogger {
8964
+ warn: (msg: string, meta?: Record<string, unknown>) => void;
8965
+ }
8912
8966
 
8913
8967
  // Warning: (ae-missing-release-tag) "ReactLoopOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
8914
8968
  //
@@ -8921,8 +8975,11 @@ export interface ReactLoopOptions {
8921
8975
  allowedTools?: string[];
8922
8976
  executeTool: (call: ToolCall) => Promise<string>;
8923
8977
  llm: LLMCompletionFn;
8978
+ logger?: ReactLoopLogger;
8979
+ loopId?: string;
8924
8980
  maxSteps?: number;
8925
8981
  maxToolCallSize?: number;
8982
+ onStep?: (step: ReactStep, meta: ReactStepMeta) => void | Promise<void>;
8926
8983
  signal?: AbortSignal;
8927
8984
  systemPrompt: string;
8928
8985
  task: string;
@@ -8970,6 +9027,16 @@ export interface ReactStep {
8970
9027
  observation?: string;
8971
9028
  thought: string;
8972
9029
  }
9030
+ ```
9031
+
9032
+ ### `ReactStepMeta`
9033
+
9034
+ ```typescript
9035
+ export interface ReactStepMeta {
9036
+ durationMs: number;
9037
+ iteration: number;
9038
+ loopId?: string;
9039
+ }
8973
9040
 
8974
9041
  // Warning: (ae-missing-release-tag) "readExecutionModeFromEnv" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
8975
9042
  //
@@ -0,0 +1,113 @@
1
+ /**
2
+ * alerts/digest.ts — Adaptive notification batching (SDK 1.9.0).
3
+ *
4
+ * Promoted from forge's `src/agents/23-security-auditor/agent.ts`
5
+ * `buildEscalationMessages()` after a 47-alert Telegram flood during the
6
+ * first Dependabot-enabled cycle (2026-05-17). Generalized so any agent
7
+ * dispatching bulk operator alerts (devops, finance, devrel, inbox-monitor,
8
+ * security-auditor) can adopt it without re-implementing the
9
+ * threshold/sort/cap logic.
10
+ *
11
+ * Design notes:
12
+ * - Pure function — no I/O, no transport dependency. Caller dispatches the
13
+ * returned strings to Telegram/Slack/email/whatever channel.
14
+ * - 0 items → no message at all (empty array).
15
+ * - 1..threshold items → one full-detail message per item.
16
+ * - More than threshold items → one digest message, sorted by severity
17
+ * (configurable order), capped at `maxChars`, with truncation footer +
18
+ * optional details pointer.
19
+ * - Severities outside the configured order are appended last with a
20
+ * default bullet emoji.
21
+ *
22
+ * @public
23
+ */
24
+ /**
25
+ * A single alert item fed to {@link buildAlertDigest}. All fields except
26
+ * `severity` and `title` are optional — render skips empty lines.
27
+ *
28
+ * @public
29
+ */
30
+ export interface AlertItem {
31
+ /**
32
+ * Severity bucket. Built-in semantics: `"critical" | "high" | "medium" |
33
+ * "low"`. Any other string is accepted and ranked according to
34
+ * {@link AlertDigestOptions.severityOrder} (or appended last with a
35
+ * default emoji when not listed).
36
+ */
37
+ readonly severity: "critical" | "high" | "medium" | "low" | (string & Record<never, never>);
38
+ /** Human-readable headline (rendered after the emoji). */
39
+ readonly title: string;
40
+ /** Affected component / repo / file (e.g. `"vauban-org/forge:axios"`). */
41
+ readonly component?: string;
42
+ /** External reference (e.g. `"CVE-2026-0001"`). */
43
+ readonly ref?: string;
44
+ /** Remediation hint shown in individual messages. */
45
+ readonly remediation?: string;
46
+ /** Direct URL for follow-up (shown in individual messages). */
47
+ readonly url?: string;
48
+ }
49
+ /**
50
+ * Options for {@link buildAlertDigest}. All fields optional with sensible
51
+ * defaults matching forge's prod-validated security-auditor behaviour.
52
+ *
53
+ * @public
54
+ */
55
+ export interface AlertDigestOptions {
56
+ /**
57
+ * Header prefix label (e.g. `"SECURITY"`, `"DEVOPS"`). Default
58
+ * `"ALERT"`. Appears in the digest header — ignored in per-item mode.
59
+ */
60
+ readonly label?: string;
61
+ /**
62
+ * Cutoff between per-item and digest modes. `<=` threshold yields N
63
+ * messages, `>` threshold yields a single digest. Default `3`.
64
+ */
65
+ readonly threshold?: number;
66
+ /**
67
+ * Hard cap on the rendered digest length (chars). Default `4000`
68
+ * (Telegram-safe — Telegram limit is 4096).
69
+ */
70
+ readonly maxChars?: number;
71
+ /**
72
+ * Pointer to detailed source (e.g. `"query Brain category=forge_alert"`).
73
+ * Appended on a final line of every digest message when provided.
74
+ */
75
+ readonly detailsPointer?: string;
76
+ /**
77
+ * Severity sort order, highest priority first. Default
78
+ * `["critical", "high", "medium", "low"]`. Severities not listed go
79
+ * after listed ones, in input order.
80
+ */
81
+ readonly severityOrder?: readonly string[];
82
+ /**
83
+ * Per-severity emoji map. Default
84
+ * `{ critical: "🚨", high: "⚠️", medium: "ℹ️", low: "🔵" }`. Missing
85
+ * severities fall back to `"•"`.
86
+ */
87
+ readonly emojiMap?: Readonly<Record<string, string>>;
88
+ }
89
+ /**
90
+ * Build an adaptive alert digest from a list of items.
91
+ *
92
+ * - 0 items → `[]` (no message at all).
93
+ * - 1..threshold items → one message per item (full detail preserved).
94
+ * - More than threshold → one digest message, severity-sorted, capped at
95
+ * `maxChars`, with truncation footer `"… +K more"` when items overflow,
96
+ * followed by `"Details: <detailsPointer>"` when a pointer is provided.
97
+ *
98
+ * Header counts only non-zero severities, in the configured order.
99
+ * Severities not in `severityOrder` are appended last with a default
100
+ * bullet emoji `"•"` (or a user-provided emoji from `emojiMap`).
101
+ *
102
+ * @example
103
+ * buildAlertDigest([]) // → []
104
+ * buildAlertDigest([critical, high, low]) // → 3 messages
105
+ * buildAlertDigest(arrayOf(50, "high"), {
106
+ * label: "DEPENDABOT",
107
+ * detailsPointer: "query Brain category=forge_alert tag=security",
108
+ * }) // → 1 digest message
109
+ *
110
+ * @public
111
+ */
112
+ export declare function buildAlertDigest(items: readonly AlertItem[], opts?: AlertDigestOptions): string[];
113
+ //# sourceMappingURL=digest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/alerts/digest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EACb,UAAU,GACV,MAAM,GACN,QAAQ,GACR,KAAK,GACL,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD;AA8DD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,IAAI,GAAE,kBAAuB,GAC5B,MAAM,EAAE,CA6EV"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * alerts/digest.ts — Adaptive notification batching (SDK 1.9.0).
3
+ *
4
+ * Promoted from forge's `src/agents/23-security-auditor/agent.ts`
5
+ * `buildEscalationMessages()` after a 47-alert Telegram flood during the
6
+ * first Dependabot-enabled cycle (2026-05-17). Generalized so any agent
7
+ * dispatching bulk operator alerts (devops, finance, devrel, inbox-monitor,
8
+ * security-auditor) can adopt it without re-implementing the
9
+ * threshold/sort/cap logic.
10
+ *
11
+ * Design notes:
12
+ * - Pure function — no I/O, no transport dependency. Caller dispatches the
13
+ * returned strings to Telegram/Slack/email/whatever channel.
14
+ * - 0 items → no message at all (empty array).
15
+ * - 1..threshold items → one full-detail message per item.
16
+ * - More than threshold items → one digest message, sorted by severity
17
+ * (configurable order), capped at `maxChars`, with truncation footer +
18
+ * optional details pointer.
19
+ * - Severities outside the configured order are appended last with a
20
+ * default bullet emoji.
21
+ *
22
+ * @public
23
+ */
24
+ const DEFAULT_THRESHOLD = 3;
25
+ const DEFAULT_MAX_CHARS = 4000;
26
+ const DEFAULT_LABEL = "ALERT";
27
+ const DEFAULT_SEVERITY_ORDER = [
28
+ "critical",
29
+ "high",
30
+ "medium",
31
+ "low",
32
+ ];
33
+ const DEFAULT_EMOJI_MAP = {
34
+ critical: "🚨",
35
+ high: "⚠️",
36
+ medium: "ℹ️",
37
+ low: "🔵",
38
+ };
39
+ const FALLBACK_EMOJI = "•";
40
+ function emojiFor(severity, map) {
41
+ return map[severity] ?? FALLBACK_EMOJI;
42
+ }
43
+ function severityRank(severity, order) {
44
+ const idx = order.indexOf(severity);
45
+ return idx === -1 ? order.length : idx;
46
+ }
47
+ function renderIndividual(item, emojiMap) {
48
+ const emoji = emojiFor(item.severity, emojiMap);
49
+ const ref = item.ref ? ` [${item.ref}]` : "";
50
+ const lines = [`${emoji} ${item.title}${ref}`];
51
+ if (item.component)
52
+ lines.push(`Component: ${item.component}`);
53
+ if (item.remediation)
54
+ lines.push(`Remediation: ${item.remediation}`);
55
+ if (item.url)
56
+ lines.push(item.url);
57
+ return lines.join("\n");
58
+ }
59
+ function buildHeader(label, total, counts, order, emojiMap) {
60
+ const breakdown = [];
61
+ for (const sev of order) {
62
+ const c = counts.get(sev) ?? 0;
63
+ if (c > 0)
64
+ breakdown.push(`${c} ${sev}`);
65
+ }
66
+ const topSev = order.find((s) => (counts.get(s) ?? 0) > 0);
67
+ const headEmoji = topSev ? emojiFor(topSev, emojiMap) : FALLBACK_EMOJI;
68
+ const breakdownStr = breakdown.length > 0 ? ` (${breakdown.join(", ")})` : "";
69
+ return `${headEmoji} ${label} — ${total} items${breakdownStr}`;
70
+ }
71
+ /**
72
+ * Build an adaptive alert digest from a list of items.
73
+ *
74
+ * - 0 items → `[]` (no message at all).
75
+ * - 1..threshold items → one message per item (full detail preserved).
76
+ * - More than threshold → one digest message, severity-sorted, capped at
77
+ * `maxChars`, with truncation footer `"… +K more"` when items overflow,
78
+ * followed by `"Details: <detailsPointer>"` when a pointer is provided.
79
+ *
80
+ * Header counts only non-zero severities, in the configured order.
81
+ * Severities not in `severityOrder` are appended last with a default
82
+ * bullet emoji `"•"` (or a user-provided emoji from `emojiMap`).
83
+ *
84
+ * @example
85
+ * buildAlertDigest([]) // → []
86
+ * buildAlertDigest([critical, high, low]) // → 3 messages
87
+ * buildAlertDigest(arrayOf(50, "high"), {
88
+ * label: "DEPENDABOT",
89
+ * detailsPointer: "query Brain category=forge_alert tag=security",
90
+ * }) // → 1 digest message
91
+ *
92
+ * @public
93
+ */
94
+ export function buildAlertDigest(items, opts = {}) {
95
+ if (items.length === 0)
96
+ return [];
97
+ const threshold = opts.threshold ?? DEFAULT_THRESHOLD;
98
+ const maxChars = opts.maxChars ?? DEFAULT_MAX_CHARS;
99
+ const label = opts.label ?? DEFAULT_LABEL;
100
+ const severityOrder = opts.severityOrder ?? DEFAULT_SEVERITY_ORDER;
101
+ const emojiMap = opts.emojiMap ?? DEFAULT_EMOJI_MAP;
102
+ const detailsPointer = opts.detailsPointer;
103
+ if (items.length <= threshold) {
104
+ return items.map((it) => renderIndividual(it, emojiMap));
105
+ }
106
+ // Sort copy: by severityOrder rank, then preserve input order (stable).
107
+ const sorted = items
108
+ .map((it, idx) => ({ it, idx }))
109
+ .sort((a, b) => {
110
+ const ra = severityRank(a.it.severity, severityOrder);
111
+ const rb = severityRank(b.it.severity, severityOrder);
112
+ if (ra !== rb)
113
+ return ra - rb;
114
+ return a.idx - b.idx;
115
+ })
116
+ .map((x) => x.it);
117
+ const counts = new Map();
118
+ for (const it of sorted) {
119
+ counts.set(it.severity, (counts.get(it.severity) ?? 0) + 1);
120
+ }
121
+ const header = buildHeader(label, items.length, counts, severityOrder, emojiMap);
122
+ const footerLines = [];
123
+ if (detailsPointer)
124
+ footerLines.push(`Details: ${detailsPointer}`);
125
+ // Compute fixed cost: header + body lines + footer.
126
+ // We need to leave room for an eventual "… +K more" line.
127
+ const truncationLineEstimate = 16; // "\n… +999 more"
128
+ const footerStr = footerLines.length > 0 ? "\n" + footerLines.join("\n") : "";
129
+ const bodyLines = [];
130
+ let renderedSoFar = header.length;
131
+ let truncated = 0;
132
+ for (let i = 0; i < sorted.length; i++) {
133
+ const it = sorted[i];
134
+ const emoji = emojiFor(it.severity, emojiMap);
135
+ const ref = it.ref ? ` [${it.ref}]` : "";
136
+ const line = `${emoji} ${it.title}${ref} — ${it.component ?? "?"}`;
137
+ // +1 for the leading "\n" before this line
138
+ const lineCost = 1 + line.length;
139
+ const remainingItems = sorted.length - i;
140
+ // If adding this line would prevent us from fitting truncation footer
141
+ // for the remaining items, stop here.
142
+ const projected = renderedSoFar +
143
+ lineCost +
144
+ footerStr.length +
145
+ (remainingItems > 1 ? truncationLineEstimate : 0);
146
+ if (projected > maxChars) {
147
+ truncated = sorted.length - i;
148
+ break;
149
+ }
150
+ bodyLines.push(line);
151
+ renderedSoFar += lineCost;
152
+ }
153
+ const out = [header, ...bodyLines];
154
+ if (truncated > 0)
155
+ out.push(`… +${truncated} more`);
156
+ if (footerLines.length > 0)
157
+ out.push(...footerLines);
158
+ return [out.join("\n")];
159
+ }
160
+ //# sourceMappingURL=digest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.js","sourceRoot":"","sources":["../../src/alerts/digest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * alerts/ — Adaptive notification batching (SDK 1.9.0).
3
+ *
4
+ * Promoted from forge's security-auditor `buildEscalationMessages()`
5
+ * after the 47-alert Telegram flood (2026-05-17). Pure, transport-agnostic
6
+ * helper; caller dispatches the returned strings.
7
+ *
8
+ * @public
9
+ */
10
+ export { buildAlertDigest } from "./digest.js";
11
+ export type { AlertItem, AlertDigestOptions } from "./digest.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/alerts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * alerts/ — Adaptive notification batching (SDK 1.9.0).
3
+ *
4
+ * Promoted from forge's security-auditor `buildEscalationMessages()`
5
+ * after the 47-alert Telegram flood (2026-05-17). Pure, transport-agnostic
6
+ * helper; caller dispatches the returned strings.
7
+ *
8
+ * @public
9
+ */
10
+ export { buildAlertDigest } from "./digest.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/alerts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.d.ts CHANGED
@@ -110,6 +110,8 @@ export type { ContainerRuntimeOptions, ContainerExecutionOptions, BinaryExecutio
110
110
  export * from "./outcomes/index.js";
111
111
  export { computeQuality, computeQualityWithBreakdown, } from "./quality/index.js";
112
112
  export type { QualityInputs, QualityBreakdown, QualityContribution, } from "./quality/index.js";
113
+ export { buildAlertDigest } from "./alerts/index.js";
114
+ export type { AlertItem, AlertDigestOptions } from "./alerts/index.js";
113
115
  export * from "./runs/index.js";
114
116
  export { initVaubanSDK, getSDKProvider, getSDKProvider as getSDKConfig, reportRunStart, reportRunFinish, createOtelClient, } from "./otel/ingest.js";
115
117
  export type { VaubanSDKOptions, IngestSpansResult, OtelClient, } from "./otel/ingest.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -92,6 +92,8 @@ export { ContainerRuntime } from "./container/runtime.js";
92
92
  export * from "./outcomes/index.js";
93
93
  // 13b. Quality scoring helper (SDK 1.8.0 — promoted from forge 2026-05-17)
94
94
  export { computeQuality, computeQualityWithBreakdown, } from "./quality/index.js";
95
+ // 13c. Alert digest helper (SDK 1.9.0 — promoted from forge 2026-05-17)
96
+ export { buildAlertDigest } from "./alerts/index.js";
95
97
  // 14. Proof module (SDK v0.5.2 — Sprint-521 Bloc 1)
96
98
  // Note: proof/index.js re-exports from @vauban-org/proof-core (optional peerDep).
97
99
  // Import via subpath @vauban-org/agent-sdk/proof — do NOT wildcard here.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sEAAsE;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,iEAAiE;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,oEAAoE;AACpE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAU1B,qCAAqC;AACrC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAQ5E,qCAAqC;AACrC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAOlC,oBAAoB;AACpB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAOrC,6CAA6C;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAWnE,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,qBAAqB;AACrB,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAQxE,gFAAgF;AAChF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAqB9B,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM9E,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAGjC,gDAAgD;AAChD,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kCAAkC,CAAC;AAO1C,8CAA8C;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAMlE,gDAAgD;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAMlE,mEAAmE;AACnE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AAsErC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB;AACjB,yBAAyB;AACzB,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B;AAC5B,yCAAyC;AACzC,qBAAqB,EACrB,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AA0D1B,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAC/B,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,EAC1B,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,oBAAoB,EACpB,gCAAgC,EAChC,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,kCAAkC,EAClC,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAK1B,mDAAmD;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,sDAAsD;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAQzD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAExC,kDAAkD;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,oDAAoD;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,gFAAgF;AAEhF,8DAA8D;AAE9D,uCAAuC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAKnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAKhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,+BAA+B;AAC/B,OAAO,EACL,WAAW,EACX,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAO5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,kBAAkB;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAMvE,kCAAkC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,kCAAkC,CAAC;AAG1C,8CAA8C;AAC9C,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EACL,+BAA+B,EAC/B,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAG7E,yBAAyB;AACzB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAU9B,sDAAsD;AACtD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,OAAO,EACP,eAAe,EACf,QAAQ,EACR,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAY/B,mGAAmG;AACnG,OAAO,EACL,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAG1B,kGAAkG;AAClG,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AAOxC,kHAAkH;AAClH,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAW1D,gDAAgD;AAChD,cAAc,qBAAqB,CAAC;AAEpC,2EAA2E;AAC3E,OAAO,EACL,cAAc,EACd,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAO5B,oDAAoD;AACpD,kFAAkF;AAClF,yEAAyE;AAEzE,wDAAwD;AACxD,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,IAAI,YAAY,EAC9B,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAY1B,qEAAqE;AACrE,0EAA0E;AAC1E,qEAAqE;AACrE,cAAc,0BAA0B,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,2CAA2C,CAAC;AAMnD,kGAAkG;AAClG,OAAO,EACL,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,SAAS,EACT,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAQ5C,wDAAwD;AACxD,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,iCAAiC,CAAC;AAOzC,8DAA8D;AAC9D,OAAO,EACL,eAAe,EACf,gBAAgB,GACjB,MAAM,uCAAuC,CAAC;AAM/C,2FAA2F;AAC3F,qHAAqH;AACrH,cAAc,mBAAmB,CAAC;AAElC,6DAA6D;AAC7D,cAAc,mBAAmB,CAAC;AAElC,qDAAqD;AACrD,cAAc,oBAAoB,CAAC;AAWnC,wFAAwF;AACxF,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,2GAA2G;AAC3G,OAAO,EACL,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,6BAA6B,EAC7B,wBAAwB,EACxB,eAAe,EACf,UAAU,EACV,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAc3B,8FAA8F;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAOzD,OAAO,EACL,YAAY,EACZ,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAM/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,cAAc,EACd,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAMjC,oGAAoG;AACpG,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMvD,OAAO,EACL,UAAU,EACV,eAAe,EACf,WAAW,EACX,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,8DAA8D;AAC9D,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAOvC,0DAA0D;AAC1D,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAG5B,sDAAsD;AACtD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAQlC,6DAA6D;AAC7D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AASlE,uDAAuD;AACvD,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAG/E,uFAAuF;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAUnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAKpE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAKjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAKlF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAMlD,qFAAqF;AACrF,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,IAAI,yBAAyB,EAClD,iBAAiB,IAAI,qBAAqB,GAC3C,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACL,cAAc,EACd,UAAU,IAAI,oBAAoB,EAClC,UAAU,IAAI,oBAAoB,EAClC,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAU/B,wDAAwD;AACxD,OAAO,EACL,SAAS,EACT,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAMpC,sEAAsE;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAmB7D,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,aAAa,EACb,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,0FAA0F;AAC1F,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE5E,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AA0B1B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,yFAAyF;AACzF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,GACd,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAGrE,gFAAgF;AAChF,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,YAAY,GACb,MAAM,0BAA0B,CAAC;AAiBlC,sCAAsC;AACtC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,MAAM,6BAA6B,CAAC;AAMrC,gDAAgD;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAKvE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vauban-org/agent-sdk",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "Vauban agent primitives: loop, budget, routing, HITL, permissions, tracking, durable execution",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,260 @@
1
+ /**
2
+ * alerts/digest.ts — Adaptive notification batching (SDK 1.9.0).
3
+ *
4
+ * Promoted from forge's `src/agents/23-security-auditor/agent.ts`
5
+ * `buildEscalationMessages()` after a 47-alert Telegram flood during the
6
+ * first Dependabot-enabled cycle (2026-05-17). Generalized so any agent
7
+ * dispatching bulk operator alerts (devops, finance, devrel, inbox-monitor,
8
+ * security-auditor) can adopt it without re-implementing the
9
+ * threshold/sort/cap logic.
10
+ *
11
+ * Design notes:
12
+ * - Pure function — no I/O, no transport dependency. Caller dispatches the
13
+ * returned strings to Telegram/Slack/email/whatever channel.
14
+ * - 0 items → no message at all (empty array).
15
+ * - 1..threshold items → one full-detail message per item.
16
+ * - More than threshold items → one digest message, sorted by severity
17
+ * (configurable order), capped at `maxChars`, with truncation footer +
18
+ * optional details pointer.
19
+ * - Severities outside the configured order are appended last with a
20
+ * default bullet emoji.
21
+ *
22
+ * @public
23
+ */
24
+
25
+ /**
26
+ * A single alert item fed to {@link buildAlertDigest}. All fields except
27
+ * `severity` and `title` are optional — render skips empty lines.
28
+ *
29
+ * @public
30
+ */
31
+ export interface AlertItem {
32
+ /**
33
+ * Severity bucket. Built-in semantics: `"critical" | "high" | "medium" |
34
+ * "low"`. Any other string is accepted and ranked according to
35
+ * {@link AlertDigestOptions.severityOrder} (or appended last with a
36
+ * default emoji when not listed).
37
+ */
38
+ readonly severity:
39
+ | "critical"
40
+ | "high"
41
+ | "medium"
42
+ | "low"
43
+ | (string & Record<never, never>);
44
+ /** Human-readable headline (rendered after the emoji). */
45
+ readonly title: string;
46
+ /** Affected component / repo / file (e.g. `"vauban-org/forge:axios"`). */
47
+ readonly component?: string;
48
+ /** External reference (e.g. `"CVE-2026-0001"`). */
49
+ readonly ref?: string;
50
+ /** Remediation hint shown in individual messages. */
51
+ readonly remediation?: string;
52
+ /** Direct URL for follow-up (shown in individual messages). */
53
+ readonly url?: string;
54
+ }
55
+
56
+ /**
57
+ * Options for {@link buildAlertDigest}. All fields optional with sensible
58
+ * defaults matching forge's prod-validated security-auditor behaviour.
59
+ *
60
+ * @public
61
+ */
62
+ export interface AlertDigestOptions {
63
+ /**
64
+ * Header prefix label (e.g. `"SECURITY"`, `"DEVOPS"`). Default
65
+ * `"ALERT"`. Appears in the digest header — ignored in per-item mode.
66
+ */
67
+ readonly label?: string;
68
+ /**
69
+ * Cutoff between per-item and digest modes. `<=` threshold yields N
70
+ * messages, `>` threshold yields a single digest. Default `3`.
71
+ */
72
+ readonly threshold?: number;
73
+ /**
74
+ * Hard cap on the rendered digest length (chars). Default `4000`
75
+ * (Telegram-safe — Telegram limit is 4096).
76
+ */
77
+ readonly maxChars?: number;
78
+ /**
79
+ * Pointer to detailed source (e.g. `"query Brain category=forge_alert"`).
80
+ * Appended on a final line of every digest message when provided.
81
+ */
82
+ readonly detailsPointer?: string;
83
+ /**
84
+ * Severity sort order, highest priority first. Default
85
+ * `["critical", "high", "medium", "low"]`. Severities not listed go
86
+ * after listed ones, in input order.
87
+ */
88
+ readonly severityOrder?: readonly string[];
89
+ /**
90
+ * Per-severity emoji map. Default
91
+ * `{ critical: "🚨", high: "⚠️", medium: "ℹ️", low: "🔵" }`. Missing
92
+ * severities fall back to `"•"`.
93
+ */
94
+ readonly emojiMap?: Readonly<Record<string, string>>;
95
+ }
96
+
97
+ const DEFAULT_THRESHOLD = 3;
98
+ const DEFAULT_MAX_CHARS = 4000;
99
+ const DEFAULT_LABEL = "ALERT";
100
+ const DEFAULT_SEVERITY_ORDER: readonly string[] = [
101
+ "critical",
102
+ "high",
103
+ "medium",
104
+ "low",
105
+ ];
106
+ const DEFAULT_EMOJI_MAP: Readonly<Record<string, string>> = {
107
+ critical: "🚨",
108
+ high: "⚠️",
109
+ medium: "ℹ️",
110
+ low: "🔵",
111
+ };
112
+ const FALLBACK_EMOJI = "•";
113
+
114
+ function emojiFor(
115
+ severity: string,
116
+ map: Readonly<Record<string, string>>
117
+ ): string {
118
+ return map[severity] ?? FALLBACK_EMOJI;
119
+ }
120
+
121
+ function severityRank(severity: string, order: readonly string[]): number {
122
+ const idx = order.indexOf(severity);
123
+ return idx === -1 ? order.length : idx;
124
+ }
125
+
126
+ function renderIndividual(
127
+ item: AlertItem,
128
+ emojiMap: Readonly<Record<string, string>>
129
+ ): string {
130
+ const emoji = emojiFor(item.severity, emojiMap);
131
+ const ref = item.ref ? ` [${item.ref}]` : "";
132
+ const lines: string[] = [`${emoji} ${item.title}${ref}`];
133
+ if (item.component) lines.push(`Component: ${item.component}`);
134
+ if (item.remediation) lines.push(`Remediation: ${item.remediation}`);
135
+ if (item.url) lines.push(item.url);
136
+ return lines.join("\n");
137
+ }
138
+
139
+ function buildHeader(
140
+ label: string,
141
+ total: number,
142
+ counts: ReadonlyMap<string, number>,
143
+ order: readonly string[],
144
+ emojiMap: Readonly<Record<string, string>>
145
+ ): string {
146
+ const breakdown: string[] = [];
147
+ for (const sev of order) {
148
+ const c = counts.get(sev) ?? 0;
149
+ if (c > 0) breakdown.push(`${c} ${sev}`);
150
+ }
151
+ const topSev = order.find((s) => (counts.get(s) ?? 0) > 0);
152
+ const headEmoji = topSev ? emojiFor(topSev, emojiMap) : FALLBACK_EMOJI;
153
+ const breakdownStr = breakdown.length > 0 ? ` (${breakdown.join(", ")})` : "";
154
+ return `${headEmoji} ${label} — ${total} items${breakdownStr}`;
155
+ }
156
+
157
+ /**
158
+ * Build an adaptive alert digest from a list of items.
159
+ *
160
+ * - 0 items → `[]` (no message at all).
161
+ * - 1..threshold items → one message per item (full detail preserved).
162
+ * - More than threshold → one digest message, severity-sorted, capped at
163
+ * `maxChars`, with truncation footer `"… +K more"` when items overflow,
164
+ * followed by `"Details: <detailsPointer>"` when a pointer is provided.
165
+ *
166
+ * Header counts only non-zero severities, in the configured order.
167
+ * Severities not in `severityOrder` are appended last with a default
168
+ * bullet emoji `"•"` (or a user-provided emoji from `emojiMap`).
169
+ *
170
+ * @example
171
+ * buildAlertDigest([]) // → []
172
+ * buildAlertDigest([critical, high, low]) // → 3 messages
173
+ * buildAlertDigest(arrayOf(50, "high"), {
174
+ * label: "DEPENDABOT",
175
+ * detailsPointer: "query Brain category=forge_alert tag=security",
176
+ * }) // → 1 digest message
177
+ *
178
+ * @public
179
+ */
180
+ export function buildAlertDigest(
181
+ items: readonly AlertItem[],
182
+ opts: AlertDigestOptions = {}
183
+ ): string[] {
184
+ if (items.length === 0) return [];
185
+
186
+ const threshold = opts.threshold ?? DEFAULT_THRESHOLD;
187
+ const maxChars = opts.maxChars ?? DEFAULT_MAX_CHARS;
188
+ const label = opts.label ?? DEFAULT_LABEL;
189
+ const severityOrder = opts.severityOrder ?? DEFAULT_SEVERITY_ORDER;
190
+ const emojiMap = opts.emojiMap ?? DEFAULT_EMOJI_MAP;
191
+ const detailsPointer = opts.detailsPointer;
192
+
193
+ if (items.length <= threshold) {
194
+ return items.map((it) => renderIndividual(it, emojiMap));
195
+ }
196
+
197
+ // Sort copy: by severityOrder rank, then preserve input order (stable).
198
+ const sorted = items
199
+ .map((it, idx) => ({ it, idx }))
200
+ .sort((a, b) => {
201
+ const ra = severityRank(a.it.severity, severityOrder);
202
+ const rb = severityRank(b.it.severity, severityOrder);
203
+ if (ra !== rb) return ra - rb;
204
+ return a.idx - b.idx;
205
+ })
206
+ .map((x) => x.it);
207
+
208
+ const counts = new Map<string, number>();
209
+ for (const it of sorted) {
210
+ counts.set(it.severity, (counts.get(it.severity) ?? 0) + 1);
211
+ }
212
+
213
+ const header = buildHeader(
214
+ label,
215
+ items.length,
216
+ counts,
217
+ severityOrder,
218
+ emojiMap
219
+ );
220
+ const footerLines: string[] = [];
221
+ if (detailsPointer) footerLines.push(`Details: ${detailsPointer}`);
222
+
223
+ // Compute fixed cost: header + body lines + footer.
224
+ // We need to leave room for an eventual "… +K more" line.
225
+ const truncationLineEstimate = 16; // "\n… +999 more"
226
+ const footerStr = footerLines.length > 0 ? "\n" + footerLines.join("\n") : "";
227
+
228
+ const bodyLines: string[] = [];
229
+ let renderedSoFar = header.length;
230
+ let truncated = 0;
231
+
232
+ for (let i = 0; i < sorted.length; i++) {
233
+ const it = sorted[i]!;
234
+ const emoji = emojiFor(it.severity, emojiMap);
235
+ const ref = it.ref ? ` [${it.ref}]` : "";
236
+ const line = `${emoji} ${it.title}${ref} — ${it.component ?? "?"}`;
237
+ // +1 for the leading "\n" before this line
238
+ const lineCost = 1 + line.length;
239
+ const remainingItems = sorted.length - i;
240
+ // If adding this line would prevent us from fitting truncation footer
241
+ // for the remaining items, stop here.
242
+ const projected =
243
+ renderedSoFar +
244
+ lineCost +
245
+ footerStr.length +
246
+ (remainingItems > 1 ? truncationLineEstimate : 0);
247
+ if (projected > maxChars) {
248
+ truncated = sorted.length - i;
249
+ break;
250
+ }
251
+ bodyLines.push(line);
252
+ renderedSoFar += lineCost;
253
+ }
254
+
255
+ const out: string[] = [header, ...bodyLines];
256
+ if (truncated > 0) out.push(`… +${truncated} more`);
257
+ if (footerLines.length > 0) out.push(...footerLines);
258
+
259
+ return [out.join("\n")];
260
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * alerts/ — Adaptive notification batching (SDK 1.9.0).
3
+ *
4
+ * Promoted from forge's security-auditor `buildEscalationMessages()`
5
+ * after the 47-alert Telegram flood (2026-05-17). Pure, transport-agnostic
6
+ * helper; caller dispatches the returned strings.
7
+ *
8
+ * @public
9
+ */
10
+
11
+ export { buildAlertDigest } from "./digest.js";
12
+ export type { AlertItem, AlertDigestOptions } from "./digest.js";
package/src/index.ts CHANGED
@@ -582,6 +582,10 @@ export type {
582
582
  QualityContribution,
583
583
  } from "./quality/index.js";
584
584
 
585
+ // 13c. Alert digest helper (SDK 1.9.0 — promoted from forge 2026-05-17)
586
+ export { buildAlertDigest } from "./alerts/index.js";
587
+ export type { AlertItem, AlertDigestOptions } from "./alerts/index.js";
588
+
585
589
  // 14. Proof module (SDK v0.5.2 — Sprint-521 Bloc 1)
586
590
  // Note: proof/index.js re-exports from @vauban-org/proof-core (optional peerDep).
587
591
  // Import via subpath @vauban-org/agent-sdk/proof — do NOT wildcard here.