@ankh-studio/ai-enablement 1.0.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/LICENSE +21 -0
- package/README.md +243 -0
- package/dist/analyzers/tech-stack-analyzer.d.ts +63 -0
- package/dist/analyzers/tech-stack-analyzer.d.ts.map +1 -0
- package/dist/analyzers/tech-stack-analyzer.js +401 -0
- package/dist/analyzers/tech-stack-analyzer.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +347 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/collectors/evidence-collector.d.ts +57 -0
- package/dist/collectors/evidence-collector.d.ts.map +1 -0
- package/dist/collectors/evidence-collector.js +386 -0
- package/dist/collectors/evidence-collector.js.map +1 -0
- package/dist/core/assessment-engine.d.ts +76 -0
- package/dist/core/assessment-engine.d.ts.map +1 -0
- package/dist/core/assessment-engine.js +310 -0
- package/dist/core/assessment-engine.js.map +1 -0
- package/dist/generators/adr-generator.d.ts +35 -0
- package/dist/generators/adr-generator.d.ts.map +1 -0
- package/dist/generators/adr-generator.js +339 -0
- package/dist/generators/adr-generator.js.map +1 -0
- package/dist/generators-backup-phase-2/adr-generator.d.ts +31 -0
- package/dist/generators-backup-phase-2/adr-generator.d.ts.map +1 -0
- package/dist/generators-backup-phase-2/adr-generator.js +309 -0
- package/dist/generators-backup-phase-2/adr-generator.js.map +1 -0
- package/dist/llm/coalescer.d.ts +45 -0
- package/dist/llm/coalescer.d.ts.map +1 -0
- package/dist/llm/coalescer.js +258 -0
- package/dist/llm/coalescer.js.map +1 -0
- package/dist/llm/copilot-client.d.ts +53 -0
- package/dist/llm/copilot-client.d.ts.map +1 -0
- package/dist/llm/copilot-client.js +198 -0
- package/dist/llm/copilot-client.js.map +1 -0
- package/dist/llm/prompt-templates.d.ts +24 -0
- package/dist/llm/prompt-templates.d.ts.map +1 -0
- package/dist/llm/prompt-templates.js +255 -0
- package/dist/llm/prompt-templates.js.map +1 -0
- package/dist/llm/response-processor.d.ts +50 -0
- package/dist/llm/response-processor.d.ts.map +1 -0
- package/dist/llm/response-processor.js +321 -0
- package/dist/llm/response-processor.js.map +1 -0
- package/dist/llm/structured-types.d.ts +184 -0
- package/dist/llm/structured-types.d.ts.map +1 -0
- package/dist/llm/structured-types.js +61 -0
- package/dist/llm/structured-types.js.map +1 -0
- package/dist/llm/validation.d.ts +57 -0
- package/dist/llm/validation.d.ts.map +1 -0
- package/dist/llm/validation.js +273 -0
- package/dist/llm/validation.js.map +1 -0
- package/dist/llm-backup-phase-1/coalescer.d.ts +40 -0
- package/dist/llm-backup-phase-1/coalescer.d.ts.map +1 -0
- package/dist/llm-backup-phase-1/coalescer.js +209 -0
- package/dist/llm-backup-phase-1/coalescer.js.map +1 -0
- package/dist/llm-backup-phase-1/copilot-client.d.ts +53 -0
- package/dist/llm-backup-phase-1/copilot-client.d.ts.map +1 -0
- package/dist/llm-backup-phase-1/copilot-client.js +198 -0
- package/dist/llm-backup-phase-1/copilot-client.js.map +1 -0
- package/dist/llm-backup-phase-1/prompt-templates.d.ts +23 -0
- package/dist/llm-backup-phase-1/prompt-templates.d.ts.map +1 -0
- package/dist/llm-backup-phase-1/prompt-templates.js +197 -0
- package/dist/llm-backup-phase-1/prompt-templates.js.map +1 -0
- package/dist/llm-backup-phase-1/response-processor.d.ts +44 -0
- package/dist/llm-backup-phase-1/response-processor.d.ts.map +1 -0
- package/dist/llm-backup-phase-1/response-processor.js +200 -0
- package/dist/llm-backup-phase-1/response-processor.js.map +1 -0
- package/dist/llm-backup-phase-1/validation.d.ts +57 -0
- package/dist/llm-backup-phase-1/validation.d.ts.map +1 -0
- package/dist/llm-backup-phase-1/validation.js +273 -0
- package/dist/llm-backup-phase-1/validation.js.map +1 -0
- package/dist/personas/base-persona.d.ts +28 -0
- package/dist/personas/base-persona.d.ts.map +1 -0
- package/dist/personas/base-persona.js +140 -0
- package/dist/personas/base-persona.js.map +1 -0
- package/dist/personas/consultant-persona.d.ts +25 -0
- package/dist/personas/consultant-persona.d.ts.map +1 -0
- package/dist/personas/consultant-persona.js +288 -0
- package/dist/personas/consultant-persona.js.map +1 -0
- package/dist/personas/persona-factory.d.ts +17 -0
- package/dist/personas/persona-factory.d.ts.map +1 -0
- package/dist/personas/persona-factory.js +53 -0
- package/dist/personas/persona-factory.js.map +1 -0
- package/dist/personas/research-backed-consultant.d.ts +12 -0
- package/dist/personas/research-backed-consultant.d.ts.map +1 -0
- package/dist/personas/research-backed-consultant.js +100 -0
- package/dist/personas/research-backed-consultant.js.map +1 -0
- package/dist/personas-backup-phase-1/base-persona.d.ts +28 -0
- package/dist/personas-backup-phase-1/base-persona.d.ts.map +1 -0
- package/dist/personas-backup-phase-1/base-persona.js +140 -0
- package/dist/personas-backup-phase-1/base-persona.js.map +1 -0
- package/dist/personas-backup-phase-1/consultant-persona.d.ts +24 -0
- package/dist/personas-backup-phase-1/consultant-persona.d.ts.map +1 -0
- package/dist/personas-backup-phase-1/consultant-persona.js +197 -0
- package/dist/personas-backup-phase-1/consultant-persona.js.map +1 -0
- package/dist/personas-backup-phase-1/persona-factory.d.ts +17 -0
- package/dist/personas-backup-phase-1/persona-factory.d.ts.map +1 -0
- package/dist/personas-backup-phase-1/persona-factory.js +53 -0
- package/dist/personas-backup-phase-1/persona-factory.js.map +1 -0
- package/dist/scanners/copilot-feature-scanner.d.ts +55 -0
- package/dist/scanners/copilot-feature-scanner.d.ts.map +1 -0
- package/dist/scanners/copilot-feature-scanner.js +259 -0
- package/dist/scanners/copilot-feature-scanner.js.map +1 -0
- package/dist/scorers/readiness-scorer.d.ts +42 -0
- package/dist/scorers/readiness-scorer.d.ts.map +1 -0
- package/dist/scorers/readiness-scorer.js +279 -0
- package/dist/scorers/readiness-scorer.js.map +1 -0
- package/dist/types/persona.d.ts +69 -0
- package/dist/types/persona.d.ts.map +1 -0
- package/dist/types/persona.js +9 -0
- package/dist/types/persona.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Working Research-Backed Consultant Persona
|
|
4
|
+
*
|
|
5
|
+
* This demonstrates the meaningful difference with empathy-driven insights
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ResearchBackedConsultant = void 0;
|
|
9
|
+
const RESEARCH_BACKED_CONSULTANT = {
|
|
10
|
+
empathyMap: {
|
|
11
|
+
thinks: [
|
|
12
|
+
"AI adoption is a business transformation, not just a technology project",
|
|
13
|
+
"Quick wins build momentum for larger transformation initiatives",
|
|
14
|
+
"Risk management is as important as opportunity capture",
|
|
15
|
+
"Executive sponsorship determines project success"
|
|
16
|
+
],
|
|
17
|
+
feels: [
|
|
18
|
+
"Pressure to deliver measurable business results",
|
|
19
|
+
"Anxiety about adoption risks",
|
|
20
|
+
"Excitement about transformation potential"
|
|
21
|
+
],
|
|
22
|
+
says: [
|
|
23
|
+
"What's the business case?",
|
|
24
|
+
"Let's focus on quick wins first",
|
|
25
|
+
"We need a phased approach"
|
|
26
|
+
],
|
|
27
|
+
pointOfView: "AI adoption succeeds when business value drives technology decisions, not the other way around"
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
class ResearchBackedConsultant {
|
|
31
|
+
async analyze(context) {
|
|
32
|
+
const insights = this.generateInsights(context);
|
|
33
|
+
return {
|
|
34
|
+
persona: 'consultant',
|
|
35
|
+
insights,
|
|
36
|
+
summary: this.generateSummary(context, insights),
|
|
37
|
+
nextSteps: insights.slice(0, 5).map(i => i.title),
|
|
38
|
+
timeframe: '90 days (risk mitigation first)',
|
|
39
|
+
perspective: RESEARCH_BACKED_CONSULTANT.empathyMap.pointOfView,
|
|
40
|
+
confidence: 'high'
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
generateInsights(context) {
|
|
44
|
+
const insights = [];
|
|
45
|
+
const { scores } = context;
|
|
46
|
+
// Risk-focused insight (consultant's anxiety about risks)
|
|
47
|
+
if (scores.orgReadiness < 50) {
|
|
48
|
+
insights.push({
|
|
49
|
+
id: `consultant-risk-${Date.now()}`,
|
|
50
|
+
type: 'warning',
|
|
51
|
+
title: 'Executive Sponsorship Risk',
|
|
52
|
+
description: `I'm concerned that without strong executive sponsorship, this AI initiative will fail. From my experience, 80% of AI transformations fail because leaders treat them as IT projects rather than business transformations. We need C-suite commitment before proceeding.`,
|
|
53
|
+
evidence: ['orgReadiness', 'governance', 'process'],
|
|
54
|
+
confidence: 90,
|
|
55
|
+
priority: 'critical',
|
|
56
|
+
category: 'strategy'
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// Opportunity-focused insight (consultant's excitement about quick wins)
|
|
60
|
+
if (scores.overallMaturity >= 3 && scores.repoReadiness >= 40) {
|
|
61
|
+
insights.push({
|
|
62
|
+
id: `consultant-opp-${Date.now()}`,
|
|
63
|
+
type: 'opportunity',
|
|
64
|
+
title: 'Quick Win Business Value',
|
|
65
|
+
description: `I see an opportunity to deliver measurable ROI within 90 days by focusing on documentation automation and code review assistance. This builds the stakeholder confidence we need for larger transformation. Let's start with what the business can see quickly.`,
|
|
66
|
+
evidence: ['maturity', 'repoReadiness', 'business-impact'],
|
|
67
|
+
confidence: 85,
|
|
68
|
+
priority: 'high',
|
|
69
|
+
category: 'strategy'
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
// Strategic insight (consultant's business transformation focus)
|
|
73
|
+
insights.push({
|
|
74
|
+
id: `consultant-strategy-${Date.now()}`,
|
|
75
|
+
type: 'analysis',
|
|
76
|
+
title: 'Business-First Implementation Strategy',
|
|
77
|
+
description: `Looking at this through my consultant perspective, we need to frame this as a business transformation, not a technology project. That means starting with business problems, measuring business outcomes, and building change management into every phase. What's the business case we're solving?`,
|
|
78
|
+
evidence: ['strategy', 'business-impact', 'transformation'],
|
|
79
|
+
confidence: 80,
|
|
80
|
+
priority: 'medium',
|
|
81
|
+
category: 'strategy'
|
|
82
|
+
});
|
|
83
|
+
return insights;
|
|
84
|
+
}
|
|
85
|
+
generateSummary(context, insights) {
|
|
86
|
+
const criticalRisks = insights.filter(i => i.priority === 'critical' && i.type === 'warning');
|
|
87
|
+
const opportunities = insights.filter(i => i.type === 'opportunity');
|
|
88
|
+
let summary = `Looking at this through my consultant perspective, I feel pressured to deliver measurable business results because AI adoption succeeds when business value drives technology decisions, not the other way around. `;
|
|
89
|
+
if (criticalRisks.length > 0) {
|
|
90
|
+
summary += `I'm concerned about ${criticalRisks.length} critical risks that could jeopardize success, particularly around executive sponsorship. `;
|
|
91
|
+
}
|
|
92
|
+
if (opportunities.length > 0) {
|
|
93
|
+
summary += `However, I'm excited about ${opportunities.length} clear opportunities to deliver quick business value that will build stakeholder confidence. `;
|
|
94
|
+
}
|
|
95
|
+
summary += `My approach focuses on business case development and stakeholder alignment. We need to ask 'What's the business case?' and focus on quick wins first.`;
|
|
96
|
+
return summary;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.ResearchBackedConsultant = ResearchBackedConsultant;
|
|
100
|
+
//# sourceMappingURL=research-backed-consultant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-backed-consultant.js","sourceRoot":"","sources":["../../src/personas/research-backed-consultant.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Persona Class
|
|
3
|
+
*
|
|
4
|
+
* Abstract base class for all expert personas providing
|
|
5
|
+
* common functionality and interface definitions
|
|
6
|
+
*/
|
|
7
|
+
import { LLMResponse, PersonaConfig, PersonaContext, PersonaInsight, PersonaMetrics, PersonaResponse, PersonaType } from "../types/persona";
|
|
8
|
+
export declare abstract class BasePersona {
|
|
9
|
+
protected personaConfig: PersonaConfig;
|
|
10
|
+
protected personaMetrics: PersonaMetrics;
|
|
11
|
+
constructor(config: PersonaConfig);
|
|
12
|
+
abstract generateInsights(context: PersonaContext): Promise<PersonaInsight[]>;
|
|
13
|
+
abstract generatePrompt(context: PersonaContext): string;
|
|
14
|
+
abstract processLLMResponse(response: LLMResponse): PersonaResponse;
|
|
15
|
+
analyze(context: PersonaContext): Promise<PersonaResponse>;
|
|
16
|
+
protected generateSummary(insights: PersonaInsight[], context: PersonaContext): string;
|
|
17
|
+
protected generateNextSteps(insights: PersonaInsight[]): string[];
|
|
18
|
+
protected estimateTimeframe(insights: PersonaInsight[]): string;
|
|
19
|
+
protected calculateConfidence(insights: PersonaInsight[]): "high" | "medium" | "low";
|
|
20
|
+
protected getMaturityLevel(score: number): string;
|
|
21
|
+
protected updateMetrics(insights: PersonaInsight[], responseTime: number): void;
|
|
22
|
+
protected getPerspective(): string;
|
|
23
|
+
protected createInsight(type: PersonaInsight["type"], title: string, description: string, evidence: string[], confidence: number, priority: PersonaInsight["priority"], category: PersonaInsight["category"]): PersonaInsight;
|
|
24
|
+
get type(): PersonaType;
|
|
25
|
+
get config(): PersonaConfig;
|
|
26
|
+
get metrics(): PersonaMetrics;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=base-persona.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-persona.d.ts","sourceRoot":"","sources":["../../src/personas-backup-phase-1/base-persona.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,8BAAsB,WAAW;IAC/B,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACvC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;gBAE7B,MAAM,EAAE,aAAa;IAUjC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7E,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;IACxD,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,GAAG,eAAe;IAG7D,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAmChE,SAAS,CAAC,eAAe,CACvB,QAAQ,EAAE,cAAc,EAAE,EAC1B,OAAO,EAAE,cAAc,GACtB,MAAM;IAmBT,SAAS,CAAC,iBAAiB,CACzB,QAAQ,EAAE,cAAc,EAAE,GACzB,MAAM,EAAE;IAWX,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM;IAY/D,SAAS,CAAC,mBAAmB,CAC3B,QAAQ,EAAE,cAAc,EAAE,GACzB,MAAM,GAAG,QAAQ,GAAG,KAAK;IAgB5B,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjD,SAAS,CAAC,aAAa,CACrB,QAAQ,EAAE,cAAc,EAAE,EAC1B,YAAY,EAAE,MAAM,GACnB,IAAI;IAaP,SAAS,CAAC,cAAc,IAAI,MAAM;IAKlC,SAAS,CAAC,aAAa,CACrB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,EACpC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,cAAc;IAcjB,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,IAAI,OAAO,IAAI,cAAc,CAE5B;CACF"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Base Persona Class
|
|
4
|
+
*
|
|
5
|
+
* Abstract base class for all expert personas providing
|
|
6
|
+
* common functionality and interface definitions
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.BasePersona = void 0;
|
|
10
|
+
class BasePersona {
|
|
11
|
+
constructor(config) {
|
|
12
|
+
this.personaConfig = config;
|
|
13
|
+
this.personaMetrics = {
|
|
14
|
+
insightsGenerated: 0,
|
|
15
|
+
averageConfidence: 0,
|
|
16
|
+
responseTime: 0,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
// Common functionality for all personas
|
|
20
|
+
async analyze(context) {
|
|
21
|
+
const startTime = Date.now();
|
|
22
|
+
try {
|
|
23
|
+
// Generate persona-specific insights
|
|
24
|
+
const insights = await this.generateInsights(context);
|
|
25
|
+
// Generate summary and next steps
|
|
26
|
+
const summary = this.generateSummary(insights, context);
|
|
27
|
+
const nextSteps = this.generateNextSteps(insights);
|
|
28
|
+
// Calculate confidence based on insight quality
|
|
29
|
+
const confidence = this.calculateConfidence(insights);
|
|
30
|
+
// Update metrics
|
|
31
|
+
this.updateMetrics(insights, Date.now() - startTime);
|
|
32
|
+
return {
|
|
33
|
+
persona: this.personaConfig.type,
|
|
34
|
+
insights,
|
|
35
|
+
summary,
|
|
36
|
+
nextSteps,
|
|
37
|
+
timeframe: this.estimateTimeframe(insights),
|
|
38
|
+
perspective: this.getPerspective(),
|
|
39
|
+
confidence,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error(`Error in ${this.personaConfig.type} persona analysis:`, error);
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
generateSummary(insights, context) {
|
|
48
|
+
const criticalInsights = insights.filter((i) => i.priority === "critical");
|
|
49
|
+
const highPriorityInsights = insights.filter((i) => i.priority === "high");
|
|
50
|
+
let summary = `Based on the ${context.repository} analysis, `;
|
|
51
|
+
if (criticalInsights.length > 0) {
|
|
52
|
+
summary += `there are ${criticalInsights.length} critical issues requiring immediate attention. `;
|
|
53
|
+
}
|
|
54
|
+
if (highPriorityInsights.length > 0) {
|
|
55
|
+
summary += `${highPriorityInsights.length} high-priority areas need focus. `;
|
|
56
|
+
}
|
|
57
|
+
summary += `Overall readiness is ${context.scores.overallMaturity}/8, indicating ${this.getMaturityLevel(context.scores.overallMaturity)} maturity.`;
|
|
58
|
+
return summary;
|
|
59
|
+
}
|
|
60
|
+
generateNextSteps(insights) {
|
|
61
|
+
const sortedInsights = insights.sort((a, b) => {
|
|
62
|
+
const priorityOrder = { critical: 4, high: 3, medium: 2, low: 1 };
|
|
63
|
+
return priorityOrder[b.priority] - priorityOrder[a.priority];
|
|
64
|
+
});
|
|
65
|
+
return sortedInsights
|
|
66
|
+
.slice(0, 5) // Top 5 recommendations
|
|
67
|
+
.map((insight) => insight.title);
|
|
68
|
+
}
|
|
69
|
+
estimateTimeframe(insights) {
|
|
70
|
+
const criticalCount = insights.filter((i) => i.priority === "critical").length;
|
|
71
|
+
const highCount = insights.filter((i) => i.priority === "high").length;
|
|
72
|
+
if (criticalCount > 0)
|
|
73
|
+
return "1-2 weeks (critical issues)";
|
|
74
|
+
if (highCount > 2)
|
|
75
|
+
return "3-4 weeks";
|
|
76
|
+
if (highCount > 0)
|
|
77
|
+
return "2-3 weeks";
|
|
78
|
+
return "1-2 months";
|
|
79
|
+
}
|
|
80
|
+
calculateConfidence(insights) {
|
|
81
|
+
if (insights.length === 0)
|
|
82
|
+
return "low";
|
|
83
|
+
const avgConfidence = insights.reduce((sum, insight) => sum + insight.confidence, 0) /
|
|
84
|
+
insights.length;
|
|
85
|
+
const highConfidenceCount = insights.filter((i) => i.confidence >= 80).length;
|
|
86
|
+
const ratio = highConfidenceCount / insights.length;
|
|
87
|
+
if (avgConfidence >= 80 && ratio >= 0.7)
|
|
88
|
+
return "high";
|
|
89
|
+
if (avgConfidence >= 60 && ratio >= 0.4)
|
|
90
|
+
return "medium";
|
|
91
|
+
return "low";
|
|
92
|
+
}
|
|
93
|
+
getMaturityLevel(score) {
|
|
94
|
+
if (score >= 6)
|
|
95
|
+
return "advanced";
|
|
96
|
+
if (score >= 4)
|
|
97
|
+
return "developing";
|
|
98
|
+
if (score >= 2)
|
|
99
|
+
return "basic";
|
|
100
|
+
return "initial";
|
|
101
|
+
}
|
|
102
|
+
updateMetrics(insights, responseTime) {
|
|
103
|
+
this.personaMetrics.insightsGenerated += insights.length;
|
|
104
|
+
this.personaMetrics.responseTime = responseTime;
|
|
105
|
+
if (insights.length > 0) {
|
|
106
|
+
const avgConfidence = insights.reduce((sum, insight) => sum + insight.confidence, 0) /
|
|
107
|
+
insights.length;
|
|
108
|
+
this.personaMetrics.averageConfidence =
|
|
109
|
+
(this.personaMetrics.averageConfidence + avgConfidence) / 2;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
getPerspective() {
|
|
113
|
+
return this.personaConfig.description;
|
|
114
|
+
}
|
|
115
|
+
// Helper methods for creating insights
|
|
116
|
+
createInsight(type, title, description, evidence, confidence, priority, category) {
|
|
117
|
+
return {
|
|
118
|
+
id: `${this.personaConfig.type}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
|
|
119
|
+
type,
|
|
120
|
+
title,
|
|
121
|
+
description,
|
|
122
|
+
evidence,
|
|
123
|
+
confidence,
|
|
124
|
+
priority,
|
|
125
|
+
category,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
// Getters
|
|
129
|
+
get type() {
|
|
130
|
+
return this.personaConfig.type;
|
|
131
|
+
}
|
|
132
|
+
get config() {
|
|
133
|
+
return this.personaConfig;
|
|
134
|
+
}
|
|
135
|
+
get metrics() {
|
|
136
|
+
return this.personaMetrics;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.BasePersona = BasePersona;
|
|
140
|
+
//# sourceMappingURL=base-persona.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-persona.js","sourceRoot":"","sources":["../../src/personas-backup-phase-1/base-persona.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research-Backed Consultant Persona with LLM Coalescing
|
|
3
|
+
*
|
|
4
|
+
* Based on UX research best practices and empathy map framework
|
|
5
|
+
* Provides meaningful, actionable insights with clear point of view
|
|
6
|
+
* Enhanced with adversarial LLM coalescing for sophisticated analysis
|
|
7
|
+
*/
|
|
8
|
+
import { PersonaContext, PersonaInsight, PersonaResponse } from "../types/persona";
|
|
9
|
+
import { BasePersona } from "./base-persona";
|
|
10
|
+
export declare class ConsultantPersona extends BasePersona {
|
|
11
|
+
private enableLLMCoalescing;
|
|
12
|
+
constructor(enableLLMCoalescing?: boolean);
|
|
13
|
+
generateInsights(context: PersonaContext): Promise<PersonaInsight[]>;
|
|
14
|
+
generatePrompt(context: PersonaContext): string;
|
|
15
|
+
processLLMResponse(response: any): PersonaResponse;
|
|
16
|
+
analyze(context: PersonaContext): Promise<PersonaResponse>;
|
|
17
|
+
private generateEnhancedSummary;
|
|
18
|
+
private calculateEnhancedConfidence;
|
|
19
|
+
protected generateSummary(insights: PersonaInsight[], context: PersonaContext): string;
|
|
20
|
+
protected generateNextSteps(insights: PersonaInsight[]): string[];
|
|
21
|
+
protected estimateTimeframe(insights: PersonaInsight[]): string;
|
|
22
|
+
protected getPerspective(): string;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=consultant-persona.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consultant-persona.d.ts","sourceRoot":"","sources":["../../src/personas-backup-phase-1/consultant-persona.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA2B7C,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,OAAO,CAAC,mBAAmB,CAAU;gBAEzB,mBAAmB,GAAE,OAAe;IAoB1C,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiE1E,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;IAmB/C,kBAAkB,CAAC,QAAQ,EAAE,GAAG,GAAG,eAAe;IAenC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IA6CzE,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,2BAA2B;cAqBhB,eAAe,CAChC,QAAQ,EAAE,cAAc,EAAE,EAC1B,OAAO,EAAE,cAAc,GACtB,MAAM;cAIU,iBAAiB,CAClC,QAAQ,EAAE,cAAc,EAAE,GACzB,MAAM,EAAE;cASQ,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM;cAYrD,cAAc,IAAI,MAAM;CAG5C"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Research-Backed Consultant Persona with LLM Coalescing
|
|
4
|
+
*
|
|
5
|
+
* Based on UX research best practices and empathy map framework
|
|
6
|
+
* Provides meaningful, actionable insights with clear point of view
|
|
7
|
+
* Enhanced with adversarial LLM coalescing for sophisticated analysis
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.ConsultantPersona = void 0;
|
|
11
|
+
const base_persona_1 = require("./base-persona");
|
|
12
|
+
const CONSULTANT_EMPATHY = {
|
|
13
|
+
thinks: [
|
|
14
|
+
"AI adoption is a business transformation, not just a technology project",
|
|
15
|
+
"Quick wins build momentum for larger transformation initiatives",
|
|
16
|
+
"Risk management is as important as opportunity capture",
|
|
17
|
+
"Executive sponsorship determines project success",
|
|
18
|
+
"ROI must be measurable and communicated clearly",
|
|
19
|
+
],
|
|
20
|
+
feels: [
|
|
21
|
+
"Pressure to deliver measurable business results",
|
|
22
|
+
"Excitement about transformation potential",
|
|
23
|
+
"Anxiety about adoption risks",
|
|
24
|
+
"Confidence in structured methodology",
|
|
25
|
+
],
|
|
26
|
+
says: [
|
|
27
|
+
"What's the business case?",
|
|
28
|
+
"Let's focus on quick wins first",
|
|
29
|
+
"We need a phased approach",
|
|
30
|
+
"What are the success metrics?",
|
|
31
|
+
"Who are the key stakeholders?",
|
|
32
|
+
],
|
|
33
|
+
pointOfView: "AI adoption succeeds when business value drives technology decisions, not the other way around",
|
|
34
|
+
};
|
|
35
|
+
class ConsultantPersona extends base_persona_1.BasePersona {
|
|
36
|
+
constructor(enableLLMCoalescing = false) {
|
|
37
|
+
super({
|
|
38
|
+
type: "consultant",
|
|
39
|
+
name: "AI Strategy Consultant",
|
|
40
|
+
description: "Strategic advisor focused on business value, ROI, and organizational transformation through AI adoption",
|
|
41
|
+
expertise: [
|
|
42
|
+
"AI Strategy",
|
|
43
|
+
"Business Transformation",
|
|
44
|
+
"ROI Analysis",
|
|
45
|
+
"Change Management",
|
|
46
|
+
],
|
|
47
|
+
focus: ["business-impact", "roi", "governance", "risk", "scaling"],
|
|
48
|
+
tone: "formal",
|
|
49
|
+
targetAudience: ["executives", "managers", "decision-makers"],
|
|
50
|
+
});
|
|
51
|
+
this.enableLLMCoalescing = enableLLMCoalescing;
|
|
52
|
+
}
|
|
53
|
+
async generateInsights(context) {
|
|
54
|
+
const insights = [];
|
|
55
|
+
const { scores } = context;
|
|
56
|
+
// Risk-focused insight (consultant's anxiety about executive sponsorship)
|
|
57
|
+
if (scores.orgReadiness < 50) {
|
|
58
|
+
insights.push(this.createInsight("warning", "Executive Sponsorship Risk", `I'm concerned that without strong executive sponsorship, this AI initiative will fail. From my experience, 80% of AI transformations fail because leaders treat them as IT projects rather than business transformations. We need C-suite commitment before proceeding.`, ["orgReadiness", "governance", "process"], 90, "critical", "strategy"));
|
|
59
|
+
}
|
|
60
|
+
// Opportunity-focused insight (consultant's excitement about quick wins)
|
|
61
|
+
if (scores.overallMaturity >= 3 && scores.repoReadiness >= 40) {
|
|
62
|
+
insights.push(this.createInsight("opportunity", "Quick Win Business Value", `I see an opportunity to deliver measurable ROI within 90 days by focusing on documentation automation and code review assistance. This builds the stakeholder confidence we need for larger transformation. Let's start with what the business can see quickly.`, ["maturity", "repoReadiness", "business-impact"], 85, "high", "strategy"));
|
|
63
|
+
}
|
|
64
|
+
// Strategic insight (consultant's business transformation focus)
|
|
65
|
+
insights.push(this.createInsight("analysis", "Business-First Implementation Strategy", `Looking at this through my consultant perspective, we need to frame this as a business transformation, not a technology project. That means starting with business problems, measuring business outcomes, and building change management into every phase. What's the business case we're solving?`, ["strategy", "business-impact", "transformation"], 80, "medium", "strategy"));
|
|
66
|
+
// Team capability insight (consultant's focus on organizational readiness)
|
|
67
|
+
if (scores.teamReadiness < 50) {
|
|
68
|
+
insights.push(this.createInsight("recommendation", "Strategic Team Capability Building", `I'm concerned about team readiness - we need to build AI competencies strategically. This isn't just about training; it's about hiring the right expertise and creating a culture that embraces AI-driven decision making. We should assess current skills and build a capability roadmap.`, ["teamReadiness", "skills", "capability"], 75, "high", "process"));
|
|
69
|
+
}
|
|
70
|
+
return insights;
|
|
71
|
+
}
|
|
72
|
+
generatePrompt(context) {
|
|
73
|
+
return `As an experienced AI Strategy Consultant, analyze the following repository assessment:
|
|
74
|
+
|
|
75
|
+
Repository: ${context.repository}
|
|
76
|
+
Overall Maturity: ${context.scores.overallMaturity}/8
|
|
77
|
+
Repository Readiness: ${context.scores.repoReadiness}/100
|
|
78
|
+
Team Readiness: ${context.scores.teamReadiness}/100
|
|
79
|
+
Organization Readiness: ${context.scores.orgReadiness}/100
|
|
80
|
+
|
|
81
|
+
Focus on:
|
|
82
|
+
1. Business impact and ROI potential
|
|
83
|
+
2. Strategic risks and mitigation strategies
|
|
84
|
+
3. Organizational change requirements
|
|
85
|
+
4. Executive communication recommendations
|
|
86
|
+
5. Phased implementation approach
|
|
87
|
+
|
|
88
|
+
Provide specific, actionable recommendations that business leaders can implement. Frame insights from my perspective: "${CONSULTANT_EMPATHY.pointOfView}"`;
|
|
89
|
+
}
|
|
90
|
+
processLLMResponse(response) {
|
|
91
|
+
// Process LLM response and extract structured insights
|
|
92
|
+
// For now, return a basic structure
|
|
93
|
+
return {
|
|
94
|
+
persona: "consultant",
|
|
95
|
+
insights: [],
|
|
96
|
+
summary: response.content || "Analysis complete",
|
|
97
|
+
nextSteps: [],
|
|
98
|
+
timeframe: "3-6 months",
|
|
99
|
+
perspective: CONSULTANT_EMPATHY.pointOfView,
|
|
100
|
+
confidence: "high",
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// Override the analyze method to include LLM coalescing
|
|
104
|
+
async analyze(context) {
|
|
105
|
+
const startTime = Date.now();
|
|
106
|
+
try {
|
|
107
|
+
// Generate deterministic insights first
|
|
108
|
+
const deterministicInsights = await this.generateInsights(context);
|
|
109
|
+
// For now, use deterministic insights (LLM coalescing will be added in next iteration)
|
|
110
|
+
let enhancedInsights = deterministicInsights;
|
|
111
|
+
let adversarialChallenges = [];
|
|
112
|
+
let llmConfidence = 0;
|
|
113
|
+
if (this.enableLLMCoalescing) {
|
|
114
|
+
console.log("🧠 LLM coalescing enabled - will be implemented in next phase");
|
|
115
|
+
// TODO: Add LLM coalescing integration here
|
|
116
|
+
}
|
|
117
|
+
// Generate summary and next steps
|
|
118
|
+
const summary = this.generateEnhancedSummary(enhancedInsights, context, adversarialChallenges);
|
|
119
|
+
const nextSteps = this.generateNextSteps(enhancedInsights);
|
|
120
|
+
// Calculate confidence based on insight quality and LLM validation
|
|
121
|
+
const confidence = this.calculateEnhancedConfidence(enhancedInsights, llmConfidence);
|
|
122
|
+
// Update metrics
|
|
123
|
+
this.updateMetrics(enhancedInsights, Date.now() - startTime);
|
|
124
|
+
return {
|
|
125
|
+
persona: this.personaConfig.type,
|
|
126
|
+
insights: enhancedInsights,
|
|
127
|
+
summary,
|
|
128
|
+
nextSteps,
|
|
129
|
+
timeframe: this.estimateTimeframe(enhancedInsights),
|
|
130
|
+
perspective: this.getPerspective(),
|
|
131
|
+
confidence,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
console.error(`Error in ${this.personaConfig.type} persona analysis:`, error);
|
|
136
|
+
throw error;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
generateEnhancedSummary(insights, context, adversarialChallenges) {
|
|
140
|
+
const criticalRisks = insights.filter((i) => i.priority === "critical" && i.type === "warning");
|
|
141
|
+
const opportunities = insights.filter((i) => i.type === "opportunity");
|
|
142
|
+
let summary = `Looking at this through my consultant perspective, I feel pressured to deliver measurable business results because ${CONSULTANT_EMPATHY.pointOfView.toLowerCase()}. `;
|
|
143
|
+
if (criticalRisks.length > 0) {
|
|
144
|
+
summary += `I'm concerned about ${criticalRisks.length} critical risks that could jeopardize success, particularly around executive sponsorship. `;
|
|
145
|
+
}
|
|
146
|
+
if (opportunities.length > 0) {
|
|
147
|
+
summary += `However, I'm excited about ${opportunities.length} clear opportunities to deliver quick business value that will build stakeholder confidence. `;
|
|
148
|
+
}
|
|
149
|
+
if (adversarialChallenges.length > 0) {
|
|
150
|
+
summary += `My adversarial analysis identified ${adversarialChallenges.length} areas that challenge conventional thinking. `;
|
|
151
|
+
}
|
|
152
|
+
summary += `My approach focuses on business case development and stakeholder alignment. We need to ask '${CONSULTANT_EMPATHY.says[0] || "What is the business case?"}' and focus on ${CONSULTANT_EMPATHY.says[1]?.toLowerCase() || "quick wins"}.`;
|
|
153
|
+
return summary;
|
|
154
|
+
}
|
|
155
|
+
calculateEnhancedConfidence(insights, llmConfidence) {
|
|
156
|
+
const baseConfidence = this.calculateConfidence(insights);
|
|
157
|
+
// If LLM coalescing is available, factor in LLM confidence
|
|
158
|
+
if (this.enableLLMCoalescing && llmConfidence > 0) {
|
|
159
|
+
// Convert string confidence to numeric for calculation
|
|
160
|
+
const confidenceMap = { high: 85, medium: 65, low: 45 };
|
|
161
|
+
const baseNumeric = confidenceMap[baseConfidence] || 50;
|
|
162
|
+
const combinedConfidence = (baseNumeric + llmConfidence * 100) / 2;
|
|
163
|
+
if (combinedConfidence >= 80)
|
|
164
|
+
return "high";
|
|
165
|
+
if (combinedConfidence >= 60)
|
|
166
|
+
return "medium";
|
|
167
|
+
return "low";
|
|
168
|
+
}
|
|
169
|
+
return baseConfidence;
|
|
170
|
+
}
|
|
171
|
+
generateSummary(insights, context) {
|
|
172
|
+
return this.generateEnhancedSummary(insights, context, []);
|
|
173
|
+
}
|
|
174
|
+
generateNextSteps(insights) {
|
|
175
|
+
const prioritized = insights.sort((a, b) => {
|
|
176
|
+
const priorityOrder = { critical: 4, high: 3, medium: 2, low: 1 };
|
|
177
|
+
return (priorityOrder[b.priority] || 1) - (priorityOrder[a.priority] || 1);
|
|
178
|
+
});
|
|
179
|
+
return prioritized.slice(0, 5).map((insight) => insight.title);
|
|
180
|
+
}
|
|
181
|
+
estimateTimeframe(insights) {
|
|
182
|
+
const criticalCount = insights.filter((i) => i.priority === "critical").length;
|
|
183
|
+
const highCount = insights.filter((i) => i.priority === "high").length;
|
|
184
|
+
if (criticalCount > 0)
|
|
185
|
+
return "90 days (risk mitigation first)";
|
|
186
|
+
if (highCount > 2)
|
|
187
|
+
return "6 months (phased approach)";
|
|
188
|
+
if (highCount > 0)
|
|
189
|
+
return "3-4 months";
|
|
190
|
+
return "6-12 months (strategic transformation)";
|
|
191
|
+
}
|
|
192
|
+
getPerspective() {
|
|
193
|
+
return CONSULTANT_EMPATHY.pointOfView;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
exports.ConsultantPersona = ConsultantPersona;
|
|
197
|
+
//# sourceMappingURL=consultant-persona.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consultant-persona.js","sourceRoot":"","sources":["../../src/personas-backup-phase-1/consultant-persona.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persona Factory
|
|
3
|
+
*
|
|
4
|
+
* Factory for creating and managing expert personas
|
|
5
|
+
*/
|
|
6
|
+
import { PersonaConfig, PersonaType } from "../types/persona";
|
|
7
|
+
import { BasePersona } from "./base-persona";
|
|
8
|
+
export declare class PersonaFactory {
|
|
9
|
+
private static personas;
|
|
10
|
+
private static configs;
|
|
11
|
+
static createPersona(type: PersonaType, enableLLMCoalescing?: boolean): BasePersona;
|
|
12
|
+
static getAvailablePersonas(): PersonaType[];
|
|
13
|
+
static getPersonaConfig(type: PersonaType): PersonaConfig | undefined;
|
|
14
|
+
static getAllConfigs(): Map<PersonaType, PersonaConfig>;
|
|
15
|
+
static isPersonaAvailable(type: PersonaType): boolean;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=persona-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persona-factory.d.ts","sourceRoot":"","sources":["../../src/personas-backup-phase-1/persona-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAKpB;IAEH,OAAO,CAAC,MAAM,CAAC,OAAO,CAenB;IAEH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,mBAAmB,GAAE,OAAe,GAAG,WAAW;IAU1F,MAAM,CAAC,oBAAoB,IAAI,WAAW,EAAE;IAI5C,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS;IAIrE,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC;IAIvD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;CAGtD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Persona Factory
|
|
4
|
+
*
|
|
5
|
+
* Factory for creating and managing expert personas
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.PersonaFactory = void 0;
|
|
9
|
+
const consultant_persona_1 = require("./consultant-persona");
|
|
10
|
+
class PersonaFactory {
|
|
11
|
+
static createPersona(type, enableLLMCoalescing = false) {
|
|
12
|
+
const personaFactory = this.personas.get(type);
|
|
13
|
+
if (!personaFactory) {
|
|
14
|
+
throw new Error(`Persona type '${type}' is not supported. Available types: ${Array.from(this.personas.keys()).join(", ")}`);
|
|
15
|
+
}
|
|
16
|
+
return personaFactory(enableLLMCoalescing);
|
|
17
|
+
}
|
|
18
|
+
static getAvailablePersonas() {
|
|
19
|
+
return Array.from(this.personas.keys());
|
|
20
|
+
}
|
|
21
|
+
static getPersonaConfig(type) {
|
|
22
|
+
return this.configs.get(type);
|
|
23
|
+
}
|
|
24
|
+
static getAllConfigs() {
|
|
25
|
+
return new Map(this.configs);
|
|
26
|
+
}
|
|
27
|
+
static isPersonaAvailable(type) {
|
|
28
|
+
return this.personas.has(type);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.PersonaFactory = PersonaFactory;
|
|
32
|
+
PersonaFactory.personas = new Map([
|
|
33
|
+
["consultant", (enableLLMCoalescing = false) => new consultant_persona_1.ConsultantPersona(enableLLMCoalescing)],
|
|
34
|
+
// Add other personas as they're implemented
|
|
35
|
+
// ['evangelist', () => new EvangelistPersona()],
|
|
36
|
+
// ['teamlead', () => new TeamLeadPersona()],
|
|
37
|
+
]);
|
|
38
|
+
PersonaFactory.configs = new Map([
|
|
39
|
+
[
|
|
40
|
+
"consultant",
|
|
41
|
+
{
|
|
42
|
+
type: "consultant",
|
|
43
|
+
name: "AI Strategy Consultant",
|
|
44
|
+
description: "Strategic advisor focused on business value, ROI, and organizational transformation",
|
|
45
|
+
expertise: ["AI Strategy", "Business Transformation", "ROI Analysis"],
|
|
46
|
+
focus: ["business-impact", "roi", "governance"],
|
|
47
|
+
tone: "formal",
|
|
48
|
+
targetAudience: ["executives", "managers"],
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
// Add other configs as implemented
|
|
52
|
+
]);
|
|
53
|
+
//# sourceMappingURL=persona-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persona-factory.js","sourceRoot":"","sources":["../../src/personas-backup-phase-1/persona-factory.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH,6DAAyD;AAEzD,MAAa,cAAc;IAyBzB,MAAM,CAAC,aAAa,CAAC,IAAiB,EAAE,sBAA+B,KAAK;QAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,wCAAwC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3G,CAAC;QACJ,CAAC;QACD,OAAO,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,oBAAoB;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,IAAiB;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,IAAiB;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;;AAjDH,wCAkDC;AAjDgB,uBAAQ,GAAqE,IAAI,GAAG,CAAC;IAClG,CAAC,YAAY,EAAE,CAAC,mBAAmB,GAAG,KAAK,EAAE,EAAE,CAAC,IAAI,sCAAiB,CAAC,mBAAmB,CAAC,CAAC;IAC3F,4CAA4C;IAC5C,iDAAiD;IACjD,6CAA6C;CAC9C,CAAC,CAAC;AAEY,sBAAO,GAAoC,IAAI,GAAG,CAAC;IAChE;QACE,YAAY;QACZ;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EACT,qFAAqF;YACvF,SAAS,EAAE,CAAC,aAAa,EAAE,yBAAyB,EAAE,cAAc,CAAC;YACrE,KAAK,EAAE,CAAC,iBAAiB,EAAE,KAAK,EAAE,YAAY,CAAC;YAC/C,IAAI,EAAE,QAAQ;YACd,cAAc,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;SAC3C;KACF;IACD,mCAAmC;CACpC,CAAC,CAAC"}
|