log10x-mcp 1.29.34 → 1.29.35

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 (32) hide show
  1. package/build/lib/plan-dependencies.d.ts +62 -30
  2. package/build/lib/plan-dependencies.js +135 -74
  3. package/build/lib/plan-dependencies.js.map +1 -1
  4. package/build/lib/plan-solver.d.ts +6 -0
  5. package/build/lib/plan-solver.js +3 -0
  6. package/build/lib/plan-solver.js.map +1 -1
  7. package/build/lib/server-instructions.js +17 -7
  8. package/build/lib/server-instructions.js.map +1 -1
  9. package/build/lib/siem/deps/cloudwatch.d.ts +2 -1
  10. package/build/lib/siem/deps/cloudwatch.js +28 -38
  11. package/build/lib/siem/deps/cloudwatch.js.map +1 -1
  12. package/build/lib/siem/deps/datadog.d.ts +2 -1
  13. package/build/lib/siem/deps/datadog.js +27 -34
  14. package/build/lib/siem/deps/datadog.js.map +1 -1
  15. package/build/lib/siem/deps/elasticsearch.d.ts +2 -1
  16. package/build/lib/siem/deps/elasticsearch.js +33 -51
  17. package/build/lib/siem/deps/elasticsearch.js.map +1 -1
  18. package/build/lib/siem/deps/index.d.ts +4 -1
  19. package/build/lib/siem/deps/index.js +29 -5
  20. package/build/lib/siem/deps/index.js.map +1 -1
  21. package/build/lib/siem/deps/splunk.d.ts +2 -1
  22. package/build/lib/siem/deps/splunk.js +28 -36
  23. package/build/lib/siem/deps/splunk.js.map +1 -1
  24. package/build/lib/siem/deps/types.d.ts +32 -0
  25. package/build/lib/siem/deps/types.js +36 -0
  26. package/build/lib/siem/deps/types.js.map +1 -1
  27. package/build/tools/dependency-check.js +10 -2
  28. package/build/tools/dependency-check.js.map +1 -1
  29. package/build/tools/estimate-savings.d.ts +8 -0
  30. package/build/tools/estimate-savings.js +45 -17
  31. package/build/tools/estimate-savings.js.map +1 -1
  32. package/package.json +1 -1
@@ -1,45 +1,65 @@
1
1
  /**
2
- * Batch SIEM dependency scan for a ladder plan.
2
+ * Two-tier SIEM dependency scan for a ladder plan.
3
3
  *
4
4
  * The persona reviews' top blocker was "the plan says WHAT, never what it
5
- * TOUCHES" — nobody applies a routing change without knowing which dashboards,
6
- * alerts, and saved searches read the moved message types. The per-pattern
7
- * scanner already exists (lib/siem/deps, read-only API calls); this module
8
- * batches it over the rows a plan will actually render and folds the result
9
- * into one summary the verdict block can carry.
5
+ * TOUCHES". A naive literal scan is half theater: real monitors reference
6
+ * SLICES (service:payment status:error), not message templates, so literal
7
+ * absence is not safety — and slice overlap is too broad to exclude on
8
+ * (every payment monitor overlaps every payment type). Hence two tiers:
10
9
  *
11
- * Scope, deliberately v1:
12
- * - Scans the TOP rows only (default 7 — the cards plus a margin). Each
13
- * vendor call refetches the object inventory, so a full-estate scan (100+
14
- * rows) belongs to a batched-inventory refactor of lib/siem/deps, not here.
15
- * - Credential preflight is instant: env vars, plus ~/.aws/credentials for
16
- * CloudWatch. An EC2 instance role is not detected — the note says so
17
- * rather than letting the SDK's IMDS probe stall a plan render.
18
- * - An overall deadline caps the scan; rows not reached are reported, never
19
- * silently skipped.
10
+ * TIER 1 — LITERAL: an object's query/title contains the type's distinctive
11
+ * tokens. High precision. These types are EXCLUDED from the plan by default
12
+ * (pinned at pass, plan re-solved) unless the user trades them back in.
13
+ *
14
+ * TIER 2 — SLICE: objects whose text mentions a planned service at all.
15
+ * High recall, deliberately broad. A DISCLOSURE, never an exclusion —
16
+ * rendered with the destination's platform truth (Flex data and real-time
17
+ * monitors, the IA class and metric filters, offload and every query).
18
+ *
19
+ * The vendor inventory is fetched ONCE (lib/siem/deps fetchVendorInventory)
20
+ * and matched locally, so a 200-type plan costs the same API calls as one.
21
+ * Scan-depth honesty rides on the summary: what was scanned is stated, and
22
+ * "no literal references found in what was scanned" is the strongest claim
23
+ * the data supports — never "safe".
20
24
  */
21
- import type { Plan } from './plan-solver.js';
25
+ import type { Plan, PlannedRow, SolverPattern, SolveOpts } from './plan-solver.js';
22
26
  import type { SiemId } from './siem/pricing.js';
23
- import { checkDeps as realCheckDeps, type DepCheckResult } from './siem/deps/index.js';
27
+ import { fetchVendorInventory as realFetchVendorInventory, type VendorInventory } from './siem/deps/index.js';
24
28
  export interface PlanRowDependencies {
25
29
  hash: string;
26
30
  name: string;
27
31
  displayName: string;
28
32
  refs: number;
29
- by_type: DepCheckResult['byType'];
30
- /** Names of the matched objects (dashboards/alerts/...), capped at 5. */
33
+ /** Names of the referencing objects (monitors/searches/dashboards), capped at 5. */
34
+ names: string[];
35
+ /** Savings this row carried in the ORIGINAL solve — what excluding it forgoes. */
36
+ forgoneUsd: number;
37
+ }
38
+ export interface SliceDependency {
39
+ service: string;
40
+ objects: number;
41
+ /** Referencing-object names, capped at 5. */
31
42
  names: string[];
32
43
  }
33
44
  export interface PlanDependencySummary {
34
45
  /** True when a scan actually ran (credentials present, vendor supported). */
35
46
  checked: boolean;
36
47
  vendor?: SiemId;
37
- /** How many of the plan's top rows were scanned. */
48
+ /** What the scan could actually see, e.g. "monitor queries and dashboard
49
+ * titles/descriptions". The honesty line: absence of literal hits means
50
+ * "none found in THIS", never "safe". */
51
+ scan_depth?: string;
52
+ /** How many planned rows were matched (all of them — batch inventory). */
38
53
  scanned_rows: number;
39
- /** Rows (of the scanned set) with at least one referencing object. */
40
- rows_with_refs: number;
54
+ /** TIER 1: planned types literally referenced by name/query text. */
55
+ literal: PlanRowDependencies[];
56
+ /** TIER 1 outcome: types excluded from the final plan (pinned at pass). */
57
+ excluded: PlanRowDependencies[];
58
+ /** TIER 2: objects that mention a planned service at all — disclosure only. */
59
+ slice: SliceDependency[];
60
+ /** Destination truth for the levers in play, stated once. */
61
+ platform_truth?: string;
41
62
  total_refs: number;
42
- rows: PlanRowDependencies[];
43
63
  /** One human-readable line: what ran, or why nothing did. Render-safe. */
44
64
  note: string;
45
65
  }
@@ -50,15 +70,27 @@ export declare function depCredsPresent(vendor: SiemId): {
50
70
  present: boolean;
51
71
  missing: string;
52
72
  };
53
- type DepsChecker = typeof realCheckDeps;
73
+ type InventoryFetcher = typeof realFetchVendorInventory;
54
74
  /** Test seam, same pattern as _setBackendLoader / _setVerifyRunner. */
55
- export declare function _setDepsChecker(fn: DepsChecker): void;
56
- export declare function _resetDepsChecker(): void;
75
+ export declare function _setInventoryFetcher(fn: InventoryFetcher): void;
76
+ export declare function _resetInventoryFetcher(): void;
77
+ /** Destination truth for the levers a plan actually uses. */
78
+ export declare function platformTruth(plan: Plan): string | undefined;
79
+ /** TIER 2: which inventory objects mention each planned service at all. */
80
+ export declare function sliceScan(inv: VendorInventory, services: string[]): SliceDependency[];
57
81
  export interface CheckPlanDepsOptions {
58
- /** Top planned rows to scan. Default 7. */
59
- limit?: number;
60
- /** Overall wall-clock budget for the whole scan. Default 15000ms. */
82
+ /** Overall wall-clock budget for the inventory fetch. Default 20000ms. */
61
83
  timeoutMs?: number;
62
84
  }
63
85
  export declare function checkPlanDependencies(plan: Plan, opts?: CheckPlanDepsOptions): Promise<PlanDependencySummary>;
64
- export {};
86
+ /**
87
+ * TIER 1 outcome: pin the literally-referenced types at pass and re-solve.
88
+ * Pure given the summary — the caller passes the same patterns/opts it solved
89
+ * with. Returns the re-solved plan and the exclusion record for the render;
90
+ * the excluded rows carry the savings the exclusion forgoes.
91
+ */
92
+ export declare function applyReferencedExclusion(patterns: SolverPattern[], solveOpts: SolveOpts, summary: PlanDependencySummary): {
93
+ plan: Plan;
94
+ excluded: PlanRowDependencies[];
95
+ };
96
+ export type { PlannedRow };
@@ -1,26 +1,31 @@
1
1
  /**
2
- * Batch SIEM dependency scan for a ladder plan.
2
+ * Two-tier SIEM dependency scan for a ladder plan.
3
3
  *
4
4
  * The persona reviews' top blocker was "the plan says WHAT, never what it
5
- * TOUCHES" — nobody applies a routing change without knowing which dashboards,
6
- * alerts, and saved searches read the moved message types. The per-pattern
7
- * scanner already exists (lib/siem/deps, read-only API calls); this module
8
- * batches it over the rows a plan will actually render and folds the result
9
- * into one summary the verdict block can carry.
5
+ * TOUCHES". A naive literal scan is half theater: real monitors reference
6
+ * SLICES (service:payment status:error), not message templates, so literal
7
+ * absence is not safety — and slice overlap is too broad to exclude on
8
+ * (every payment monitor overlaps every payment type). Hence two tiers:
10
9
  *
11
- * Scope, deliberately v1:
12
- * - Scans the TOP rows only (default 7 — the cards plus a margin). Each
13
- * vendor call refetches the object inventory, so a full-estate scan (100+
14
- * rows) belongs to a batched-inventory refactor of lib/siem/deps, not here.
15
- * - Credential preflight is instant: env vars, plus ~/.aws/credentials for
16
- * CloudWatch. An EC2 instance role is not detected — the note says so
17
- * rather than letting the SDK's IMDS probe stall a plan render.
18
- * - An overall deadline caps the scan; rows not reached are reported, never
19
- * silently skipped.
10
+ * TIER 1 — LITERAL: an object's query/title contains the type's distinctive
11
+ * tokens. High precision. These types are EXCLUDED from the plan by default
12
+ * (pinned at pass, plan re-solved) unless the user trades them back in.
13
+ *
14
+ * TIER 2 — SLICE: objects whose text mentions a planned service at all.
15
+ * High recall, deliberately broad. A DISCLOSURE, never an exclusion —
16
+ * rendered with the destination's platform truth (Flex data and real-time
17
+ * monitors, the IA class and metric filters, offload and every query).
18
+ *
19
+ * The vendor inventory is fetched ONCE (lib/siem/deps fetchVendorInventory)
20
+ * and matched locally, so a 200-type plan costs the same API calls as one.
21
+ * Scan-depth honesty rides on the summary: what was scanned is stated, and
22
+ * "no literal references found in what was scanned" is the strongest claim
23
+ * the data supports — never "safe".
20
24
  */
21
25
  import { existsSync } from 'node:fs';
22
26
  import { join } from 'node:path';
23
- import { checkDeps as realCheckDeps, DEP_CHECK_VENDORS, } from './siem/deps/index.js';
27
+ import { solvePlan } from './plan-solver.js';
28
+ import { fetchVendorInventory as realFetchVendorInventory, matchObject, DEP_CHECK_VENDORS, } from './siem/deps/index.js';
24
29
  /** Map a plan destination onto the dep-check vendor that can scan it. */
25
30
  export function depVendorForDestination(destination) {
26
31
  const d = String(destination);
@@ -67,23 +72,66 @@ export function depCredsPresent(vendor) {
67
72
  return { present: false, missing: 'unsupported vendor' };
68
73
  }
69
74
  }
70
- let depsChecker = realCheckDeps;
75
+ let inventoryFetcher = realFetchVendorInventory;
71
76
  /** Test seam, same pattern as _setBackendLoader / _setVerifyRunner. */
72
- export function _setDepsChecker(fn) {
73
- depsChecker = fn;
77
+ export function _setInventoryFetcher(fn) {
78
+ inventoryFetcher = fn;
79
+ }
80
+ export function _resetInventoryFetcher() {
81
+ inventoryFetcher = realFetchVendorInventory;
82
+ }
83
+ /** Destination truth for the levers a plan actually uses. */
84
+ export function platformTruth(plan) {
85
+ const actions = new Set(plan.planned.map((r) => r.action));
86
+ const parts = [];
87
+ if (actions.has('tier_down')) {
88
+ if (plan.destination === 'datadog') {
89
+ parts.push('Flex-tier events do not feed real-time log monitors; monitors on these services evaluate on less data once types move');
90
+ }
91
+ else if (plan.destination === 'cloudwatch') {
92
+ parts.push('the Infrequent Access class does not support metric filters or subscription filters; filters on these services stop seeing moved types');
93
+ }
94
+ }
95
+ if (actions.has('offload')) {
96
+ parts.push('offloaded types leave the destination entirely; every query, dashboard, and alert on these services sees fewer events (recoverable through the retriever)');
97
+ }
98
+ if (actions.has('drop') || actions.has('sample')) {
99
+ parts.push('dropped or sampled types are gone from the destination; nothing downstream sees them');
100
+ }
101
+ return parts.length > 0 ? parts.join('. ') + '.' : undefined;
74
102
  }
75
- export function _resetDepsChecker() {
76
- depsChecker = realCheckDeps;
103
+ function objectAllText(o) {
104
+ return [...o.texts.name, ...o.texts.query, ...o.texts.definition].join('\n');
105
+ }
106
+ const GENERIC_SERVICE_NAMES = new Set(['api', 'app', 'web', 'www', 'all', 'main', 'core', 'base', 'test']);
107
+ /** TIER 2: which inventory objects mention each planned service at all. */
108
+ export function sliceScan(inv, services) {
109
+ const out = [];
110
+ for (const svc of services) {
111
+ const name = svc.trim();
112
+ if (name.length < 3)
113
+ continue;
114
+ if (name === '(unattributed)')
115
+ continue;
116
+ if (GENERIC_SERVICE_NAMES.has(name.toLowerCase()))
117
+ continue;
118
+ const re = new RegExp(`(^|[^a-z0-9])${name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}([^a-z0-9]|$)`, 'i');
119
+ const hits = inv.objects.filter((o) => re.test(objectAllText(o)));
120
+ if (hits.length === 0)
121
+ continue;
122
+ out.push({ service: name, objects: hits.length, names: hits.slice(0, 5).map((h) => h.name) });
123
+ }
124
+ return out;
77
125
  }
78
126
  export async function checkPlanDependencies(plan, opts = {}) {
79
- const limit = opts.limit ?? 7;
80
- const timeoutMs = opts.timeoutMs ?? 15_000;
127
+ const timeoutMs = opts.timeoutMs ?? 20_000;
81
128
  const none = (note) => ({
82
129
  checked: false,
83
130
  scanned_rows: 0,
84
- rows_with_refs: 0,
131
+ literal: [],
132
+ excluded: [],
133
+ slice: [],
85
134
  total_refs: 0,
86
- rows: [],
87
135
  note,
88
136
  });
89
137
  if (plan.planned.length === 0)
@@ -96,63 +144,76 @@ export async function checkPlanDependencies(plan, opts = {}) {
96
144
  if (!creds.present) {
97
145
  return none(`not checked: no ${vendor} credentials in this session (need ${creds.missing}); run log10x_dependency_check after setting them`);
98
146
  }
99
- const targets = plan.planned.slice(0, limit);
100
- const deadline = Date.now() + timeoutMs;
101
- const rows = [];
102
- let scanned = 0;
103
- let timedOut = false;
104
- for (const r of targets) {
105
- if (Date.now() >= deadline) {
106
- timedOut = true;
107
- break;
108
- }
109
- const tokens = r.name.split('_').filter((t) => t.length > 0);
110
- let scan;
111
- try {
112
- scan = await Promise.race([
113
- depsChecker(vendor, { pattern: r.name, tokens }),
114
- new Promise((_res, rej) => setTimeout(() => rej(new Error('row scan timeout')), Math.max(1000, deadline - Date.now())).unref?.()),
115
- ]);
116
- }
117
- catch {
118
- timedOut = true;
119
- break;
120
- }
121
- if (scan.error) {
122
- // Same error would repeat for every row (auth/endpoint) — stop, report.
123
- return none(`not checked: ${scan.error}`);
124
- }
125
- scanned += 1;
126
- if (scan.matches.length > 0) {
127
- rows.push({
128
- hash: r.hash,
129
- name: r.name,
130
- displayName: r.displayName,
131
- refs: scan.matches.length,
132
- by_type: scan.byType,
133
- names: scan.matches.slice(0, 5).map((m) => m.name),
134
- });
135
- }
147
+ let inv;
148
+ try {
149
+ inv = await Promise.race([
150
+ inventoryFetcher(vendor),
151
+ new Promise((_res, rej) => {
152
+ const t = setTimeout(() => rej(new Error('inventory fetch timeout')), timeoutMs);
153
+ t.unref?.();
154
+ }),
155
+ ]);
156
+ }
157
+ catch (e) {
158
+ return none(`not checked: inventory fetch failed (${e instanceof Error ? e.message : String(e)})`);
159
+ }
160
+ if (inv.error)
161
+ return none(`not checked: ${inv.error}`);
162
+ // TIER 1 — literal, ALL planned rows against the one inventory.
163
+ const literal = [];
164
+ for (const r of plan.planned) {
165
+ const tokens = r.name.split('_').filter((t) => t.length >= 4);
166
+ const effective = tokens.length > 0 ? tokens : [r.name.replace(/_/g, ' ')];
167
+ const hits = inv.objects.filter((o) => matchObject(o, effective).length > 0);
168
+ if (hits.length === 0)
169
+ continue;
170
+ literal.push({
171
+ hash: r.hash,
172
+ name: r.name,
173
+ displayName: r.displayName,
174
+ refs: hits.length,
175
+ names: hits.slice(0, 5).map((h) => h.name),
176
+ forgoneUsd: r.savedUsd,
177
+ });
136
178
  }
137
- const totalRefs = rows.reduce((s, x) => s + x.refs, 0);
179
+ // TIER 2 — slice disclosure over the planned services.
180
+ const services = [...new Set(plan.planned.map((r) => r.dominantService))];
181
+ const slice = sliceScan(inv, services);
182
+ const totalRefs = literal.reduce((s, x) => s + x.refs, 0);
138
183
  const noteParts = [
139
- `checked ${vendor} dashboards and alerts for the top ${scanned} planned message type${scanned === 1 ? '' : 's'}`,
140
- rows.length > 0
141
- ? `${rows.length} referenced by ${totalRefs} object${totalRefs === 1 ? '' : 's'}`
142
- : 'none referenced',
184
+ `scanned ${inv.scanDepth} (${inv.objects.length} objects) against all ${plan.planned.length} planned message types`,
185
+ literal.length > 0
186
+ ? `${literal.length} referenced by name (${totalRefs} object${totalRefs === 1 ? '' : 's'})`
187
+ : 'no literal references found in what was scanned',
143
188
  ];
144
- if (timedOut)
145
- noteParts.push(`scan budget hit before the rest; run log10x_dependency_check for deeper coverage`);
146
- else if (plan.planned.length > scanned)
147
- noteParts.push(`${plan.planned.length - scanned} more planned types not scanned; run log10x_dependency_check per type for the rest`);
189
+ if (slice.length > 0) {
190
+ noteParts.push(`${slice.reduce((s, x) => s + x.objects, 0)} objects mention the planned services`);
191
+ }
148
192
  return {
149
193
  checked: true,
150
194
  vendor,
151
- scanned_rows: scanned,
152
- rows_with_refs: rows.length,
195
+ scan_depth: inv.scanDepth,
196
+ scanned_rows: plan.planned.length,
197
+ literal,
198
+ excluded: [],
199
+ slice,
200
+ platform_truth: platformTruth(plan),
153
201
  total_refs: totalRefs,
154
- rows,
155
202
  note: noteParts.join('; '),
156
203
  };
157
204
  }
205
+ /**
206
+ * TIER 1 outcome: pin the literally-referenced types at pass and re-solve.
207
+ * Pure given the summary — the caller passes the same patterns/opts it solved
208
+ * with. Returns the re-solved plan and the exclusion record for the render;
209
+ * the excluded rows carry the savings the exclusion forgoes.
210
+ */
211
+ export function applyReferencedExclusion(patterns, solveOpts, summary) {
212
+ const excludedHashes = summary.literal.map((h) => h.hash);
213
+ const plan = solvePlan(patterns, {
214
+ ...solveOpts,
215
+ pinnedHashes: [...(solveOpts.pinnedHashes ?? []), ...excludedHashes],
216
+ });
217
+ return { plan, excluded: summary.literal };
218
+ }
158
219
  //# sourceMappingURL=plan-dependencies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan-dependencies.js","sourceRoot":"","sources":["../../src/lib/plan-dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-dependencies.js","sourceRoot":"","sources":["../../src/lib/plan-dependencies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACL,oBAAoB,IAAI,wBAAwB,EAChD,WAAW,EACX,iBAAiB,GAElB,MAAM,sBAAsB,CAAC;AA2C9B,yEAAyE;AACzE,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,cAAc;QAAE,OAAO,QAAQ,CAAC;IAC5D,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,CAAC,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAC5C,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,KAAK,oBAAoB,IAAI,CAAC,KAAK,oBAAoB,IAAI,CAAC,KAAK,iBAAiB,EAAE,CAAC;QACjH,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;gBACpG,OAAO,EAAE,yBAAyB;aACnC,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;gBACvG,OAAO,EAAE,4BAA4B;aACtC,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO;gBACL,OAAO,EAAE,OAAO,CACd,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,iBAAiB,CAAC;oBAC1D,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,qBAAqB;wBACrE,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAC/E;gBACD,OAAO,EAAE,8CAA8C;aACxD,CAAC;QACJ,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACzF,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC;gBACzE,OAAO,EAAE,mGAAmG;aAC7G,CAAC;QACJ,CAAC;QACD;YACE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAC7D,CAAC;AACH,CAAC;AAGD,IAAI,gBAAgB,GAAqB,wBAAwB,CAAC;AAClE,uEAAuE;AACvE,MAAM,UAAU,oBAAoB,CAAC,EAAoB;IACvD,gBAAgB,GAAG,EAAE,CAAC;AACxB,CAAC;AACD,MAAM,UAAU,sBAAsB;IACpC,gBAAgB,GAAG,wBAAwB,CAAC;AAC9C,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,aAAa,CAAC,IAAU;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,uHAAuH,CAAC,CAAC;QACtI,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,wIAAwI,CAAC,CAAC;QACvJ,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,2JAA2J,CAAC,CAAC;IAC1K,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IACrG,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,aAAa,CAAC,CAAuE;IAC5F,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3G,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,GAAoB,EAAE,QAAkB;IAChE,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC9B,IAAI,IAAI,KAAK,gBAAgB;YAAE,SAAS;QACxC,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAAE,SAAS;QAC5D,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACvG,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAChC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAU,EACV,OAA6B,EAAE;IAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;IAE3C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAyB,EAAE,CAAC,CAAC;QACrD,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,CAAC;QACb,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAE/E,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC,uCAAuC,IAAI,CAAC,WAAW,kBAAkB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,mBAAmB,MAAM,sCAAsC,KAAK,CAAC,OAAO,mDAAmD,CAAC,CAAC;IAC/I,CAAC;IAED,IAAI,GAAoB,CAAC;IACzB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACvB,gBAAgB,CAAC,MAAM,CAAC;YACxB,IAAI,OAAO,CAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBACzC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBACjF,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACd,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,wCAAwC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,gBAAgB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAExD,gEAAgE;IAChE,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAChC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1C,UAAU,EAAE,CAAC,CAAC,QAAQ;SACvB,CAAC,CAAC;IACL,CAAC;IAED,uDAAuD;IACvD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEvC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG;QAChB,WAAW,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,yBAAyB,IAAI,CAAC,OAAO,CAAC,MAAM,wBAAwB;QACnH,OAAO,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,wBAAwB,SAAS,UAAU,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;YAC3F,CAAC,CAAC,iDAAiD;KACtD,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,uCAAuC,CAAC,CAAC;IACrG,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM;QACN,UAAU,EAAE,GAAG,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;QACjC,OAAO;QACP,QAAQ,EAAE,EAAE;QACZ,KAAK;QACL,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC;QACnC,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAyB,EACzB,SAAoB,EACpB,OAA8B;IAE9B,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE;QAC/B,GAAG,SAAS;QACZ,YAAY,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC;KACrE,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AAC7C,CAAC"}
@@ -96,6 +96,12 @@ export interface SolveOpts {
96
96
  * is echoed on the plan (rateSource / rateBasis). Absent = list price.
97
97
  */
98
98
  customerRatePerGb?: number;
99
+ /**
100
+ * Specific pattern hashes pinned at pass — the referenced-types exclusion:
101
+ * a type a monitor or saved search names stays exactly as it is unless the
102
+ * user explicitly trades it back in. Pinned like protected severities.
103
+ */
104
+ pinnedHashes?: string[];
99
105
  }
100
106
  export interface PlannedRow {
101
107
  hash: string;
@@ -128,9 +128,12 @@ export function solvePlan(rawPatterns, opts) {
128
128
  const lever = keepEverythingLever(opts.destination, opts.retrieverInstalled);
129
129
  // Scope: keep patterns touching a scoped service; weight by scoped bytes.
130
130
  const exceptions = new Set((opts.exceptionServices ?? []).map((x) => x.toLowerCase()));
131
+ const pinnedHashes = new Set(opts.pinnedHashes ?? []);
131
132
  const isPinned = (p) => {
132
133
  if (isProtectedSeverity(p.severity))
133
134
  return true;
135
+ if (pinnedHashes.has(p.hash))
136
+ return true;
134
137
  if (exceptions.size === 0)
135
138
  return false;
136
139
  const { dominant } = serviceMix(p.services);
@@ -1 +1 @@
1
- {"version":3,"file":"plan-solver.js","sourceRoot":"","sources":["../../src/lib/plan-solver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-solver.js","sourceRoot":"","sources":["../../src/lib/plan-solver.ts"],"names":[],"mappings":"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"}
@@ -267,13 +267,23 @@ did it work, what happens to the number, how, what is protected.
267
267
  **Applies as:** one routing rule in <destination>, set once at install; the per-type decisions live
268
268
  in caps.csv in the user's git repo. Changing the plan changes the CSV, never the <destination>
269
269
  config again.
270
- **Touches:** when the envelope carries \`plan_dependencies\` with checked=true, one line from its
271
- fields: "checked <vendor> dashboards and alerts: <rows_with_refs> of the top <scanned_rows>
272
- planned types are referenced" plus the matched object names (from rows[].names) when any exist —
273
- a referenced type is a dashboard or alert that changes behavior when the plan applies, and the
274
- user must see that BEFORE agreeing. When checked=false, render no Touches line; if the user asks
275
- what the plan breaks, relay plan_dependencies.note verbatim (it names the missing credentials or
276
- the unsupported destination).
270
+ **Touches:** when the envelope carries \`plan_dependencies\` with checked=true, up to three lines
271
+ from its fields, in this order:
272
+ 1. Scan-depth honesty: "scanned <scan_depth>" — and when \`literal\` is empty, say "no literal
273
+ references found in what was scanned", NEVER "none referenced" or "safe": monitors usually
274
+ reference slices (service, severity, index), not template text, and absence of a literal hit
275
+ proves nothing about those.
276
+ 2. When \`excluded\` is non-empty: "**Excluded by default:** <N> message types are referenced by
277
+ name — <object names from excluded[].names> — and stay exactly as they are. Including them
278
+ adds <sum of excluded[].forgoneUsd>/mo; say so to trade." (the agent re-calls with
279
+ \`include_referenced: true\` when the user chooses that trade; the exclusion decision must
280
+ see the page BEFORE the user agrees to the plan)
281
+ 3. When \`slice\` is non-empty: "<total slice objects> monitors and dashboards mention
282
+ <the services>: <platform_truth verbatim>." — this is DISCLOSURE, not exclusion; slice
283
+ overlap is deliberately broad and must never silently shrink the plan.
284
+ When checked=false, render no Touches line; if the user asks what the plan breaks, relay
285
+ plan_dependencies.note verbatim (it names the missing credentials or the unsupported
286
+ destination).
277
287
 
278
288
  When the target is met and keepEverythingCeilingPct exceeds achievedPct by more than 2 points, append
279
289
  to the money line: "· keep-everything ceiling <keepEverythingCeilingPct>%" — the reader deserves to
@@ -1 +1 @@
1
- {"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../../src/lib/server-instructions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,4BAA4B,EAAe,MAAM,mBAAmB,CAAC;AAE9E,0EAA0E;AAC1E,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,MAAM,cAAc,GAClB;IACE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,eAAe,EAAE,eAAe,CAAC;IAClC,CAAC,YAAY,EAAE,YAAY,CAAC;CAE/B;KACE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;IACnB,MAAM,CAAC,GAAG,4BAA4B,CAAC,EAAE,CAAC,CAAC;IAC3C,2EAA2E;IAC3E,4EAA4E;IAC5E,6DAA6D;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC;AAChC,CAAC,CAAC;KACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAEd,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8KjC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;m2BA8Im1B,CAAC"}
1
+ {"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../../src/lib/server-instructions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,4BAA4B,EAAe,MAAM,mBAAmB,CAAC;AAE9E,0EAA0E;AAC1E,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,MAAM,cAAc,GAClB;IACE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,eAAe,EAAE,eAAe,CAAC;IAClC,CAAC,YAAY,EAAE,YAAY,CAAC;CAE/B;KACE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;IACnB,MAAM,CAAC,GAAG,4BAA4B,CAAC,EAAE,CAAC,CAAC;IAC3C,2EAA2E;IAC3E,4EAA4E;IAC5E,6DAA6D;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC;AAChC,CAAC,CAAC;KACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAEd,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8KjC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;m2BAwJm1B,CAAC"}
@@ -16,5 +16,6 @@
16
16
  * present for the existing pull connector) and `@aws-sdk/client-cloudwatch`
17
17
  * (added for this scanner — alarms + dashboards live there, not in logs).
18
18
  */
19
- import { type DepCheckOptions, type DepCheckResult } from './types.js';
19
+ import { type DepCheckOptions, type DepCheckResult, type VendorInventory } from './types.js';
20
+ export declare function fetchCloudWatchInventory(): Promise<VendorInventory>;
20
21
  export declare function checkCloudWatchDeps(opts: DepCheckOptions): Promise<DepCheckResult>;