paput-mcp 1.0.1 → 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 (141) hide show
  1. package/dist/handlers/create-idea/handler.js +64 -0
  2. package/dist/handlers/create-idea/handler.js.map +1 -0
  3. package/dist/handlers/create-idea/index.js +3 -0
  4. package/dist/handlers/create-idea/index.js.map +1 -0
  5. package/dist/handlers/create-idea/tool.js +23 -0
  6. package/dist/handlers/create-idea/tool.js.map +1 -0
  7. package/dist/handlers/create-memo/handler.js +72 -0
  8. package/dist/handlers/create-memo/handler.js.map +1 -0
  9. package/dist/handlers/create-memo/index.js +3 -0
  10. package/dist/handlers/create-memo/index.js.map +1 -0
  11. package/dist/handlers/create-memo/tool.js +35 -0
  12. package/dist/handlers/create-memo/tool.js.map +1 -0
  13. package/dist/handlers/create-memo-tool.js +35 -0
  14. package/dist/handlers/create-memo-tool.js.map +1 -0
  15. package/dist/handlers/create-memo.js +5 -3
  16. package/dist/handlers/create-memo.js.map +1 -1
  17. package/dist/handlers/create-note/handler.js +71 -0
  18. package/dist/handlers/create-note/handler.js.map +1 -0
  19. package/dist/handlers/create-note/index.js +3 -0
  20. package/dist/handlers/create-note/index.js.map +1 -0
  21. package/dist/handlers/create-note/tool.js +31 -0
  22. package/dist/handlers/create-note/tool.js.map +1 -0
  23. package/dist/handlers/create-skill-sheet/handler.js +72 -0
  24. package/dist/handlers/create-skill-sheet/handler.js.map +1 -0
  25. package/dist/handlers/create-skill-sheet/index.js +3 -0
  26. package/dist/handlers/create-skill-sheet/index.js.map +1 -0
  27. package/dist/handlers/create-skill-sheet/tool.js +120 -0
  28. package/dist/handlers/create-skill-sheet/tool.js.map +1 -0
  29. package/dist/handlers/delete-idea/handler.js +63 -0
  30. package/dist/handlers/delete-idea/handler.js.map +1 -0
  31. package/dist/handlers/delete-idea/index.js +3 -0
  32. package/dist/handlers/delete-idea/index.js.map +1 -0
  33. package/dist/handlers/delete-idea/tool.js +19 -0
  34. package/dist/handlers/delete-idea/tool.js.map +1 -0
  35. package/dist/handlers/delete-memo/handler.js +51 -0
  36. package/dist/handlers/delete-memo/handler.js.map +1 -0
  37. package/dist/handlers/delete-memo/index.js +3 -0
  38. package/dist/handlers/delete-memo/index.js.map +1 -0
  39. package/dist/handlers/delete-memo/tool.js +19 -0
  40. package/dist/handlers/delete-memo/tool.js.map +1 -0
  41. package/dist/handlers/delete-note/handler.js +63 -0
  42. package/dist/handlers/delete-note/handler.js.map +1 -0
  43. package/dist/handlers/delete-note/index.js +3 -0
  44. package/dist/handlers/delete-note/index.js.map +1 -0
  45. package/dist/handlers/delete-note/tool.js +19 -0
  46. package/dist/handlers/delete-note/tool.js.map +1 -0
  47. package/dist/handlers/get-categories/handler.js +39 -0
  48. package/dist/handlers/get-categories/handler.js.map +1 -0
  49. package/dist/handlers/get-categories/index.js +3 -0
  50. package/dist/handlers/get-categories/index.js.map +1 -0
  51. package/dist/handlers/get-categories/tool.js +13 -0
  52. package/dist/handlers/get-categories/tool.js.map +1 -0
  53. package/dist/handlers/get-memo/handler.js +57 -0
  54. package/dist/handlers/get-memo/handler.js.map +1 -0
  55. package/dist/handlers/get-memo/index.js +3 -0
  56. package/dist/handlers/get-memo/index.js.map +1 -0
  57. package/dist/handlers/get-memo/tool.js +19 -0
  58. package/dist/handlers/get-memo/tool.js.map +1 -0
  59. package/dist/handlers/get-note/handler.js +69 -0
  60. package/dist/handlers/get-note/handler.js.map +1 -0
  61. package/dist/handlers/get-note/index.js +3 -0
  62. package/dist/handlers/get-note/index.js.map +1 -0
  63. package/dist/handlers/get-note/tool.js +19 -0
  64. package/dist/handlers/get-note/tool.js.map +1 -0
  65. package/dist/handlers/get-skill-sheet/handler.js +80 -0
  66. package/dist/handlers/get-skill-sheet/handler.js.map +1 -0
  67. package/dist/handlers/get-skill-sheet/index.js +3 -0
  68. package/dist/handlers/get-skill-sheet/index.js.map +1 -0
  69. package/dist/handlers/get-skill-sheet/tool.js +13 -0
  70. package/dist/handlers/get-skill-sheet/tool.js.map +1 -0
  71. package/dist/handlers/index.js +15 -1
  72. package/dist/handlers/index.js.map +1 -1
  73. package/dist/handlers/list-ideas/handler.js +51 -0
  74. package/dist/handlers/list-ideas/handler.js.map +1 -0
  75. package/dist/handlers/list-ideas/index.js +3 -0
  76. package/dist/handlers/list-ideas/index.js.map +1 -0
  77. package/dist/handlers/list-ideas/tool.js +13 -0
  78. package/dist/handlers/list-ideas/tool.js.map +1 -0
  79. package/dist/handlers/search-memo/handler.js +80 -0
  80. package/dist/handlers/search-memo/handler.js.map +1 -0
  81. package/dist/handlers/search-memo/index.js +3 -0
  82. package/dist/handlers/search-memo/index.js.map +1 -0
  83. package/dist/handlers/search-memo/tool.js +41 -0
  84. package/dist/handlers/search-memo/tool.js.map +1 -0
  85. package/dist/handlers/search-memo-tool.js +41 -0
  86. package/dist/handlers/search-memo-tool.js.map +1 -0
  87. package/dist/handlers/search-memo.js +80 -0
  88. package/dist/handlers/search-memo.js.map +1 -0
  89. package/dist/handlers/search-notes/handler.js +73 -0
  90. package/dist/handlers/search-notes/handler.js.map +1 -0
  91. package/dist/handlers/search-notes/index.js +3 -0
  92. package/dist/handlers/search-notes/index.js.map +1 -0
  93. package/dist/handlers/search-notes/tool.js +33 -0
  94. package/dist/handlers/search-notes/tool.js.map +1 -0
  95. package/dist/handlers/update-memo/handler.js +83 -0
  96. package/dist/handlers/update-memo/handler.js.map +1 -0
  97. package/dist/handlers/update-memo/index.js +3 -0
  98. package/dist/handlers/update-memo/index.js.map +1 -0
  99. package/dist/handlers/update-memo/tool.js +49 -0
  100. package/dist/handlers/update-memo/tool.js.map +1 -0
  101. package/dist/handlers/update-note/handler.js +97 -0
  102. package/dist/handlers/update-note/handler.js.map +1 -0
  103. package/dist/handlers/update-note/index.js +3 -0
  104. package/dist/handlers/update-note/index.js.map +1 -0
  105. package/dist/handlers/update-note/tool.js +34 -0
  106. package/dist/handlers/update-note/tool.js.map +1 -0
  107. package/dist/handlers/update-skill-sheet/handler.js +115 -0
  108. package/dist/handlers/update-skill-sheet/handler.js.map +1 -0
  109. package/dist/handlers/update-skill-sheet/index.js +3 -0
  110. package/dist/handlers/update-skill-sheet/index.js.map +1 -0
  111. package/dist/handlers/update-skill-sheet/tool.js +119 -0
  112. package/dist/handlers/update-skill-sheet/tool.js.map +1 -0
  113. package/dist/server.js +1 -0
  114. package/dist/server.js.map +1 -1
  115. package/dist/services/api-service.js +453 -4
  116. package/dist/services/api-service.js.map +1 -1
  117. package/dist/tool.js +69 -45
  118. package/dist/tool.js.map +1 -1
  119. package/dist/types/categories.js +2 -0
  120. package/dist/types/categories.js.map +1 -0
  121. package/dist/types/constants.js +26 -0
  122. package/dist/types/constants.js.map +1 -0
  123. package/dist/types/delete-memo.js +2 -0
  124. package/dist/types/delete-memo.js.map +1 -0
  125. package/dist/types/get-memo.js +2 -0
  126. package/dist/types/get-memo.js.map +1 -0
  127. package/dist/types/idea.js +2 -0
  128. package/dist/types/idea.js.map +1 -0
  129. package/dist/types/index.js +10 -0
  130. package/dist/types/index.js.map +1 -1
  131. package/dist/types/note.js +2 -0
  132. package/dist/types/note.js.map +1 -0
  133. package/dist/types/search-memo.js +2 -0
  134. package/dist/types/search-memo.js.map +1 -0
  135. package/dist/types/skill-sheet.js +2 -0
  136. package/dist/types/skill-sheet.js.map +1 -0
  137. package/dist/types/tool.js +2 -0
  138. package/dist/types/tool.js.map +1 -0
  139. package/dist/types/update-memo.js +2 -0
  140. package/dist/types/update-memo.js.map +1 -0
  141. package/package.json +3 -2
@@ -0,0 +1,63 @@
1
+ export async function handleDeleteIdea(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 result = await apiService.deleteIdea(params);
30
+ if (!result.success) {
31
+ return {
32
+ content: [
33
+ {
34
+ type: 'text',
35
+ text: `アイデアの削除に失敗しました: ${result.error || '不明なエラー'}`,
36
+ },
37
+ ],
38
+ isError: true,
39
+ };
40
+ }
41
+ return {
42
+ content: [
43
+ {
44
+ type: 'text',
45
+ text: `アイデア (ID: ${params.id}) が正常に削除されました。`,
46
+ },
47
+ ],
48
+ };
49
+ }
50
+ catch (error) {
51
+ const errorMessage = error instanceof Error ? error.message : '不明なエラー';
52
+ return {
53
+ content: [
54
+ {
55
+ type: 'text',
56
+ text: `アイデアの削除中にエラーが発生しました: ${errorMessage}`,
57
+ },
58
+ ],
59
+ isError: true,
60
+ };
61
+ }
62
+ }
63
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/delete-idea/handler.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,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,GAAqB;QAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;KACZ,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnD,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,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,aAAa,MAAM,CAAC,EAAE,gBAAgB;iBAC7C;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 { deleteIdeaTool } from './tool.js';
2
+ export { handleDeleteIdea } from './handler.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/delete-idea/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { handleDeleteIdea } from './handler.js';
2
+ export const deleteIdeaTool = {
3
+ definition: {
4
+ name: 'paput_delete_idea',
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: handleDeleteIdea,
18
+ };
19
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/delete-idea/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,mBAAmB;QAChC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,SAAS;iBACvB;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF;IACD,OAAO,EAAE,gBAAgB;CAC1B,CAAC"}
@@ -0,0 +1,51 @@
1
+ export async function handleDeleteMemo(args, apiService) {
2
+ if (!args || typeof args.id !== 'number') {
3
+ return {
4
+ content: [
5
+ {
6
+ type: 'text',
7
+ text: 'メモIDが指定されていません。',
8
+ },
9
+ ],
10
+ isError: true,
11
+ };
12
+ }
13
+ const params = {
14
+ id: args.id,
15
+ };
16
+ try {
17
+ const result = await apiService.deleteMemo(params);
18
+ if (!result.success) {
19
+ return {
20
+ content: [
21
+ {
22
+ type: 'text',
23
+ text: `メモの削除に失敗しました: ${result.error || '不明なエラー'}`,
24
+ },
25
+ ],
26
+ isError: true,
27
+ };
28
+ }
29
+ return {
30
+ content: [
31
+ {
32
+ type: 'text',
33
+ text: 'メモを削除しました。',
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/delete-memo/handler.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAyC,EACzC,UAAsB;IAEtB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,iBAAiB;iBACxB;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAqB;QAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;KACZ,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,iBAAiB,MAAM,CAAC,KAAK,IAAI,QAAQ,EAAE;qBAClD;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY;iBACnB;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,sBAAsB,YAAY,EAAE;iBAC3C;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -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/delete-memo/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { handleDeleteMemo } from './handler.js';
2
+ export const deleteMemoTool = {
3
+ definition: {
4
+ name: 'paput_delete_memo',
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: handleDeleteMemo,
18
+ };
19
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/delete-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,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,MAAM;iBACpB;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF;IACD,OAAO,EAAE,gBAAgB;CAC1B,CAAC"}
@@ -0,0 +1,63 @@
1
+ export async function handleDeleteNote(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 result = await apiService.deleteNote(params);
30
+ if (!result.success) {
31
+ return {
32
+ content: [
33
+ {
34
+ type: 'text',
35
+ text: `ノートの削除に失敗しました: ${result.error || '不明なエラー'}`,
36
+ },
37
+ ],
38
+ isError: true,
39
+ };
40
+ }
41
+ return {
42
+ content: [
43
+ {
44
+ type: 'text',
45
+ text: `ノート (ID: ${params.id}) が正常に削除されました。`,
46
+ },
47
+ ],
48
+ };
49
+ }
50
+ catch (error) {
51
+ const errorMessage = error instanceof Error ? error.message : '不明なエラー';
52
+ return {
53
+ content: [
54
+ {
55
+ type: 'text',
56
+ text: `ノートの削除中にエラーが発生しました: ${errorMessage}`,
57
+ },
58
+ ],
59
+ isError: true,
60
+ };
61
+ }
62
+ }
63
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/delete-note/handler.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,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,GAAqB;QAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;KACZ,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,kBAAkB,MAAM,CAAC,KAAK,IAAI,QAAQ,EAAE;qBACnD;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY,MAAM,CAAC,EAAE,gBAAgB;iBAC5C;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 { deleteNoteTool } from './tool.js';
2
+ export { handleDeleteNote } from './handler.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/delete-note/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { handleDeleteNote } from './handler.js';
2
+ export const deleteNoteTool = {
3
+ definition: {
4
+ name: 'paput_delete_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: handleDeleteNote,
18
+ };
19
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/delete-note/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,kBAAkB;QAC/B,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,gBAAgB;CAC1B,CAAC"}
@@ -0,0 +1,39 @@
1
+ export async function handleGetCategories(args, apiService) {
2
+ try {
3
+ const categories = await apiService.getCategories();
4
+ if (categories.length === 0) {
5
+ return {
6
+ content: [
7
+ {
8
+ type: 'text',
9
+ text: 'カテゴリーが登録されていません。',
10
+ },
11
+ ],
12
+ };
13
+ }
14
+ const categoryList = categories
15
+ .map((category) => `• ${category.name} (ID: ${category.id})`)
16
+ .join('\n');
17
+ return {
18
+ content: [
19
+ {
20
+ type: 'text',
21
+ text: `利用可能なカテゴリー:\n\n${categoryList}`,
22
+ },
23
+ ],
24
+ };
25
+ }
26
+ catch (error) {
27
+ const errorMessage = error instanceof Error ? error.message : '不明なエラー';
28
+ return {
29
+ content: [
30
+ {
31
+ type: 'text',
32
+ text: `カテゴリーの取得中にエラーが発生しました: ${errorMessage}`,
33
+ },
34
+ ],
35
+ isError: true,
36
+ };
37
+ }
38
+ }
39
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/get-categories/handler.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAyC,EACzC,UAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;QAEpD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,kBAAkB;qBACzB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,UAAU;aAC5B,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,IAAI,SAAS,QAAQ,CAAC,EAAE,GAAG,CAAC;aAC5D,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,kBAAkB,YAAY,EAAE;iBACvC;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,yBAAyB,YAAY,EAAE;iBAC9C;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -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/get-categories/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { handleGetCategories } from './handler.js';
2
+ export const getCategoriesTool = {
3
+ definition: {
4
+ name: 'paput_get_categories',
5
+ description: 'PaPut のカテゴリー一覧を取得します',
6
+ inputSchema: {
7
+ type: 'object',
8
+ properties: {},
9
+ },
10
+ },
11
+ handler: handleGetCategories,
12
+ };
13
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/get-categories/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC5C,UAAU,EAAE;QACV,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;IACD,OAAO,EAAE,mBAAmB;CAC7B,CAAC"}
@@ -0,0 +1,57 @@
1
+ export async function handleGetMemo(args, apiService) {
2
+ if (!args || typeof args.id !== 'number') {
3
+ return {
4
+ content: [
5
+ {
6
+ type: 'text',
7
+ text: 'メモIDが指定されていません。',
8
+ },
9
+ ],
10
+ isError: true,
11
+ };
12
+ }
13
+ const params = {
14
+ id: args.id,
15
+ };
16
+ try {
17
+ const result = await apiService.getMemo(params);
18
+ const categories = result.categories.length > 0
19
+ ? `カテゴリ: ${result.categories.map((c) => c.name).join(', ')}`
20
+ : '';
21
+ const visibility = result.is_public ? '公開' : '非公開';
22
+ const likeInfo = `いいね: ${result.like_count}${result.has_liked ? ' (いいね済み)' : ''}`;
23
+ const bookmarkInfo = `ブックマーク: ${result.bookmark_count}${result.has_bookmarked ? ' (ブックマーク済み)' : ''}`;
24
+ const memoDetail = `【${result.title}】(${visibility})
25
+ ${categories}
26
+
27
+ ${result.body}
28
+
29
+ ${likeInfo}
30
+ ${bookmarkInfo}
31
+
32
+ 作成日: ${result.created_at}
33
+ 更新日: ${result.updated_at}
34
+ 作成者: ${result.user.name} (@${result.user.user_id})`;
35
+ return {
36
+ content: [
37
+ {
38
+ type: 'text',
39
+ text: memoDetail,
40
+ },
41
+ ],
42
+ };
43
+ }
44
+ catch (error) {
45
+ const errorMessage = error instanceof Error ? error.message : '不明なエラー';
46
+ return {
47
+ content: [
48
+ {
49
+ type: 'text',
50
+ text: `メモの取得中にエラーが発生しました: ${errorMessage}`,
51
+ },
52
+ ],
53
+ isError: true,
54
+ };
55
+ }
56
+ }
57
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/get-memo/handler.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAyC,EACzC,UAAsB;IAEtB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,iBAAiB;iBACxB;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,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC1B,CAAC,CAAC,SAAS,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACnD,MAAM,QAAQ,GAAG,QAAQ,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAClF,MAAM,YAAY,GAAG,WAAW,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAErG,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU;EACpD,UAAU;;EAEV,MAAM,CAAC,IAAI;;EAEX,QAAQ;EACR,YAAY;;OAEP,MAAM,CAAC,UAAU;OACjB,MAAM,CAAC,UAAU;OACjB,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC;QAEhD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU;iBACjB;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,sBAAsB,YAAY,EAAE;iBAC3C;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -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/get-memo/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { handleGetMemo } from './handler.js';
2
+ export const getMemoTool = {
3
+ definition: {
4
+ name: 'paput_get_memo',
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: handleGetMemo,
18
+ };
19
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/get-memo/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,mBAAmB;QAChC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,MAAM;iBACpB;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF;IACD,OAAO,EAAE,aAAa;CACvB,CAAC"}
@@ -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