mulmocast-vision 0.0.1
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 +661 -0
- package/README.md +102 -0
- package/assets/html/agendaPage.html +13 -0
- package/assets/html/balanceSheetPage.html +29 -0
- package/assets/html/balancedScorecardPage.html +15 -0
- package/assets/html/bcgMatrixPage.html +37 -0
- package/assets/html/beforeAfterPage.html +21 -0
- package/assets/html/benchmarkingTablePage.html +23 -0
- package/assets/html/bubbleChartPlaceholderPage.html +9 -0
- package/assets/html/businessModelCanvasPage.html +14 -0
- package/assets/html/capabilityMaturityPage.html +8 -0
- package/assets/html/cashFlowPage.html +21 -0
- package/assets/html/changeCurvePage.html +11 -0
- package/assets/html/circularEconomyMapPage.html +8 -0
- package/assets/html/communicationPlanPage.html +22 -0
- package/assets/html/complianceHeatmapPage.html +19 -0
- package/assets/html/costStructurePage.html +20 -0
- package/assets/html/csrInitiativesPage.html +8 -0
- package/assets/html/cultureValuesPage.html +21 -0
- package/assets/html/customerJourneyPage.html +21 -0
- package/assets/html/customerSuccessJourneyPage.html +15 -0
- package/assets/html/digitalMaturityPage.html +14 -0
- package/assets/html/driverTreePage.html +20 -0
- package/assets/html/ecosystemMapPage.html +11 -0
- package/assets/html/esgFrameworkPage.html +28 -0
- package/assets/html/executiveSummaryPage.html +15 -0
- package/assets/html/fourPPage.html +36 -0
- package/assets/html/funnelPage.html +8 -0
- package/assets/html/ganttSimplePage.html +21 -0
- package/assets/html/geMcKinseyMatrixPage.html +13 -0
- package/assets/html/heatmapPlaceholderPage.html +24 -0
- package/assets/html/hypothesisPage.html +22 -0
- package/assets/html/innovationFunnelPage.html +13 -0
- package/assets/html/integrationPlanPage.html +21 -0
- package/assets/html/issueTreePage.html +23 -0
- package/assets/html/keyMessageWithSupportsPage.html +13 -0
- package/assets/html/kpiHighlightPage.html +14 -0
- package/assets/html/launchPlanPage.html +29 -0
- package/assets/html/mAPipelinePage.html +16 -0
- package/assets/html/marimekkoPlaceholderPage.html +9 -0
- package/assets/html/marketDriversPage.html +8 -0
- package/assets/html/marketingMixPage.html +11 -0
- package/assets/html/meceListPage.html +15 -0
- package/assets/html/milestoneTimelinePage.html +14 -0
- package/assets/html/npvSummaryPage.html +12 -0
- package/assets/html/okrKpiDashboardPage.html +16 -0
- package/assets/html/optionEvaluationPage.html +23 -0
- package/assets/html/orgChartPage.html +8 -0
- package/assets/html/pLBreakdownPage.html +19 -0
- package/assets/html/partnershipMapPage.html +11 -0
- package/assets/html/personasPage.html +19 -0
- package/assets/html/pipelineFunnelPage.html +8 -0
- package/assets/html/porterFiveForcesPage.html +44 -0
- package/assets/html/positioningMapPage.html +11 -0
- package/assets/html/pricingWaterfallPage.html +8 -0
- package/assets/html/productRoadmapPage.html +15 -0
- package/assets/html/pyramidPrinciplePage.html +27 -0
- package/assets/html/quarterlyRoadmapPage.html +15 -0
- package/assets/html/raciPage.html +23 -0
- package/assets/html/revenueModelPage.html +17 -0
- package/assets/html/riskMitigationPage.html +17 -0
- package/assets/html/salesDashboardPage.html +11 -0
- package/assets/html/scenarioPlanningPage.html +13 -0
- package/assets/html/scqaPage.html +27 -0
- package/assets/html/sectionDividerPage.html +7 -0
- package/assets/html/segmentationPage.html +15 -0
- package/assets/html/sensitivityAnalysisPage.html +22 -0
- package/assets/html/sevenSPage.html +11 -0
- package/assets/html/shareholderValueTreePage.html +8 -0
- package/assets/html/stakeholderMapPage.html +14 -0
- package/assets/html/supportOrgModelPage.html +21 -0
- package/assets/html/surveyResultsPage.html +11 -0
- package/assets/html/sustainabilityRoadmapPage.html +15 -0
- package/assets/html/swotPage.html +36 -0
- package/assets/html/synergyCapturePage.html +8 -0
- package/assets/html/tamSamSomPage.html +11 -0
- package/assets/html/techRoadmapPage.html +15 -0
- package/assets/html/thankYouContactPage.html +24 -0
- package/assets/html/threeCPage.html +28 -0
- package/assets/html/twoByTwoMatrixPage.html +17 -0
- package/assets/html/valueChainPage.html +18 -0
- package/assets/html/waterfallPage.html +8 -0
- package/assets/html2/agendaPage.html +26 -0
- package/assets/html2/balanceSheetPage.html +87 -0
- package/assets/html2/balancedScorecardPage.html +29 -0
- package/assets/html2/bcgMatrixPage.html +165 -0
- package/assets/html2/beforeAfterPage.html +78 -0
- package/assets/html2/benchmarkingTablePage.html +70 -0
- package/assets/html2/bubbleChartPlaceholderPage.html +107 -0
- package/assets/html2/businessModelCanvasPage.html +43 -0
- package/assets/html2/capabilityMaturityPage.html +38 -0
- package/assets/html2/cashFlowPage.html +68 -0
- package/assets/html2/changeCurvePage.html +53 -0
- package/assets/html2/circularEconomyMapPage.html +35 -0
- package/assets/html2/communicationPlanPage.html +82 -0
- package/assets/html2/complianceHeatmapPage.html +42 -0
- package/assets/html2/costStructurePage.html +60 -0
- package/assets/html2/csrInitiativesPage.html +26 -0
- package/assets/html2/cultureValuesPage.html +44 -0
- package/assets/html2/customerJourneyPage.html +68 -0
- package/assets/html2/customerSuccessJourneyPage.html +54 -0
- package/assets/html2/digitalMaturityPage.html +51 -0
- package/assets/html2/driverTreePage.html +92 -0
- package/assets/html2/ecosystemMapPage.html +30 -0
- package/assets/html2/esgFrameworkPage.html +66 -0
- package/assets/html2/executiveSummaryPage.html +27 -0
- package/assets/html2/fourPPage.html +85 -0
- package/assets/html2/funnelPage.html +53 -0
- package/assets/html2/ganttSimplePage.html +56 -0
- package/assets/html2/geMcKinseyMatrixPage.html +43 -0
- package/assets/html2/heatmapPlaceholderPage.html +131 -0
- package/assets/html2/hypothesisPage.html +100 -0
- package/assets/html2/innovationFunnelPage.html +61 -0
- package/assets/html2/integrationPlanPage.html +61 -0
- package/assets/html2/issueTreePage.html +97 -0
- package/assets/html2/keyMessageWithSupportsPage.html +47 -0
- package/assets/html2/kpiHighlightPage.html +54 -0
- package/assets/html2/launchPlanPage.html +86 -0
- package/assets/html2/mAPipelinePage.html +79 -0
- package/assets/html2/marimekkoPlaceholderPage.html +120 -0
- package/assets/html2/marketDriversPage.html +32 -0
- package/assets/html2/marketingMixPage.html +50 -0
- package/assets/html2/meceListPage.html +32 -0
- package/assets/html2/milestoneTimelinePage.html +59 -0
- package/assets/html2/npvSummaryPage.html +54 -0
- package/assets/html2/okrKpiDashboardPage.html +85 -0
- package/assets/html2/optionEvaluationPage.html +128 -0
- package/assets/html2/orgChartPage.html +30 -0
- package/assets/html2/pLBreakdownPage.html +73 -0
- package/assets/html2/partnershipMapPage.html +26 -0
- package/assets/html2/personasPage.html +39 -0
- package/assets/html2/pipelineFunnelPage.html +77 -0
- package/assets/html2/porterFiveForcesPage.html +140 -0
- package/assets/html2/positioningMapPage.html +40 -0
- package/assets/html2/pricingWaterfallPage.html +33 -0
- package/assets/html2/productRoadmapPage.html +47 -0
- package/assets/html2/pyramidPrinciplePage.html +47 -0
- package/assets/html2/quarterlyRoadmapPage.html +54 -0
- package/assets/html2/raciPage.html +49 -0
- package/assets/html2/revenueModelPage.html +54 -0
- package/assets/html2/riskMitigationPage.html +36 -0
- package/assets/html2/salesDashboardPage.html +58 -0
- package/assets/html2/scenarioPlanningPage.html +63 -0
- package/assets/html2/scqaPage.html +74 -0
- package/assets/html2/sectionDividerPage.html +25 -0
- package/assets/html2/segmentationPage.html +36 -0
- package/assets/html2/sensitivityAnalysisPage.html +82 -0
- package/assets/html2/sevenSPage.html +31 -0
- package/assets/html2/shareholderValueTreePage.html +32 -0
- package/assets/html2/stakeholderMapPage.html +36 -0
- package/assets/html2/supportOrgModelPage.html +57 -0
- package/assets/html2/surveyResultsPage.html +32 -0
- package/assets/html2/sustainabilityRoadmapPage.html +54 -0
- package/assets/html2/swotPage.html +97 -0
- package/assets/html2/synergyCapturePage.html +39 -0
- package/assets/html2/tamSamSomPage.html +62 -0
- package/assets/html2/techRoadmapPage.html +54 -0
- package/assets/html2/thankYouContactPage.html +78 -0
- package/assets/html2/threeCPage.html +66 -0
- package/assets/html2/twoByTwoMatrixPage.html +72 -0
- package/assets/html2/valueChainPage.html +56 -0
- package/assets/html2/waterfallPage.html +47 -0
- package/assets/templates/tailwind-sea.html +34 -0
- package/assets/templates/tailwind.html +14 -0
- package/lib/browser.d.ts +1 -0
- package/lib/browser.js +17 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +18 -0
- package/lib/mcp/server.d.ts +2 -0
- package/lib/mcp/server.js +77 -0
- package/lib/mcp/test.d.ts +1 -0
- package/lib/mcp/test.js +56 -0
- package/lib/presentation.d.ts +1 -0
- package/lib/presentation.js +67 -0
- package/lib/presentationHandlers/html.d.ts +322 -0
- package/lib/presentationHandlers/html.js +348 -0
- package/lib/presentationHandlers/html_class.d.ts +98 -0
- package/lib/presentationHandlers/html_class.js +266 -0
- package/lib/runner.d.ts +1 -0
- package/lib/runner.js +31 -0
- package/lib/server.d.ts +2 -0
- package/lib/server.js +76 -0
- package/lib/tools.d.ts +1 -0
- package/lib/tools.js +1604 -0
- package/lib/utils.d.ts +13 -0
- package/lib/utils.js +80 -0
- package/package.json +51 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<div
|
|
2
|
+
class="bg-gradient-to-br from-indigo-900 via-blue-800 to-slate-800 text-white flex flex-col items-center justify-center px-16 py-24 min-h-screen relative overflow-hidden"
|
|
3
|
+
>
|
|
4
|
+
<!-- Decorative background elements -->
|
|
5
|
+
<div class="absolute inset-0 opacity-10">
|
|
6
|
+
<div class="absolute top-0 right-0 w-96 h-96 bg-gradient-to-br from-blue-400 to-indigo-600 rounded-full transform translate-x-32 -translate-y-32"></div>
|
|
7
|
+
<div class="absolute bottom-0 left-0 w-80 h-80 bg-gradient-to-tr from-indigo-400 to-blue-500 rounded-full transform -translate-x-24 translate-y-24"></div>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
<div class="relative z-10 text-center">
|
|
11
|
+
<!-- Thank you message -->
|
|
12
|
+
<div class="mb-16">
|
|
13
|
+
<div class="mb-8 flex items-center justify-center">
|
|
14
|
+
<div class="h-px w-20 bg-gradient-to-r from-transparent to-blue-300"></div>
|
|
15
|
+
<div class="mx-6 w-3 h-3 bg-blue-300 rounded-full"></div>
|
|
16
|
+
<div class="h-px w-20 bg-gradient-to-l from-transparent to-blue-300"></div>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<h1 class="text-7xl lg:text-8xl font-black tracking-tight mb-8 leading-none bg-gradient-to-r from-white to-blue-100 bg-clip-text text-transparent">
|
|
20
|
+
{{message}}
|
|
21
|
+
</h1>
|
|
22
|
+
|
|
23
|
+
<div class="w-24 h-0.5 bg-gradient-to-r from-blue-300 to-indigo-300 mx-auto"></div>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<!-- Contact Information -->
|
|
27
|
+
<div class="max-w-5xl grid grid-cols-1 lg:grid-cols-3 gap-8 items-start">
|
|
28
|
+
<div class="lg:col-span-2 bg-white bg-opacity-10 backdrop-blur-lg rounded-3xl border border-white border-opacity-20 p-10 shadow-2xl">
|
|
29
|
+
<div class="space-y-6 text-left">
|
|
30
|
+
{%- if name %}
|
|
31
|
+
<div class="flex items-center text-2xl">
|
|
32
|
+
<div class="w-8 h-8 bg-blue-400 bg-opacity-30 rounded-lg flex items-center justify-center mr-4">
|
|
33
|
+
<svg class="w-4 h-4 text-blue-200" fill="currentColor" viewBox="0 0 20 20">
|
|
34
|
+
<path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd" />
|
|
35
|
+
</svg>
|
|
36
|
+
</div>
|
|
37
|
+
<span class="text-blue-200 font-light mr-3">Name:</span>
|
|
38
|
+
<span class="font-semibold text-white">{{name}}</span>
|
|
39
|
+
</div>
|
|
40
|
+
{%- endif %} {%- if email %}
|
|
41
|
+
<div class="flex items-center text-2xl">
|
|
42
|
+
<div class="w-8 h-8 bg-blue-400 bg-opacity-30 rounded-lg flex items-center justify-center mr-4">
|
|
43
|
+
<svg class="w-4 h-4 text-blue-200" fill="currentColor" viewBox="0 0 20 20">
|
|
44
|
+
<path d="M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z" />
|
|
45
|
+
<path d="M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z" />
|
|
46
|
+
</svg>
|
|
47
|
+
</div>
|
|
48
|
+
<span class="text-blue-200 font-light mr-3">Email:</span>
|
|
49
|
+
<span class="font-semibold text-white">{{email}}</span>
|
|
50
|
+
</div>
|
|
51
|
+
{%- endif %} {%- if url %}
|
|
52
|
+
<div class="flex items-center text-2xl">
|
|
53
|
+
<div class="w-8 h-8 bg-blue-400 bg-opacity-30 rounded-lg flex items-center justify-center mr-4">
|
|
54
|
+
<svg class="w-4 h-4 text-blue-200" fill="currentColor" viewBox="0 0 20 20">
|
|
55
|
+
<path
|
|
56
|
+
fill-rule="evenodd"
|
|
57
|
+
d="M12.586 4.586a2 2 0 112.828 2.828l-3 3a2 2 0 01-2.828 0 1 1 0 00-1.414 1.414 4 4 0 005.656 0l3-3a4 4 0 00-5.656-5.656l-1.5 1.5a1 1 0 101.414 1.414l1.5-1.5zm-5 5a2 2 0 012.828 0 1 1 0 101.414-1.414 4 4 0 00-5.656 0l-3 3a4 4 0 105.656 5.656l1.5-1.5a1 1 0 10-1.414-1.414l-1.5 1.5a2 2 0 11-2.828-2.828l3-3z"
|
|
58
|
+
clip-rule="evenodd"
|
|
59
|
+
/>
|
|
60
|
+
</svg>
|
|
61
|
+
</div>
|
|
62
|
+
<span class="text-blue-200 font-light mr-3">Website:</span>
|
|
63
|
+
<span class="font-semibold text-white">{{url}}</span>
|
|
64
|
+
</div>
|
|
65
|
+
{%- endif %}
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
{%- if qrImageUrl %}
|
|
70
|
+
<div class="bg-white bg-opacity-10 backdrop-blur-lg rounded-3xl border border-white border-opacity-20 p-8 shadow-2xl flex items-center justify-center">
|
|
71
|
+
<div class="bg-white rounded-2xl p-4">
|
|
72
|
+
<img src="${qrImageUrl}" alt="QR code" class="w-48 h-48 object-contain" />
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
{%- endif %}
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
<div class="bg-gradient-to-br from-slate-50 to-blue-50 text-gray-900 px-16 py-16 min-h-screen">
|
|
2
|
+
<!-- Header -->
|
|
3
|
+
<div class="text-center mb-16">
|
|
4
|
+
<div class="w-20 h-1 bg-gradient-to-r from-blue-600 to-indigo-600 mb-6 mx-auto"></div>
|
|
5
|
+
<h1 class="text-6xl font-bold text-gray-900 mb-4 leading-tight">3C Strategy Framework</h1>
|
|
6
|
+
<div class="w-32 h-0.5 bg-gray-300 mx-auto"></div>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 max-w-7xl mx-auto">
|
|
10
|
+
<section class="bg-gradient-to-br from-emerald-500 to-green-600 rounded-3xl p-10 text-white shadow-2xl hover:scale-105 transition-all duration-300">
|
|
11
|
+
<div class="flex items-center mb-6">
|
|
12
|
+
<div class="w-16 h-16 bg-white bg-opacity-20 rounded-2xl flex items-center justify-center mr-6">
|
|
13
|
+
<svg class="w-8 h-8" fill="currentColor" viewBox="0 0 20 20">
|
|
14
|
+
<path
|
|
15
|
+
fill-rule="evenodd"
|
|
16
|
+
d="M4 4a2 2 0 00-2 2v8a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2H4zm2 6a2 2 0 104 0 2 2 0 00-4 0zm6 0a2 2 0 104 0 2 2 0 00-4 0z"
|
|
17
|
+
clip-rule="evenodd"
|
|
18
|
+
/>
|
|
19
|
+
</svg>
|
|
20
|
+
</div>
|
|
21
|
+
<h2 class="text-3xl font-bold">Company</h2>
|
|
22
|
+
</div>
|
|
23
|
+
<ul class="space-y-3 text-lg">
|
|
24
|
+
{% for c in company %}
|
|
25
|
+
<li class="flex items-start"><span class="w-2 h-2 bg-white rounded-full mt-3 mr-3 flex-shrink-0"></span><span>{{c}}</span></li>
|
|
26
|
+
{% endfor %}
|
|
27
|
+
</ul>
|
|
28
|
+
</section>
|
|
29
|
+
|
|
30
|
+
<section class="bg-gradient-to-br from-blue-500 to-indigo-600 rounded-3xl p-10 text-white shadow-2xl hover:scale-105 transition-all duration-300">
|
|
31
|
+
<div class="flex items-center mb-6">
|
|
32
|
+
<div class="w-16 h-16 bg-white bg-opacity-20 rounded-2xl flex items-center justify-center mr-6">
|
|
33
|
+
<svg class="w-8 h-8" fill="currentColor" viewBox="0 0 20 20">
|
|
34
|
+
<path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd" />
|
|
35
|
+
</svg>
|
|
36
|
+
</div>
|
|
37
|
+
<h2 class="text-3xl font-bold">Customer</h2>
|
|
38
|
+
</div>
|
|
39
|
+
<ul class="space-y-3 text-lg">
|
|
40
|
+
{% for c in customer %}
|
|
41
|
+
<li class="flex items-start"><span class="w-2 h-2 bg-white rounded-full mt-3 mr-3 flex-shrink-0"></span><span>{{c}}</span></li>
|
|
42
|
+
{% endfor %}
|
|
43
|
+
</ul>
|
|
44
|
+
</section>
|
|
45
|
+
|
|
46
|
+
<section class="bg-gradient-to-br from-amber-500 to-orange-600 rounded-3xl p-10 text-white shadow-2xl hover:scale-105 transition-all duration-300">
|
|
47
|
+
<div class="flex items-center mb-6">
|
|
48
|
+
<div class="w-16 h-16 bg-white bg-opacity-20 rounded-2xl flex items-center justify-center mr-6">
|
|
49
|
+
<svg class="w-8 h-8" fill="currentColor" viewBox="0 0 20 20">
|
|
50
|
+
<path
|
|
51
|
+
fill-rule="evenodd"
|
|
52
|
+
d="M3 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm0 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm0 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm0 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
|
|
53
|
+
clip-rule="evenodd"
|
|
54
|
+
/>
|
|
55
|
+
</svg>
|
|
56
|
+
</div>
|
|
57
|
+
<h2 class="text-3xl font-bold">Competitor</h2>
|
|
58
|
+
</div>
|
|
59
|
+
<ul class="space-y-3 text-lg">
|
|
60
|
+
{% for c in competitor %}
|
|
61
|
+
<li class="flex items-start"><span class="w-2 h-2 bg-white rounded-full mt-3 mr-3 flex-shrink-0"></span><span>{{c}}</span></li>
|
|
62
|
+
{% endfor %}
|
|
63
|
+
</ul>
|
|
64
|
+
</section>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<div class="bg-gradient-to-br from-slate-50 to-blue-50 text-gray-900 px-16 py-16 min-h-screen">
|
|
2
|
+
<!-- Header -->
|
|
3
|
+
<div class="mb-16">
|
|
4
|
+
<div class="w-20 h-1 bg-gradient-to-r from-blue-600 to-indigo-600 mb-6"></div>
|
|
5
|
+
<h1 class="text-6xl font-bold text-gray-900 mb-4 leading-tight">2x2 Matrix</h1>
|
|
6
|
+
<div class="w-32 h-0.5 bg-gray-300"></div>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<!-- Matrix Layout -->
|
|
10
|
+
<div class="max-w-6xl mx-auto">
|
|
11
|
+
<!-- Axis Labels -->
|
|
12
|
+
<div class="relative mb-8">
|
|
13
|
+
<!-- Y-axis label -->
|
|
14
|
+
<div class="absolute -left-16 top-1/2 transform -translate-y-1/2 -rotate-90">
|
|
15
|
+
<span class="text-gray-600 font-semibold text-lg">{{yAxis}}</span>
|
|
16
|
+
<div class="flex items-center mt-2">
|
|
17
|
+
<span class="text-sm text-gray-500 mr-2">High</span>
|
|
18
|
+
<div class="w-12 h-0.5 bg-gray-400"></div>
|
|
19
|
+
<span class="text-sm text-gray-500 ml-2">Low</span>
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<!-- X-axis label -->
|
|
24
|
+
<div class="text-center mb-4">
|
|
25
|
+
<span class="text-gray-600 font-semibold text-lg">{{xAxis}}</span>
|
|
26
|
+
<div class="flex items-center justify-center mt-2">
|
|
27
|
+
<span class="text-sm text-gray-500 mr-4">Low</span>
|
|
28
|
+
<div class="w-24 h-0.5 bg-gray-400"></div>
|
|
29
|
+
<span class="text-sm text-gray-500 ml-4">High</span>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<!-- Matrix Grid -->
|
|
34
|
+
<div class="grid grid-cols-2 gap-8">
|
|
35
|
+
{% set quadrant_colors = ['from-blue-500 to-indigo-600', 'from-emerald-500 to-green-600', 'from-red-500 to-rose-600', 'from-amber-500 to-orange-600'] %}
|
|
36
|
+
{% set quadrant_labels = ['High Y, Low X', 'High Y, High X', 'Low Y, Low X', 'Low Y, High X'] %} {% for q in quadrants %} {% set color =
|
|
37
|
+
quadrant_colors[loop.index0] %}
|
|
38
|
+
<section
|
|
39
|
+
class="bg-gradient-to-br {{ color }} rounded-3xl p-8 text-white shadow-2xl transform hover:scale-105 transition-all duration-300 min-h-[200px]"
|
|
40
|
+
>
|
|
41
|
+
<div class="flex items-center mb-6">
|
|
42
|
+
<div class="w-12 h-12 bg-white bg-opacity-20 rounded-xl flex items-center justify-center mr-4">
|
|
43
|
+
<span class="text-xl font-bold">{{ loop.index }}</span>
|
|
44
|
+
</div>
|
|
45
|
+
<h3 class="text-lg font-bold opacity-75">{{ quadrant_labels[loop.index0] }}</h3>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<ul class="space-y-3 text-lg">
|
|
49
|
+
{% for it in q %}
|
|
50
|
+
<li class="flex items-start"><span class="w-2 h-2 bg-white rounded-full mt-3 mr-3 flex-shrink-0"></span><span>{{it}}</span></li>
|
|
51
|
+
{% endfor %}
|
|
52
|
+
</ul>
|
|
53
|
+
</section>
|
|
54
|
+
{% endfor %}
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<!-- Matrix Legend -->
|
|
60
|
+
<div class="text-center mt-12">
|
|
61
|
+
<div class="inline-flex items-center bg-white rounded-2xl shadow-lg px-6 py-4">
|
|
62
|
+
<svg class="w-6 h-6 text-gray-500 mr-3" fill="currentColor" viewBox="0 0 20 20">
|
|
63
|
+
<path
|
|
64
|
+
fill-rule="evenodd"
|
|
65
|
+
d="M3 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm0 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm0 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm0 4a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
|
|
66
|
+
clip-rule="evenodd"
|
|
67
|
+
/>
|
|
68
|
+
</svg>
|
|
69
|
+
<span class="text-lg font-semibold text-gray-700">Matrix Analysis Framework</span>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<div class="bg-gradient-to-br from-slate-50 to-blue-50 text-gray-900 px-16 py-16 min-h-screen">
|
|
2
|
+
<!-- Header -->
|
|
3
|
+
<div class="text-center mb-16">
|
|
4
|
+
<div class="w-20 h-1 bg-gradient-to-r from-blue-600 to-indigo-600 mb-6 mx-auto"></div>
|
|
5
|
+
<h1 class="text-6xl font-bold text-gray-900 mb-4 leading-tight">Value Chain Analysis</h1>
|
|
6
|
+
<div class="w-32 h-0.5 bg-gray-300 mx-auto"></div>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div class="max-w-7xl mx-auto space-y-12">
|
|
10
|
+
<section>
|
|
11
|
+
<div class="mb-8">
|
|
12
|
+
<h2 class="text-4xl font-bold text-gray-900 mb-4">Primary Activities</h2>
|
|
13
|
+
<div class="w-24 h-0.5 bg-emerald-500 mb-6"></div>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="grid grid-cols-5 gap-6">
|
|
16
|
+
{% for p in primary %}
|
|
17
|
+
<div
|
|
18
|
+
class="bg-gradient-to-br from-emerald-500 to-green-600 rounded-2xl p-8 text-white shadow-2xl hover:scale-105 transition-all duration-300 text-center"
|
|
19
|
+
>
|
|
20
|
+
<div class="w-12 h-12 bg-white bg-opacity-20 rounded-xl flex items-center justify-center mx-auto mb-4">
|
|
21
|
+
<svg class="w-6 h-6" fill="currentColor" viewBox="0 0 20 20">
|
|
22
|
+
<path
|
|
23
|
+
fill-rule="evenodd"
|
|
24
|
+
d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"
|
|
25
|
+
clip-rule="evenodd"
|
|
26
|
+
/>
|
|
27
|
+
</svg>
|
|
28
|
+
</div>
|
|
29
|
+
<p class="text-lg font-light">{{p}}</p>
|
|
30
|
+
</div>
|
|
31
|
+
{% endfor %}
|
|
32
|
+
</div>
|
|
33
|
+
</section>
|
|
34
|
+
|
|
35
|
+
<section>
|
|
36
|
+
<div class="mb-8">
|
|
37
|
+
<h2 class="text-4xl font-bold text-gray-900 mb-4">Support Activities</h2>
|
|
38
|
+
<div class="w-24 h-0.5 bg-blue-500 mb-6"></div>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="grid grid-cols-5 gap-6">
|
|
41
|
+
{% for s in support %}
|
|
42
|
+
<div
|
|
43
|
+
class="bg-gradient-to-br from-blue-500 to-indigo-600 rounded-2xl p-8 text-white shadow-2xl hover:scale-105 transition-all duration-300 text-center"
|
|
44
|
+
>
|
|
45
|
+
<div class="w-12 h-12 bg-white bg-opacity-20 rounded-xl flex items-center justify-center mx-auto mb-4">
|
|
46
|
+
<svg class="w-6 h-6" fill="currentColor" viewBox="0 0 20 20">
|
|
47
|
+
<path fill-rule="evenodd" d="M2 5a2 2 0 012-2h8a2 2 0 012 2v10a2 2 0 002 2H4a2 2 0 01-2-2V5zm3 1h6v4H5V6zm6 6H5v2h6v-2z" clip-rule="evenodd" />
|
|
48
|
+
</svg>
|
|
49
|
+
</div>
|
|
50
|
+
<p class="text-lg font-light">{{s}}</p>
|
|
51
|
+
</div>
|
|
52
|
+
{% endfor %}
|
|
53
|
+
</div>
|
|
54
|
+
</section>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<div class="bg-gradient-to-br from-slate-50 to-blue-50 text-gray-900 px-16 py-16 min-h-screen">
|
|
2
|
+
<!-- Header -->
|
|
3
|
+
<div class="mb-16">
|
|
4
|
+
<div class="w-20 h-1 bg-gradient-to-r from-blue-600 to-indigo-600 mb-6"></div>
|
|
5
|
+
<h1 class="text-6xl font-bold text-gray-900 mb-4 leading-tight">{{title}}</h1>
|
|
6
|
+
<div class="w-32 h-0.5 bg-gray-300"></div>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<!-- Waterfall Steps -->
|
|
10
|
+
<div class="max-w-6xl mx-auto">
|
|
11
|
+
<div class="space-y-6">
|
|
12
|
+
{% for s in steps %}
|
|
13
|
+
<div class="bg-white rounded-2xl shadow-lg border border-gray-100 p-6 transform hover:scale-[1.02] transition-all duration-300 hover:shadow-xl">
|
|
14
|
+
<div class="flex items-center justify-between">
|
|
15
|
+
<div class="flex items-center">
|
|
16
|
+
<div class="w-12 h-12 bg-gradient-to-br from-blue-500 to-indigo-600 rounded-xl flex items-center justify-center mr-4">
|
|
17
|
+
<svg class="w-6 h-6 text-white" fill="currentColor" viewBox="0 0 20 20">
|
|
18
|
+
<path
|
|
19
|
+
d="M2 11a1 1 0 011-1h2a1 1 0 011 1v5a1 1 0 01-1 1H3a1 1 0 01-1-1v-5zM8 7a1 1 0 011-1h2a1 1 0 011 1v9a1 1 0 01-1 1H9a1 1 0 01-1-1V7zM14 4a1 1 0 011-1h2a1 1 0 011 1v12a1 1 0 01-1 1h-2a1 1 0 01-1-1V4z"
|
|
20
|
+
/>
|
|
21
|
+
</svg>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="text-xl font-semibold text-gray-800">{{s.label}}</div>
|
|
24
|
+
</div>
|
|
25
|
+
<div
|
|
26
|
+
class="text-2xl font-bold {% if s.value|string|first == '-' %}text-red-600{% elif s.value|string|first == '+' %}text-emerald-600{% else %}text-blue-600{% endif %}"
|
|
27
|
+
>
|
|
28
|
+
{{s.value}}
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
{% endfor %}
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
<!-- Waterfall Summary -->
|
|
37
|
+
<div class="text-center mt-12">
|
|
38
|
+
<div class="inline-flex items-center bg-gradient-to-r from-blue-600 to-indigo-600 text-white rounded-2xl shadow-xl px-8 py-6">
|
|
39
|
+
<svg class="w-8 h-8 mr-3" fill="currentColor" viewBox="0 0 20 20">
|
|
40
|
+
<path
|
|
41
|
+
d="M2 11a1 1 0 011-1h2a1 1 0 011 1v5a1 1 0 01-1 1H3a1 1 0 01-1-1v-5zM8 7a1 1 0 011-1h2a1 1 0 011 1v9a1 1 0 01-1 1H9a1 1 0 01-1-1V7zM14 4a1 1 0 011-1h2a1 1 0 011 1v12a1 1 0 01-1 1h-2a1 1 0 01-1-1V4z"
|
|
42
|
+
/>
|
|
43
|
+
</svg>
|
|
44
|
+
<span class="text-2xl font-bold">Waterfall Analysis Complete</span>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
|
|
7
|
+
<!-- Google Fonts -->
|
|
8
|
+
<link href="https://fonts.googleapis.com/css2?family=Pacifico&family=Quicksand:wght@400;600&display=swap" rel="stylesheet" />
|
|
9
|
+
<style type="text/tailwindcss">
|
|
10
|
+
@layer base {
|
|
11
|
+
body {
|
|
12
|
+
@apply text-gray-900 bg-cover bg-center;
|
|
13
|
+
font-family: "Quicksand", sans-serif;
|
|
14
|
+
background-image: url("https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=1600&q=80");
|
|
15
|
+
}
|
|
16
|
+
h1,
|
|
17
|
+
h2,
|
|
18
|
+
h3 {
|
|
19
|
+
font-family: "Pacifico", cursive;
|
|
20
|
+
@apply text-white drop-shadow-lg;
|
|
21
|
+
}
|
|
22
|
+
a {
|
|
23
|
+
@apply text-yellow-200 hover:text-yellow-400 underline;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
</style>
|
|
27
|
+
<title>${title}</title>
|
|
28
|
+
<!-- Tailwind CSS CDN -->
|
|
29
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
30
|
+
</head>
|
|
31
|
+
<body class="min-h-screen flex flex-col">
|
|
32
|
+
<div class="bg-black/40 p-10 rounded-xl">${htmlBody}</div>
|
|
33
|
+
</body>
|
|
34
|
+
</html>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>${title}</title>
|
|
7
|
+
<!-- Tailwind CSS CDN -->
|
|
8
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
9
|
+
${headerStyle}
|
|
10
|
+
</head>
|
|
11
|
+
<body class="min-h-screen flex flex-col">
|
|
12
|
+
${htmlBody}
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
package/lib/browser.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./tools";
|
package/lib/browser.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./tools"), exports);
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./presentationHandlers/html_class"), exports);
|
|
18
|
+
__exportStar(require("./tools"), exports);
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
5
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
6
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
7
|
+
const graphai_1 = require("graphai");
|
|
8
|
+
const tools_1 = require("../tools");
|
|
9
|
+
const html_class_1 = require("../presentationHandlers/html_class");
|
|
10
|
+
const utils_1 = require("../utils");
|
|
11
|
+
const server = new index_js_1.Server({
|
|
12
|
+
name: "mulmocast-vision-mcp",
|
|
13
|
+
version: "0.1.0",
|
|
14
|
+
}, {
|
|
15
|
+
capabilities: {
|
|
16
|
+
tools: {},
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
// List available tools
|
|
20
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
21
|
+
return {
|
|
22
|
+
tools: tools_1.tools.map((tool) => {
|
|
23
|
+
const { name, description, parameters } = tool.function;
|
|
24
|
+
return { name, description, inputSchema: parameters };
|
|
25
|
+
}),
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
const rootDir = (0, utils_1.getRootDir)();
|
|
29
|
+
const outputDir = (0, utils_1.getOutDir)();
|
|
30
|
+
(0, utils_1.mkdir)(outputDir);
|
|
31
|
+
const handler = new html_class_1.htmlPlugin({ outputDir, rootDir });
|
|
32
|
+
let index = 0;
|
|
33
|
+
// Handle tool calls
|
|
34
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
35
|
+
const { name, arguments: args } = request.params;
|
|
36
|
+
try {
|
|
37
|
+
if (name in handler) {
|
|
38
|
+
const key = name;
|
|
39
|
+
const method = handler[key];
|
|
40
|
+
if (typeof method === "function") {
|
|
41
|
+
index = index + 1;
|
|
42
|
+
await method(args, { name, index });
|
|
43
|
+
return {
|
|
44
|
+
content: [
|
|
45
|
+
{
|
|
46
|
+
type: "text",
|
|
47
|
+
text: `html generated successfully to: ${outputDir}`,
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
throw new Error(`Unknown command: ${name}.`);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
57
|
+
return {
|
|
58
|
+
content: [
|
|
59
|
+
{
|
|
60
|
+
type: "text",
|
|
61
|
+
text: `Error: ${errorMessage}`,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
isError: true,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
// Start the server
|
|
69
|
+
async function main() {
|
|
70
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
71
|
+
await server.connect(transport);
|
|
72
|
+
graphai_1.GraphAILogger.error("MulmoCast Vision MCP Server running on stdio");
|
|
73
|
+
}
|
|
74
|
+
main().catch((error) => {
|
|
75
|
+
graphai_1.GraphAILogger.error("Failed to start MCP server:", error);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/mcp/test.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
4
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
5
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
6
|
+
const server = new index_js_1.Server({
|
|
7
|
+
name: "mock-mcp-server",
|
|
8
|
+
version: "0.1.0",
|
|
9
|
+
}, {
|
|
10
|
+
capabilities: {
|
|
11
|
+
tools: {},
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
// Tool 一覧を返す
|
|
15
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
16
|
+
return {
|
|
17
|
+
tools: [
|
|
18
|
+
{
|
|
19
|
+
name: "hello",
|
|
20
|
+
description: "Return a simple greeting",
|
|
21
|
+
inputSchema: { type: "object", properties: {} },
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: "createSectionDividerPage",
|
|
25
|
+
description: "Insert a new slide in the presentation that serves as a section divider. This slide must include both a large main heading and a subtitle. Use this when the user wants to create a single slide that clearly introduces or separates a new section in their presentation.",
|
|
26
|
+
inputSchema: {
|
|
27
|
+
type: "object",
|
|
28
|
+
properties: {
|
|
29
|
+
heading: { type: "string", description: "Main section title, shown prominently on the slide" },
|
|
30
|
+
subheading: { type: "string", description: "Subtitle that provides context or explanation for the section" },
|
|
31
|
+
},
|
|
32
|
+
required: ["heading", "subheading"],
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
// Tool 呼び出しを処理
|
|
39
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
40
|
+
if (request.params.name === "hello") {
|
|
41
|
+
return {
|
|
42
|
+
content: [{ type: "text", text: "Hello from MCP mock server!" }],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
throw new Error(`Unknown tool: ${request.params.name}`);
|
|
46
|
+
});
|
|
47
|
+
// エントリポイント
|
|
48
|
+
async function main() {
|
|
49
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
50
|
+
await server.connect(transport);
|
|
51
|
+
console.error("✅ MCP Mock Server running on stdio");
|
|
52
|
+
}
|
|
53
|
+
main().catch((err) => {
|
|
54
|
+
console.error("❌ Failed to start server:", err);
|
|
55
|
+
process.exit(1);
|
|
56
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "dotenv/config";
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("dotenv/config");
|
|
4
|
+
const graphai_1 = require("graphai");
|
|
5
|
+
const openai_agent_1 = require("@graphai/openai_agent");
|
|
6
|
+
const tools_1 = require("./tools");
|
|
7
|
+
// import * as presentationHandlers from "./presentationHandlers/html";
|
|
8
|
+
const html_class_1 = require("../src/presentationHandlers/html_class");
|
|
9
|
+
const runner_1 = require("./runner");
|
|
10
|
+
const utils_1 = require("../src/utils");
|
|
11
|
+
const main = async () => {
|
|
12
|
+
const namedInputs = {
|
|
13
|
+
prompt: [
|
|
14
|
+
`
|
|
15
|
+
以下の内容をまとめて、そしてPPTの資料を10枚にしてまとめたい。
|
|
16
|
+
|
|
17
|
+
The Kremlin has played down talk of an imminent summit between Russian President Vladimir Putin and Ukraine's Volodymyr Zelensky, as Donald Trump renewed his call for the two leaders to meet to discuss ending the war in Ukraine.
|
|
18
|
+
|
|
19
|
+
The push for a bilateral meeting comes after the US president met Putin in Alaska last week, and welcomed seven European leaders and Zelensky to the White House on Monday.
|
|
20
|
+
|
|
21
|
+
Trump admitted the conflict was "a tough one" to solve and conceded it was possible the Russian president was not interested in ending hostilities.
|
|
22
|
+
|
|
23
|
+
"We're going to find out about President Putin in the next couple of weeks," he said on Tuesday. "It's possible that he doesn't want to make a deal."
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
while the UK's military chief, Admiral Tony Radakin, is travelling to Washington for discussions on the deployment of a reassurance force in Ukraine.
|
|
27
|
+
|
|
28
|
+
It was reported on Tuesday that Putin had suggested to Trump that Zelensky could travel to Moscow for talks, something Ukraine was never likely to accept.
|
|
29
|
+
|
|
30
|
+
The proposal may have been Russia's way of putting forward an option so far-fetched Kyiv could not possibly have agreed to it.
|
|
31
|
+
|
|
32
|
+
Talks over the last few days appear to have given Trump a renewed understanding of the complexities of the war and the gulf between Moscow's demands and Kyiv's position.
|
|
33
|
+
|
|
34
|
+
The much-vaunted ceasefire he said he could get Putin to agree to has not materialised, and now the US president has said Ukraine and Russia should move directly to a permanent peace deal instead - but some headway was made in terms of security guarantees for Ukraine.
|
|
35
|
+
|
|
36
|
+
Zelensky and European leaders seem to have convinced Trump that such commitments would be paramount to Kyiv's sovereignty in the event of a peace deal.`,
|
|
37
|
+
],
|
|
38
|
+
};
|
|
39
|
+
const params = {
|
|
40
|
+
// dataStream: true,
|
|
41
|
+
tool_choice: "auto",
|
|
42
|
+
tools: tools_1.tools,
|
|
43
|
+
};
|
|
44
|
+
const res = (await openai_agent_1.openAIAgent.agent({
|
|
45
|
+
...graphai_1.defaultTestContext,
|
|
46
|
+
namedInputs,
|
|
47
|
+
params,
|
|
48
|
+
filterParams: {
|
|
49
|
+
streamTokenCallback: (data) => {
|
|
50
|
+
console.log(JSON.stringify(data, null, 2));
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
}));
|
|
54
|
+
const rootDir = (0, utils_1.getRootDir)();
|
|
55
|
+
const outputDir = (0, utils_1.getOutDir)();
|
|
56
|
+
(0, utils_1.mkdir)(outputDir);
|
|
57
|
+
if (res) {
|
|
58
|
+
console.log(JSON.stringify(res.tool_calls, null, 2));
|
|
59
|
+
const handler = new html_class_1.htmlPlugin({ outputDir, rootDir });
|
|
60
|
+
(0, runner_1.toolsRunner)(handler, res.tool_calls);
|
|
61
|
+
(0, utils_1.writeTools)(outputDir, res.tool_calls);
|
|
62
|
+
}
|
|
63
|
+
// toolsRunner(presentationHandlers, res.tool_calls);
|
|
64
|
+
// for debug
|
|
65
|
+
// presentationHandlers.writeTools(res.tool_calls);
|
|
66
|
+
};
|
|
67
|
+
main();
|