paput-mcp 1.0.0 → 1.1.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 (142) hide show
  1. package/README.md +26 -31
  2. package/dist/handlers/create-idea/handler.js +64 -0
  3. package/dist/handlers/create-idea/handler.js.map +1 -0
  4. package/dist/handlers/create-idea/index.js +3 -0
  5. package/dist/handlers/create-idea/index.js.map +1 -0
  6. package/dist/handlers/create-idea/tool.js +23 -0
  7. package/dist/handlers/create-idea/tool.js.map +1 -0
  8. package/dist/handlers/create-memo/handler.js +72 -0
  9. package/dist/handlers/create-memo/handler.js.map +1 -0
  10. package/dist/handlers/create-memo/index.js +3 -0
  11. package/dist/handlers/create-memo/index.js.map +1 -0
  12. package/dist/handlers/create-memo/tool.js +35 -0
  13. package/dist/handlers/create-memo/tool.js.map +1 -0
  14. package/dist/handlers/create-memo-tool.js +35 -0
  15. package/dist/handlers/create-memo-tool.js.map +1 -0
  16. package/dist/handlers/create-memo.js +5 -3
  17. package/dist/handlers/create-memo.js.map +1 -1
  18. package/dist/handlers/create-note/handler.js +71 -0
  19. package/dist/handlers/create-note/handler.js.map +1 -0
  20. package/dist/handlers/create-note/index.js +3 -0
  21. package/dist/handlers/create-note/index.js.map +1 -0
  22. package/dist/handlers/create-note/tool.js +31 -0
  23. package/dist/handlers/create-note/tool.js.map +1 -0
  24. package/dist/handlers/create-skill-sheet/handler.js +72 -0
  25. package/dist/handlers/create-skill-sheet/handler.js.map +1 -0
  26. package/dist/handlers/create-skill-sheet/index.js +3 -0
  27. package/dist/handlers/create-skill-sheet/index.js.map +1 -0
  28. package/dist/handlers/create-skill-sheet/tool.js +120 -0
  29. package/dist/handlers/create-skill-sheet/tool.js.map +1 -0
  30. package/dist/handlers/delete-idea/handler.js +63 -0
  31. package/dist/handlers/delete-idea/handler.js.map +1 -0
  32. package/dist/handlers/delete-idea/index.js +3 -0
  33. package/dist/handlers/delete-idea/index.js.map +1 -0
  34. package/dist/handlers/delete-idea/tool.js +19 -0
  35. package/dist/handlers/delete-idea/tool.js.map +1 -0
  36. package/dist/handlers/delete-memo/handler.js +51 -0
  37. package/dist/handlers/delete-memo/handler.js.map +1 -0
  38. package/dist/handlers/delete-memo/index.js +3 -0
  39. package/dist/handlers/delete-memo/index.js.map +1 -0
  40. package/dist/handlers/delete-memo/tool.js +19 -0
  41. package/dist/handlers/delete-memo/tool.js.map +1 -0
  42. package/dist/handlers/delete-note/handler.js +63 -0
  43. package/dist/handlers/delete-note/handler.js.map +1 -0
  44. package/dist/handlers/delete-note/index.js +3 -0
  45. package/dist/handlers/delete-note/index.js.map +1 -0
  46. package/dist/handlers/delete-note/tool.js +19 -0
  47. package/dist/handlers/delete-note/tool.js.map +1 -0
  48. package/dist/handlers/get-categories/handler.js +39 -0
  49. package/dist/handlers/get-categories/handler.js.map +1 -0
  50. package/dist/handlers/get-categories/index.js +3 -0
  51. package/dist/handlers/get-categories/index.js.map +1 -0
  52. package/dist/handlers/get-categories/tool.js +13 -0
  53. package/dist/handlers/get-categories/tool.js.map +1 -0
  54. package/dist/handlers/get-memo/handler.js +57 -0
  55. package/dist/handlers/get-memo/handler.js.map +1 -0
  56. package/dist/handlers/get-memo/index.js +3 -0
  57. package/dist/handlers/get-memo/index.js.map +1 -0
  58. package/dist/handlers/get-memo/tool.js +19 -0
  59. package/dist/handlers/get-memo/tool.js.map +1 -0
  60. package/dist/handlers/get-note/handler.js +69 -0
  61. package/dist/handlers/get-note/handler.js.map +1 -0
  62. package/dist/handlers/get-note/index.js +3 -0
  63. package/dist/handlers/get-note/index.js.map +1 -0
  64. package/dist/handlers/get-note/tool.js +19 -0
  65. package/dist/handlers/get-note/tool.js.map +1 -0
  66. package/dist/handlers/get-skill-sheet/handler.js +80 -0
  67. package/dist/handlers/get-skill-sheet/handler.js.map +1 -0
  68. package/dist/handlers/get-skill-sheet/index.js +3 -0
  69. package/dist/handlers/get-skill-sheet/index.js.map +1 -0
  70. package/dist/handlers/get-skill-sheet/tool.js +13 -0
  71. package/dist/handlers/get-skill-sheet/tool.js.map +1 -0
  72. package/dist/handlers/index.js +15 -1
  73. package/dist/handlers/index.js.map +1 -1
  74. package/dist/handlers/list-ideas/handler.js +51 -0
  75. package/dist/handlers/list-ideas/handler.js.map +1 -0
  76. package/dist/handlers/list-ideas/index.js +3 -0
  77. package/dist/handlers/list-ideas/index.js.map +1 -0
  78. package/dist/handlers/list-ideas/tool.js +13 -0
  79. package/dist/handlers/list-ideas/tool.js.map +1 -0
  80. package/dist/handlers/search-memo/handler.js +80 -0
  81. package/dist/handlers/search-memo/handler.js.map +1 -0
  82. package/dist/handlers/search-memo/index.js +3 -0
  83. package/dist/handlers/search-memo/index.js.map +1 -0
  84. package/dist/handlers/search-memo/tool.js +41 -0
  85. package/dist/handlers/search-memo/tool.js.map +1 -0
  86. package/dist/handlers/search-memo-tool.js +41 -0
  87. package/dist/handlers/search-memo-tool.js.map +1 -0
  88. package/dist/handlers/search-memo.js +80 -0
  89. package/dist/handlers/search-memo.js.map +1 -0
  90. package/dist/handlers/search-notes/handler.js +73 -0
  91. package/dist/handlers/search-notes/handler.js.map +1 -0
  92. package/dist/handlers/search-notes/index.js +3 -0
  93. package/dist/handlers/search-notes/index.js.map +1 -0
  94. package/dist/handlers/search-notes/tool.js +33 -0
  95. package/dist/handlers/search-notes/tool.js.map +1 -0
  96. package/dist/handlers/update-memo/handler.js +83 -0
  97. package/dist/handlers/update-memo/handler.js.map +1 -0
  98. package/dist/handlers/update-memo/index.js +3 -0
  99. package/dist/handlers/update-memo/index.js.map +1 -0
  100. package/dist/handlers/update-memo/tool.js +49 -0
  101. package/dist/handlers/update-memo/tool.js.map +1 -0
  102. package/dist/handlers/update-note/handler.js +97 -0
  103. package/dist/handlers/update-note/handler.js.map +1 -0
  104. package/dist/handlers/update-note/index.js +3 -0
  105. package/dist/handlers/update-note/index.js.map +1 -0
  106. package/dist/handlers/update-note/tool.js +34 -0
  107. package/dist/handlers/update-note/tool.js.map +1 -0
  108. package/dist/handlers/update-skill-sheet/handler.js +115 -0
  109. package/dist/handlers/update-skill-sheet/handler.js.map +1 -0
  110. package/dist/handlers/update-skill-sheet/index.js +3 -0
  111. package/dist/handlers/update-skill-sheet/index.js.map +1 -0
  112. package/dist/handlers/update-skill-sheet/tool.js +119 -0
  113. package/dist/handlers/update-skill-sheet/tool.js.map +1 -0
  114. package/dist/server.js +1 -0
  115. package/dist/server.js.map +1 -1
  116. package/dist/services/api-service.js +453 -4
  117. package/dist/services/api-service.js.map +1 -1
  118. package/dist/tool.js +69 -45
  119. package/dist/tool.js.map +1 -1
  120. package/dist/types/categories.js +2 -0
  121. package/dist/types/categories.js.map +1 -0
  122. package/dist/types/constants.js +26 -0
  123. package/dist/types/constants.js.map +1 -0
  124. package/dist/types/delete-memo.js +2 -0
  125. package/dist/types/delete-memo.js.map +1 -0
  126. package/dist/types/get-memo.js +2 -0
  127. package/dist/types/get-memo.js.map +1 -0
  128. package/dist/types/idea.js +2 -0
  129. package/dist/types/idea.js.map +1 -0
  130. package/dist/types/index.js +10 -0
  131. package/dist/types/index.js.map +1 -1
  132. package/dist/types/note.js +2 -0
  133. package/dist/types/note.js.map +1 -0
  134. package/dist/types/search-memo.js +2 -0
  135. package/dist/types/search-memo.js.map +1 -0
  136. package/dist/types/skill-sheet.js +2 -0
  137. package/dist/types/skill-sheet.js.map +1 -0
  138. package/dist/types/tool.js +2 -0
  139. package/dist/types/tool.js.map +1 -0
  140. package/dist/types/update-memo.js +2 -0
  141. package/dist/types/update-memo.js.map +1 -0
  142. package/package.json +3 -2
@@ -0,0 +1,69 @@
1
+ export async function handleGetNote(args, apiService) {
2
+ if (!args) {
3
+ return {
4
+ content: [
5
+ {
6
+ type: 'text',
7
+ text: 'パラメータが不足しています',
8
+ },
9
+ ],
10
+ isError: true,
11
+ };
12
+ }
13
+ // パラメータの検証
14
+ if (typeof args.id !== 'number') {
15
+ return {
16
+ content: [
17
+ {
18
+ type: 'text',
19
+ text: 'IDは数値で指定してください',
20
+ },
21
+ ],
22
+ isError: true,
23
+ };
24
+ }
25
+ const params = {
26
+ id: args.id,
27
+ };
28
+ try {
29
+ const note = await apiService.getNote(params);
30
+ const visibility = note.is_public ? '公開' : '非公開';
31
+ const memoList = note.memos
32
+ .map((memo) => {
33
+ const categories = memo.categories.map((c) => c.name).join(', ') || 'なし';
34
+ const memoVisibility = memo.is_public ? '公開' : '非公開';
35
+ return ` - [${memo.id}] ${memo.title} (${memoVisibility})\n カテゴリ: ${categories}\n ${memo.body.substring(0, 100)}${memo.body.length > 100 ? '...' : ''}`;
36
+ })
37
+ .join('\n\n');
38
+ const content = `ノート詳細:
39
+ ID: ${note.id}
40
+ タイトル: ${note.title}
41
+ 公開設定: ${visibility}
42
+ 作成日時: ${note.created_at}
43
+ 更新日時: ${note.updated_at}
44
+
45
+ 含まれるメモ (${note.memos.length}件):
46
+ ${memoList || ' なし'}`;
47
+ return {
48
+ content: [
49
+ {
50
+ type: 'text',
51
+ text: content,
52
+ },
53
+ ],
54
+ };
55
+ }
56
+ catch (error) {
57
+ const errorMessage = error instanceof Error ? error.message : '不明なエラー';
58
+ return {
59
+ content: [
60
+ {
61
+ type: 'text',
62
+ text: `ノートの取得中にエラーが発生しました: ${errorMessage}`,
63
+ },
64
+ ],
65
+ isError: true,
66
+ };
67
+ }
68
+ }
69
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/get-note/handler.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAyC,EACzC,UAAsB;IAEtB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,eAAe;iBACtB;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,WAAW;IACX,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,gBAAgB;iBACvB;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAkB;QAC5B,EAAE,EAAE,IAAI,CAAC,EAAE;KACZ,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK;aACxB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,UAAU,GACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YACxD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YACrD,OAAO,QAAQ,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,KAAK,cAAc,gBAAgB,UAAU,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACjK,CAAC,CAAC;aACD,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhB,MAAM,OAAO,GAAG;MACd,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,KAAK;QACV,UAAU;QACV,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,UAAU;;UAEb,IAAI,CAAC,KAAK,CAAC,MAAM;EACzB,QAAQ,IAAI,MAAM,EAAE,CAAC;QAEnB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO;iBACd;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEpD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,uBAAuB,YAAY,EAAE;iBAC5C;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { getNoteTool } from './tool.js';
2
+ export { handleGetNote } from './handler.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/get-note/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { handleGetNote } from './handler.js';
2
+ export const getNoteTool = {
3
+ definition: {
4
+ name: 'paput_get_note',
5
+ description: 'PaPut のノート詳細を取得します',
6
+ inputSchema: {
7
+ type: 'object',
8
+ properties: {
9
+ id: {
10
+ type: 'number',
11
+ description: 'ノートのID',
12
+ },
13
+ },
14
+ required: ['id'],
15
+ },
16
+ },
17
+ handler: handleGetNote,
18
+ };
19
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/get-note/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,UAAU,EAAE;QACV,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,QAAQ;iBACtB;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF;IACD,OAAO,EAAE,aAAa;CACvB,CAAC"}
@@ -0,0 +1,80 @@
1
+ import { GENDER, PROJECT_TYPE, CATEGORY_TYPE } from '../../types/index.js';
2
+ export async function handleGetSkillSheet(_args, apiService) {
3
+ try {
4
+ const skillSheet = await apiService.getSkillSheet();
5
+ // スキル情報のフォーマット
6
+ const skillsText = skillSheet.skills.length > 0
7
+ ? skillSheet.skills.map(skill => {
8
+ const categoryType = CATEGORY_TYPE[skill.category_type] || `タイプ${skill.category_type}`;
9
+ return ` - ${skill.category.name} (${categoryType}): ${skill.level} (${skill.years}年)`;
10
+ }).join('\n')
11
+ : ' なし';
12
+ // プロジェクト情報のフォーマット
13
+ const projectsText = skillSheet.projects.length > 0
14
+ ? skillSheet.projects.map(project => {
15
+ const period = project.end_period
16
+ ? `${project.start_period} - ${project.end_period}`
17
+ : `${project.start_period} - 現在`;
18
+ const projectType = PROJECT_TYPE[project.type] || `タイプ${project.type}`;
19
+ const techNames = project.technologies.map(t => t.name).join(', ');
20
+ const memoNames = project.memos.map(m => m.title).join(', ');
21
+ return ` 【${project.title}】(ID: ${project.id}, ${projectType})
22
+ 期間: ${period}
23
+ 役割: ${project.role}
24
+ 規模: ${project.scale}
25
+ 説明: ${project.description}
26
+ 技術: ${techNames || 'なし'}
27
+ メモ: ${memoNames || 'なし'}`;
28
+ }).join('\n\n')
29
+ : ' なし';
30
+ // 性別の表示
31
+ const genderText = GENDER[skillSheet.gender] || `その他`;
32
+ const content = `スキルシート:
33
+ ID: ${skillSheet.id}
34
+ 最寄り駅: ${skillSheet.nearest_station || '未設定'}
35
+ 性別: ${genderText}
36
+ 生年月日: ${skillSheet.birth_date}
37
+ 経験年数: ${skillSheet.years_of_experience}年
38
+
39
+ 自己PR:
40
+ ${skillSheet.self_pr || '未設定'}
41
+
42
+ スキル:
43
+ ${skillsText}
44
+
45
+ プロジェクト:
46
+ ${projectsText}`;
47
+ return {
48
+ content: [
49
+ {
50
+ type: 'text',
51
+ text: content,
52
+ },
53
+ ],
54
+ };
55
+ }
56
+ catch (error) {
57
+ const errorMessage = error instanceof Error ? error.message : '不明なエラー';
58
+ // スキルシートが存在しない場合のメッセージ
59
+ if (errorMessage.includes('404') || errorMessage.includes('not found')) {
60
+ return {
61
+ content: [
62
+ {
63
+ type: 'text',
64
+ text: 'スキルシートがまだ作成されていません。',
65
+ },
66
+ ],
67
+ };
68
+ }
69
+ return {
70
+ content: [
71
+ {
72
+ type: 'text',
73
+ text: `スキルシートの取得中にエラーが発生しました: ${errorMessage}`,
74
+ },
75
+ ],
76
+ isError: true,
77
+ };
78
+ }
79
+ }
80
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/get-skill-sheet/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAA0C,EAC1C,UAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;QAEpD,eAAe;QACf,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAC7C,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC5B,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,aAA2C,CAAC,IAAI,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;gBACrH,OAAO,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,MAAM,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC;YAC1F,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,MAAM,CAAC;QAEX,kBAAkB;QAClB,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACjD,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAChC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU;oBAC/B,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,MAAM,OAAO,CAAC,UAAU,EAAE;oBACnD,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,OAAO,CAAC;gBACnC,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,IAAiC,CAAC,IAAI,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpG,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE7D,OAAO,MAAM,OAAO,CAAC,KAAK,SAAS,OAAO,CAAC,EAAE,KAAK,WAAW;UAC7D,MAAM;UACN,OAAO,CAAC,IAAI;UACZ,OAAO,CAAC,KAAK;UACb,OAAO,CAAC,WAAW;UACnB,SAAS,IAAI,IAAI;UACjB,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YACjB,CAAC,CAAC,MAAM,CAAC;QAEX,QAAQ;QACR,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAA6B,CAAC,IAAI,KAAK,CAAC;QAE7E,MAAM,OAAO,GAAG;MACd,UAAU,CAAC,EAAE;QACX,UAAU,CAAC,eAAe,IAAI,KAAK;MACrC,UAAU;QACR,UAAU,CAAC,UAAU;QACrB,UAAU,CAAC,mBAAmB;;;EAGpC,UAAU,CAAC,OAAO,IAAI,KAAK;;;EAG3B,UAAU;;;EAGV,YAAY,EAAE,CAAC;QAEb,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO;iBACd;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEpD,uBAAuB;QACvB,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,qBAAqB;qBAC5B;iBACF;aACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,0BAA0B,YAAY,EAAE;iBAC/C;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { getSkillSheetTool } from './tool.js';
2
+ export { handleGetSkillSheet } from './handler.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/get-skill-sheet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { handleGetSkillSheet } from './handler.js';
2
+ export const getSkillSheetTool = {
3
+ definition: {
4
+ name: 'paput_get_skill_sheet',
5
+ description: 'PaPut のスキルシートを取得します',
6
+ inputSchema: {
7
+ type: 'object',
8
+ properties: {},
9
+ },
10
+ },
11
+ handler: handleGetSkillSheet,
12
+ };
13
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/get-skill-sheet/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC5C,UAAU,EAAE;QACV,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;IACD,OAAO,EAAE,mBAAmB;CAC7B,CAAC"}
@@ -1,2 +1,16 @@
1
- export * from './create-memo.js';
1
+ export * from './create-memo/index.js';
2
+ export * from './search-memo/index.js';
3
+ export * from './get-memo/index.js';
4
+ export * from './update-memo/index.js';
5
+ export * from './get-categories/index.js';
6
+ export * from './create-note/index.js';
7
+ export * from './search-notes/index.js';
8
+ export * from './get-note/index.js';
9
+ export * from './update-note/index.js';
10
+ export * from './list-ideas/index.js';
11
+ export * from './create-idea/index.js';
12
+ export * from './delete-idea/index.js';
13
+ export * from './get-skill-sheet/index.js';
14
+ export * from './create-skill-sheet/index.js';
15
+ export * from './update-skill-sheet/index.js';
2
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,51 @@
1
+ export async function handleListIdeas(args, apiService) {
2
+ try {
3
+ const result = await apiService.listIdeas();
4
+ if (!result.success) {
5
+ return {
6
+ content: [
7
+ {
8
+ type: 'text',
9
+ text: `アイデアの取得に失敗しました: ${result.error || '不明なエラー'}`,
10
+ },
11
+ ],
12
+ isError: true,
13
+ };
14
+ }
15
+ if (!result.ideas || result.ideas.length === 0) {
16
+ return {
17
+ content: [
18
+ {
19
+ type: 'text',
20
+ text: 'アイデアが登録されていません。',
21
+ },
22
+ ],
23
+ };
24
+ }
25
+ const ideasList = result.ideas
26
+ .sort((a, b) => a.sort - b.sort)
27
+ .map((idea) => `- [${idea.id}] ${idea.title} (順序: ${idea.sort})`)
28
+ .join('\n');
29
+ return {
30
+ content: [
31
+ {
32
+ type: 'text',
33
+ text: `アイデア一覧 (${result.ideas.length}件):\n${ideasList}`,
34
+ },
35
+ ],
36
+ };
37
+ }
38
+ catch (error) {
39
+ const errorMessage = error instanceof Error ? error.message : '不明なエラー';
40
+ return {
41
+ content: [
42
+ {
43
+ type: 'text',
44
+ text: `アイデアの取得中にエラーが発生しました: ${errorMessage}`,
45
+ },
46
+ ],
47
+ isError: true,
48
+ };
49
+ }
50
+ }
51
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/list-ideas/handler.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAyC,EACzC,UAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,CAAC;QAE5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,mBAAmB,MAAM,CAAC,KAAK,IAAI,QAAQ,EAAE;qBACpD;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,iBAAiB;qBACxB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK;aAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;aAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,QAAQ,SAAS,EAAE;iBACxD;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEpD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,wBAAwB,YAAY,EAAE;iBAC7C;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { listIdeasTool } from './tool.js';
2
+ export { handleListIdeas } from './handler.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/list-ideas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { handleListIdeas } from './handler.js';
2
+ export const listIdeasTool = {
3
+ definition: {
4
+ name: 'paput_list_ideas',
5
+ description: 'PaPut のアイデア一覧を取得します',
6
+ inputSchema: {
7
+ type: 'object',
8
+ properties: {},
9
+ },
10
+ },
11
+ handler: handleListIdeas,
12
+ };
13
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/list-ideas/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,UAAU,EAAE;QACV,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;IACD,OAAO,EAAE,eAAe;CACzB,CAAC"}
@@ -0,0 +1,80 @@
1
+ export async function handleSearchMemo(args, apiService) {
2
+ const params = {};
3
+ if (args) {
4
+ if (typeof args.word === 'string') {
5
+ params.word = args.word;
6
+ }
7
+ if (typeof args.category_id === 'number') {
8
+ params.category_id = args.category_id;
9
+ }
10
+ if (Array.isArray(args.ids)) {
11
+ params.ids = args.ids.filter((id) => typeof id === 'number');
12
+ }
13
+ if (typeof args.is_public === 'boolean') {
14
+ params.is_public = args.is_public;
15
+ }
16
+ if (typeof args.page === 'number') {
17
+ params.page = args.page;
18
+ }
19
+ if (typeof args.limit === 'number') {
20
+ params.limit = args.limit;
21
+ }
22
+ }
23
+ try {
24
+ const result = await apiService.searchMemos(params);
25
+ if (!result.success) {
26
+ return {
27
+ content: [
28
+ {
29
+ type: 'text',
30
+ text: `メモの検索に失敗しました: ${result.error || '不明なエラー'}`,
31
+ },
32
+ ],
33
+ isError: true,
34
+ };
35
+ }
36
+ if (!result.memos || result.memos.length === 0) {
37
+ return {
38
+ content: [
39
+ {
40
+ type: 'text',
41
+ text: '該当するメモが見つかりませんでした。',
42
+ },
43
+ ],
44
+ };
45
+ }
46
+ const memoList = result.memos
47
+ .map((memo) => {
48
+ const categories = memo.categories.length > 0
49
+ ? `カテゴリ: ${memo.categories.map((c) => c.name).join(', ')}`
50
+ : '';
51
+ const visibility = memo.is_public ? '公開' : '非公開';
52
+ return `【${memo.title}】(ID: ${memo.id}, ${visibility})
53
+ ${categories}
54
+ ${memo.body}
55
+ (作成日: ${memo.created_at})`;
56
+ })
57
+ .join('\n\n---\n\n');
58
+ return {
59
+ content: [
60
+ {
61
+ type: 'text',
62
+ text: `${result.total}件中${result.memos.length}件のメモが見つかりました:\n\n${memoList}`,
63
+ },
64
+ ],
65
+ };
66
+ }
67
+ catch (error) {
68
+ const errorMessage = error instanceof Error ? error.message : '不明なエラー';
69
+ return {
70
+ content: [
71
+ {
72
+ type: 'text',
73
+ text: `メモの検索中にエラーが発生しました: ${errorMessage}`,
74
+ },
75
+ ],
76
+ isError: true,
77
+ };
78
+ }
79
+ }
80
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/search-memo/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './handler.js';
2
+ export * from './tool.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/search-memo/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { handleSearchMemo } from './handler.js';
2
+ export const searchMemoTool = {
3
+ definition: {
4
+ name: 'paput_search_memo',
5
+ description: 'PaPut のメモを検索します',
6
+ inputSchema: {
7
+ type: 'object',
8
+ properties: {
9
+ word: {
10
+ type: 'string',
11
+ description: '検索キーワード',
12
+ },
13
+ category_id: {
14
+ type: 'number',
15
+ description: 'カテゴリーID',
16
+ },
17
+ ids: {
18
+ type: 'array',
19
+ items: {
20
+ type: 'number',
21
+ },
22
+ description: 'メモIDの配列',
23
+ },
24
+ is_public: {
25
+ type: 'boolean',
26
+ description: '公開/非公開フィルタ',
27
+ },
28
+ page: {
29
+ type: 'number',
30
+ description: 'ページ番号',
31
+ },
32
+ limit: {
33
+ type: 'number',
34
+ description: '取得件数',
35
+ },
36
+ },
37
+ },
38
+ },
39
+ handler: handleSearchMemo,
40
+ };
41
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/search-memo/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,UAAU,EAAE;QACV,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,SAAS;iBACvB;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,SAAS;iBACvB;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;qBACf;oBACD,WAAW,EAAE,SAAS;iBACvB;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,YAAY;iBAC1B;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,OAAO;iBACrB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,MAAM;iBACpB;aACF;SACF;KACF;IACD,OAAO,EAAE,gBAAgB;CAC1B,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { handleSearchMemo } from './search-memo.js';
2
+ export const searchMemoTool = {
3
+ definition: {
4
+ name: 'paput_search_memo',
5
+ description: 'PaPut のメモを検索します',
6
+ inputSchema: {
7
+ type: 'object',
8
+ properties: {
9
+ word: {
10
+ type: 'string',
11
+ description: '検索キーワード',
12
+ },
13
+ category_id: {
14
+ type: 'number',
15
+ description: 'カテゴリーID',
16
+ },
17
+ ids: {
18
+ type: 'array',
19
+ items: {
20
+ type: 'number',
21
+ },
22
+ description: 'メモIDの配列',
23
+ },
24
+ is_public: {
25
+ type: 'boolean',
26
+ description: '公開/非公開フィルタ',
27
+ },
28
+ page: {
29
+ type: 'number',
30
+ description: 'ページ番号',
31
+ },
32
+ limit: {
33
+ type: 'number',
34
+ description: '取得件数',
35
+ },
36
+ },
37
+ },
38
+ },
39
+ handler: handleSearchMemo,
40
+ };
41
+ //# sourceMappingURL=search-memo-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-memo-tool.js","sourceRoot":"","sources":["../../src/handlers/search-memo-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,UAAU,EAAE;QACV,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,SAAS;iBACvB;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,SAAS;iBACvB;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;qBACf;oBACD,WAAW,EAAE,SAAS;iBACvB;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,YAAY;iBAC1B;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,OAAO;iBACrB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,MAAM;iBACpB;aACF;SACF;KACF;IACD,OAAO,EAAE,gBAAgB;CAC1B,CAAC"}
@@ -0,0 +1,80 @@
1
+ export async function handleSearchMemo(args, apiService) {
2
+ const params = {};
3
+ if (args) {
4
+ if (typeof args.word === 'string') {
5
+ params.word = args.word;
6
+ }
7
+ if (typeof args.category_id === 'number') {
8
+ params.category_id = args.category_id;
9
+ }
10
+ if (Array.isArray(args.ids)) {
11
+ params.ids = args.ids.filter((id) => typeof id === 'number');
12
+ }
13
+ if (typeof args.is_public === 'boolean') {
14
+ params.is_public = args.is_public;
15
+ }
16
+ if (typeof args.page === 'number') {
17
+ params.page = args.page;
18
+ }
19
+ if (typeof args.limit === 'number') {
20
+ params.limit = args.limit;
21
+ }
22
+ }
23
+ try {
24
+ const result = await apiService.searchMemos(params);
25
+ if (!result.success) {
26
+ return {
27
+ content: [
28
+ {
29
+ type: 'text',
30
+ text: `メモの検索に失敗しました: ${result.error || '不明なエラー'}`,
31
+ },
32
+ ],
33
+ isError: true,
34
+ };
35
+ }
36
+ if (!result.memos || result.memos.length === 0) {
37
+ return {
38
+ content: [
39
+ {
40
+ type: 'text',
41
+ text: '該当するメモが見つかりませんでした。',
42
+ },
43
+ ],
44
+ };
45
+ }
46
+ const memoList = result.memos
47
+ .map((memo) => {
48
+ const categories = memo.categories.length > 0
49
+ ? `カテゴリ: ${memo.categories.map((c) => c.name).join(', ')}`
50
+ : '';
51
+ const visibility = memo.is_public ? '公開' : '非公開';
52
+ return `【${memo.title}】(${visibility})
53
+ ${categories}
54
+ ${memo.body}
55
+ (作成日: ${memo.created_at})`;
56
+ })
57
+ .join('\n\n---\n\n');
58
+ return {
59
+ content: [
60
+ {
61
+ type: 'text',
62
+ text: `${result.total}件中${result.memos.length}件のメモが見つかりました:\n\n${memoList}`,
63
+ },
64
+ ],
65
+ };
66
+ }
67
+ catch (error) {
68
+ const errorMessage = error instanceof Error ? error.message : '不明なエラー';
69
+ return {
70
+ content: [
71
+ {
72
+ type: 'text',
73
+ text: `メモの検索中にエラーが発生しました: ${errorMessage}`,
74
+ },
75
+ ],
76
+ isError: true,
77
+ };
78
+ }
79
+ }
80
+ //# sourceMappingURL=search-memo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-memo.js","sourceRoot":"","sources":["../../src/handlers/search-memo.ts"],"names":[],"mappings":"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"}