@nahisaho/katashiro-analyzer 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist/factcheck/ClaimParser.d.ts +41 -0
  2. package/dist/factcheck/ClaimParser.d.ts.map +1 -0
  3. package/dist/factcheck/ClaimParser.js +149 -0
  4. package/dist/factcheck/ClaimParser.js.map +1 -0
  5. package/dist/factcheck/ConsistencyChecker.d.ts +56 -0
  6. package/dist/factcheck/ConsistencyChecker.d.ts.map +1 -0
  7. package/dist/factcheck/ConsistencyChecker.js +184 -0
  8. package/dist/factcheck/ConsistencyChecker.js.map +1 -0
  9. package/dist/factcheck/EvidenceCollector.d.ts +89 -0
  10. package/dist/factcheck/EvidenceCollector.d.ts.map +1 -0
  11. package/dist/factcheck/EvidenceCollector.js +222 -0
  12. package/dist/factcheck/EvidenceCollector.js.map +1 -0
  13. package/dist/factcheck/FactChecker.d.ts +81 -0
  14. package/dist/factcheck/FactChecker.d.ts.map +1 -0
  15. package/dist/factcheck/FactChecker.js +302 -0
  16. package/dist/factcheck/FactChecker.js.map +1 -0
  17. package/dist/factcheck/TrustedSourceRegistry.d.ts +47 -0
  18. package/dist/factcheck/TrustedSourceRegistry.d.ts.map +1 -0
  19. package/dist/factcheck/TrustedSourceRegistry.js +208 -0
  20. package/dist/factcheck/TrustedSourceRegistry.js.map +1 -0
  21. package/dist/factcheck/VerdictGenerator.d.ts +36 -0
  22. package/dist/factcheck/VerdictGenerator.d.ts.map +1 -0
  23. package/dist/factcheck/VerdictGenerator.js +154 -0
  24. package/dist/factcheck/VerdictGenerator.js.map +1 -0
  25. package/dist/factcheck/index.d.ts +15 -0
  26. package/dist/factcheck/index.d.ts.map +1 -0
  27. package/dist/factcheck/index.js +14 -0
  28. package/dist/factcheck/index.js.map +1 -0
  29. package/dist/factcheck/types.d.ts +265 -0
  30. package/dist/factcheck/types.d.ts.map +1 -0
  31. package/dist/factcheck/types.js +18 -0
  32. package/dist/factcheck/types.js.map +1 -0
  33. package/dist/index.d.ts +5 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +10 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/interpreter/CodeInterpreter.d.ts +119 -0
  38. package/dist/interpreter/CodeInterpreter.d.ts.map +1 -0
  39. package/dist/interpreter/CodeInterpreter.js +241 -0
  40. package/dist/interpreter/CodeInterpreter.js.map +1 -0
  41. package/dist/interpreter/CodeValidator.d.ts +57 -0
  42. package/dist/interpreter/CodeValidator.d.ts.map +1 -0
  43. package/dist/interpreter/CodeValidator.js +283 -0
  44. package/dist/interpreter/CodeValidator.js.map +1 -0
  45. package/dist/interpreter/ExecutionEngine.d.ts +73 -0
  46. package/dist/interpreter/ExecutionEngine.d.ts.map +1 -0
  47. package/dist/interpreter/ExecutionEngine.js +273 -0
  48. package/dist/interpreter/ExecutionEngine.js.map +1 -0
  49. package/dist/interpreter/ResultFormatter.d.ts +72 -0
  50. package/dist/interpreter/ResultFormatter.d.ts.map +1 -0
  51. package/dist/interpreter/ResultFormatter.js +187 -0
  52. package/dist/interpreter/ResultFormatter.js.map +1 -0
  53. package/dist/interpreter/SandboxManager.d.ts +111 -0
  54. package/dist/interpreter/SandboxManager.d.ts.map +1 -0
  55. package/dist/interpreter/SandboxManager.js +215 -0
  56. package/dist/interpreter/SandboxManager.js.map +1 -0
  57. package/dist/interpreter/SessionManager.d.ts +101 -0
  58. package/dist/interpreter/SessionManager.d.ts.map +1 -0
  59. package/dist/interpreter/SessionManager.js +184 -0
  60. package/dist/interpreter/SessionManager.js.map +1 -0
  61. package/dist/interpreter/index.d.ts +13 -0
  62. package/dist/interpreter/index.d.ts.map +1 -0
  63. package/dist/interpreter/index.js +13 -0
  64. package/dist/interpreter/index.js.map +1 -0
  65. package/dist/interpreter/types.d.ts +311 -0
  66. package/dist/interpreter/types.d.ts.map +1 -0
  67. package/dist/interpreter/types.js +91 -0
  68. package/dist/interpreter/types.js.map +1 -0
  69. package/dist/moa/AgentOrchestrator.d.ts +53 -0
  70. package/dist/moa/AgentOrchestrator.d.ts.map +1 -0
  71. package/dist/moa/AgentOrchestrator.js +164 -0
  72. package/dist/moa/AgentOrchestrator.js.map +1 -0
  73. package/dist/moa/ConsensusCalculator.d.ts +76 -0
  74. package/dist/moa/ConsensusCalculator.d.ts.map +1 -0
  75. package/dist/moa/ConsensusCalculator.js +221 -0
  76. package/dist/moa/ConsensusCalculator.js.map +1 -0
  77. package/dist/moa/MoAEngine.d.ts +97 -0
  78. package/dist/moa/MoAEngine.d.ts.map +1 -0
  79. package/dist/moa/MoAEngine.js +303 -0
  80. package/dist/moa/MoAEngine.js.map +1 -0
  81. package/dist/moa/ResponseAggregator.d.ts +65 -0
  82. package/dist/moa/ResponseAggregator.d.ts.map +1 -0
  83. package/dist/moa/ResponseAggregator.js +274 -0
  84. package/dist/moa/ResponseAggregator.js.map +1 -0
  85. package/dist/moa/TaskAnalyzer.d.ts +30 -0
  86. package/dist/moa/TaskAnalyzer.d.ts.map +1 -0
  87. package/dist/moa/TaskAnalyzer.js +116 -0
  88. package/dist/moa/TaskAnalyzer.js.map +1 -0
  89. package/dist/moa/index.d.ts +19 -0
  90. package/dist/moa/index.d.ts.map +1 -0
  91. package/dist/moa/index.js +18 -0
  92. package/dist/moa/index.js.map +1 -0
  93. package/dist/moa/types.d.ts +261 -0
  94. package/dist/moa/types.d.ts.map +1 -0
  95. package/dist/moa/types.js +70 -0
  96. package/dist/moa/types.js.map +1 -0
  97. package/dist/research/ConvergenceDetector.d.ts +37 -0
  98. package/dist/research/ConvergenceDetector.d.ts.map +1 -0
  99. package/dist/research/ConvergenceDetector.js +62 -0
  100. package/dist/research/ConvergenceDetector.js.map +1 -0
  101. package/dist/research/DeepResearchOrchestrator.d.ts +63 -0
  102. package/dist/research/DeepResearchOrchestrator.d.ts.map +1 -0
  103. package/dist/research/DeepResearchOrchestrator.js +283 -0
  104. package/dist/research/DeepResearchOrchestrator.js.map +1 -0
  105. package/dist/research/FindingIntegrator.d.ts +42 -0
  106. package/dist/research/FindingIntegrator.d.ts.map +1 -0
  107. package/dist/research/FindingIntegrator.js +239 -0
  108. package/dist/research/FindingIntegrator.js.map +1 -0
  109. package/dist/research/GapAnalyzer.d.ts +41 -0
  110. package/dist/research/GapAnalyzer.d.ts.map +1 -0
  111. package/dist/research/GapAnalyzer.js +145 -0
  112. package/dist/research/GapAnalyzer.js.map +1 -0
  113. package/dist/research/QueryGenerator.d.ts +38 -0
  114. package/dist/research/QueryGenerator.d.ts.map +1 -0
  115. package/dist/research/QueryGenerator.js +79 -0
  116. package/dist/research/QueryGenerator.js.map +1 -0
  117. package/dist/research/index.d.ts +14 -0
  118. package/dist/research/index.d.ts.map +1 -0
  119. package/dist/research/index.js +13 -0
  120. package/dist/research/index.js.map +1 -0
  121. package/dist/research/types.d.ts +215 -0
  122. package/dist/research/types.d.ts.map +1 -0
  123. package/dist/research/types.js +18 -0
  124. package/dist/research/types.js.map +1 -0
  125. package/dist/trend/ForecastEngine.d.ts +65 -0
  126. package/dist/trend/ForecastEngine.d.ts.map +1 -0
  127. package/dist/trend/ForecastEngine.js +260 -0
  128. package/dist/trend/ForecastEngine.js.map +1 -0
  129. package/dist/trend/TimeSeriesCollector.d.ts +42 -0
  130. package/dist/trend/TimeSeriesCollector.d.ts.map +1 -0
  131. package/dist/trend/TimeSeriesCollector.js +172 -0
  132. package/dist/trend/TimeSeriesCollector.js.map +1 -0
  133. package/dist/trend/TrendAnalyzer.d.ts +72 -0
  134. package/dist/trend/TrendAnalyzer.d.ts.map +1 -0
  135. package/dist/trend/TrendAnalyzer.js +291 -0
  136. package/dist/trend/TrendAnalyzer.js.map +1 -0
  137. package/dist/trend/TrendDetector.d.ts +67 -0
  138. package/dist/trend/TrendDetector.d.ts.map +1 -0
  139. package/dist/trend/TrendDetector.js +325 -0
  140. package/dist/trend/TrendDetector.js.map +1 -0
  141. package/dist/trend/VisualizationGenerator.d.ts +75 -0
  142. package/dist/trend/VisualizationGenerator.d.ts.map +1 -0
  143. package/dist/trend/VisualizationGenerator.js +294 -0
  144. package/dist/trend/VisualizationGenerator.js.map +1 -0
  145. package/dist/trend/index.d.ts +16 -0
  146. package/dist/trend/index.d.ts.map +1 -0
  147. package/dist/trend/index.js +18 -0
  148. package/dist/trend/index.js.map +1 -0
  149. package/dist/trend/types.d.ts +279 -0
  150. package/dist/trend/types.d.ts.map +1 -0
  151. package/dist/trend/types.js +17 -0
  152. package/dist/trend/types.js.map +1 -0
  153. package/package.json +4 -2
@@ -0,0 +1,294 @@
1
+ /**
2
+ * VisualizationGenerator - 可視化データ生成
3
+ *
4
+ * @requirement REQ-ANALYZE-004
5
+ * @design DES-ANALYZE-004
6
+ * @task TASK-004
7
+ */
8
+ /**
9
+ * トレンドデータを可視化用のフォーマットに変換するクラス
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const vizGen = new VisualizationGenerator();
14
+ *
15
+ * const chartData = vizGen.generate({
16
+ * timeSeries: timeSeriesData,
17
+ * trends: detectedTrends,
18
+ * forecast: forecastData,
19
+ * });
20
+ * ```
21
+ */
22
+ export class VisualizationGenerator {
23
+ /**
24
+ * 可視化データを生成
25
+ */
26
+ generate(input) {
27
+ return {
28
+ lineChart: this.generateLineChart(input.timeSeries, input.forecast),
29
+ heatmap: this.generateHeatmap(input.timeSeries),
30
+ pieChart: this.generatePieChart(input.timeSeries),
31
+ annotations: this.generateAnnotations(input.trends || []),
32
+ };
33
+ }
34
+ /**
35
+ * 折れ線グラフデータを生成
36
+ */
37
+ generateLineChart(timeSeries, forecast) {
38
+ const labels = timeSeries.map((ts) => this.formatDate(ts.timestamp));
39
+ const datasets = [
40
+ {
41
+ label: '実績値',
42
+ data: timeSeries.map((ts) => ts.volume),
43
+ color: '#3498db',
44
+ type: 'line',
45
+ },
46
+ {
47
+ label: '正規化スコア',
48
+ data: timeSeries.map((ts) => ts.normalizedScore),
49
+ color: '#2ecc71',
50
+ type: 'line',
51
+ },
52
+ ];
53
+ // 予測データがある場合は追加
54
+ if (forecast && forecast.predictions.length > 0) {
55
+ const forecastLabels = forecast.predictions.map((p) => this.formatDate(p.date));
56
+ labels.push(...forecastLabels);
57
+ // 予測値用のデータセット(実績値の後に続く)
58
+ const forecastValues = [...Array(timeSeries.length).fill(null), ...forecast.predictions.map((p) => p.value)];
59
+ const upperBoundValues = [...Array(timeSeries.length).fill(null), ...forecast.upperBound];
60
+ const lowerBoundValues = [...Array(timeSeries.length).fill(null), ...forecast.lowerBound];
61
+ datasets.push({
62
+ label: '予測値',
63
+ data: forecastValues,
64
+ color: '#9b59b6',
65
+ type: 'line',
66
+ });
67
+ datasets.push({
68
+ label: '予測上限',
69
+ data: upperBoundValues,
70
+ color: '#9b59b6',
71
+ type: 'area',
72
+ });
73
+ datasets.push({
74
+ label: '予測下限',
75
+ data: lowerBoundValues,
76
+ color: '#9b59b6',
77
+ type: 'area',
78
+ });
79
+ }
80
+ return { labels, datasets };
81
+ }
82
+ /**
83
+ * ヒートマップデータを生成
84
+ */
85
+ generateHeatmap(timeSeries) {
86
+ // ソースごとにデータを集計
87
+ const sources = ['news', 'web', 'rss', 'academic', 'social'];
88
+ const matrix = [];
89
+ const labels = timeSeries.map((ts) => this.formatDate(ts.timestamp));
90
+ for (const source of sources) {
91
+ const row = timeSeries.map((ts) => ts.sourceBreakdown[source] || 0);
92
+ matrix.push(row);
93
+ }
94
+ // 最大値を取得(正規化用)
95
+ const maxValue = Math.max(...matrix.flat(), 1);
96
+ return {
97
+ xLabels: labels,
98
+ yLabels: sources,
99
+ values: matrix,
100
+ maxValue,
101
+ };
102
+ }
103
+ /**
104
+ * 円グラフデータを生成
105
+ */
106
+ generatePieChart(timeSeries) {
107
+ // ソース別の合計を計算
108
+ const sourceTotals = {};
109
+ for (const ts of timeSeries) {
110
+ for (const [source, count] of Object.entries(ts.sourceBreakdown)) {
111
+ sourceTotals[source] = (sourceTotals[source] || 0) + count;
112
+ }
113
+ }
114
+ const sourceColors = {
115
+ news: '#e74c3c',
116
+ web: '#3498db',
117
+ rss: '#f39c12',
118
+ academic: '#2ecc71',
119
+ social: '#9b59b6',
120
+ };
121
+ const labels = [];
122
+ const data = [];
123
+ const colors = [];
124
+ for (const [source, total] of Object.entries(sourceTotals)) {
125
+ if (total > 0) {
126
+ labels.push(this.formatSourceLabel(source));
127
+ data.push(total);
128
+ colors.push(sourceColors[source]);
129
+ }
130
+ }
131
+ return { labels, data, colors };
132
+ }
133
+ /**
134
+ * トレンドのアノテーションを生成
135
+ */
136
+ generateAnnotations(trends) {
137
+ const annotations = [];
138
+ for (const trend of trends) {
139
+ switch (trend.type) {
140
+ case 'spike':
141
+ annotations.push({
142
+ type: 'spike',
143
+ position: trend.startDate,
144
+ label: `スパイク (${trend.magnitude.toFixed(0)}%増)`,
145
+ color: '#e74c3c',
146
+ });
147
+ break;
148
+ case 'rising':
149
+ annotations.push({
150
+ type: 'trend',
151
+ position: trend.startDate,
152
+ label: '上昇トレンド開始',
153
+ color: '#2ecc71',
154
+ });
155
+ break;
156
+ case 'falling':
157
+ annotations.push({
158
+ type: 'trend',
159
+ position: trend.startDate,
160
+ label: '下降トレンド開始',
161
+ color: '#e67e22',
162
+ });
163
+ break;
164
+ case 'emerging':
165
+ annotations.push({
166
+ type: 'event',
167
+ position: trend.startDate,
168
+ label: '新興トレンド検出',
169
+ color: '#9b59b6',
170
+ });
171
+ break;
172
+ case 'seasonal':
173
+ annotations.push({
174
+ type: 'event',
175
+ position: trend.startDate,
176
+ label: '季節性パターン',
177
+ color: '#3498db',
178
+ });
179
+ break;
180
+ }
181
+ }
182
+ return annotations;
183
+ }
184
+ /**
185
+ * トピック比較用のマルチラインチャートを生成
186
+ */
187
+ generateComparisonChart(comparison) {
188
+ const labels = [];
189
+ // 全トピックの日付を統合
190
+ for (const topicData of comparison.topics) {
191
+ for (const ts of topicData.data) {
192
+ const label = this.formatDate(ts.timestamp);
193
+ if (!labels.includes(label)) {
194
+ labels.push(label);
195
+ }
196
+ }
197
+ }
198
+ labels.sort();
199
+ const colors = ['#3498db', '#e74c3c', '#2ecc71', '#f39c12', '#9b59b6'];
200
+ const datasets = comparison.topics.map((topicData, index) => {
201
+ const data = labels.map((label) => {
202
+ const ts = topicData.data.find((d) => this.formatDate(d.timestamp) === label);
203
+ return ts?.normalizedScore ?? null;
204
+ });
205
+ return {
206
+ label: topicData.topic,
207
+ data,
208
+ color: colors[index % colors.length] ?? '#3498db',
209
+ type: 'line',
210
+ };
211
+ });
212
+ return { labels, datasets };
213
+ }
214
+ /**
215
+ * 相関マトリクスを生成
216
+ */
217
+ generateCorrelationMatrix(comparison) {
218
+ const topics = comparison.topics.map((t) => t.topic);
219
+ const matrix = [];
220
+ for (let i = 0; i < topics.length; i++) {
221
+ const row = [];
222
+ for (let j = 0; j < topics.length; j++) {
223
+ if (i === j) {
224
+ row.push(1);
225
+ }
226
+ else {
227
+ const topicI = comparison.topics[i];
228
+ const topicJ = comparison.topics[j];
229
+ if (!topicI || !topicJ) {
230
+ row.push(0);
231
+ }
232
+ else {
233
+ const correlation = this.calculateCorrelation(topicI.data.map((d) => d.normalizedScore), topicJ.data.map((d) => d.normalizedScore));
234
+ row.push(correlation);
235
+ }
236
+ }
237
+ }
238
+ matrix.push(row);
239
+ }
240
+ return {
241
+ xLabels: topics,
242
+ yLabels: topics,
243
+ values: matrix,
244
+ maxValue: 1,
245
+ };
246
+ }
247
+ /**
248
+ * 相関係数を計算
249
+ */
250
+ calculateCorrelation(x, y) {
251
+ const n = Math.min(x.length, y.length);
252
+ if (n === 0)
253
+ return 0;
254
+ const xSlice = x.slice(0, n);
255
+ const ySlice = y.slice(0, n);
256
+ const xMean = xSlice.reduce((a, b) => a + b, 0) / n;
257
+ const yMean = ySlice.reduce((a, b) => a + b, 0) / n;
258
+ let numerator = 0;
259
+ let xSumSq = 0;
260
+ let ySumSq = 0;
261
+ for (let i = 0; i < n; i++) {
262
+ const xVal = xSlice[i] ?? 0;
263
+ const yVal = ySlice[i] ?? 0;
264
+ const xDiff = xVal - xMean;
265
+ const yDiff = yVal - yMean;
266
+ numerator += xDiff * yDiff;
267
+ xSumSq += xDiff * xDiff;
268
+ ySumSq += yDiff * yDiff;
269
+ }
270
+ const denominator = Math.sqrt(xSumSq * ySumSq);
271
+ return denominator === 0 ? 0 : numerator / denominator;
272
+ }
273
+ /**
274
+ * 日付をフォーマット
275
+ */
276
+ formatDate(date) {
277
+ const result = date.toISOString().split('T')[0];
278
+ return result ?? '';
279
+ }
280
+ /**
281
+ * ソースラベルをフォーマット
282
+ */
283
+ formatSourceLabel(source) {
284
+ const labels = {
285
+ news: 'ニュース',
286
+ web: 'Web',
287
+ rss: 'RSS',
288
+ academic: '学術',
289
+ social: 'ソーシャル',
290
+ };
291
+ return labels[source] || source;
292
+ }
293
+ }
294
+ //# sourceMappingURL=VisualizationGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisualizationGenerator.js","sourceRoot":"","sources":["../../src/trend/VisualizationGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Trend Analysis Module
3
+ *
4
+ * @module @nahisaho/katashiro-analyzer/trend
5
+ * @requirement REQ-ANALYZE-004
6
+ * @design DES-ANALYZE-004
7
+ * @task TASK-004
8
+ */
9
+ export { TrendAnalyzer } from './TrendAnalyzer.js';
10
+ export { TimeSeriesCollector } from './TimeSeriesCollector.js';
11
+ export { TrendDetector } from './TrendDetector.js';
12
+ export { ForecastEngine } from './ForecastEngine.js';
13
+ export { VisualizationGenerator } from './VisualizationGenerator.js';
14
+ export type { TrendAnalysisQuery, TrendAnalysisResult, TrendAnalyzerConfig, TrendAnalysisError, TimeSeriesData, CollectionQuery, SampleDocument, DetectedTrend, TrendType, TrendDetectorConfig, TrendSummary, ForecastData, ForecastConfig, ForecastMethod, VisualizationData, LineChartData, HeatmapData, PieChartData, TopicComparison, TrendMetadata, TrendSource, TimeGranularity, } from './types.js';
15
+ export { DEFAULT_TREND_CONFIG } from './types.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trend/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,YAAY,EAEV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAGlB,cAAc,EACd,eAAe,EACf,cAAc,EAGd,aAAa,EACb,SAAS,EACT,mBAAmB,EACnB,YAAY,EAGZ,YAAY,EACZ,cAAc,EACd,cAAc,EAGd,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,YAAY,EAGZ,eAAe,EAGf,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Trend Analysis Module
3
+ *
4
+ * @module @nahisaho/katashiro-analyzer/trend
5
+ * @requirement REQ-ANALYZE-004
6
+ * @design DES-ANALYZE-004
7
+ * @task TASK-004
8
+ */
9
+ // Main orchestrator
10
+ export { TrendAnalyzer } from './TrendAnalyzer.js';
11
+ // Component classes
12
+ export { TimeSeriesCollector } from './TimeSeriesCollector.js';
13
+ export { TrendDetector } from './TrendDetector.js';
14
+ export { ForecastEngine } from './ForecastEngine.js';
15
+ export { VisualizationGenerator } from './VisualizationGenerator.js';
16
+ // Default config
17
+ export { DEFAULT_TREND_CONFIG } from './types.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trend/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,oBAAoB;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAyCrE,iBAAiB;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,279 @@
1
+ /**
2
+ * Trend Analyzer - 型定義
3
+ *
4
+ * @requirement REQ-ANALYZE-004
5
+ * @design DES-ANALYZE-004
6
+ * @task TASK-004
7
+ */
8
+ /**
9
+ * トレンド分析クエリ
10
+ */
11
+ export interface TrendAnalysisQuery {
12
+ /** 分析対象のキーワードまたはトピック */
13
+ topic: string;
14
+ /** 分析期間 */
15
+ dateRange: {
16
+ start: Date;
17
+ end: Date;
18
+ };
19
+ /** オプション設定 */
20
+ options?: {
21
+ /** 時間粒度 */
22
+ granularity?: TimeGranularity;
23
+ /** データソース */
24
+ sources?: TrendSource[];
25
+ /** 予測を含めるか */
26
+ includeForecast?: boolean;
27
+ /** 予測期間(期間数) */
28
+ forecastPeriods?: number;
29
+ /** 地域フィルター */
30
+ regions?: string[];
31
+ /** 言語フィルター */
32
+ languages?: string[];
33
+ };
34
+ /** 比較対象キーワード(オプション) */
35
+ compareTopics?: string[];
36
+ }
37
+ export type TimeGranularity = 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly';
38
+ export type TrendSource = 'news' | 'rss' | 'academic' | 'social' | 'web';
39
+ /**
40
+ * トレンド分析結果
41
+ */
42
+ export interface TrendAnalysisResult {
43
+ /** 分析対象トピック */
44
+ topic: string;
45
+ /** 分析期間 */
46
+ dateRange: {
47
+ start: Date;
48
+ end: Date;
49
+ };
50
+ /** 時系列データ */
51
+ timeSeries: TimeSeriesData[];
52
+ /** 検出されたトレンド */
53
+ trends: DetectedTrend[];
54
+ /** トレンドサマリー */
55
+ summary: TrendSummary;
56
+ /** 比較分析(複数トピックの場合) */
57
+ comparison?: TopicComparison;
58
+ /** 予測データ(オプション) */
59
+ forecast?: ForecastData;
60
+ /** 可視化用データ */
61
+ visualization: VisualizationData;
62
+ /** メタ情報 */
63
+ metadata: TrendMetadata;
64
+ }
65
+ /**
66
+ * 時系列データポイント
67
+ */
68
+ export interface TimeSeriesData {
69
+ /** タイムスタンプ */
70
+ timestamp: Date;
71
+ /** 出現頻度/ボリューム */
72
+ volume: number;
73
+ /** 正規化スコア (0-100) */
74
+ normalizedScore: number;
75
+ /** センチメント (-1 to 1) */
76
+ sentiment?: number;
77
+ /** ソース別内訳 */
78
+ sourceBreakdown: Partial<Record<TrendSource, number>>;
79
+ /** サンプルドキュメント */
80
+ sampleDocs: SampleDocument[];
81
+ }
82
+ /**
83
+ * サンプルドキュメント
84
+ */
85
+ export interface SampleDocument {
86
+ /** タイトル */
87
+ title: string;
88
+ /** URL */
89
+ url: string;
90
+ /** 公開日時 */
91
+ publishedAt: Date;
92
+ /** ソース */
93
+ source: TrendSource;
94
+ /** 関連度スコア */
95
+ relevanceScore: number;
96
+ }
97
+ /**
98
+ * 検出されたトレンド
99
+ */
100
+ export interface DetectedTrend {
101
+ /** トレンドタイプ */
102
+ type: TrendType;
103
+ /** 開始時点 */
104
+ startDate: Date;
105
+ /** 終了時点 */
106
+ endDate: Date;
107
+ /** 信頼度 (0-1) */
108
+ confidence: number;
109
+ /** 変化の大きさ(%) */
110
+ magnitude: number;
111
+ /** 説明 */
112
+ description: string;
113
+ }
114
+ export type TrendType = 'rising' | 'falling' | 'spike' | 'plateau' | 'seasonal' | 'cyclical' | 'emerging';
115
+ /**
116
+ * トレンドサマリー
117
+ */
118
+ export interface TrendSummary {
119
+ /** 支配的なトレンドタイプ */
120
+ dominantTrend: TrendType;
121
+ /** 信頼度 (0-1) */
122
+ confidence: number;
123
+ /** 成長率(期間全体、%) */
124
+ growthRate: number;
125
+ /** ピーク時期 */
126
+ peakPeriod: Date;
127
+ /** ピーク時の値 */
128
+ peakVolume: number;
129
+ /** トレンドの説明文 */
130
+ narrative: string;
131
+ /** キーインサイト */
132
+ keyInsights: string[];
133
+ }
134
+ /**
135
+ * トピック比較
136
+ */
137
+ export interface TopicComparison {
138
+ /** 比較対象トピックとデータ */
139
+ topics: Array<{
140
+ topic: string;
141
+ data: TimeSeriesData[];
142
+ }>;
143
+ /** トピック間の相関 */
144
+ correlations: Array<{
145
+ topic1: string;
146
+ topic2: string;
147
+ correlation: number;
148
+ }>;
149
+ /** 比較サマリー */
150
+ comparisonSummary: string;
151
+ }
152
+ /**
153
+ * 予測データ
154
+ */
155
+ export interface ForecastData {
156
+ /** 予測手法 */
157
+ method: ForecastMethod;
158
+ /** 予測ポイント */
159
+ predictions: Array<{
160
+ date: Date;
161
+ value: number;
162
+ }>;
163
+ /** 上限境界 */
164
+ upperBound: number[];
165
+ /** 下限境界 */
166
+ lowerBound: number[];
167
+ /** 信頼水準 */
168
+ confidenceLevel: number;
169
+ /** モデル精度 (R²) */
170
+ accuracy: number;
171
+ }
172
+ export type ForecastMethod = 'linear' | 'exponential' | 'movingAverage';
173
+ export interface ForecastConfig {
174
+ /** 予測期間数 */
175
+ periods: number;
176
+ /** 予測手法 */
177
+ method: ForecastMethod;
178
+ /** 信頼水準 */
179
+ confidenceLevel: number;
180
+ }
181
+ /**
182
+ * 可視化データ
183
+ */
184
+ export interface VisualizationData {
185
+ /** 折れ線グラフデータ */
186
+ lineChart: LineChartData;
187
+ /** ヒートマップデータ(時間×ソース) */
188
+ heatmap: HeatmapData;
189
+ /** 円グラフ(ソース別シェア) */
190
+ pieChart: PieChartData;
191
+ /** アノテーション */
192
+ annotations: Array<{
193
+ type: 'spike' | 'trend' | 'event';
194
+ position: Date;
195
+ label: string;
196
+ color: string;
197
+ }>;
198
+ }
199
+ export interface LineChartData {
200
+ labels: string[];
201
+ datasets: Array<{
202
+ label: string;
203
+ data: (number | null)[];
204
+ color: string;
205
+ type: 'line' | 'area';
206
+ }>;
207
+ }
208
+ export interface HeatmapData {
209
+ xLabels: string[];
210
+ yLabels: string[];
211
+ values: number[][];
212
+ maxValue: number;
213
+ }
214
+ export interface PieChartData {
215
+ labels: string[];
216
+ data: number[];
217
+ colors: string[];
218
+ }
219
+ /**
220
+ * メタデータ
221
+ */
222
+ export interface TrendMetadata {
223
+ /** 使用されたソース */
224
+ sources: TrendSource[];
225
+ /** 時間粒度 */
226
+ granularity: TimeGranularity;
227
+ /** 総データポイント数 */
228
+ dataPoints: number;
229
+ /** 分析実行日時 */
230
+ analysisTimestamp: Date;
231
+ /** 処理時間(ミリ秒) */
232
+ processingTimeMs: number;
233
+ }
234
+ /**
235
+ * トレンド分析エラー
236
+ */
237
+ export interface TrendAnalysisError {
238
+ code: TrendAnalysisErrorCode;
239
+ message: string;
240
+ details?: unknown;
241
+ }
242
+ export type TrendAnalysisErrorCode = 'INVALID_INPUT' | 'COLLECTION_FAILED' | 'INSUFFICIENT_DATA' | 'ANALYSIS_FAILED' | 'COMPARISON_FAILED' | 'FORECAST_FAILED' | 'TIMEOUT' | 'UNKNOWN_ERROR';
243
+ /**
244
+ * 内部用: 収集クエリ
245
+ */
246
+ export interface CollectionQuery {
247
+ topic: string;
248
+ startDate: Date;
249
+ endDate: Date;
250
+ granularity: TimeGranularity;
251
+ sources: TrendSource[];
252
+ }
253
+ /**
254
+ * TrendDetector設定
255
+ */
256
+ export interface TrendDetectorConfig {
257
+ sensitivityThreshold: number;
258
+ minDataPoints: number;
259
+ detectSeasonality: boolean;
260
+ }
261
+ /**
262
+ * TrendAnalyzer設定
263
+ */
264
+ export interface TrendAnalyzerConfig {
265
+ maxSources: number;
266
+ defaultGranularity: TimeGranularity;
267
+ forecastPeriods: number;
268
+ enableCaching: boolean;
269
+ }
270
+ /**
271
+ * デフォルト設定
272
+ */
273
+ export declare const DEFAULT_TREND_CONFIG: {
274
+ readonly granularity: TimeGranularity;
275
+ readonly sources: TrendSource[];
276
+ readonly forecastPeriods: 7;
277
+ readonly lookbackDays: 30;
278
+ };
279
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/trend/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Trend Analyzer - 型定義
3
+ *
4
+ * @requirement REQ-ANALYZE-004
5
+ * @design DES-ANALYZE-004
6
+ * @task TASK-004
7
+ */
8
+ /**
9
+ * デフォルト設定
10
+ */
11
+ export const DEFAULT_TREND_CONFIG = {
12
+ granularity: 'daily',
13
+ sources: ['news', 'web'],
14
+ forecastPeriods: 7,
15
+ lookbackDays: 30,
16
+ };
17
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/trend/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgWH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,OAA0B;IACvC,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,CAAkB;IACzC,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,EAAE;CACR,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nahisaho/katashiro-analyzer",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "KATASHIRO Analyzer - 分析・推論パッケージ",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -20,7 +20,9 @@
20
20
  "test": "vitest run"
21
21
  },
22
22
  "dependencies": {
23
- "@nahisaho/katashiro-core": "*"
23
+ "@nahisaho/katashiro-core": "*",
24
+ "@nahisaho/katashiro-collector": "*",
25
+ "@nahisaho/katashiro-knowledge": "*"
24
26
  },
25
27
  "author": "nahisaho",
26
28
  "license": "MIT",