@nahisaho/katashiro-analyzer 2.0.13 → 2.1.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.
Files changed (73) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/research/agent/ActionRouter.d.ts +101 -0
  6. package/dist/research/agent/ActionRouter.d.ts.map +1 -0
  7. package/dist/research/agent/ActionRouter.js +284 -0
  8. package/dist/research/agent/ActionRouter.js.map +1 -0
  9. package/dist/research/agent/ActionTracker.d.ts +105 -0
  10. package/dist/research/agent/ActionTracker.d.ts.map +1 -0
  11. package/dist/research/agent/ActionTracker.js +219 -0
  12. package/dist/research/agent/ActionTracker.js.map +1 -0
  13. package/dist/research/agent/AnswerEvaluator.d.ts +156 -0
  14. package/dist/research/agent/AnswerEvaluator.d.ts.map +1 -0
  15. package/dist/research/agent/AnswerEvaluator.js +626 -0
  16. package/dist/research/agent/AnswerEvaluator.js.map +1 -0
  17. package/dist/research/agent/DeepResearchAgent.d.ts +136 -0
  18. package/dist/research/agent/DeepResearchAgent.d.ts.map +1 -0
  19. package/dist/research/agent/DeepResearchAgent.js +381 -0
  20. package/dist/research/agent/DeepResearchAgent.js.map +1 -0
  21. package/dist/research/agent/KnowledgeStore.d.ts +95 -0
  22. package/dist/research/agent/KnowledgeStore.d.ts.map +1 -0
  23. package/dist/research/agent/KnowledgeStore.js +189 -0
  24. package/dist/research/agent/KnowledgeStore.js.map +1 -0
  25. package/dist/research/agent/QueryRewriter.d.ts +111 -0
  26. package/dist/research/agent/QueryRewriter.d.ts.map +1 -0
  27. package/dist/research/agent/QueryRewriter.js +350 -0
  28. package/dist/research/agent/QueryRewriter.js.map +1 -0
  29. package/dist/research/agent/TokenTracker.d.ts +100 -0
  30. package/dist/research/agent/TokenTracker.d.ts.map +1 -0
  31. package/dist/research/agent/TokenTracker.js +150 -0
  32. package/dist/research/agent/TokenTracker.js.map +1 -0
  33. package/dist/research/agent/actions/AnswerActionHandler.d.ts +44 -0
  34. package/dist/research/agent/actions/AnswerActionHandler.d.ts.map +1 -0
  35. package/dist/research/agent/actions/AnswerActionHandler.js +158 -0
  36. package/dist/research/agent/actions/AnswerActionHandler.js.map +1 -0
  37. package/dist/research/agent/actions/BaseActionHandler.d.ts +87 -0
  38. package/dist/research/agent/actions/BaseActionHandler.d.ts.map +1 -0
  39. package/dist/research/agent/actions/BaseActionHandler.js +67 -0
  40. package/dist/research/agent/actions/BaseActionHandler.js.map +1 -0
  41. package/dist/research/agent/actions/CodingActionHandler.d.ts +66 -0
  42. package/dist/research/agent/actions/CodingActionHandler.d.ts.map +1 -0
  43. package/dist/research/agent/actions/CodingActionHandler.js +233 -0
  44. package/dist/research/agent/actions/CodingActionHandler.js.map +1 -0
  45. package/dist/research/agent/actions/ReflectActionHandler.d.ts +32 -0
  46. package/dist/research/agent/actions/ReflectActionHandler.d.ts.map +1 -0
  47. package/dist/research/agent/actions/ReflectActionHandler.js +107 -0
  48. package/dist/research/agent/actions/ReflectActionHandler.js.map +1 -0
  49. package/dist/research/agent/actions/SearchActionHandler.d.ts +30 -0
  50. package/dist/research/agent/actions/SearchActionHandler.d.ts.map +1 -0
  51. package/dist/research/agent/actions/SearchActionHandler.js +73 -0
  52. package/dist/research/agent/actions/SearchActionHandler.js.map +1 -0
  53. package/dist/research/agent/actions/VisitActionHandler.d.ts +33 -0
  54. package/dist/research/agent/actions/VisitActionHandler.d.ts.map +1 -0
  55. package/dist/research/agent/actions/VisitActionHandler.js +83 -0
  56. package/dist/research/agent/actions/VisitActionHandler.js.map +1 -0
  57. package/dist/research/agent/actions/index.d.ts +10 -0
  58. package/dist/research/agent/actions/index.d.ts.map +1 -0
  59. package/dist/research/agent/actions/index.js +10 -0
  60. package/dist/research/agent/actions/index.js.map +1 -0
  61. package/dist/research/agent/index.d.ts +62 -0
  62. package/dist/research/agent/index.d.ts.map +1 -0
  63. package/dist/research/agent/index.js +57 -0
  64. package/dist/research/agent/index.js.map +1 -0
  65. package/dist/research/agent/types.d.ts +421 -0
  66. package/dist/research/agent/types.d.ts.map +1 -0
  67. package/dist/research/agent/types.js +45 -0
  68. package/dist/research/agent/types.js.map +1 -0
  69. package/dist/research/index.d.ts +1 -0
  70. package/dist/research/index.d.ts.map +1 -1
  71. package/dist/research/index.js +2 -0
  72. package/dist/research/index.js.map +1 -1
  73. package/package.json +2 -1
@@ -0,0 +1,83 @@
1
+ /**
2
+ * VisitActionHandler - URLアクセスアクション
3
+ *
4
+ * @requirement REQ-DR-001
5
+ * @design DES-v2.1.0-DeepResearchAgent
6
+ */
7
+ import { isOk } from '@nahisaho/katashiro-core';
8
+ import { BaseActionHandler } from './BaseActionHandler.js';
9
+ /**
10
+ * URLを訪問してコンテンツを取得するアクションハンドラ
11
+ */
12
+ export class VisitActionHandler extends BaseActionHandler {
13
+ actionType = 'visit';
14
+ scraper;
15
+ constructor(options) {
16
+ super(options);
17
+ this.scraper = options.scraper;
18
+ }
19
+ /**
20
+ * URLを訪問してコンテンツを取得
21
+ */
22
+ async execute(params, context) {
23
+ const { urlTargets } = params;
24
+ const knowledgeItems = [];
25
+ const visitedUrls = [];
26
+ const errors = [];
27
+ // urlTargetsはインデックスなので、実際のURLに変換
28
+ const targetUrls = urlTargets
29
+ .map((index) => context.searchResultUrls.find((u) => u.index === index))
30
+ .filter((u) => u !== undefined);
31
+ for (const target of targetUrls) {
32
+ // 既に訪問済みの場合はスキップ
33
+ if (context.visitedUrls.includes(target.url)) {
34
+ continue;
35
+ }
36
+ try {
37
+ const result = await this.scraper.scrape(target.url);
38
+ if (isOk(result)) {
39
+ const page = result.value;
40
+ // ページコンテンツからナレッジアイテムを生成
41
+ const item = this.createKnowledgeItem(this.formatPageContent(page), {
42
+ url: target.url,
43
+ title: page.title || target.title,
44
+ type: 'web',
45
+ });
46
+ knowledgeItems.push(item);
47
+ visitedUrls.push(target.url);
48
+ }
49
+ else {
50
+ errors.push(`Failed to scrape ${target.url}: ${result.error.message}`);
51
+ }
52
+ }
53
+ catch (error) {
54
+ errors.push(`Error visiting ${target.url}: ${error instanceof Error ? error.message : 'Unknown error'}`);
55
+ }
56
+ }
57
+ return {
58
+ success: knowledgeItems.length > 0,
59
+ knowledgeItems,
60
+ error: errors.length > 0 ? errors.join('; ') : undefined,
61
+ metadata: {
62
+ visitedUrls,
63
+ errorCount: errors.length,
64
+ },
65
+ };
66
+ }
67
+ /**
68
+ * ページコンテンツをフォーマット
69
+ */
70
+ formatPageContent(page) {
71
+ const parts = [];
72
+ if (page.title) {
73
+ parts.push(`Title: ${page.title}`);
74
+ }
75
+ if (page.content) {
76
+ // コンテンツを制限(5000文字)
77
+ const content = page.content.slice(0, 5000);
78
+ parts.push(`Content: ${content}`);
79
+ }
80
+ return parts.join('\n\n');
81
+ }
82
+ }
83
+ //# sourceMappingURL=VisitActionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisitActionHandler.js","sourceRoot":"","sources":["../../../../src/research/agent/actions/VisitActionHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * アクションハンドラのエクスポート
3
+ */
4
+ export * from './BaseActionHandler.js';
5
+ export * from './SearchActionHandler.js';
6
+ export * from './VisitActionHandler.js';
7
+ export * from './ReflectActionHandler.js';
8
+ export * from './AnswerActionHandler.js';
9
+ export * from './CodingActionHandler.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/research/agent/actions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * アクションハンドラのエクスポート
3
+ */
4
+ export * from './BaseActionHandler.js';
5
+ export * from './SearchActionHandler.js';
6
+ export * from './VisitActionHandler.js';
7
+ export * from './ReflectActionHandler.js';
8
+ export * from './AnswerActionHandler.js';
9
+ export * from './CodingActionHandler.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/research/agent/actions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Deep Research Agent モジュール
3
+ *
4
+ * jina-ai/node-DeepResearch風の反復型リサーチエージェント
5
+ *
6
+ * @requirement REQ-DR-001 ~ REQ-DR-009
7
+ * @design DES-v2.1.0-DeepResearchAgent
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import {
12
+ * DeepResearchAgent,
13
+ * AgentConfig,
14
+ * AgentResearchResult,
15
+ * } from '@nahisaho/katashiro-analyzer/research/agent';
16
+ *
17
+ * const agent = new DeepResearchAgent({
18
+ * llmClient,
19
+ * searchClient,
20
+ * scraper,
21
+ * config: {
22
+ * maxSteps: 30,
23
+ * tokenBudget: 500000,
24
+ * },
25
+ * });
26
+ *
27
+ * // イベントリスナーを登録
28
+ * agent.on((event) => {
29
+ * console.log(`[${event.type}]`, event.data);
30
+ * });
31
+ *
32
+ * // リサーチを実行
33
+ * const result = await agent.research('What is the impact of AI on healthcare?');
34
+ *
35
+ * console.log('Answer:', result.answer);
36
+ * console.log('Steps:', result.steps.length);
37
+ * console.log('Knowledge Items:', result.knowledgeItems.length);
38
+ * ```
39
+ */
40
+ export { DeepResearchAgent } from './DeepResearchAgent.js';
41
+ export type { DeepResearchAgentOptions, AgentEvent, AgentEventType, AgentEventListener, } from './DeepResearchAgent.js';
42
+ export type { LLMClientInterface, ActionType, SearchProvider, QuestionType, ActionFlags, TokenUsage, Reference, WeightedUrl, KnowledgeItem, SearchParams, VisitParams, ReflectParams, AnswerParams, CodingParams, ActionParams, StepDecision, StepAction, ActionResultBase, SearchActionResult, VisitActionResult, ReflectActionResult, AnswerActionResult, CodingActionResult, ActionResultType, ActionContext, DeepResearchAgentConfig, ResearchOptions, AgentConfig, AgentResearchResult, } from './types.js';
43
+ export { DEFAULT_DEEP_RESEARCH_AGENT_CONFIG } from './types.js';
44
+ export { TokenTracker } from './TokenTracker.js';
45
+ export type { TokenTrackerOptions } from './TokenTracker.js';
46
+ export { KnowledgeStore } from './KnowledgeStore.js';
47
+ export { AnswerEvaluator } from './AnswerEvaluator.js';
48
+ export type { AnswerEvaluatorOptions, EvaluationResponse, QuestionAnalysis, } from './AnswerEvaluator.js';
49
+ export { ActionTracker } from './ActionTracker.js';
50
+ export { ActionRouter } from './ActionRouter.js';
51
+ export type { ActionRouterOptions, DecisionContext, } from './ActionRouter.js';
52
+ export { QueryRewriter } from './QueryRewriter.js';
53
+ export type { QueryRewriterOptions, RewriteResult, IntentLayer, } from './QueryRewriter.js';
54
+ export { BaseActionHandler } from './actions/BaseActionHandler.js';
55
+ export type { ActionResult, ActionHandlerOptions, IActionHandler, ExecutionContext, } from './actions/BaseActionHandler.js';
56
+ export { SearchActionHandler } from './actions/SearchActionHandler.js';
57
+ export { VisitActionHandler } from './actions/VisitActionHandler.js';
58
+ export { ReflectActionHandler } from './actions/ReflectActionHandler.js';
59
+ export { AnswerActionHandler } from './actions/AnswerActionHandler.js';
60
+ export { CodingActionHandler } from './actions/CodingActionHandler.js';
61
+ export type { CodingActionHandlerOptions, CodeExecutor, } from './actions/CodingActionHandler.js';
62
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/research/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EACV,wBAAwB,EACxB,UAAU,EACV,cAAc,EACd,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAGhC,YAAY,EACV,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,mBAAmB,EACnB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EACV,0BAA0B,EAC1B,YAAY,GACb,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Deep Research Agent モジュール
3
+ *
4
+ * jina-ai/node-DeepResearch風の反復型リサーチエージェント
5
+ *
6
+ * @requirement REQ-DR-001 ~ REQ-DR-009
7
+ * @design DES-v2.1.0-DeepResearchAgent
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import {
12
+ * DeepResearchAgent,
13
+ * AgentConfig,
14
+ * AgentResearchResult,
15
+ * } from '@nahisaho/katashiro-analyzer/research/agent';
16
+ *
17
+ * const agent = new DeepResearchAgent({
18
+ * llmClient,
19
+ * searchClient,
20
+ * scraper,
21
+ * config: {
22
+ * maxSteps: 30,
23
+ * tokenBudget: 500000,
24
+ * },
25
+ * });
26
+ *
27
+ * // イベントリスナーを登録
28
+ * agent.on((event) => {
29
+ * console.log(`[${event.type}]`, event.data);
30
+ * });
31
+ *
32
+ * // リサーチを実行
33
+ * const result = await agent.research('What is the impact of AI on healthcare?');
34
+ *
35
+ * console.log('Answer:', result.answer);
36
+ * console.log('Steps:', result.steps.length);
37
+ * console.log('Knowledge Items:', result.knowledgeItems.length);
38
+ * ```
39
+ */
40
+ // メインエージェント
41
+ export { DeepResearchAgent } from './DeepResearchAgent.js';
42
+ export { DEFAULT_DEEP_RESEARCH_AGENT_CONFIG } from './types.js';
43
+ // コンポーネント
44
+ export { TokenTracker } from './TokenTracker.js';
45
+ export { KnowledgeStore } from './KnowledgeStore.js';
46
+ export { AnswerEvaluator } from './AnswerEvaluator.js';
47
+ export { ActionTracker } from './ActionTracker.js';
48
+ export { ActionRouter } from './ActionRouter.js';
49
+ export { QueryRewriter } from './QueryRewriter.js';
50
+ // アクションハンドラ(明示的にエクスポート)
51
+ export { BaseActionHandler } from './actions/BaseActionHandler.js';
52
+ export { SearchActionHandler } from './actions/SearchActionHandler.js';
53
+ export { VisitActionHandler } from './actions/VisitActionHandler.js';
54
+ export { ReflectActionHandler } from './actions/ReflectActionHandler.js';
55
+ export { AnswerActionHandler } from './actions/AnswerActionHandler.js';
56
+ export { CodingActionHandler } from './actions/CodingActionHandler.js';
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/research/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAyC3D,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAEhE,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,wBAAwB;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAQnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,421 @@
1
+ /**
2
+ * DeepResearchAgent Types
3
+ *
4
+ * @requirement REQ-DR-001, REQ-DR-003, REQ-DR-004
5
+ * @design DES-v2.1.0-DeepResearchAgent
6
+ */
7
+ /**
8
+ * LLMクライアントインターフェース
9
+ *
10
+ * DeepResearchAgent内で使用するLLMクライアントの共通インターフェース
11
+ */
12
+ export interface LLMClientInterface {
13
+ /**
14
+ * チャット形式でテキスト生成
15
+ */
16
+ chat(options: {
17
+ messages: Array<{
18
+ role: string;
19
+ content: string;
20
+ }>;
21
+ temperature?: number;
22
+ maxTokens?: number;
23
+ }): Promise<{
24
+ content: string;
25
+ usage?: {
26
+ promptTokens?: number;
27
+ completionTokens?: number;
28
+ };
29
+ }>;
30
+ }
31
+ /**
32
+ * アクションタイプ
33
+ */
34
+ export type ActionType = 'search' | 'visit' | 'reflect' | 'answer' | 'coding';
35
+ /**
36
+ * 検索プロバイダー
37
+ */
38
+ export type SearchProvider = 'duckduckgo' | 'brave' | 'serper' | 'jina' | 'searxng';
39
+ /**
40
+ * 質問タイプ
41
+ */
42
+ export type QuestionType = 'factual' | 'exploratory' | 'comparative' | 'causal' | 'procedural' | 'evaluative' | 'howto' | 'why' | 'comparison' | 'list';
43
+ /**
44
+ * アクション許可フラグ
45
+ */
46
+ export interface ActionFlags {
47
+ allowSearch: boolean;
48
+ allowVisit: boolean;
49
+ allowReflect: boolean;
50
+ allowAnswer: boolean;
51
+ allowCoding: boolean;
52
+ }
53
+ /**
54
+ * トークン使用量
55
+ */
56
+ export interface TokenUsage {
57
+ promptTokens: number;
58
+ completionTokens: number;
59
+ totalTokens: number;
60
+ }
61
+ /**
62
+ * 参照情報
63
+ */
64
+ export interface Reference {
65
+ url: string;
66
+ title: string;
67
+ exactQuote?: string;
68
+ dateTime?: string;
69
+ relevanceScore?: number;
70
+ answerChunk?: string;
71
+ }
72
+ /**
73
+ * 重み付きURL
74
+ */
75
+ export interface WeightedUrl {
76
+ url: string;
77
+ title: string;
78
+ snippet: string;
79
+ weight: number;
80
+ source: string;
81
+ visited?: boolean;
82
+ }
83
+ /**
84
+ * ナレッジアイテム
85
+ */
86
+ export interface KnowledgeItem {
87
+ id: string;
88
+ sourceId: string;
89
+ sourceType: 'web' | 'code' | 'reflection';
90
+ summary: string;
91
+ content: string;
92
+ keywords: string[];
93
+ timestamp: string;
94
+ metadata?: Record<string, unknown>;
95
+ question?: string;
96
+ answer?: string;
97
+ type?: 'url' | 'side-info' | 'user-provided' | 'computed';
98
+ updated?: string;
99
+ confidence?: number;
100
+ references?: string[];
101
+ }
102
+ /**
103
+ * 検索パラメータ
104
+ */
105
+ export interface SearchParams {
106
+ searchQueries: string[];
107
+ }
108
+ /**
109
+ * 訪問パラメータ
110
+ */
111
+ export interface VisitParams {
112
+ urlTargets: number[];
113
+ }
114
+ /**
115
+ * リフレクションパラメータ
116
+ */
117
+ export interface ReflectParams {
118
+ questions: string[];
119
+ }
120
+ /**
121
+ * 回答パラメータ
122
+ */
123
+ export interface AnswerParams {
124
+ answer: string;
125
+ references: string[];
126
+ isFinal?: boolean;
127
+ }
128
+ /**
129
+ * コーディングパラメータ
130
+ */
131
+ export interface CodingParams {
132
+ codingIssue: string;
133
+ code?: string;
134
+ }
135
+ /**
136
+ * 各アクションのパラメータ(後方互換性)
137
+ */
138
+ export interface ActionParams {
139
+ search: SearchParams;
140
+ visit: VisitParams;
141
+ reflect: ReflectParams;
142
+ answer: {
143
+ answer: string;
144
+ references: Reference[];
145
+ isFinal?: boolean;
146
+ };
147
+ coding: CodingParams;
148
+ }
149
+ /**
150
+ * ステップの決定
151
+ */
152
+ export interface StepDecision {
153
+ think: string;
154
+ action: ActionType;
155
+ params: SearchParams | VisitParams | ReflectParams | AnswerParams | CodingParams;
156
+ }
157
+ /**
158
+ * 実行されたステップ
159
+ */
160
+ export interface StepAction {
161
+ stepNumber: number;
162
+ action: ActionType;
163
+ think: string;
164
+ params: SearchParams | VisitParams | ReflectParams | AnswerParams | CodingParams;
165
+ timestamp: string;
166
+ success: boolean;
167
+ error?: string;
168
+ tokenUsage?: TokenUsage;
169
+ }
170
+ /**
171
+ * アクション結果の基底型
172
+ */
173
+ export interface ActionResultBase {
174
+ success: boolean;
175
+ message?: string;
176
+ }
177
+ /**
178
+ * 検索アクション結果
179
+ */
180
+ export interface SearchActionResult extends ActionResultBase {
181
+ newKnowledge: KnowledgeItem[];
182
+ newUrls: WeightedUrl[];
183
+ searchedQueries: string[];
184
+ }
185
+ /**
186
+ * 訪問アクション結果
187
+ */
188
+ export interface VisitActionResult extends ActionResultBase {
189
+ visitedUrls: string[];
190
+ newKnowledge: KnowledgeItem[];
191
+ failedUrls: string[];
192
+ }
193
+ /**
194
+ * 振り返りアクション結果
195
+ */
196
+ export interface ReflectActionResult extends ActionResultBase {
197
+ newQuestions: string[];
198
+ duplicateQuestions: string[];
199
+ }
200
+ /**
201
+ * 回答アクション結果
202
+ */
203
+ export interface AnswerActionResult extends ActionResultBase {
204
+ evaluation: EvaluationResponse;
205
+ isFinal: boolean;
206
+ }
207
+ /**
208
+ * コーディングアクション結果
209
+ */
210
+ export interface CodingActionResult extends ActionResultBase {
211
+ output: string;
212
+ error?: string;
213
+ }
214
+ /**
215
+ * アクション結果のユニオン型
216
+ */
217
+ export type ActionResultType = SearchActionResult | VisitActionResult | ReflectActionResult | AnswerActionResult | CodingActionResult;
218
+ /**
219
+ * 評価タイプ
220
+ */
221
+ export type EvaluationType = 'definitive' | 'freshness' | 'plurality' | 'completeness' | 'attribution';
222
+ /**
223
+ * 評価レスポンス
224
+ */
225
+ export interface EvaluationResponse {
226
+ pass: boolean;
227
+ think: string;
228
+ type?: EvaluationType;
229
+ freshnessAnalysis?: {
230
+ daysAgo: number;
231
+ maxAgeDays?: number;
232
+ };
233
+ pluralityAnalysis?: {
234
+ minimumCountRequired: number;
235
+ actualCountProvided: number;
236
+ };
237
+ completenessAnalysis?: {
238
+ aspectsExpected: string;
239
+ aspectsProvided: string;
240
+ };
241
+ improvementPlan?: string;
242
+ }
243
+ /**
244
+ * リサーチ完了理由
245
+ */
246
+ export type CompletionReason = 'answered' | 'budget_exceeded' | 'max_attempts' | 'max_steps' | 'timeout' | 'user_stopped';
247
+ /**
248
+ * エージェント設定
249
+ */
250
+ export interface AgentConfig {
251
+ /** トークン予算 */
252
+ tokenBudget: number;
253
+ /** 最大ステップ数 */
254
+ maxSteps: number;
255
+ /** 最大失敗試行回数 */
256
+ maxBadAttempts: number;
257
+ /** 検索オプション */
258
+ searchOptions?: {
259
+ providers?: SearchProvider[];
260
+ maxResultsPerQuery?: number;
261
+ };
262
+ /** Beastモード設定 */
263
+ beastMode?: {
264
+ enabled: boolean;
265
+ threshold: number;
266
+ };
267
+ /** 言語設定 */
268
+ language?: string;
269
+ /** デバッグモード */
270
+ debug?: boolean;
271
+ }
272
+ /**
273
+ * リサーチ結果
274
+ */
275
+ export interface AgentResearchResult {
276
+ question: string;
277
+ answer: string;
278
+ references: string[];
279
+ knowledgeItems: KnowledgeItem[];
280
+ steps: StepAction[];
281
+ evaluation?: EvaluationResponse;
282
+ tokenUsage: {
283
+ promptTokens: number;
284
+ completionTokens: number;
285
+ totalTokens: number;
286
+ budget: number;
287
+ remaining: number;
288
+ };
289
+ metadata: {
290
+ durationMs: number;
291
+ stepCount: number;
292
+ beastModeUsed: boolean;
293
+ questionType: QuestionType;
294
+ complexityScore: number;
295
+ };
296
+ }
297
+ /**
298
+ * 後方互換性のための旧AgentResearchResult
299
+ */
300
+ export interface LegacyAgentResearchResult {
301
+ answer: string;
302
+ references: Reference[];
303
+ knowledge: KnowledgeItem[];
304
+ steps: StepAction[];
305
+ tokenUsage: TokenUsage;
306
+ completionReason: CompletionReason;
307
+ totalSteps: number;
308
+ badAttempts: number;
309
+ duration: number;
310
+ }
311
+ /**
312
+ * リサーチステップ(ストリーミング用)
313
+ */
314
+ export interface ResearchStep {
315
+ stepNumber: number;
316
+ action: ActionType;
317
+ think: string;
318
+ status: 'executing' | 'completed' | 'failed';
319
+ details?: string;
320
+ tokenUsage?: TokenUsage;
321
+ }
322
+ /**
323
+ * アクションコンテキスト
324
+ */
325
+ export interface ActionContext {
326
+ question: string;
327
+ currentQuestion: string;
328
+ knowledge: KnowledgeItem[];
329
+ urlList: WeightedUrl[];
330
+ diaryContext: string[];
331
+ previousSteps: StepAction[];
332
+ gaps: string[];
333
+ visitedUrls: string[];
334
+ badUrls: string[];
335
+ allKeywords: string[];
336
+ }
337
+ /**
338
+ * DeepResearchAgent設定
339
+ */
340
+ export interface DeepResearchAgentConfig {
341
+ tokenBudget: number;
342
+ reserveFinalRatio: number;
343
+ maxBadAttempts: number;
344
+ maxSteps: number;
345
+ searchProvider: SearchProvider;
346
+ maxQueriesPerStep: number;
347
+ maxUrlsPerStep: number;
348
+ minRelevanceScore: number;
349
+ maxReferences: number;
350
+ teamSize: number;
351
+ stepTimeout: number;
352
+ totalTimeout: number;
353
+ languageCode?: string;
354
+ searchLanguageCode?: string;
355
+ beastModeEnabled: boolean;
356
+ beastModeThreshold: number;
357
+ debug: boolean;
358
+ }
359
+ /**
360
+ * リサーチオプション
361
+ */
362
+ export interface ResearchOptions {
363
+ messages?: Array<{
364
+ role: 'user' | 'assistant';
365
+ content: string;
366
+ }>;
367
+ boostHostnames?: string[];
368
+ badHostnames?: string[];
369
+ onlyHostnames?: string[];
370
+ noDirectAnswer?: boolean;
371
+ withImages?: boolean;
372
+ config?: Partial<DeepResearchAgentConfig>;
373
+ }
374
+ /**
375
+ * クエリリライト結果
376
+ */
377
+ export interface RewrittenQuery {
378
+ q: string;
379
+ tbs?: 'qdr:h' | 'qdr:d' | 'qdr:w' | 'qdr:m' | 'qdr:y';
380
+ location?: string;
381
+ }
382
+ /**
383
+ * 意図分析結果
384
+ */
385
+ export interface IntentAnalysis {
386
+ surface: string;
387
+ practical: string;
388
+ emotional?: string;
389
+ social?: string;
390
+ identity?: string;
391
+ }
392
+ /**
393
+ * Webコンテンツ
394
+ */
395
+ export interface WebContent {
396
+ url: string;
397
+ title: string;
398
+ content: string;
399
+ chunks?: string[];
400
+ extractedAt: string;
401
+ }
402
+ /**
403
+ * ダイアリーエントリ
404
+ */
405
+ export interface DiaryEntry {
406
+ step: number;
407
+ action: ActionType;
408
+ question: string;
409
+ details: string;
410
+ result: 'success' | 'partial' | 'failure';
411
+ notes?: string;
412
+ }
413
+ /**
414
+ * デフォルトのAgentConfig
415
+ */
416
+ export declare const DEFAULT_AGENT_CONFIG: AgentConfig;
417
+ /**
418
+ * デフォルト設定(後方互換性)
419
+ */
420
+ export declare const DEFAULT_DEEP_RESEARCH_AGENT_CONFIG: DeepResearchAgentConfig;
421
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/research/agent/types.ts"],"names":[],"mappings":"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"}