@aibvf/core 0.3.1 → 0.3.3
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/LICENSE +30 -30
- package/README.md +51 -51
- package/dist/diagnose.d.ts +40 -0
- package/dist/diagnose.d.ts.map +1 -0
- package/dist/diagnose.js +217 -0
- package/dist/diagnose.js.map +1 -0
- package/dist/diagnose.test.d.ts +2 -0
- package/dist/diagnose.test.d.ts.map +1 -0
- package/dist/diagnose.test.js +93 -0
- package/dist/diagnose.test.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +1 -1
- package/dist/schema.js +1 -1
- package/dist/schema.js.map +1 -1
- package/dist/types.d.ts +44 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +45 -26
- package/dist/inspect-node.d.ts +0 -28
- package/dist/inspect-node.d.ts.map +0 -1
- package/dist/inspect-node.js +0 -89
- package/dist/inspect-node.js.map +0 -1
- package/dist/run-trace.d.ts +0 -18
- package/dist/run-trace.d.ts.map +0 -1
- package/dist/run-trace.js +0 -112
- package/dist/run-trace.js.map +0 -1
- package/dist/templates.d.ts +0 -5
- package/dist/templates.d.ts.map +0 -1
- package/dist/templates.js +0 -211
- package/dist/templates.js.map +0 -1
- package/dist/value-trace.d.ts +0 -71
- package/dist/value-trace.d.ts.map +0 -1
- package/dist/value-trace.js +0 -119
- package/dist/value-trace.js.map +0 -1
package/dist/templates.js
DELETED
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
// Industry templates for the AI Value Trace.
|
|
2
|
-
//
|
|
3
|
-
// Each template is a starter graph: the canonical board outcomes, the named
|
|
4
|
-
// business initiatives that move them, the operating metrics that instrument
|
|
5
|
-
// the initiatives, the function nodes (reused across all templates from the
|
|
6
|
-
// existing BVF function enum), the AI capabilities that automate the
|
|
7
|
-
// functions, the named human accountability layers, and the vendor component
|
|
8
|
-
// leaves an SCE walks into a meeting with.
|
|
9
|
-
//
|
|
10
|
-
// Templates are intentionally small (one or two canonical paths per board
|
|
11
|
-
// outcome). They are starting points. An SCE adds account-specific edges
|
|
12
|
-
// with propose_edge during a live Trace.
|
|
13
|
-
//
|
|
14
|
-
// Sources are cited by name and year. Where a benchmark range is implied,
|
|
15
|
-
// the canonical source is named so the SCE can hand the citation to the
|
|
16
|
-
// CFO during the conversation.
|
|
17
|
-
// Shared nodes reused across all templates.
|
|
18
|
-
const SHARED_FUNCTION_NODES = [
|
|
19
|
-
{ id: 'function.finance', type: 'Function', label: 'Finance' },
|
|
20
|
-
{ id: 'function.hr', type: 'Function', label: 'HR and workforce' },
|
|
21
|
-
{ id: 'function.sales', type: 'Function', label: 'Sales and revenue' },
|
|
22
|
-
{ id: 'function.supply', type: 'Function', label: 'Supply chain' },
|
|
23
|
-
{ id: 'function.cx', type: 'Function', label: 'Customer experience' },
|
|
24
|
-
{ id: 'function.risk', type: 'Function', label: 'Risk and compliance' },
|
|
25
|
-
{ id: 'function.it', type: 'Function', label: 'IT and platform' },
|
|
26
|
-
{ id: 'function.rd', type: 'Function', label: 'R and D / innovation' },
|
|
27
|
-
];
|
|
28
|
-
const SHARED_ACCOUNTABILITY_NODES = [
|
|
29
|
-
{ id: 'accountability.chief-ai-officer', type: 'AccountabilityLayer', label: 'Chief AI Officer' },
|
|
30
|
-
{ id: 'accountability.cfo', type: 'AccountabilityLayer', label: 'Chief Financial Officer' },
|
|
31
|
-
{ id: 'accountability.cro', type: 'AccountabilityLayer', label: 'Chief Risk Officer' },
|
|
32
|
-
{ id: 'accountability.coo', type: 'AccountabilityLayer', label: 'Chief Operating Officer' },
|
|
33
|
-
{ id: 'accountability.cdo', type: 'AccountabilityLayer', label: 'Chief Data Officer' },
|
|
34
|
-
{ id: 'accountability.bu-head', type: 'AccountabilityLayer', label: 'Business unit head' },
|
|
35
|
-
];
|
|
36
|
-
// Vendor leaves anchored in the five target-employer product taxonomies as at
|
|
37
|
-
// May 2026. Add to this list as new vendor moves land. The Trace is most
|
|
38
|
-
// credible when an SCE at any of these vendors sees their own product as a leaf.
|
|
39
|
-
const SHARED_VENDOR_NODES = [
|
|
40
|
-
{ id: 'vendor.netapp-afx', type: 'VendorComponent', label: 'NetApp AFX exascale storage for AI' },
|
|
41
|
-
{ id: 'vendor.netapp-ontap-aws', type: 'VendorComponent', label: 'NetApp ONTAP native on AWS' },
|
|
42
|
-
{ id: 'vendor.servicenow-now-assist', type: 'VendorComponent', label: 'ServiceNow Now Assist' },
|
|
43
|
-
{ id: 'vendor.salesforce-agentforce', type: 'VendorComponent', label: 'Salesforce Agentforce' },
|
|
44
|
-
{ id: 'vendor.microsoft-copilot', type: 'VendorComponent', label: 'Microsoft Copilot' },
|
|
45
|
-
{ id: 'vendor.microsoft-agent-365', type: 'VendorComponent', label: 'Microsoft Agent 365' },
|
|
46
|
-
{ id: 'vendor.azure-ai-foundry', type: 'VendorComponent', label: 'Azure AI Foundry' },
|
|
47
|
-
];
|
|
48
|
-
// ----------------- Financial Services template -----------------------------
|
|
49
|
-
const FS_NODES = [
|
|
50
|
-
// Board outcomes that matter most in FS in 2026
|
|
51
|
-
{ id: 'board.fs.risk-adjusted-return', type: 'BoardOutcome', label: 'Risk-adjusted return on capital',
|
|
52
|
-
industry_scope: ['financial'],
|
|
53
|
-
evidence: [{ source: 'McKinsey Global Banking Annual Review', year: 2026 }] },
|
|
54
|
-
{ id: 'board.fs.cost-income-ratio', type: 'BoardOutcome', label: 'Cost to income ratio',
|
|
55
|
-
industry_scope: ['financial'],
|
|
56
|
-
evidence: [{ source: 'KPMG Pulse of Banking', year: 2026 }] },
|
|
57
|
-
{ id: 'board.fs.fraud-loss-rate', type: 'BoardOutcome', label: 'Fraud loss rate, basis points of transaction volume',
|
|
58
|
-
industry_scope: ['financial'],
|
|
59
|
-
evidence: [{ source: 'Deloitte Financial Crime Survey', year: 2026 }] },
|
|
60
|
-
// Business initiatives that move FS board outcomes
|
|
61
|
-
{ id: 'initiative.fs.next-best-action', type: 'BusinessInitiative', label: 'Next best action for relationship managers',
|
|
62
|
-
industry_scope: ['financial'] },
|
|
63
|
-
{ id: 'initiative.fs.fraud-modernisation', type: 'BusinessInitiative', label: 'Real-time fraud modernisation',
|
|
64
|
-
industry_scope: ['financial'] },
|
|
65
|
-
{ id: 'initiative.fs.servicing-automation', type: 'BusinessInitiative', label: 'Servicing automation across retail and SME',
|
|
66
|
-
industry_scope: ['financial'] },
|
|
67
|
-
// Operating metrics that instrument FS initiatives
|
|
68
|
-
{ id: 'metric.fs.advisor-productivity', type: 'OperatingMetric', label: 'Adviser productivity, revenue per FTE',
|
|
69
|
-
function_scope: ['sales'] },
|
|
70
|
-
{ id: 'metric.fs.fraud-mttd', type: 'OperatingMetric', label: 'Fraud mean time to detection, seconds',
|
|
71
|
-
function_scope: ['risk'] },
|
|
72
|
-
{ id: 'metric.fs.servicing-handle-time', type: 'OperatingMetric', label: 'Servicing handle time, seconds per interaction',
|
|
73
|
-
function_scope: ['cx'] },
|
|
74
|
-
// AI capabilities by function
|
|
75
|
-
{ id: 'capability.gen2.advisor-copilot', type: 'AICapability', label: 'GenAI adviser copilot',
|
|
76
|
-
ai_tier: 'gen2', function_scope: ['sales'] },
|
|
77
|
-
{ id: 'capability.gen3.fraud-agent', type: 'AICapability', label: 'Agentic fraud triage and case management',
|
|
78
|
-
ai_tier: 'gen3', function_scope: ['risk'] },
|
|
79
|
-
{ id: 'capability.gen2.servicing-copilot', type: 'AICapability', label: 'GenAI servicing copilot',
|
|
80
|
-
ai_tier: 'gen2', function_scope: ['cx'] },
|
|
81
|
-
];
|
|
82
|
-
const FS_EDGES = [
|
|
83
|
-
// Initiative -> Board outcome
|
|
84
|
-
{ from: 'initiative.fs.next-best-action', to: 'board.fs.risk-adjusted-return', relation: 'moves',
|
|
85
|
-
confidence: 70,
|
|
86
|
-
evidence: [{ source: 'McKinsey Global Banking Annual Review', year: 2026 }] },
|
|
87
|
-
{ from: 'initiative.fs.fraud-modernisation', to: 'board.fs.fraud-loss-rate', relation: 'moves',
|
|
88
|
-
confidence: 80,
|
|
89
|
-
evidence: [{ source: 'Deloitte Financial Crime Survey', year: 2026 }] },
|
|
90
|
-
{ from: 'initiative.fs.servicing-automation', to: 'board.fs.cost-income-ratio', relation: 'moves',
|
|
91
|
-
confidence: 75,
|
|
92
|
-
evidence: [{ source: 'KPMG Pulse of Banking', year: 2026 }] },
|
|
93
|
-
// Operating metric -> Initiative
|
|
94
|
-
{ from: 'metric.fs.advisor-productivity', to: 'initiative.fs.next-best-action', relation: 'instruments', confidence: 75 },
|
|
95
|
-
{ from: 'metric.fs.fraud-mttd', to: 'initiative.fs.fraud-modernisation', relation: 'instruments', confidence: 85 },
|
|
96
|
-
{ from: 'metric.fs.servicing-handle-time', to: 'initiative.fs.servicing-automation', relation: 'instruments', confidence: 80 },
|
|
97
|
-
// Function -> Operating metric (function tracks the metric)
|
|
98
|
-
{ from: 'function.sales', to: 'metric.fs.advisor-productivity', relation: 'tracks', confidence: 85 },
|
|
99
|
-
{ from: 'function.risk', to: 'metric.fs.fraud-mttd', relation: 'tracks', confidence: 90 },
|
|
100
|
-
{ from: 'function.cx', to: 'metric.fs.servicing-handle-time', relation: 'tracks', confidence: 88 },
|
|
101
|
-
// AI capability -> Function
|
|
102
|
-
{ from: 'capability.gen2.advisor-copilot', to: 'function.sales', relation: 'automates', confidence: 70 },
|
|
103
|
-
{ from: 'capability.gen3.fraud-agent', to: 'function.risk', relation: 'automates', confidence: 75 },
|
|
104
|
-
{ from: 'capability.gen2.servicing-copilot', to: 'function.cx', relation: 'automates', confidence: 78 },
|
|
105
|
-
// Accountability -> AI capability (gates)
|
|
106
|
-
{ from: 'accountability.chief-ai-officer', to: 'capability.gen2.advisor-copilot', relation: 'gates', confidence: 90 },
|
|
107
|
-
{ from: 'accountability.cro', to: 'capability.gen3.fraud-agent', relation: 'gates', confidence: 95 },
|
|
108
|
-
{ from: 'accountability.coo', to: 'capability.gen2.servicing-copilot', relation: 'gates', confidence: 85 },
|
|
109
|
-
// Vendor -> AI capability (delivers)
|
|
110
|
-
{ from: 'vendor.salesforce-agentforce', to: 'capability.gen2.advisor-copilot', relation: 'delivers', confidence: 80 },
|
|
111
|
-
{ from: 'vendor.servicenow-now-assist', to: 'capability.gen2.servicing-copilot', relation: 'delivers', confidence: 78 },
|
|
112
|
-
{ from: 'vendor.microsoft-copilot', to: 'capability.gen2.servicing-copilot', relation: 'delivers', confidence: 72 },
|
|
113
|
-
{ from: 'vendor.azure-ai-foundry', to: 'capability.gen3.fraud-agent', relation: 'delivers', confidence: 76 },
|
|
114
|
-
];
|
|
115
|
-
// ----------------- Public Sector + Sovereign AI template -------------------
|
|
116
|
-
const PS_NODES = [
|
|
117
|
-
{ id: 'board.ps.cost-per-citizen', type: 'BoardOutcome', label: 'Cost per citizen served',
|
|
118
|
-
industry_scope: ['public_sector'],
|
|
119
|
-
evidence: [{ source: 'OECD Public Sector Productivity Outlook', year: 2026 }] },
|
|
120
|
-
{ id: 'board.ps.sovereignty', type: 'BoardOutcome', label: 'Data and compute sovereignty position',
|
|
121
|
-
industry_scope: ['public_sector'],
|
|
122
|
-
evidence: [{ source: 'European Commission InvestAI', year: 2026 }] },
|
|
123
|
-
{ id: 'board.ps.service-trust', type: 'BoardOutcome', label: 'Public trust in digital services',
|
|
124
|
-
industry_scope: ['public_sector'],
|
|
125
|
-
evidence: [{ source: 'Edelman Trust Barometer', year: 2026 }] },
|
|
126
|
-
{ id: 'initiative.ps.case-automation', type: 'BusinessInitiative', label: 'End-to-end case automation, benefits and licences',
|
|
127
|
-
industry_scope: ['public_sector'] },
|
|
128
|
-
{ id: 'initiative.ps.sovereign-cloud', type: 'BusinessInitiative', label: 'Sovereign cloud and AI compute build',
|
|
129
|
-
industry_scope: ['public_sector'] },
|
|
130
|
-
{ id: 'metric.ps.case-cycle-time', type: 'OperatingMetric', label: 'Case cycle time, days', function_scope: ['cx'] },
|
|
131
|
-
{ id: 'metric.ps.sovereign-uptime', type: 'OperatingMetric', label: 'Sovereign workload uptime in country', function_scope: ['it'] },
|
|
132
|
-
{ id: 'capability.gen2.case-copilot', type: 'AICapability', label: 'GenAI case officer copilot', ai_tier: 'gen2', function_scope: ['cx'] },
|
|
133
|
-
{ id: 'capability.gen3.sovereign-fabric', type: 'AICapability', label: 'Agentic data fabric for sovereign AI', ai_tier: 'gen3', function_scope: ['it'] },
|
|
134
|
-
];
|
|
135
|
-
const PS_EDGES = [
|
|
136
|
-
{ from: 'initiative.ps.case-automation', to: 'board.ps.cost-per-citizen', relation: 'moves', confidence: 75,
|
|
137
|
-
evidence: [{ source: 'OECD Public Sector Productivity Outlook', year: 2026 }] },
|
|
138
|
-
{ from: 'initiative.ps.case-automation', to: 'board.ps.service-trust', relation: 'moves', confidence: 60 },
|
|
139
|
-
{ from: 'initiative.ps.sovereign-cloud', to: 'board.ps.sovereignty', relation: 'moves', confidence: 85,
|
|
140
|
-
evidence: [{ source: 'European Commission InvestAI', year: 2026 }] },
|
|
141
|
-
{ from: 'metric.ps.case-cycle-time', to: 'initiative.ps.case-automation', relation: 'instruments', confidence: 80 },
|
|
142
|
-
{ from: 'metric.ps.sovereign-uptime', to: 'initiative.ps.sovereign-cloud', relation: 'instruments', confidence: 78 },
|
|
143
|
-
{ from: 'function.cx', to: 'metric.ps.case-cycle-time', relation: 'tracks', confidence: 85 },
|
|
144
|
-
{ from: 'function.it', to: 'metric.ps.sovereign-uptime', relation: 'tracks', confidence: 88 },
|
|
145
|
-
{ from: 'capability.gen2.case-copilot', to: 'function.cx', relation: 'automates', confidence: 72 },
|
|
146
|
-
{ from: 'capability.gen3.sovereign-fabric', to: 'function.it', relation: 'automates', confidence: 70 },
|
|
147
|
-
{ from: 'accountability.coo', to: 'capability.gen2.case-copilot', relation: 'gates', confidence: 85 },
|
|
148
|
-
{ from: 'accountability.chief-ai-officer', to: 'capability.gen3.sovereign-fabric', relation: 'gates', confidence: 90 },
|
|
149
|
-
{ from: 'vendor.microsoft-copilot', to: 'capability.gen2.case-copilot', relation: 'delivers', confidence: 70 },
|
|
150
|
-
{ from: 'vendor.netapp-afx', to: 'capability.gen3.sovereign-fabric', relation: 'delivers', confidence: 82 },
|
|
151
|
-
{ from: 'vendor.netapp-ontap-aws', to: 'capability.gen3.sovereign-fabric', relation: 'delivers', confidence: 75 },
|
|
152
|
-
];
|
|
153
|
-
// ----------------- Healthcare template -------------------------------------
|
|
154
|
-
const HC_NODES = [
|
|
155
|
-
{ id: 'board.hc.cost-per-episode', type: 'BoardOutcome', label: 'Cost per care episode',
|
|
156
|
-
industry_scope: ['healthcare'], evidence: [{ source: 'Deloitte Global Healthcare Outlook', year: 2026 }] },
|
|
157
|
-
{ id: 'board.hc.clinical-quality', type: 'BoardOutcome', label: 'Clinical quality, adjusted readmission rate',
|
|
158
|
-
industry_scope: ['healthcare'], evidence: [{ source: 'NHS Digital Quality Account', year: 2026 }] },
|
|
159
|
-
{ id: 'initiative.hc.clinical-documentation', type: 'BusinessInitiative', label: 'Ambient clinical documentation',
|
|
160
|
-
industry_scope: ['healthcare'] },
|
|
161
|
-
{ id: 'initiative.hc.prior-auth', type: 'BusinessInitiative', label: 'Prior authorisation automation',
|
|
162
|
-
industry_scope: ['healthcare'] },
|
|
163
|
-
{ id: 'metric.hc.clinician-time-saved', type: 'OperatingMetric', label: 'Clinician documentation time, minutes per shift', function_scope: ['hr'] },
|
|
164
|
-
{ id: 'metric.hc.auth-cycle-time', type: 'OperatingMetric', label: 'Prior authorisation cycle time, hours', function_scope: ['risk'] },
|
|
165
|
-
{ id: 'capability.gen2.clinical-scribe', type: 'AICapability', label: 'Ambient GenAI scribe', ai_tier: 'gen2', function_scope: ['hr'] },
|
|
166
|
-
{ id: 'capability.gen3.auth-agent', type: 'AICapability', label: 'Agentic prior authorisation', ai_tier: 'gen3', function_scope: ['risk'] },
|
|
167
|
-
];
|
|
168
|
-
const HC_EDGES = [
|
|
169
|
-
{ from: 'initiative.hc.clinical-documentation', to: 'board.hc.clinical-quality', relation: 'moves', confidence: 70 },
|
|
170
|
-
{ from: 'initiative.hc.clinical-documentation', to: 'board.hc.cost-per-episode', relation: 'moves', confidence: 65 },
|
|
171
|
-
{ from: 'initiative.hc.prior-auth', to: 'board.hc.cost-per-episode', relation: 'moves', confidence: 75 },
|
|
172
|
-
{ from: 'metric.hc.clinician-time-saved', to: 'initiative.hc.clinical-documentation', relation: 'instruments', confidence: 82 },
|
|
173
|
-
{ from: 'metric.hc.auth-cycle-time', to: 'initiative.hc.prior-auth', relation: 'instruments', confidence: 80 },
|
|
174
|
-
{ from: 'function.hr', to: 'metric.hc.clinician-time-saved', relation: 'tracks', confidence: 80 },
|
|
175
|
-
{ from: 'function.risk', to: 'metric.hc.auth-cycle-time', relation: 'tracks', confidence: 85 },
|
|
176
|
-
{ from: 'capability.gen2.clinical-scribe', to: 'function.hr', relation: 'automates', confidence: 75 },
|
|
177
|
-
{ from: 'capability.gen3.auth-agent', to: 'function.risk', relation: 'automates', confidence: 70 },
|
|
178
|
-
{ from: 'accountability.cdo', to: 'capability.gen2.clinical-scribe', relation: 'gates', confidence: 85 },
|
|
179
|
-
{ from: 'accountability.chief-ai-officer', to: 'capability.gen3.auth-agent', relation: 'gates', confidence: 90 },
|
|
180
|
-
{ from: 'vendor.microsoft-copilot', to: 'capability.gen2.clinical-scribe', relation: 'delivers', confidence: 78 },
|
|
181
|
-
{ from: 'vendor.salesforce-agentforce', to: 'capability.gen3.auth-agent', relation: 'delivers', confidence: 70 },
|
|
182
|
-
{ from: 'vendor.servicenow-now-assist', to: 'capability.gen3.auth-agent', relation: 'delivers', confidence: 72 },
|
|
183
|
-
];
|
|
184
|
-
// ----------------- Template registry ---------------------------------------
|
|
185
|
-
export function getIndustryTemplate(industry) {
|
|
186
|
-
const base = {
|
|
187
|
-
trace_version: '0.3',
|
|
188
|
-
industry,
|
|
189
|
-
nodes: [...SHARED_FUNCTION_NODES, ...SHARED_ACCOUNTABILITY_NODES, ...SHARED_VENDOR_NODES],
|
|
190
|
-
edges: [],
|
|
191
|
-
};
|
|
192
|
-
switch (industry) {
|
|
193
|
-
case 'financial':
|
|
194
|
-
base.nodes.push(...FS_NODES);
|
|
195
|
-
base.edges.push(...FS_EDGES);
|
|
196
|
-
return base;
|
|
197
|
-
case 'public_sector':
|
|
198
|
-
base.nodes.push(...PS_NODES);
|
|
199
|
-
base.edges.push(...PS_EDGES);
|
|
200
|
-
return base;
|
|
201
|
-
case 'healthcare':
|
|
202
|
-
base.nodes.push(...HC_NODES);
|
|
203
|
-
base.edges.push(...HC_EDGES);
|
|
204
|
-
return base;
|
|
205
|
-
default:
|
|
206
|
-
// For industries without a v0.3 template yet, return the shared scaffold.
|
|
207
|
-
return base;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
export const TEMPLATED_INDUSTRIES = ['financial', 'public_sector', 'healthcare'];
|
|
211
|
-
//# sourceMappingURL=templates.js.map
|
package/dist/templates.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
|
package/dist/value-trace.d.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import type { FunctionId, AiTier, Industry } from './types.js';
|
|
2
|
-
export type NodeType = 'BoardOutcome' | 'BusinessInitiative' | 'OperatingMetric' | 'Function' | 'AICapability' | 'AccountabilityLayer' | 'VendorComponent';
|
|
3
|
-
export type EdgeRelation = 'moves' | 'instruments' | 'tracks' | 'automates' | 'gates' | 'delivers';
|
|
4
|
-
export interface Citation {
|
|
5
|
-
source: string;
|
|
6
|
-
year: number;
|
|
7
|
-
title?: string;
|
|
8
|
-
url?: string;
|
|
9
|
-
}
|
|
10
|
-
export interface TraceNode {
|
|
11
|
-
id: string;
|
|
12
|
-
type: NodeType;
|
|
13
|
-
label: string;
|
|
14
|
-
industry_scope?: Industry[];
|
|
15
|
-
function_scope?: FunctionId[];
|
|
16
|
-
ai_tier?: AiTier;
|
|
17
|
-
evidence?: Citation[];
|
|
18
|
-
notes?: string;
|
|
19
|
-
}
|
|
20
|
-
export interface TraceEdge {
|
|
21
|
-
from: string;
|
|
22
|
-
to: string;
|
|
23
|
-
relation: EdgeRelation;
|
|
24
|
-
confidence?: number;
|
|
25
|
-
evidence?: Citation[];
|
|
26
|
-
hypothesis?: boolean;
|
|
27
|
-
}
|
|
28
|
-
export interface AccountContext {
|
|
29
|
-
name?: string;
|
|
30
|
-
revenue_band?: 'sub_500m' | '500m_2b' | '2b_10b' | '10b_plus';
|
|
31
|
-
geography?: string;
|
|
32
|
-
vendor_stack?: string[];
|
|
33
|
-
}
|
|
34
|
-
export interface ValueTraceGraph {
|
|
35
|
-
trace_version: '0.3';
|
|
36
|
-
industry: Industry;
|
|
37
|
-
account_context?: AccountContext;
|
|
38
|
-
nodes: TraceNode[];
|
|
39
|
-
edges: TraceEdge[];
|
|
40
|
-
}
|
|
41
|
-
export interface TracePath {
|
|
42
|
-
id: string;
|
|
43
|
-
nodes: string[];
|
|
44
|
-
edges: string[];
|
|
45
|
-
path_confidence: number;
|
|
46
|
-
accountability?: string;
|
|
47
|
-
gating_issues: string[];
|
|
48
|
-
reframing_question: string;
|
|
49
|
-
}
|
|
50
|
-
export interface TraceResult {
|
|
51
|
-
industry: Industry;
|
|
52
|
-
start_node: string;
|
|
53
|
-
paths: TracePath[];
|
|
54
|
-
account_context?: AccountContext;
|
|
55
|
-
generated_at: string;
|
|
56
|
-
}
|
|
57
|
-
export declare function edgeFingerprint(e: TraceEdge): string;
|
|
58
|
-
export declare function findOutgoing(graph: ValueTraceGraph, nodeId: string): TraceEdge[];
|
|
59
|
-
export declare function findIncoming(graph: ValueTraceGraph, nodeId: string): TraceEdge[];
|
|
60
|
-
export declare function getNode(graph: ValueTraceGraph, nodeId: string): TraceNode | undefined;
|
|
61
|
-
/**
|
|
62
|
-
* Depth-first walk from start node down through the canonical relation chain:
|
|
63
|
-
* BoardOutcome <-moves- BusinessInitiative <-instruments- OperatingMetric
|
|
64
|
-
* Function <-automates- AICapability <-delivers- VendorComponent
|
|
65
|
-
* AccountabilityLayer -gates- AICapability
|
|
66
|
-
*
|
|
67
|
-
* Returns at most maxPaths complete paths ending at AICapability or
|
|
68
|
-
* VendorComponent leaves.
|
|
69
|
-
*/
|
|
70
|
-
export declare function walkPaths(graph: ValueTraceGraph, startId: string, maxPaths?: number, maxDepth?: number): TracePath[];
|
|
71
|
-
//# sourceMappingURL=value-trace.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value-trace.d.ts","sourceRoot":"","sources":["../src/value-trace.ts"],"names":[],"mappings":"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"}
|
package/dist/value-trace.js
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
// AI Value Trace, graph data model and traversal engine.
|
|
2
|
-
//
|
|
3
|
-
// Mirrors the JSON schema at spec/value-trace.schema.json. Provides the
|
|
4
|
-
// data types, a minimal in-memory graph engine, and starter industry
|
|
5
|
-
// templates that run_trace draws on.
|
|
6
|
-
//
|
|
7
|
-
// Design choices:
|
|
8
|
-
// - Directed multi-graph, multiple edges allowed between the same node pair
|
|
9
|
-
// with different relations.
|
|
10
|
-
// - Node ids are dot-namespaced strings (board.revenue-growth, function.cx).
|
|
11
|
-
// - Edge confidence comes from the existing BVF four-pillar engine when a
|
|
12
|
-
// customer initiative is being scored. Template edges carry a static
|
|
13
|
-
// prior confidence drawn from published benchmarks.
|
|
14
|
-
// - No external dependencies. Same constraint as the rest of @aibvf/core.
|
|
15
|
-
// ---------- Graph helpers ----------------------------------------------------
|
|
16
|
-
export function edgeFingerprint(e) {
|
|
17
|
-
return `${e.from}->${e.relation}->${e.to}`;
|
|
18
|
-
}
|
|
19
|
-
export function findOutgoing(graph, nodeId) {
|
|
20
|
-
return graph.edges.filter((e) => e.from === nodeId);
|
|
21
|
-
}
|
|
22
|
-
export function findIncoming(graph, nodeId) {
|
|
23
|
-
return graph.edges.filter((e) => e.to === nodeId);
|
|
24
|
-
}
|
|
25
|
-
export function getNode(graph, nodeId) {
|
|
26
|
-
return graph.nodes.find((n) => n.id === nodeId);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Depth-first walk from start node down through the canonical relation chain:
|
|
30
|
-
* BoardOutcome <-moves- BusinessInitiative <-instruments- OperatingMetric
|
|
31
|
-
* Function <-automates- AICapability <-delivers- VendorComponent
|
|
32
|
-
* AccountabilityLayer -gates- AICapability
|
|
33
|
-
*
|
|
34
|
-
* Returns at most maxPaths complete paths ending at AICapability or
|
|
35
|
-
* VendorComponent leaves.
|
|
36
|
-
*/
|
|
37
|
-
export function walkPaths(graph, startId, maxPaths = 6, maxDepth = 8) {
|
|
38
|
-
const results = [];
|
|
39
|
-
function visit(currentId, nodes, edges, depth) {
|
|
40
|
-
if (results.length >= maxPaths || depth > maxDepth)
|
|
41
|
-
return;
|
|
42
|
-
const node = getNode(graph, currentId);
|
|
43
|
-
if (!node)
|
|
44
|
-
return;
|
|
45
|
-
// Edges to follow depend on node type. We follow the "downward" relation
|
|
46
|
-
// chain so the SCE sees a board outcome flow into an AICapability.
|
|
47
|
-
const downEdges = graph.edges.filter((e) => isDownward(node.type, e, currentId));
|
|
48
|
-
if (downEdges.length === 0) {
|
|
49
|
-
// Leaf reached. Capture path if it terminates at a meaningful leaf.
|
|
50
|
-
if (node.type === 'AICapability' || node.type === 'VendorComponent') {
|
|
51
|
-
results.push(buildPath(graph, nodes, edges));
|
|
52
|
-
}
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
for (const e of downEdges) {
|
|
56
|
-
const next = e.from === currentId ? e.to : e.from;
|
|
57
|
-
if (nodes.includes(next))
|
|
58
|
-
continue; // avoid cycles
|
|
59
|
-
visit(next, [...nodes, next], [...edges, edgeFingerprint(e)], depth + 1);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
visit(startId, [startId], [], 0);
|
|
63
|
-
return results;
|
|
64
|
-
}
|
|
65
|
-
function isDownward(currentType, edge, currentId) {
|
|
66
|
-
// We treat the relation chain as oriented from a Board outcome down to a
|
|
67
|
-
// vendor capability. Each relation has a canonical from-to pair.
|
|
68
|
-
const orient = {
|
|
69
|
-
moves: ['BusinessInitiative', 'BoardOutcome'],
|
|
70
|
-
instruments: ['OperatingMetric', 'BusinessInitiative'],
|
|
71
|
-
tracks: ['Function', 'OperatingMetric'],
|
|
72
|
-
automates: ['AICapability', 'Function'],
|
|
73
|
-
gates: ['AccountabilityLayer', 'AICapability'],
|
|
74
|
-
delivers: ['VendorComponent', 'AICapability'],
|
|
75
|
-
};
|
|
76
|
-
const [src, dst] = orient[edge.relation];
|
|
77
|
-
// Walking downward, we want edges whose dst matches the current type, then
|
|
78
|
-
// we follow to the src.
|
|
79
|
-
if (edge.to === currentId && currentType === dst)
|
|
80
|
-
return true;
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
function buildPath(graph, nodes, edges) {
|
|
84
|
-
// Path confidence = average of edge confidences along the path, defaulting
|
|
85
|
-
// to 60 when an edge has no explicit confidence.
|
|
86
|
-
const edgeConfidences = edges.map((fp) => {
|
|
87
|
-
const e = graph.edges.find((x) => edgeFingerprint(x) === fp);
|
|
88
|
-
return e?.confidence ?? 60;
|
|
89
|
-
});
|
|
90
|
-
const path_confidence = edgeConfidences.length
|
|
91
|
-
? Math.round(edgeConfidences.reduce((a, b) => a + b, 0) / edgeConfidences.length)
|
|
92
|
-
: 0;
|
|
93
|
-
// Find the AccountabilityLayer node that gates the AICapability on this
|
|
94
|
-
// path, if any.
|
|
95
|
-
let accountability;
|
|
96
|
-
const gatingIssues = [];
|
|
97
|
-
for (const id of nodes) {
|
|
98
|
-
const node = getNode(graph, id);
|
|
99
|
-
if (node?.type === 'AICapability') {
|
|
100
|
-
const incomingGates = findIncoming(graph, id).filter((e) => e.relation === 'gates');
|
|
101
|
-
if (incomingGates.length > 0) {
|
|
102
|
-
accountability = incomingGates[0].from;
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
gatingIssues.push(`AICapability ${id} has no AccountabilityLayer, every agent needs a named accountable human.`);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return {
|
|
110
|
-
id: `${nodes[0]}->${nodes[nodes.length - 1]}`,
|
|
111
|
-
nodes,
|
|
112
|
-
edges,
|
|
113
|
-
path_confidence,
|
|
114
|
-
accountability,
|
|
115
|
-
gating_issues: gatingIssues,
|
|
116
|
-
reframing_question: '', // populated by run_trace
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=value-trace.js.map
|
package/dist/value-trace.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value-trace.js","sourceRoot":"","sources":["../src/value-trace.ts"],"names":[],"mappings":"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"}
|