shiden 0.1.0 → 0.3.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 (45) hide show
  1. package/.github/skills/theory-lookup.md +215 -210
  2. package/README.md +78 -10
  3. package/dist/cli/commands/theories.js +191 -0
  4. package/dist/cli/commands/theories.js.map +1 -0
  5. package/dist/cli/index.js +30 -59
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/theories/TheoryRepository.js +169 -0
  8. package/dist/theories/TheoryRepository.js.map +1 -0
  9. package/dist/theories/TheoryService.js +102 -0
  10. package/dist/theories/TheoryService.js.map +1 -0
  11. package/dist/theories/database.js +62 -0
  12. package/dist/theories/database.js.map +1 -0
  13. package/dist/theories/index.js +10 -0
  14. package/dist/theories/index.js.map +1 -0
  15. package/dist/theories/types.js +7 -0
  16. package/dist/theories/types.js.map +1 -0
  17. package/dist/types/cli/commands/theories.d.ts +12 -0
  18. package/dist/types/cli/commands/theories.d.ts.map +1 -0
  19. package/dist/types/theories/TheoryRepository.d.ts +52 -0
  20. package/dist/types/theories/TheoryRepository.d.ts.map +1 -0
  21. package/dist/types/theories/TheoryService.d.ts +48 -0
  22. package/dist/types/theories/TheoryService.d.ts.map +1 -0
  23. package/dist/types/theories/database.d.ts +20 -0
  24. package/dist/types/theories/database.d.ts.map +1 -0
  25. package/dist/types/theories/index.d.ts +8 -0
  26. package/dist/types/theories/index.d.ts.map +1 -0
  27. package/dist/types/theories/types.d.ts +132 -0
  28. package/dist/types/theories/types.d.ts.map +1 -0
  29. package/package.json +10 -3
  30. package/src/data/relations.json +464 -0
  31. package/src/data/theories.db +0 -0
  32. package/src/data/theories.db-shm +0 -0
  33. package/src/data/theories.db-wal +0 -0
  34. package/src/data/theories.json +6063 -0
  35. package/templates/.github/prompts/assessment.md +25 -11
  36. package/templates/.github/prompts/feedback.md +26 -11
  37. package/templates/.github/prompts/guidance.md +27 -13
  38. package/templates/.github/prompts/individual.md +28 -16
  39. package/templates/.github/prompts/lesson-plan.md +26 -18
  40. package/templates/.github/prompts/materials.md +25 -9
  41. package/templates/.github/prompts/meta-prompt.md +8 -1
  42. package/templates/.github/skills/context-manager.md +2 -2
  43. package/templates/.github/skills/orchestrator.md +14 -6
  44. package/templates/.github/skills/theory-lookup.md +215 -210
  45. package/templates/.vscode/mcp.json +35 -0
@@ -0,0 +1,191 @@
1
+ /**
2
+ * theories コマンド実装
3
+ * TSK-007: CLIコマンド実装
4
+ * @module cli/commands/theories
5
+ */
6
+ import { Command } from 'commander';
7
+ import chalk from 'chalk';
8
+ import * as TheoryService from '../../theories/index.js';
9
+ /**
10
+ * 理論を整形して表示
11
+ */
12
+ function formatTheory(theory, verbose = false) {
13
+ const lines = [];
14
+ lines.push(chalk.cyan(`${theory.id}: ${theory.name}`));
15
+ if (theory.name_ja) {
16
+ lines.push(chalk.gray(` ${theory.name_ja}`));
17
+ }
18
+ lines.push(chalk.yellow(` Category: ${theory.category}`));
19
+ if (verbose) {
20
+ if (theory.description) {
21
+ lines.push(chalk.white(` Description: ${theory.description.substring(0, 200)}...`));
22
+ }
23
+ if (theory.key_principles.length > 0) {
24
+ lines.push(chalk.green(` Principles: ${theory.key_principles.slice(0, 3).join(', ')}`));
25
+ }
26
+ }
27
+ return lines.join('\n');
28
+ }
29
+ /**
30
+ * 関連理論をツリー形式で表示
31
+ */
32
+ function formatRelatedTree(theories) {
33
+ const lines = [];
34
+ for (const theory of theories) {
35
+ const indent = ' '.repeat(theory.depth);
36
+ const prefix = theory.depth === 1 ? '└─' : '└─';
37
+ lines.push(`${indent}${prefix} ${chalk.cyan(theory.id)}: ${theory.name} ` +
38
+ chalk.gray(`(${theory.relation_type})`));
39
+ }
40
+ return lines.join('\n');
41
+ }
42
+ /**
43
+ * theories コマンドを作成
44
+ */
45
+ export function createTheoriesCommand() {
46
+ const theories = new Command('theories')
47
+ .description('教育理論データベースの操作');
48
+ // theories list
49
+ theories
50
+ .command('list')
51
+ .description('理論一覧を表示')
52
+ .option('-c, --category <category>', 'カテゴリでフィルタ')
53
+ .option('-l, --limit <number>', '表示件数', '20')
54
+ .option('-o, --offset <number>', 'オフセット', '0')
55
+ .action((options) => {
56
+ const limit = parseInt(options.limit, 10);
57
+ const offset = parseInt(options.offset, 10);
58
+ const category = options.category;
59
+ const theories = TheoryService.list({ category, limit, offset });
60
+ const total = TheoryService.count();
61
+ console.log(chalk.bold(`\n📚 教育理論一覧 (${theories.length}/${total}件)\n`));
62
+ for (const theory of theories) {
63
+ console.log(formatTheory(theory));
64
+ console.log('');
65
+ }
66
+ if (category) {
67
+ console.log(chalk.gray(`フィルタ: category=${category}`));
68
+ }
69
+ });
70
+ // theories search
71
+ theories
72
+ .command('search <query>')
73
+ .description('理論を検索(FTS5 trigram)')
74
+ .option('-c, --category <category>', 'カテゴリでフィルタ')
75
+ .option('-l, --limit <number>', '表示件数', '10')
76
+ .option('-v, --verbose', '詳細表示')
77
+ .action((query, options) => {
78
+ const limit = parseInt(options.limit, 10);
79
+ const result = TheoryService.search(query, {
80
+ category: options.category,
81
+ limit,
82
+ });
83
+ console.log(chalk.bold(`\n🔍 検索結果: "${query}" (${result.total}件, ${result.durationMs}ms)\n`));
84
+ if (result.theories.length === 0) {
85
+ console.log(chalk.yellow(' 該当する理論が見つかりませんでした。'));
86
+ console.log(chalk.gray(' ヒント: 3文字以上のクエリを使用してください(trigramインデックス)'));
87
+ }
88
+ else {
89
+ for (const theory of result.theories) {
90
+ console.log(formatTheory(theory, options.verbose));
91
+ console.log('');
92
+ }
93
+ }
94
+ });
95
+ // theories get
96
+ theories
97
+ .command('get <id>')
98
+ .description('理論の詳細を取得')
99
+ .action((id) => {
100
+ const theory = TheoryService.get(id);
101
+ if (!theory) {
102
+ console.log(chalk.red(`\n❌ 理論が見つかりません: ${id}`));
103
+ return;
104
+ }
105
+ console.log(chalk.bold(`\n📖 ${theory.name}\n`));
106
+ if (theory.name_ja) {
107
+ console.log(chalk.cyan(`日本語名: ${theory.name_ja}`));
108
+ }
109
+ console.log(chalk.yellow(`カテゴリ: ${theory.category}`));
110
+ console.log(chalk.gray(`ID: ${theory.id}`));
111
+ console.log('');
112
+ if (theory.description) {
113
+ console.log(chalk.bold('説明:'));
114
+ console.log(` ${theory.description}`);
115
+ console.log('');
116
+ }
117
+ if (theory.description_ja) {
118
+ console.log(chalk.bold('説明(日本語):'));
119
+ console.log(` ${theory.description_ja}`);
120
+ console.log('');
121
+ }
122
+ if (theory.key_principles.length > 0) {
123
+ console.log(chalk.bold('主要原則:'));
124
+ for (const p of theory.key_principles) {
125
+ console.log(chalk.green(` • ${p}`));
126
+ }
127
+ console.log('');
128
+ }
129
+ if (theory.applications.length > 0) {
130
+ console.log(chalk.bold('応用分野:'));
131
+ for (const a of theory.applications) {
132
+ console.log(chalk.blue(` • ${a}`));
133
+ }
134
+ console.log('');
135
+ }
136
+ if (theory.strengths.length > 0) {
137
+ console.log(chalk.bold('強み:'));
138
+ for (const s of theory.strengths) {
139
+ console.log(chalk.green(` ✓ ${s}`));
140
+ }
141
+ console.log('');
142
+ }
143
+ if (theory.limitations.length > 0) {
144
+ console.log(chalk.bold('限界・制約:'));
145
+ for (const l of theory.limitations) {
146
+ console.log(chalk.red(` ✗ ${l}`));
147
+ }
148
+ }
149
+ });
150
+ // theories categories
151
+ theories
152
+ .command('categories')
153
+ .description('カテゴリ一覧を表示')
154
+ .action(() => {
155
+ const categories = TheoryService.categories();
156
+ const total = categories.reduce((sum, c) => sum + c.count, 0);
157
+ console.log(chalk.bold(`\n📁 カテゴリ一覧 (${categories.length}カテゴリ, ${total}理論)\n`));
158
+ for (const cat of categories) {
159
+ const bar = '█'.repeat(Math.ceil(cat.count / 5));
160
+ console.log(` ${chalk.cyan(cat.name.padEnd(25))} ${chalk.yellow(String(cat.count).padStart(3))}件 ${chalk.gray(bar)}`);
161
+ }
162
+ });
163
+ // theories related
164
+ theories
165
+ .command('related <id>')
166
+ .description('関連理論を取得(グラフ走査)')
167
+ .option('-d, --depth <number>', '走査深さ (1-3)', '2')
168
+ .action((id, options) => {
169
+ const depth = Math.min(Math.max(parseInt(options.depth, 10), 1), 3);
170
+ const theory = TheoryService.get(id);
171
+ if (!theory) {
172
+ console.log(chalk.red(`\n❌ 理論が見つかりません: ${id}`));
173
+ return;
174
+ }
175
+ const related = TheoryService.related(id, { depth });
176
+ console.log(chalk.bold(`\n🔗 関連理論: ${theory.name}\n`));
177
+ console.log(chalk.gray(` 起点: ${id} (深さ: ${depth})`));
178
+ console.log('');
179
+ if (related.length === 0) {
180
+ console.log(chalk.yellow(' 関連理論が見つかりませんでした。'));
181
+ }
182
+ else {
183
+ console.log(formatRelatedTree(related));
184
+ console.log('');
185
+ console.log(chalk.gray(` ${related.length}件の関連理論`));
186
+ }
187
+ });
188
+ return theories;
189
+ }
190
+ export default createTheoriesCommand;
191
+ //# sourceMappingURL=theories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theories.js","sourceRoot":"","sources":["../../../src/cli/commands/theories.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -2,10 +2,11 @@
2
2
  * SHIDEN CLI
3
3
  * @module cli
4
4
  */
5
- import { parseArgs } from 'node:util';
5
+ import { Command } from 'commander';
6
6
  import * as fs from 'node:fs';
7
7
  import * as path from 'node:path';
8
8
  import { fileURLToPath } from 'node:url';
9
+ import { createTheoriesCommand } from './commands/theories.js';
9
10
  // ESM でのディレクトリパス取得
10
11
  const __filename = fileURLToPath(import.meta.url);
11
12
  const __dirname = path.dirname(__filename);
@@ -20,23 +21,6 @@ function getVersion() {
20
21
  return '1.0.0';
21
22
  }
22
23
  }
23
- // ヘルプメッセージ
24
- const HELP_MESSAGE = `
25
- 🎓 SHIDEN - 教育者向けGitHub Copilot Agent Skills
26
-
27
- Usage: npx shiden <command> [options]
28
-
29
- Commands:
30
- init [path] プロジェクトにSHIDEN Agent Skillsを初期化
31
- -v, --version バージョンを表示
32
- -h, --help このヘルプメッセージを表示
33
-
34
- Examples:
35
- npx shiden init 現在のディレクトリに初期化
36
- npx shiden init ./myproject 指定ディレクトリに初期化
37
-
38
- 詳細: https://github.com/nahisaho/SHIDEN
39
- `;
40
24
  // 成功メッセージ
41
25
  function getSuccessMessage(targetDir) {
42
26
  return `
@@ -46,6 +30,7 @@ function getSuccessMessage(targetDir) {
46
30
  ${targetDir}/AGENTS.md - Agent Skills エントリーポイント
47
31
  ${targetDir}/.github/prompts/ - 教育スキルプロンプト
48
32
  ${targetDir}/.github/skills/ - 統合スキル
33
+ ${targetDir}/.vscode/mcp.json - TENJIN MCP設定
49
34
 
50
35
  🚀 次のステップ:
51
36
  1. VS Code で ${targetDir} を開く
@@ -53,8 +38,11 @@ function getSuccessMessage(targetDir) {
53
38
  3. @workspace に質問する(例: 「中学2年の数学の授業計画を作成して」)
54
39
 
55
40
  💡 TENJIN GraphRAG 連携(推奨):
56
- TENJIN MCP Serverをセットアップすると、175+の教育理論を活用できます。
57
- https://github.com/nahisaho/TENJIN
41
+ 175+の教育理論を活用するには、以下のセットアップが必要です:
42
+ 1. Docker で Neo4j + ChromaDB を起動
43
+ 2. uvx または pip で TENJIN をインストール
44
+ 3. .vscode/mcp.json の環境変数を調整
45
+ 詳細: https://github.com/nahisaho/TENJIN
58
46
 
59
47
  📖 ドキュメント: https://github.com/nahisaho/SHIDEN
60
48
  `;
@@ -122,6 +110,13 @@ function initCommand(targetPath = '.') {
122
110
  copyDirRecursive(skillsSrc, skillsDest);
123
111
  console.log(` ✓ .github/skills/`);
124
112
  }
113
+ // .vscode/mcp.json をコピー(TENJIN MCP設定)
114
+ const mcpSrc = path.join(templatesDir, '.vscode', 'mcp.json');
115
+ const mcpDest = path.join(targetDir, '.vscode', 'mcp.json');
116
+ if (fs.existsSync(mcpSrc)) {
117
+ copyFile(mcpSrc, mcpDest);
118
+ console.log(` ✓ .vscode/mcp.json`);
119
+ }
125
120
  console.log(getSuccessMessage(targetDir));
126
121
  }
127
122
  catch (error) {
@@ -131,45 +126,21 @@ function initCommand(targetPath = '.') {
131
126
  }
132
127
  // メイン処理
133
128
  function main() {
134
- try {
135
- const { values, positionals } = parseArgs({
136
- allowPositionals: true,
137
- options: {
138
- version: {
139
- type: 'boolean',
140
- short: 'v',
141
- },
142
- help: {
143
- type: 'boolean',
144
- short: 'h',
145
- },
146
- },
147
- });
148
- // バージョン表示
149
- if (values.version) {
150
- console.log(`shiden v${getVersion()}`);
151
- return;
152
- }
153
- // ヘルプ表示
154
- if (values.help || positionals.length === 0) {
155
- console.log(HELP_MESSAGE);
156
- return;
157
- }
158
- const command = positionals[0];
159
- switch (command) {
160
- case 'init':
161
- initCommand(positionals[1]);
162
- break;
163
- default:
164
- console.error(`\n❌ 不明なコマンド: ${command}`);
165
- console.log(HELP_MESSAGE);
166
- process.exit(1);
167
- }
168
- }
169
- catch (error) {
170
- console.error('エラーが発生しました:', error);
171
- process.exit(1);
172
- }
129
+ const program = new Command();
130
+ program
131
+ .name('shiden')
132
+ .description('🎓 SHIDEN - 教育者向けGitHub Copilot Agent Skills')
133
+ .version(getVersion(), '-v, --version', 'バージョンを表示');
134
+ // init コマンド
135
+ program
136
+ .command('init [path]')
137
+ .description('プロジェクトにSHIDEN Agent Skillsを初期化')
138
+ .action((targetPath) => {
139
+ initCommand(targetPath);
140
+ });
141
+ // theories サブコマンドを追加
142
+ program.addCommand(createTheoriesCommand());
143
+ program.parse();
173
144
  }
174
145
  main();
175
146
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * 教育理論データアクセス層
3
+ * TSK-005: TheoryRepository実装
4
+ * @module theories/TheoryRepository
5
+ */
6
+ import { getDatabase } from './database.js';
7
+ /**
8
+ * データベース行をTheoryに変換
9
+ */
10
+ function rowToTheory(row) {
11
+ return {
12
+ id: row.id,
13
+ name: row.name,
14
+ name_ja: row.name_ja,
15
+ category: row.category,
16
+ description: row.description,
17
+ description_ja: row.description_ja,
18
+ theorists: JSON.parse(row.theorists || '[]'),
19
+ priority: row.priority,
20
+ key_principles: JSON.parse(row.key_principles || '[]'),
21
+ applications: JSON.parse(row.applications || '[]'),
22
+ strengths: JSON.parse(row.strengths || '[]'),
23
+ limitations: JSON.parse(row.limitations || '[]'),
24
+ };
25
+ }
26
+ /**
27
+ * 関連理論行をRelatedTheoryに変換
28
+ */
29
+ function rowToRelatedTheory(row) {
30
+ return {
31
+ ...rowToTheory(row),
32
+ depth: row.depth,
33
+ relation_type: row.relation_type,
34
+ };
35
+ }
36
+ /**
37
+ * FTS5 trigram検索
38
+ * @param query 検索クエリ(3文字以上推奨)
39
+ * @param limit 取得件数上限
40
+ * @returns マッチした理論リスト
41
+ */
42
+ export function searchFTS(query, limit = 20) {
43
+ const db = getDatabase();
44
+ // 検索クエリが短い場合はLIKE検索にフォールバック
45
+ if (query.length < 3) {
46
+ const stmt = db.prepare(`
47
+ SELECT * FROM theories
48
+ WHERE name LIKE ? OR name_ja LIKE ? OR description LIKE ? OR description_ja LIKE ?
49
+ LIMIT ?
50
+ `);
51
+ const pattern = `%${query}%`;
52
+ const rows = stmt.all(pattern, pattern, pattern, pattern, limit);
53
+ return rows.map(rowToTheory);
54
+ }
55
+ // FTS5 trigram検索
56
+ const stmt = db.prepare(`
57
+ SELECT t.*, bm25(theories_fts) as score
58
+ FROM theories_fts
59
+ JOIN theories t ON theories_fts.rowid = t.rowid
60
+ WHERE theories_fts MATCH ?
61
+ ORDER BY score
62
+ LIMIT ?
63
+ `);
64
+ const rows = stmt.all(query, limit);
65
+ return rows.map(rowToTheory);
66
+ }
67
+ /**
68
+ * IDで理論を取得
69
+ * @param id 理論ID (e.g., "theory-001")
70
+ * @returns 理論またはnull
71
+ */
72
+ export function findById(id) {
73
+ const db = getDatabase();
74
+ const stmt = db.prepare('SELECT * FROM theories WHERE id = ?');
75
+ const row = stmt.get(id);
76
+ return row ? rowToTheory(row) : null;
77
+ }
78
+ /**
79
+ * 全理論を取得
80
+ * @param options フィルタオプション
81
+ * @returns 理論リスト
82
+ */
83
+ export function findAll(options) {
84
+ const db = getDatabase();
85
+ const { category, limit = 100, offset = 0 } = options || {};
86
+ let sql = 'SELECT * FROM theories';
87
+ const params = [];
88
+ if (category) {
89
+ sql += ' WHERE category = ?';
90
+ params.push(category);
91
+ }
92
+ sql += ' ORDER BY priority DESC, name ASC LIMIT ? OFFSET ?';
93
+ params.push(limit, offset);
94
+ const stmt = db.prepare(sql);
95
+ const rows = stmt.all(...params);
96
+ return rows.map(rowToTheory);
97
+ }
98
+ /**
99
+ * カテゴリ別件数を取得
100
+ * @returns カテゴリと件数のリスト
101
+ */
102
+ export function countByCategory() {
103
+ const db = getDatabase();
104
+ const stmt = db.prepare(`
105
+ SELECT category as name, COUNT(*) as count
106
+ FROM theories
107
+ GROUP BY category
108
+ ORDER BY count DESC
109
+ `);
110
+ return stmt.all();
111
+ }
112
+ /**
113
+ * 総件数を取得
114
+ */
115
+ export function count() {
116
+ const db = getDatabase();
117
+ const stmt = db.prepare('SELECT COUNT(*) as count FROM theories');
118
+ const result = stmt.get();
119
+ return result.count;
120
+ }
121
+ /**
122
+ * WITH RECURSIVE CTEによるグラフ走査
123
+ * @param id 起点となる理論ID
124
+ * @param maxDepth 走査深さ(最大3)
125
+ * @returns 関連理論リスト
126
+ */
127
+ export function traverseRelated(id, maxDepth = 2) {
128
+ const db = getDatabase();
129
+ const depth = Math.min(Math.max(maxDepth, 1), 3); // 1-3の範囲に制限
130
+ const stmt = db.prepare(`
131
+ WITH RECURSIVE related_graph AS (
132
+ -- 起点
133
+ SELECT target_id, relation_type, 1 as depth
134
+ FROM theory_relations
135
+ WHERE source_id = ?
136
+
137
+ UNION ALL
138
+
139
+ -- 再帰
140
+ SELECT r.target_id, r.relation_type, rg.depth + 1
141
+ FROM theory_relations r
142
+ INNER JOIN related_graph rg ON r.source_id = rg.target_id
143
+ WHERE rg.depth < ?
144
+ )
145
+ SELECT DISTINCT t.*, rg.depth, rg.relation_type
146
+ FROM related_graph rg
147
+ JOIN theories t ON t.id = rg.target_id
148
+ ORDER BY rg.depth, t.name
149
+ `);
150
+ const rows = stmt.all(id, depth);
151
+ return rows.map(rowToRelatedTheory);
152
+ }
153
+ /**
154
+ * 特定の関係タイプで関連する理論を取得
155
+ * @param id 理論ID
156
+ * @param relationType 関係タイプ
157
+ */
158
+ export function findRelatedByType(id, relationType) {
159
+ const db = getDatabase();
160
+ const stmt = db.prepare(`
161
+ SELECT t.* FROM theories t
162
+ JOIN theory_relations r ON t.id = r.target_id
163
+ WHERE r.source_id = ? AND r.relation_type = ?
164
+ ORDER BY t.name
165
+ `);
166
+ const rows = stmt.all(id, relationType);
167
+ return rows.map(rowToTheory);
168
+ }
169
+ //# sourceMappingURL=TheoryRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TheoryRepository.js","sourceRoot":"","sources":["../../src/theories/TheoryRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * 教育理論サービス層
3
+ * TSK-006: TheoryService実装
4
+ * @module theories/TheoryService
5
+ */
6
+ import * as repo from './TheoryRepository.js';
7
+ /**
8
+ * 理論を検索(FTS5 trigram)
9
+ * @param query 検索クエリ
10
+ * @param options 検索オプション
11
+ * @returns 検索結果
12
+ */
13
+ export function search(query, options) {
14
+ const start = performance.now();
15
+ const { category, limit = 20 } = options || {};
16
+ let theories = repo.searchFTS(query, limit * 2); // カテゴリフィルタ用に多めに取得
17
+ if (category) {
18
+ theories = theories.filter((t) => t.category === category);
19
+ }
20
+ theories = theories.slice(0, limit);
21
+ const durationMs = performance.now() - start;
22
+ return {
23
+ theories,
24
+ total: theories.length,
25
+ query,
26
+ durationMs: Math.round(durationMs * 100) / 100,
27
+ };
28
+ }
29
+ /**
30
+ * IDで理論を取得
31
+ * @param id 理論ID
32
+ * @returns 理論またはnull
33
+ */
34
+ export function get(id) {
35
+ return repo.findById(id);
36
+ }
37
+ /**
38
+ * 全理論を取得(ページネーション対応)
39
+ * @param options 取得オプション
40
+ * @returns 理論リスト
41
+ */
42
+ export function list(options) {
43
+ return repo.findAll(options);
44
+ }
45
+ /**
46
+ * カテゴリ一覧を取得
47
+ * @returns カテゴリと件数のリスト
48
+ */
49
+ export function categories() {
50
+ return repo.countByCategory();
51
+ }
52
+ /**
53
+ * 関連理論を取得(グラフ走査)
54
+ * @param id 起点となる理論ID
55
+ * @param options 走査オプション
56
+ * @returns 関連理論リスト
57
+ */
58
+ export function related(id, options) {
59
+ const { depth = 2, relationTypes } = options || {};
60
+ let results = repo.traverseRelated(id, depth);
61
+ if (relationTypes && relationTypes.length > 0) {
62
+ results = results.filter((r) => relationTypes.includes(r.relation_type));
63
+ }
64
+ return results;
65
+ }
66
+ /**
67
+ * 総件数を取得
68
+ */
69
+ export function count() {
70
+ return repo.count();
71
+ }
72
+ /**
73
+ * 複数クエリで検索(OR検索)
74
+ * @param queries 検索クエリ配列
75
+ * @param options 検索オプション
76
+ */
77
+ export function searchMultiple(queries, options) {
78
+ const start = performance.now();
79
+ const { category, limit = 20 } = options || {};
80
+ const theoriesMap = new Map();
81
+ for (const query of queries) {
82
+ const results = repo.searchFTS(query, limit);
83
+ for (const theory of results) {
84
+ if (!theoriesMap.has(theory.id)) {
85
+ theoriesMap.set(theory.id, theory);
86
+ }
87
+ }
88
+ }
89
+ let theories = Array.from(theoriesMap.values());
90
+ if (category) {
91
+ theories = theories.filter((t) => t.category === category);
92
+ }
93
+ theories = theories.slice(0, limit);
94
+ const durationMs = performance.now() - start;
95
+ return {
96
+ theories,
97
+ total: theories.length,
98
+ query: queries.join(' OR '),
99
+ durationMs: Math.round(durationMs * 100) / 100,
100
+ };
101
+ }
102
+ //# sourceMappingURL=TheoryService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TheoryService.js","sourceRoot":"","sources":["../../src/theories/TheoryService.ts"],"names":[],"mappings":"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"}