@nahisaho/katashiro-orchestrator 1.2.0 → 2.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.
Files changed (86) hide show
  1. package/LICENSE +21 -0
  2. package/dist/agent/AgentStateManager.d.ts +133 -0
  3. package/dist/agent/AgentStateManager.d.ts.map +1 -0
  4. package/dist/agent/AgentStateManager.js +243 -0
  5. package/dist/agent/AgentStateManager.js.map +1 -0
  6. package/dist/agent/ReActHelper.d.ts +139 -0
  7. package/dist/agent/ReActHelper.d.ts.map +1 -0
  8. package/dist/agent/ReActHelper.js +342 -0
  9. package/dist/agent/ReActHelper.js.map +1 -0
  10. package/dist/agent/index.d.ts +9 -0
  11. package/dist/agent/index.d.ts.map +1 -0
  12. package/dist/agent/index.js +20 -0
  13. package/dist/agent/index.js.map +1 -0
  14. package/dist/agent/types.d.ts +108 -0
  15. package/dist/agent/types.d.ts.map +1 -0
  16. package/dist/agent/types.js +9 -0
  17. package/dist/agent/types.js.map +1 -0
  18. package/dist/cascading/CascadingAgent.d.ts +156 -0
  19. package/dist/cascading/CascadingAgent.d.ts.map +1 -0
  20. package/dist/cascading/CascadingAgent.js +368 -0
  21. package/dist/cascading/CascadingAgent.js.map +1 -0
  22. package/dist/cascading/CascadingResearchEngine.d.ts +87 -0
  23. package/dist/cascading/CascadingResearchEngine.d.ts.map +1 -0
  24. package/dist/cascading/CascadingResearchEngine.js +329 -0
  25. package/dist/cascading/CascadingResearchEngine.js.map +1 -0
  26. package/dist/cascading/StepExecutor.d.ts +94 -0
  27. package/dist/cascading/StepExecutor.d.ts.map +1 -0
  28. package/dist/cascading/StepExecutor.js +315 -0
  29. package/dist/cascading/StepExecutor.js.map +1 -0
  30. package/dist/cascading/StepResultIntegrator.d.ts +101 -0
  31. package/dist/cascading/StepResultIntegrator.d.ts.map +1 -0
  32. package/dist/cascading/StepResultIntegrator.js +343 -0
  33. package/dist/cascading/StepResultIntegrator.js.map +1 -0
  34. package/dist/cascading/index.d.ts +16 -0
  35. package/dist/cascading/index.d.ts.map +1 -0
  36. package/dist/cascading/index.js +33 -0
  37. package/dist/cascading/index.js.map +1 -0
  38. package/dist/cascading/types.d.ts +369 -0
  39. package/dist/cascading/types.d.ts.map +1 -0
  40. package/dist/cascading/types.js +172 -0
  41. package/dist/cascading/types.js.map +1 -0
  42. package/dist/consensus/AsciiDiagramConverter.d.ts +45 -0
  43. package/dist/consensus/AsciiDiagramConverter.d.ts.map +1 -0
  44. package/dist/consensus/AsciiDiagramConverter.js +460 -0
  45. package/dist/consensus/AsciiDiagramConverter.js.map +1 -0
  46. package/dist/consensus/ConsensusResearchEngine.d.ts +4 -3
  47. package/dist/consensus/ConsensusResearchEngine.d.ts.map +1 -1
  48. package/dist/consensus/ConsensusResearchEngine.js +17 -5
  49. package/dist/consensus/ConsensusResearchEngine.js.map +1 -1
  50. package/dist/consensus/ReportPostProcessor.d.ts +51 -0
  51. package/dist/consensus/ReportPostProcessor.d.ts.map +1 -0
  52. package/dist/consensus/ReportPostProcessor.js +162 -0
  53. package/dist/consensus/ReportPostProcessor.js.map +1 -0
  54. package/dist/consensus/index.d.ts +5 -2
  55. package/dist/consensus/index.d.ts.map +1 -1
  56. package/dist/consensus/index.js +8 -1
  57. package/dist/consensus/index.js.map +1 -1
  58. package/dist/consensus/types.d.ts +68 -2
  59. package/dist/consensus/types.d.ts.map +1 -1
  60. package/dist/consensus/types.js +13 -3
  61. package/dist/consensus/types.js.map +1 -1
  62. package/dist/dialogue/index.d.ts +2 -0
  63. package/dist/dialogue/index.d.ts.map +1 -1
  64. package/dist/dialogue/index.js +5 -1
  65. package/dist/dialogue/index.js.map +1 -1
  66. package/dist/dialogue/llm-dialogue-collector.d.ts +169 -0
  67. package/dist/dialogue/llm-dialogue-collector.d.ts.map +1 -0
  68. package/dist/dialogue/llm-dialogue-collector.js +449 -0
  69. package/dist/dialogue/llm-dialogue-collector.js.map +1 -0
  70. package/dist/index.d.ts +7 -2
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +49 -2
  73. package/dist/index.js.map +1 -1
  74. package/dist/tool-registry.d.ts +13 -1
  75. package/dist/tool-registry.d.ts.map +1 -1
  76. package/dist/tool-registry.js +18 -0
  77. package/dist/tool-registry.js.map +1 -1
  78. package/dist/tools/index.d.ts +8 -0
  79. package/dist/tools/index.d.ts.map +1 -0
  80. package/dist/tools/index.js +15 -0
  81. package/dist/tools/index.js.map +1 -0
  82. package/dist/tools/standard-tools.d.ts +121 -0
  83. package/dist/tools/standard-tools.d.ts.map +1 -0
  84. package/dist/tools/standard-tools.js +348 -0
  85. package/dist/tools/standard-tools.js.map +1 -0
  86. package/package.json +14 -14
@@ -0,0 +1,315 @@
1
+ "use strict";
2
+ /**
3
+ * KATASHIRO v1.4.0 - Step Executor
4
+ *
5
+ * カスケード型リサーチの1ステップを実行するオーケストレーター
6
+ * 5つのエージェントを並列実行し、結果を収集する
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.StepContextBuilder = exports.StepExecutor = exports.DEFAULT_STEP_EXECUTOR_CONFIG = void 0;
10
+ const types_js_1 = require("./types.js");
11
+ /**
12
+ * デフォルト設定
13
+ */
14
+ exports.DEFAULT_STEP_EXECUTOR_CONFIG = {
15
+ concurrency: 5,
16
+ agentTimeoutMs: 120000,
17
+ stepTimeoutMs: 600000,
18
+ skipOnFailure: true,
19
+ };
20
+ /**
21
+ * ステップ実行クラス
22
+ */
23
+ class StepExecutor {
24
+ config;
25
+ eventListeners = [];
26
+ constructor(config = {}) {
27
+ this.config = { ...exports.DEFAULT_STEP_EXECUTOR_CONFIG, ...config };
28
+ }
29
+ /**
30
+ * イベントリスナーを登録
31
+ */
32
+ on(listener) {
33
+ this.eventListeners.push(listener);
34
+ }
35
+ /**
36
+ * イベントを発行
37
+ */
38
+ emit(event) {
39
+ for (const listener of this.eventListeners) {
40
+ try {
41
+ listener(event);
42
+ }
43
+ catch {
44
+ // イベントリスナーのエラーは無視
45
+ }
46
+ }
47
+ }
48
+ /**
49
+ * ステップを実行
50
+ */
51
+ async execute(stepNumber, agents, context, strategy) {
52
+ const startTime = Date.now();
53
+ this.emit({
54
+ type: 'stepStarted',
55
+ stepNumber,
56
+ timestamp: new Date().toISOString(),
57
+ });
58
+ try {
59
+ // 全エージェントを並列実行
60
+ const executionPromises = agents.map(agent => this.executeAgent(agent, context));
61
+ // タイムアウト付きで待機
62
+ const results = await this.executeWithTimeout(Promise.all(executionPromises), this.config.stepTimeoutMs);
63
+ // 結果を集計
64
+ const successfulReports = results
65
+ .filter((r) => r.success && r.report !== undefined)
66
+ .map(r => r.report);
67
+ // 全発見事項を収集
68
+ const allFindings = successfulReports.flatMap(r => r.findings);
69
+ // 全ソースを収集(重複除去)
70
+ const allSources = this.deduplicateSources(successfulReports.flatMap(r => r.sources));
71
+ // 全ギャップを収集(重複除去)
72
+ const allGaps = [...new Set(successfulReports.flatMap(r => r.gaps))];
73
+ // 統合レポートを生成
74
+ const integratedReport = this.generateIntegratedReport(stepNumber, strategy, successfulReports);
75
+ // 信頼度を計算
76
+ const confidence = (0, types_js_1.calculateStepConfidence)(successfulReports.length, agents.length, allFindings.map(f => f.confidence), allSources.map(s => s.credibility));
77
+ const result = {
78
+ stepNumber,
79
+ focus: strategy.focus,
80
+ agentReports: successfulReports,
81
+ integratedSummary: integratedReport,
82
+ findings: allFindings,
83
+ sources: allSources.map(s => ({
84
+ ...s,
85
+ domain: s.domain ?? 'unknown',
86
+ })),
87
+ gaps: allGaps,
88
+ resolvedGaps: [],
89
+ confidence,
90
+ contradictions: [],
91
+ durationMs: Date.now() - startTime,
92
+ timestamp: new Date().toISOString(),
93
+ };
94
+ this.emit({
95
+ type: 'stepCompleted',
96
+ stepNumber,
97
+ result,
98
+ timestamp: new Date().toISOString(),
99
+ });
100
+ return result;
101
+ }
102
+ catch (error) {
103
+ const errorMessage = error instanceof Error ? error.message : String(error);
104
+ this.emit({
105
+ type: 'researchFailed',
106
+ error: errorMessage,
107
+ timestamp: new Date().toISOString(),
108
+ });
109
+ // エラー時は空の結果を返す
110
+ return {
111
+ stepNumber,
112
+ focus: strategy.focus,
113
+ agentReports: [],
114
+ integratedSummary: `Step ${stepNumber} failed: ${errorMessage}`,
115
+ findings: [],
116
+ sources: [],
117
+ gaps: [],
118
+ resolvedGaps: [],
119
+ confidence: 0,
120
+ contradictions: [],
121
+ durationMs: Date.now() - startTime,
122
+ timestamp: new Date().toISOString(),
123
+ error: errorMessage,
124
+ };
125
+ }
126
+ }
127
+ /**
128
+ * 単一エージェントを実行
129
+ */
130
+ async executeAgent(agent, context) {
131
+ const startTime = Date.now();
132
+ this.emit({
133
+ type: 'agentStarted',
134
+ stepNumber: context.stepNumber,
135
+ agentId: agent.id,
136
+ role: agent.role,
137
+ timestamp: new Date().toISOString(),
138
+ });
139
+ try {
140
+ // タイムアウト付きで実行
141
+ const report = await this.executeWithTimeout(agent.research(context), this.config.agentTimeoutMs);
142
+ const durationMs = Date.now() - startTime;
143
+ this.emit({
144
+ type: 'agentCompleted',
145
+ stepNumber: context.stepNumber,
146
+ agentId: agent.id,
147
+ role: agent.role,
148
+ durationMs,
149
+ timestamp: new Date().toISOString(),
150
+ });
151
+ return {
152
+ agentId: agent.id,
153
+ success: !report.error,
154
+ report,
155
+ error: report.error,
156
+ durationMs,
157
+ };
158
+ }
159
+ catch (error) {
160
+ const durationMs = Date.now() - startTime;
161
+ const errorMessage = error instanceof Error ? error.message : String(error);
162
+ return {
163
+ agentId: agent.id,
164
+ success: false,
165
+ error: errorMessage,
166
+ durationMs,
167
+ };
168
+ }
169
+ }
170
+ /**
171
+ * タイムアウト付き実行
172
+ */
173
+ async executeWithTimeout(promise, timeoutMs) {
174
+ return Promise.race([
175
+ promise,
176
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`Timeout after ${timeoutMs}ms`)), timeoutMs)),
177
+ ]);
178
+ }
179
+ /**
180
+ * ソースの重複除去
181
+ */
182
+ deduplicateSources(sources) {
183
+ const seen = new Set();
184
+ return sources.filter(source => {
185
+ if (seen.has(source.url)) {
186
+ return false;
187
+ }
188
+ seen.add(source.url);
189
+ return true;
190
+ });
191
+ }
192
+ /**
193
+ * 統合レポートを生成
194
+ */
195
+ generateIntegratedReport(stepNumber, strategy, reports) {
196
+ const sections = [];
197
+ sections.push(`# Step ${stepNumber}: ${this.getFocusLabel(strategy.focus)}\n`);
198
+ sections.push(`**フォーカス**: ${strategy.description || strategy.focus}\n`);
199
+ sections.push(`**完了エージェント数**: ${reports.length}/5\n`);
200
+ // 発見事項サマリー
201
+ const totalFindings = reports.reduce((sum, r) => sum + r.findings.length, 0);
202
+ sections.push(`\n## 発見事項サマリー\n`);
203
+ sections.push(`総発見事項数: ${totalFindings}\n`);
204
+ // 各エージェントの概要
205
+ sections.push(`\n## エージェント別概要\n`);
206
+ for (const report of reports) {
207
+ const roleLabel = this.getRoleLabel(report.role);
208
+ sections.push(`### ${roleLabel}エージェント\n`);
209
+ sections.push(`- 発見事項: ${report.findings.length}件\n`);
210
+ sections.push(`- ソース: ${report.sources.length}件\n`);
211
+ sections.push(`- 特定ギャップ: ${report.gaps.length}件\n`);
212
+ }
213
+ // ギャップサマリー
214
+ const allGaps = [...new Set(reports.flatMap(r => r.gaps))];
215
+ if (allGaps.length > 0) {
216
+ sections.push(`\n## 特定されたギャップ\n`);
217
+ for (const gap of allGaps) {
218
+ sections.push(`- ${gap}\n`);
219
+ }
220
+ }
221
+ return sections.join('');
222
+ }
223
+ /**
224
+ * フォーカスラベルを取得
225
+ */
226
+ getFocusLabel(focus) {
227
+ const labels = {
228
+ overview: '概要調査',
229
+ detail: '詳細調査',
230
+ gap: 'ギャップ分析',
231
+ verify: '検証',
232
+ integrate: '統合',
233
+ };
234
+ return labels[focus] || focus;
235
+ }
236
+ /**
237
+ * 役割ラベルを取得
238
+ */
239
+ getRoleLabel(role) {
240
+ const labels = {
241
+ official: '公式ソース',
242
+ news: 'ニュース',
243
+ analysis: '分析',
244
+ academic: '学術',
245
+ community: 'コミュニティ',
246
+ };
247
+ return labels[role] || role;
248
+ }
249
+ }
250
+ exports.StepExecutor = StepExecutor;
251
+ /**
252
+ * ステップコンテキストビルダー
253
+ */
254
+ class StepContextBuilder {
255
+ topic = '';
256
+ stepNumber = 1;
257
+ stepFocus = 'overview';
258
+ queryModifiers = [];
259
+ previousStepResult;
260
+ allPreviousResults = [];
261
+ keyEntities = [];
262
+ identifiedGaps = [];
263
+ unresolvedQuestions = [];
264
+ setTopic(topic) {
265
+ this.topic = topic;
266
+ return this;
267
+ }
268
+ setStepNumber(stepNumber) {
269
+ this.stepNumber = stepNumber;
270
+ return this;
271
+ }
272
+ setStepFocus(focus) {
273
+ this.stepFocus = focus;
274
+ return this;
275
+ }
276
+ setQueryModifiers(modifiers) {
277
+ this.queryModifiers = modifiers;
278
+ return this;
279
+ }
280
+ setPreviousStepResult(result) {
281
+ this.previousStepResult = result;
282
+ return this;
283
+ }
284
+ setAllPreviousResults(results) {
285
+ this.allPreviousResults = results;
286
+ return this;
287
+ }
288
+ setKeyEntities(entities) {
289
+ this.keyEntities = entities;
290
+ return this;
291
+ }
292
+ setIdentifiedGaps(gaps) {
293
+ this.identifiedGaps = gaps;
294
+ return this;
295
+ }
296
+ setUnresolvedQuestions(questions) {
297
+ this.unresolvedQuestions = questions;
298
+ return this;
299
+ }
300
+ build() {
301
+ return {
302
+ topic: this.topic,
303
+ stepNumber: this.stepNumber,
304
+ stepFocus: this.stepFocus,
305
+ queryModifiers: this.queryModifiers,
306
+ previousStepResult: this.previousStepResult,
307
+ allPreviousResults: this.allPreviousResults,
308
+ keyEntities: this.keyEntities,
309
+ identifiedGaps: this.identifiedGaps,
310
+ unresolvedQuestions: this.unresolvedQuestions,
311
+ };
312
+ }
313
+ }
314
+ exports.StepContextBuilder = StepContextBuilder;
315
+ //# sourceMappingURL=StepExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepExecutor.js","sourceRoot":"","sources":["../../src/cascading/StepExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * KATASHIRO v1.4.0 - Step Result Integrator
3
+ *
4
+ * 複数ステップの結果を統合し、矛盾検出と最終レポート生成を行う
5
+ * v1.2.0のReportScorerのロジックを再利用
6
+ */
7
+ import type { StepResult, Finding, CascadingSource, Contradiction } from './types.js';
8
+ /**
9
+ * 統合設定
10
+ */
11
+ export interface IntegrationConfig {
12
+ /** 矛盾検出の類似度閾値 */
13
+ contradictionThreshold: number;
14
+ /** 重複除去の類似度閾値 */
15
+ deduplicationThreshold: number;
16
+ /** 最終レポートに含める最大発見事項数 */
17
+ maxFindingsInReport: number;
18
+ /** 最終レポートに含める最大ソース数 */
19
+ maxSourcesInReport: number;
20
+ }
21
+ /**
22
+ * デフォルト設定
23
+ */
24
+ export declare const DEFAULT_INTEGRATION_CONFIG: IntegrationConfig;
25
+ /**
26
+ * 統合結果
27
+ */
28
+ export interface IntegrationResult {
29
+ /** 統合された発見事項 */
30
+ findings: Finding[];
31
+ /** 統合されたソース */
32
+ sources: CascadingSource[];
33
+ /** 検出された矛盾 */
34
+ contradictions: Contradiction[];
35
+ /** 残存ギャップ */
36
+ remainingGaps: string[];
37
+ /** 統合信頼度 */
38
+ overallConfidence: number;
39
+ /** 統合レポート */
40
+ finalReport: string;
41
+ }
42
+ /**
43
+ * ステップ結果統合クラス
44
+ */
45
+ export declare class StepResultIntegrator {
46
+ private readonly config;
47
+ constructor(config?: Partial<IntegrationConfig>);
48
+ /**
49
+ * 全ステップの結果を統合
50
+ */
51
+ integrate(topic: string, stepResults: StepResult[]): IntegrationResult;
52
+ /**
53
+ * 発見事項を収集・重複除去
54
+ */
55
+ private collectAndDeduplicateFindings;
56
+ /**
57
+ * ソースを収集・重複除去
58
+ */
59
+ private collectAndDeduplicateSources;
60
+ /**
61
+ * 矛盾を検出
62
+ */
63
+ private detectContradictions;
64
+ /**
65
+ * 矛盾スコアを計算
66
+ */
67
+ private detectContradictionScore;
68
+ /**
69
+ * テキスト類似度を計算(Jaccard係数)
70
+ */
71
+ private calculateSimilarity;
72
+ /**
73
+ * テキストをトークン化
74
+ */
75
+ private tokenize;
76
+ /**
77
+ * 矛盾解決の提案
78
+ */
79
+ private suggestResolution;
80
+ /**
81
+ * 残存ギャップを特定
82
+ */
83
+ private identifyRemainingGaps;
84
+ /**
85
+ * 全体信頼度を計算
86
+ */
87
+ private calculateOverallConfidence;
88
+ /**
89
+ * 最終レポートを生成
90
+ */
91
+ private generateFinalReport;
92
+ /**
93
+ * エグゼクティブサマリーを生成
94
+ */
95
+ private generateExecutiveSummary;
96
+ /**
97
+ * フォーカスラベルを取得
98
+ */
99
+ private getFocusLabel;
100
+ }
101
+ //# sourceMappingURL=StepResultIntegrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepResultIntegrator.d.ts","sourceRoot":"","sources":["../../src/cascading/StepResultIntegrator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,eAAe,EACf,aAAa,EAEd,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAKxC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,eAAe;IACf,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,cAAc;IACd,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,aAAa;IACb,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY;IACZ,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAInD;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,iBAAiB;IAqCtE;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAqBrC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAepC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8ChC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA+BlC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0E3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;OAEG;IACH,OAAO,CAAC,aAAa;CAUtB"}