@llm-dev-ops/agentics-cli 2.7.4 → 2.7.5

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.
@@ -45,6 +45,21 @@ interface FinancialData {
45
45
  costSavings: string;
46
46
  hasData: boolean;
47
47
  isEstimated: boolean;
48
+ /**
49
+ * ADR-PIPELINE-096 D3 — per-metric source attribution. Populated when the
50
+ * value was resolved through the agent-claim-registry. Keys mirror the
51
+ * field names above (`budget`, `roi`, etc.). Missing key = no canonical
52
+ * agent source available; cell renders without `src=`. Value `heuristic` =
53
+ * fell through to ADR-095's per-employee fallback.
54
+ */
55
+ sources?: {
56
+ budget?: string;
57
+ roi?: string;
58
+ npv?: string;
59
+ payback?: string;
60
+ revenue?: string;
61
+ costSavings?: string;
62
+ };
48
63
  }
49
64
  /**
50
65
  * ADR-PIPELINE-026: Synthesize financial data from ALL sources:
@@ -1 +1 @@
1
- {"version":3,"file":"simulation-renderers.d.ts","sourceRoot":"","sources":["../../src/synthesis/simulation-renderers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simulation-renderers.d.ts","sourceRoot":"","sources":["../../src/synthesis/simulation-renderers.ts"],"names":[],"mappings":"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"}
@@ -383,6 +383,11 @@ export function synthesizeFinancials(simData, platformResults, query) {
383
383
  const fm = (safeGet(simData, 'financial_model') ?? safeGet(simData, 'cost_model') ?? safeGet(simData, 'financials'));
384
384
  // Collect from all possible agent sources — not just costops
385
385
  const financialFields = {};
386
+ // ADR-PIPELINE-096 D3 — per-metric source attribution. Keys parallel
387
+ // financialFields. Populated by Source 0 (the agent-claim-registry) only
388
+ // when a registered agent returns a value; otherwise stays empty for that
389
+ // metric, which downstream callers interpret as "fell through to heuristic".
390
+ const financialSources = {};
386
391
  const financialKeys = [
387
392
  ['budget', 'budget', 'investment', 'total_investment', 'allocated_budget', 'total_budget', 'estimated_cost', 'total_cost', 'project_cost'],
388
393
  ['roi', 'roi', 'expected_roi', 'return_on_investment', 'projected_roi'],
@@ -391,6 +396,13 @@ export function synthesizeFinancials(simData, platformResults, query) {
391
396
  ['revenue', 'projected_revenue', 'revenue_impact', 'annual_value', 'annual_savings', 'savings'],
392
397
  ['costSavings', 'cost_savings', 'cost_reduction', 'savings', 'efficiency_gain'],
393
398
  ];
399
+ // ── Source 0: ADR-096 D3 agent-claim-registry — canonical sourcing ─────
400
+ // The registry is the single declarative table of {metric → agent →
401
+ // response_path}. When a registered agent's response carries the value at
402
+ // the documented path, the renderer uses it AND tags the cell with
403
+ // `src=domain/agent`. Higher-priority agents win. Lower-priority agents
404
+ // contribute to D3 part 2's triangulation surface.
405
+ resolveCanonicalClaims(platformResults, financialFields, financialSources);
394
406
  // Source 1: simData direct fields
395
407
  for (const [key, ...aliases] of financialKeys) {
396
408
  if (!key)
@@ -454,6 +466,22 @@ export function synthesizeFinancials(simData, platformResults, query) {
454
466
  if (!hasRealData) {
455
467
  return estimateFinancialsFromQuery(query);
456
468
  }
469
+ // ADR-096 D3 — surface the per-metric source attribution map. Only emit
470
+ // the `sources` field when at least one metric was resolved through the
471
+ // registry; existing consumers that don't read `sources` see no change.
472
+ const sources = {};
473
+ if (financialSources['budget'])
474
+ sources.budget = financialSources['budget'];
475
+ if (financialSources['roi'])
476
+ sources.roi = financialSources['roi'];
477
+ if (financialSources['npv'])
478
+ sources.npv = financialSources['npv'];
479
+ if (financialSources['payback'])
480
+ sources.payback = financialSources['payback'];
481
+ if (financialSources['revenue'])
482
+ sources.revenue = financialSources['revenue'];
483
+ if (financialSources['costSavings'])
484
+ sources.costSavings = financialSources['costSavings'];
457
485
  return {
458
486
  budget: financialFields['budget'] ?? '',
459
487
  roi: financialFields['roi'] ?? '',
@@ -463,8 +491,81 @@ export function synthesizeFinancials(simData, platformResults, query) {
463
491
  costSavings: financialFields['costSavings'] ?? '',
464
492
  hasData: true,
465
493
  isEstimated: false,
494
+ ...(Object.keys(sources).length > 0 ? { sources } : {}),
466
495
  };
467
496
  }
497
+ /**
498
+ * ADR-PIPELINE-096 D3 — Source 0 stage of synthesizeFinancials.
499
+ *
500
+ * Consults the agent-claim-registry to resolve the four headline metrics
501
+ * (Investment, ROI, NPV, Payback) plus Savings/Revenue when a canonical
502
+ * agent supplied a value. Mutates the passed-in dictionaries in place;
503
+ * never overrides a value already set by an earlier source.
504
+ *
505
+ * Maps registry `kind` values onto the FinancialData field names:
506
+ * investment → budget
507
+ * roi → roi
508
+ * npv → npv
509
+ * payback → payback
510
+ * savings → revenue AND costSavings (both render the same metric)
511
+ */
512
+ function resolveCanonicalClaims(platformResults, financialFields, financialSources) {
513
+ // Lazy require to avoid pulling the registry in environments that don't
514
+ // need it (e.g. legacy direct callers of synthesizeFinancials).
515
+ let registry = null;
516
+ try {
517
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
518
+ registry = require('./agent-claim-registry.js');
519
+ }
520
+ catch {
521
+ return;
522
+ }
523
+ if (!registry)
524
+ return;
525
+ // Adapt AgentResult[] (the existing simulation-renderers shape) onto the
526
+ // registry's AgentResultLike shape. The two are structurally compatible.
527
+ const adapted = platformResults.map(r => ({
528
+ domain: r.domain ?? '',
529
+ agent: r.agent ?? '',
530
+ status: r.status,
531
+ response: r.response,
532
+ }));
533
+ const writeIfEmpty = (key, claim) => {
534
+ if (financialFields[key])
535
+ return; // earlier source already won
536
+ if (!claim)
537
+ return;
538
+ financialFields[key] = formatClaimValue(key, claim.value, claim.methodology);
539
+ financialSources[key] = claim.source;
540
+ };
541
+ writeIfEmpty('budget', registry.resolveClaim('investment', adapted));
542
+ writeIfEmpty('roi', registry.resolveClaim('roi', adapted));
543
+ writeIfEmpty('npv', registry.resolveClaim('npv', adapted));
544
+ writeIfEmpty('payback', registry.resolveClaim('payback', adapted));
545
+ // Savings maps to BOTH revenue and costSavings (the document templates
546
+ // render annual savings as either depending on context; we populate both
547
+ // so neither cell renders the heuristic when a canonical agent answered).
548
+ const savingsClaim = registry.resolveClaim('savings', adapted);
549
+ writeIfEmpty('revenue', savingsClaim);
550
+ writeIfEmpty('costSavings', savingsClaim);
551
+ }
552
+ /** Format a registry-resolved value into the renderer's expected string shape. */
553
+ function formatClaimValue(key, value, methodology) {
554
+ if (typeof value === 'string')
555
+ return value;
556
+ // Numeric: format per metric kind.
557
+ const fmt = (n) => n >= 1_000_000 ? `$${(n / 1_000_000).toFixed(1)}M` : `$${(n / 1000).toFixed(0)}K`;
558
+ if (key === 'roi') {
559
+ // ROI is typically a percentage. Fmt as integer percent.
560
+ return `${Math.round(value)}% projected (${methodology})`;
561
+ }
562
+ if (key === 'payback') {
563
+ // Payback in months.
564
+ return `${Math.round(value)} months (${methodology})`;
565
+ }
566
+ // Currency fields (budget, npv, revenue, costSavings).
567
+ return `${fmt(value)} (${methodology})`;
568
+ }
468
569
  /**
469
570
  * ADR-PIPELINE-025 §7a: Generate financial estimates from query context.
470
571
  * Uses employee count, industry, and scope to produce rough-order-of-magnitude numbers.