anki-mcp-http 0.7.1 → 0.8.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 (143) hide show
  1. package/LICENSE +5 -19
  2. package/README.md +152 -35
  3. package/bin/ankimcp.js +0 -0
  4. package/dist/anki-config.service.d.ts +2 -2
  5. package/dist/anki-config.service.js +4 -4
  6. package/dist/app.module.d.ts +1 -1
  7. package/dist/app.module.js +7 -7
  8. package/dist/app.module.js.map +1 -1
  9. package/dist/bootstrap.d.ts +1 -1
  10. package/dist/bootstrap.js +4 -4
  11. package/dist/cli.d.ts +2 -1
  12. package/dist/cli.js +41 -27
  13. package/dist/cli.js.map +1 -1
  14. package/dist/http/guards/origin-validation.guard.d.ts +1 -1
  15. package/dist/http/guards/origin-validation.guard.js +5 -5
  16. package/dist/main-http.js +16 -2
  17. package/dist/main-http.js.map +1 -1
  18. package/dist/main-stdio.js +2 -2
  19. package/dist/mcp/clients/__mocks__/anki-connect.client.js +1 -1
  20. package/dist/mcp/clients/anki-connect.client.d.ts +1 -1
  21. package/dist/mcp/clients/anki-connect.client.js +7 -7
  22. package/dist/mcp/config/anki-config.interface.js +1 -1
  23. package/dist/mcp/primitives/essential/index.d.ts +26 -26
  24. package/dist/mcp/primitives/essential/index.js +1 -4
  25. package/dist/mcp/primitives/essential/index.js.map +1 -1
  26. package/dist/mcp/primitives/essential/prompts/review-session.prompt.js +5 -5
  27. package/dist/mcp/primitives/essential/prompts/review-session.prompt.js.map +1 -1
  28. package/dist/mcp/primitives/essential/prompts/twenty-rules.prompt/index.js +10 -8
  29. package/dist/mcp/primitives/essential/prompts/twenty-rules.prompt/index.js.map +1 -1
  30. package/dist/mcp/primitives/essential/resources/system-info.resource.js +12 -12
  31. package/dist/mcp/primitives/essential/tools/add-note.tool.d.ts +3 -3
  32. package/dist/mcp/primitives/essential/tools/add-note.tool.js +27 -30
  33. package/dist/mcp/primitives/essential/tools/add-note.tool.js.map +1 -1
  34. package/dist/mcp/primitives/essential/tools/create-deck.tool.d.ts +2 -2
  35. package/dist/mcp/primitives/essential/tools/create-deck.tool.js +15 -15
  36. package/dist/mcp/primitives/essential/tools/create-deck.tool.js.map +1 -1
  37. package/dist/mcp/primitives/essential/tools/create-model.tool.d.ts +3 -3
  38. package/dist/mcp/primitives/essential/tools/create-model.tool.js +20 -18
  39. package/dist/mcp/primitives/essential/tools/create-model.tool.js.map +1 -1
  40. package/dist/mcp/primitives/essential/tools/delete-notes.tool.d.ts +2 -2
  41. package/dist/mcp/primitives/essential/tools/delete-notes.tool.js +22 -22
  42. package/dist/mcp/primitives/essential/tools/delete-notes.tool.js.map +1 -1
  43. package/dist/mcp/primitives/essential/tools/find-notes.tool.d.ts +2 -2
  44. package/dist/mcp/primitives/essential/tools/find-notes.tool.js +14 -14
  45. package/dist/mcp/primitives/essential/tools/find-notes.tool.js.map +1 -1
  46. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.d.ts +2 -2
  47. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.js +17 -15
  48. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.js.map +1 -1
  49. package/dist/mcp/primitives/essential/tools/list-decks.tool.d.ts +2 -2
  50. package/dist/mcp/primitives/essential/tools/list-decks.tool.js +10 -10
  51. package/dist/mcp/primitives/essential/tools/list-decks.tool.js.map +1 -1
  52. package/dist/mcp/primitives/essential/tools/mediaActions/actions/deleteMediaFile.action.d.ts +1 -1
  53. package/dist/mcp/primitives/essential/tools/mediaActions/actions/deleteMediaFile.action.js +3 -3
  54. package/dist/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.d.ts +1 -1
  55. package/dist/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.js +1 -1
  56. package/dist/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.js.map +1 -1
  57. package/dist/mcp/primitives/essential/tools/mediaActions/actions/retrieveMediaFile.action.d.ts +1 -1
  58. package/dist/mcp/primitives/essential/tools/mediaActions/actions/retrieveMediaFile.action.js +3 -3
  59. package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.d.ts +1 -1
  60. package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.js +7 -7
  61. package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.js.map +1 -1
  62. package/dist/mcp/primitives/essential/tools/mediaActions/index.d.ts +5 -5
  63. package/dist/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.d.ts +3 -3
  64. package/dist/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.js +23 -17
  65. package/dist/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.js.map +1 -1
  66. package/dist/mcp/primitives/essential/tools/model-field-names.tool.d.ts +2 -2
  67. package/dist/mcp/primitives/essential/tools/model-field-names.tool.js +20 -17
  68. package/dist/mcp/primitives/essential/tools/model-field-names.tool.js.map +1 -1
  69. package/dist/mcp/primitives/essential/tools/model-names.tool.d.ts +3 -3
  70. package/dist/mcp/primitives/essential/tools/model-names.tool.js +13 -11
  71. package/dist/mcp/primitives/essential/tools/model-names.tool.js.map +1 -1
  72. package/dist/mcp/primitives/essential/tools/model-styling.tool.d.ts +2 -2
  73. package/dist/mcp/primitives/essential/tools/model-styling.tool.js +11 -11
  74. package/dist/mcp/primitives/essential/tools/model-styling.tool.js.map +1 -1
  75. package/dist/mcp/primitives/essential/tools/notes-info.tool.d.ts +2 -2
  76. package/dist/mcp/primitives/essential/tools/notes-info.tool.js +19 -19
  77. package/dist/mcp/primitives/essential/tools/notes-info.tool.js.map +1 -1
  78. package/dist/mcp/primitives/essential/tools/present-card.tool.d.ts +2 -2
  79. package/dist/mcp/primitives/essential/tools/present-card.tool.js +11 -11
  80. package/dist/mcp/primitives/essential/tools/present-card.tool.js.map +1 -1
  81. package/dist/mcp/primitives/essential/tools/rate-card.tool.d.ts +2 -2
  82. package/dist/mcp/primitives/essential/tools/rate-card.tool.js +19 -14
  83. package/dist/mcp/primitives/essential/tools/rate-card.tool.js.map +1 -1
  84. package/dist/mcp/primitives/essential/tools/sync.tool.d.ts +3 -3
  85. package/dist/mcp/primitives/essential/tools/sync.tool.js +8 -8
  86. package/dist/mcp/primitives/essential/tools/sync.tool.js.map +1 -1
  87. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.d.ts +2 -2
  88. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.js +19 -19
  89. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.js.map +1 -1
  90. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.d.ts +3 -3
  91. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.js +32 -32
  92. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.js.map +1 -1
  93. package/dist/mcp/primitives/gui/index.d.ts +17 -17
  94. package/dist/mcp/primitives/gui/index.js.map +1 -1
  95. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.d.ts +2 -2
  96. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js +22 -22
  97. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js.map +1 -1
  98. package/dist/mcp/primitives/gui/tools/gui-browse.tool.d.ts +3 -3
  99. package/dist/mcp/primitives/gui/tools/gui-browse.tool.js +15 -14
  100. package/dist/mcp/primitives/gui/tools/gui-browse.tool.js.map +1 -1
  101. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.d.ts +3 -3
  102. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js +13 -13
  103. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js.map +1 -1
  104. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.d.ts +3 -3
  105. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js +12 -12
  106. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js.map +1 -1
  107. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.d.ts +2 -2
  108. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js +15 -12
  109. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js.map +1 -1
  110. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.d.ts +2 -2
  111. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js +13 -12
  112. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js.map +1 -1
  113. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.d.ts +2 -2
  114. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js +18 -15
  115. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js.map +1 -1
  116. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.d.ts +3 -3
  117. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js +15 -14
  118. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js.map +1 -1
  119. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.d.ts +3 -3
  120. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js +15 -15
  121. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js.map +1 -1
  122. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.d.ts +3 -3
  123. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js +15 -15
  124. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js.map +1 -1
  125. package/dist/mcp/primitives/gui/tools/gui-undo.tool.d.ts +3 -3
  126. package/dist/mcp/primitives/gui/tools/gui-undo.tool.js +15 -15
  127. package/dist/mcp/primitives/gui/tools/gui-undo.tool.js.map +1 -1
  128. package/dist/mcp/types/anki.types.d.ts +2 -2
  129. package/dist/mcp/utils/anki.utils.d.ts +3 -3
  130. package/dist/mcp/utils/anki.utils.js +42 -38
  131. package/dist/mcp/utils/anki.utils.js.map +1 -1
  132. package/dist/mcp/utils/markdown.utils.js +16 -12
  133. package/dist/mcp/utils/markdown.utils.js.map +1 -1
  134. package/dist/mcp/utils/mcpb-workarounds.js +2 -2
  135. package/dist/mcp/utils/mcpb-workarounds.js.map +1 -1
  136. package/dist/services/ngrok.service.d.ts +15 -0
  137. package/dist/services/ngrok.service.js +120 -0
  138. package/dist/services/ngrok.service.js.map +1 -0
  139. package/dist/test-fixtures/mock-data.d.ts +2 -2
  140. package/dist/test-fixtures/mock-data.js +46 -46
  141. package/dist/test-fixtures/mock-data.js.map +1 -1
  142. package/dist/tsconfig.build.tsbuildinfo +1 -1
  143. package/package.json +12 -7
@@ -26,7 +26,7 @@ let ModelStylingTool = ModelStylingTool_1 = class ModelStylingTool {
26
26
  try {
27
27
  this.logger.log(`Retrieving CSS styling for model: ${modelName}`);
28
28
  await context.reportProgress({ progress: 25, total: 100 });
29
- const styling = await this.ankiClient.invoke('modelStyling', {
29
+ const styling = await this.ankiClient.invoke("modelStyling", {
30
30
  modelName: modelName,
31
31
  });
32
32
  await context.reportProgress({ progress: 75, total: 100 });
@@ -35,16 +35,16 @@ let ModelStylingTool = ModelStylingTool_1 = class ModelStylingTool {
35
35
  await context.reportProgress({ progress: 100, total: 100 });
36
36
  return (0, anki_utils_1.createErrorResponse)(new Error(`Model "${modelName}" not found or has no styling`), {
37
37
  modelName: modelName,
38
- hint: 'Use modelNames tool to see available models',
38
+ hint: "Use modelNames tool to see available models",
39
39
  });
40
40
  }
41
41
  await context.reportProgress({ progress: 100, total: 100 });
42
42
  const css = styling.css;
43
43
  const cssLength = css.length;
44
- const hasCardClass = css.includes('.card');
45
- const hasFrontClass = css.includes('.front');
46
- const hasBackClass = css.includes('.back');
47
- const hasClozeClass = css.includes('.cloze');
44
+ const hasCardClass = css.includes(".card");
45
+ const hasFrontClass = css.includes(".front");
46
+ const hasBackClass = css.includes(".back");
47
+ const hasClozeClass = css.includes(".cloze");
48
48
  this.logger.log(`Retrieved CSS styling for model ${modelName} (${cssLength} chars)`);
49
49
  return (0, anki_utils_1.createSuccessResponse)({
50
50
  success: true,
@@ -58,14 +58,14 @@ let ModelStylingTool = ModelStylingTool_1 = class ModelStylingTool {
58
58
  hasClozeStyling: hasClozeClass,
59
59
  },
60
60
  message: `Retrieved CSS styling for model "${modelName}"`,
61
- hint: 'This CSS is automatically applied when cards of this type are rendered in Anki',
61
+ hint: "This CSS is automatically applied when cards of this type are rendered in Anki",
62
62
  });
63
63
  }
64
64
  catch (error) {
65
65
  this.logger.error(`Failed to retrieve styling for model ${modelName}`, error);
66
66
  return (0, anki_utils_1.createErrorResponse)(error, {
67
67
  modelName: modelName,
68
- hint: 'Make sure the model name is correct and Anki is running',
68
+ hint: "Make sure the model name is correct and Anki is running",
69
69
  });
70
70
  }
71
71
  }
@@ -73,13 +73,13 @@ let ModelStylingTool = ModelStylingTool_1 = class ModelStylingTool {
73
73
  exports.ModelStylingTool = ModelStylingTool;
74
74
  __decorate([
75
75
  (0, mcp_nest_1.Tool)({
76
- name: 'modelStyling',
77
- description: 'Get the CSS styling for a specific note type (model). This CSS is used when rendering cards of this type.',
76
+ name: "modelStyling",
77
+ description: "Get the CSS styling for a specific note type (model). This CSS is used when rendering cards of this type.",
78
78
  parameters: zod_1.z.object({
79
79
  modelName: zod_1.z
80
80
  .string()
81
81
  .min(1)
82
- .describe('The name of the model/note type to get styling for'),
82
+ .describe("The name of the model/note type to get styling for"),
83
83
  }),
84
84
  }),
85
85
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"model-styling.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/model-styling.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-styling.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/model-styling.tool.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Context } from '@rekog/mcp-nest';
2
- import { AnkiConnectClient } from '@/mcp/clients/anki-connect.client';
1
+ import type { Context } from "@rekog/mcp-nest";
2
+ import { AnkiConnectClient } from "@/mcp/clients/anki-connect.client";
3
3
  export declare class NotesInfoTool {
4
4
  private readonly ankiClient;
5
5
  private readonly logger;
@@ -26,19 +26,19 @@ let NotesInfoTool = NotesInfoTool_1 = class NotesInfoTool {
26
26
  try {
27
27
  this.logger.log(`Getting information for ${notes.length} note(s)`);
28
28
  await context.reportProgress({ progress: 25, total: 100 });
29
- const notesData = await this.ankiClient.invoke('notesInfo', {
29
+ const notesData = await this.ankiClient.invoke("notesInfo", {
30
30
  notes: notes,
31
31
  });
32
32
  await context.reportProgress({ progress: 75, total: 100 });
33
33
  if (!notesData || notesData.length === 0) {
34
- this.logger.warn('No note information returned');
34
+ this.logger.warn("No note information returned");
35
35
  await context.reportProgress({ progress: 100, total: 100 });
36
- return (0, anki_utils_1.createErrorResponse)(new Error('No note information found'), {
36
+ return (0, anki_utils_1.createErrorResponse)(new Error("No note information found"), {
37
37
  requestedNotes: notes,
38
- hint: 'The note IDs may be invalid or the notes may have been deleted',
38
+ hint: "The note IDs may be invalid or the notes may have been deleted",
39
39
  });
40
40
  }
41
- const transformedNotes = notesData.map(note => ({
41
+ const transformedNotes = notesData.map((note) => ({
42
42
  noteId: note.noteId,
43
43
  modelName: note.modelName,
44
44
  tags: note.tags || [],
@@ -46,14 +46,14 @@ let NotesInfoTool = NotesInfoTool_1 = class NotesInfoTool {
46
46
  cards: note.cards || [],
47
47
  mod: note.mod,
48
48
  }));
49
- const validNotes = transformedNotes.filter(note => note.noteId);
49
+ const validNotes = transformedNotes.filter((note) => note.noteId);
50
50
  const deletedCount = notes.length - validNotes.length;
51
51
  await context.reportProgress({ progress: 100, total: 100 });
52
52
  const message = deletedCount > 0
53
53
  ? `Retrieved ${validNotes.length} note(s). ${deletedCount} note(s) not found (possibly deleted).`
54
54
  : `Successfully retrieved information for ${validNotes.length} note(s)`;
55
55
  this.logger.log(message);
56
- const uniqueModels = [...new Set(validNotes.map(n => n.modelName))];
56
+ const uniqueModels = [...new Set(validNotes.map((n) => n.modelName))];
57
57
  return (0, anki_utils_1.createSuccessResponse)({
58
58
  success: true,
59
59
  notes: validNotes,
@@ -62,25 +62,25 @@ let NotesInfoTool = NotesInfoTool_1 = class NotesInfoTool {
62
62
  requestedIds: notes,
63
63
  message: message,
64
64
  models: uniqueModels,
65
- cssNote: 'Each note model has its own CSS styling. Use modelStyling tool to get CSS for specific models.',
65
+ cssNote: "Each note model has its own CSS styling. Use modelStyling tool to get CSS for specific models.",
66
66
  hint: validNotes.length > 0
67
- ? 'Fields may contain HTML. Use updateNoteFields to modify content. Do not view notes in Anki browser while updating.'
68
- : 'No valid notes found. They may have been deleted.',
67
+ ? "Fields may contain HTML. Use updateNoteFields to modify content. Do not view notes in Anki browser while updating."
68
+ : "No valid notes found. They may have been deleted.",
69
69
  });
70
70
  }
71
71
  catch (error) {
72
- this.logger.error('Failed to get notes information', error);
72
+ this.logger.error("Failed to get notes information", error);
73
73
  if (error instanceof Error) {
74
- if (error.message.includes('not found')) {
74
+ if (error.message.includes("not found")) {
75
75
  return (0, anki_utils_1.createErrorResponse)(error, {
76
76
  requestedNotes: notes,
77
- hint: 'One or more note IDs are invalid. Use findNotes to get valid note IDs.',
77
+ hint: "One or more note IDs are invalid. Use findNotes to get valid note IDs.",
78
78
  });
79
79
  }
80
80
  }
81
81
  return (0, anki_utils_1.createErrorResponse)(error, {
82
82
  requestedNotes: notes,
83
- hint: 'Make sure Anki is running and the note IDs are valid',
83
+ hint: "Make sure Anki is running and the note IDs are valid",
84
84
  });
85
85
  }
86
86
  }
@@ -88,16 +88,16 @@ let NotesInfoTool = NotesInfoTool_1 = class NotesInfoTool {
88
88
  exports.NotesInfoTool = NotesInfoTool;
89
89
  __decorate([
90
90
  (0, mcp_nest_1.Tool)({
91
- name: 'notesInfo',
92
- description: 'Get detailed information about specific notes including all fields, tags, model info, and CSS styling. ' +
93
- 'Use this after findNotes to get complete note data. Includes CSS for proper rendering awareness.',
91
+ name: "notesInfo",
92
+ description: "Get detailed information about specific notes including all fields, tags, model info, and CSS styling. " +
93
+ "Use this after findNotes to get complete note data. Includes CSS for proper rendering awareness.",
94
94
  parameters: zod_1.z.object({
95
95
  notes: zod_1.z
96
96
  .array(zod_1.z.number())
97
97
  .min(1)
98
98
  .max(100)
99
- .describe('Array of note IDs to get information for (max 100 at once for performance). ' +
100
- 'Get these IDs from findNotes tool.'),
99
+ .describe("Array of note IDs to get information for (max 100 at once for performance). " +
100
+ "Get these IDs from findNotes tool."),
101
101
  }),
102
102
  }),
103
103
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"notes-info.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/notes-info.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notes-info.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/notes-info.tool.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Context } from '@rekog/mcp-nest';
2
- import { AnkiConnectClient } from '@/mcp/clients/anki-connect.client';
1
+ import type { Context } from "@rekog/mcp-nest";
2
+ import { AnkiConnectClient } from "@/mcp/clients/anki-connect.client";
3
3
  export declare class PresentCardTool {
4
4
  private readonly ankiClient;
5
5
  private readonly logger;
@@ -27,8 +27,8 @@ let PresentCardTool = PresentCardTool_1 = class PresentCardTool {
27
27
  const showAnswer = show_answer || false;
28
28
  this.logger.log(`Retrieving card ${card_id} for presentation (show_answer: ${showAnswer})`);
29
29
  await context.reportProgress({ progress: 25, total: 100 });
30
- const cardsInfo = await this.ankiClient.invoke('cardsInfo', {
31
- cards: [card_id]
30
+ const cardsInfo = await this.ankiClient.invoke("cardsInfo", {
31
+ cards: [card_id],
32
32
  });
33
33
  if (!cardsInfo || cardsInfo.length === 0) {
34
34
  this.logger.warn(`Card not found: ${card_id}`);
@@ -40,7 +40,7 @@ let PresentCardTool = PresentCardTool_1 = class PresentCardTool {
40
40
  const cardType = (0, anki_utils_1.getCardType)(card.type);
41
41
  const presentation = {
42
42
  cardId: card.cardId,
43
- front: front || card.question || '',
43
+ front: front || card.question || "",
44
44
  deckName: card.deckName,
45
45
  modelName: card.modelName,
46
46
  tags: card.tags || [],
@@ -52,7 +52,7 @@ let PresentCardTool = PresentCardTool_1 = class PresentCardTool {
52
52
  noteId: card.note,
53
53
  };
54
54
  if (showAnswer) {
55
- presentation.back = back || card.answer || '';
55
+ presentation.back = back || card.answer || "";
56
56
  }
57
57
  await context.reportProgress({ progress: 100, total: 100 });
58
58
  this.logger.log(`Retrieved card ${card_id} for presentation`);
@@ -61,10 +61,12 @@ let PresentCardTool = PresentCardTool_1 = class PresentCardTool {
61
61
  card: presentation,
62
62
  };
63
63
  if (!showAnswer) {
64
- response.instruction = 'Question shown. Wait for user\'s answer, then use show_answer=true';
64
+ response.instruction =
65
+ "Question shown. Wait for user's answer, then use show_answer=true";
65
66
  }
66
67
  else {
67
- response.instruction = 'Answer revealed. Evaluate response and suggest rating, then wait for user confirmation';
68
+ response.instruction =
69
+ "Answer revealed. Evaluate response and suggest rating, then wait for user confirmation";
68
70
  }
69
71
  return (0, anki_utils_1.createSuccessResponse)(response);
70
72
  }
@@ -77,16 +79,14 @@ let PresentCardTool = PresentCardTool_1 = class PresentCardTool {
77
79
  exports.PresentCardTool = PresentCardTool;
78
80
  __decorate([
79
81
  (0, mcp_nest_1.Tool)({
80
- name: 'present_card',
82
+ name: "present_card",
81
83
  description: 'Retrieve a card\'s content for review. WORKFLOW: 1) Show question, 2) Wait for user answer, 3) Show answer with show_answer=true, 4) Evaluate and suggest rating (1-4), 5) Wait for user confirmation ("ok"/"next" = accept, or they provide different rating), 6) Only then use rate_card',
82
84
  parameters: zod_1.z.object({
83
- card_id: zod_1.z
84
- .number()
85
- .describe('The ID of the card to retrieve'),
85
+ card_id: zod_1.z.number().describe("The ID of the card to retrieve"),
86
86
  show_answer: zod_1.z
87
87
  .boolean()
88
88
  .default(false)
89
- .describe('Whether to include the answer/back content in the response'),
89
+ .describe("Whether to include the answer/back content in the response"),
90
90
  }),
91
91
  }),
92
92
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"present-card.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/present-card.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,8EAAsE;AAEtE,0DAAqH;AAM9G,IAAM,eAAe,uBAArB,MAAM,eAAe;IAGG;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,iBAAe,CAAC,IAAI,CAAC,CAAC;IAE3D,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAgBxD,AAAN,KAAK,CAAC,WAAW,CACf,EAAE,OAAO,EAAE,WAAW,EAA8C,EACpE,OAAgB;QAEhB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,WAAW,IAAI,KAAK,CAAC;YAExC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,OAAO,mCAAmC,UAAU,GAAG,CAAC,CAAC;YAC5F,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAG3D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAa,WAAW,EAAE;gBACtE,KAAK,EAAE,CAAC,OAAO,CAAC;aACjB,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;gBAC/C,OAAO,IAAA,gCAAmB,EACxB,IAAI,KAAK,CAAC,gBAAgB,OAAO,YAAY,CAAC,EAC9C,EAAE,MAAM,EAAE,OAAO,EAAE,CACpB,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAE3D,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAA,+BAAkB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAA,wBAAW,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAGxC,MAAM,YAAY,GAAqB;gBACrC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;gBACrB,eAAe,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;gBACnC,UAAU,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;gBAC/B,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;gBACxB,QAAQ;gBACR,MAAM,EAAE,IAAI,CAAC,IAAI;aAClB,CAAC;YAGF,IAAI,UAAU,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;YAChD,CAAC;YAED,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,OAAO,mBAAmB,CAAC,CAAC;YAE9D,MAAM,QAAQ,GAAQ;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,YAAY;aACnB,CAAC;YAEF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,QAAQ,CAAC,WAAW,GAAG,oEAAoE,CAAC;YAC9F,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,WAAW,GAAG,wFAAwF,CAAC;YAClH,CAAC;YAED,OAAO,IAAA,kCAAqB,EAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;YAC/D,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF,CAAA;AAxFY,0CAAe;AAmBpB;IAdL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,4RAA4R;QAC9R,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,OAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,CAAC,gCAAgC,CAAC;YAC7C,WAAW,EAAE,OAAC;iBACX,OAAO,EAAE;iBACT,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,4DAA4D,CAAC;SAC1E,CAAC;KACH,CAAC;;;;kDAqED;0BAvFU,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,eAAe,CAwF3B"}
1
+ {"version":3,"file":"present-card.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/present-card.tool.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Context } from '@rekog/mcp-nest';
2
- import { AnkiConnectClient } from '@/mcp/clients/anki-connect.client';
1
+ import type { Context } from "@rekog/mcp-nest";
2
+ import { AnkiConnectClient } from "@/mcp/clients/anki-connect.client";
3
3
  export declare class RateCardTool {
4
4
  private readonly ankiClient;
5
5
  private readonly logger;
@@ -25,20 +25,27 @@ let RateCardTool = RateCardTool_1 = class RateCardTool {
25
25
  async rateCard({ card_id, rating }, context) {
26
26
  try {
27
27
  if (!Number.isInteger(rating) || rating < 1 || rating > 4) {
28
- return (0, anki_utils_1.createErrorResponse)(new Error('Invalid rating. Must be 1 (Again), 2 (Hard), 3 (Good), or 4 (Easy)'), { cardId: card_id, attemptedRating: rating });
28
+ return (0, anki_utils_1.createErrorResponse)(new Error("Invalid rating. Must be 1 (Again), 2 (Hard), 3 (Good), or 4 (Easy)"), { cardId: card_id, attemptedRating: rating });
29
29
  }
30
30
  this.logger.log(`Rating card ${card_id} with rating ${rating}`);
31
31
  await context.reportProgress({ progress: 25, total: 100 });
32
- const answers = [{
32
+ const answers = [
33
+ {
33
34
  cardId: card_id,
34
- ease: rating
35
- }];
36
- const result = await this.ankiClient.invoke('answerCards', { answers });
35
+ ease: rating,
36
+ },
37
+ ];
38
+ const result = await this.ankiClient.invoke("answerCards", {
39
+ answers,
40
+ });
41
+ if (!result) {
42
+ throw new Error(`Failed to rate card ${card_id}`);
43
+ }
37
44
  const ratingDesc = (0, anki_utils_1.getRatingDescription)(rating);
38
45
  this.logger.log(`Card ${card_id} rated as ${ratingDesc}`);
39
46
  await context.reportProgress({ progress: 75, total: 100 });
40
- const cardsInfo = await this.ankiClient.invoke('cardsInfo', {
41
- cards: [card_id]
47
+ const cardsInfo = await this.ankiClient.invoke("cardsInfo", {
48
+ cards: [card_id],
42
49
  });
43
50
  let nextReview = null;
44
51
  if (cardsInfo && cardsInfo.length > 0) {
@@ -64,7 +71,7 @@ let RateCardTool = RateCardTool_1 = class RateCardTool {
64
71
  return (0, anki_utils_1.createErrorResponse)(error, {
65
72
  cardId: card_id,
66
73
  attemptedRating: rating,
67
- hint: 'Make sure Anki is running and the card exists',
74
+ hint: "Make sure Anki is running and the card exists",
68
75
  });
69
76
  }
70
77
  }
@@ -72,17 +79,15 @@ let RateCardTool = RateCardTool_1 = class RateCardTool {
72
79
  exports.RateCardTool = RateCardTool;
73
80
  __decorate([
74
81
  (0, mcp_nest_1.Tool)({
75
- name: 'rate_card',
76
- description: 'Submit a rating for a card to update Anki\'s spaced repetition scheduling. Use this ONLY after the user confirms or modifies your suggested rating. Do not rate automatically without user input.',
82
+ name: "rate_card",
83
+ description: "Submit a rating for a card to update Anki's spaced repetition scheduling. Use this ONLY after the user confirms or modifies your suggested rating. Do not rate automatically without user input.",
77
84
  parameters: zod_1.z.object({
78
- card_id: zod_1.z
79
- .number()
80
- .describe('The ID of the card to rate'),
85
+ card_id: zod_1.z.number().describe("The ID of the card to rate"),
81
86
  rating: zod_1.z
82
87
  .number()
83
88
  .min(1)
84
89
  .max(4)
85
- .describe('The rating for the card (use the user\'s choice, not your suggestion): 1=Again (failed), 2=Hard, 3=Good, 4=Easy'),
90
+ .describe("The rating for the card (use the user's choice, not your suggestion): 1=Again (failed), 2=Hard, 3=Good, 4=Easy"),
86
91
  }),
87
92
  }),
88
93
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"rate-card.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/rate-card.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-card.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/rate-card.tool.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import type { Context } from '@rekog/mcp-nest';
2
- import { AnkiConnectClient } from '@/mcp/clients/anki-connect.client';
1
+ import type { Context } from "@rekog/mcp-nest";
2
+ import { AnkiConnectClient } from "@/mcp/clients/anki-connect.client";
3
3
  export declare class SyncTool {
4
4
  private readonly ankiClient;
5
5
  private readonly logger;
6
6
  constructor(ankiClient: AnkiConnectClient);
7
- sync(_args: {}, context: Context): Promise<{
7
+ sync(_args: Record<string, never>, context: Context): Promise<{
8
8
  [x: string]: unknown;
9
9
  content: ({
10
10
  [x: string]: unknown;
@@ -24,21 +24,21 @@ let SyncTool = SyncTool_1 = class SyncTool {
24
24
  }
25
25
  async sync(_args, context) {
26
26
  try {
27
- this.logger.log('Synchronizing Anki collection with AnkiWeb');
27
+ this.logger.log("Synchronizing Anki collection with AnkiWeb");
28
28
  await context.reportProgress({ progress: 25, total: 100 });
29
- await this.ankiClient.invoke('sync');
30
- this.logger.log('Anki sync completed successfully');
29
+ await this.ankiClient.invoke("sync");
30
+ this.logger.log("Anki sync completed successfully");
31
31
  await context.reportProgress({ progress: 100, total: 100 });
32
32
  return (0, anki_utils_1.createSuccessResponse)({
33
33
  success: true,
34
- message: 'Successfully synchronized with AnkiWeb',
34
+ message: "Successfully synchronized with AnkiWeb",
35
35
  timestamp: new Date().toISOString(),
36
36
  });
37
37
  }
38
38
  catch (error) {
39
- this.logger.error('Failed to sync with AnkiWeb', error);
39
+ this.logger.error("Failed to sync with AnkiWeb", error);
40
40
  return (0, anki_utils_1.createErrorResponse)(error, {
41
- hint: 'Make sure Anki is running and you are logged into AnkiWeb',
41
+ hint: "Make sure Anki is running and you are logged into AnkiWeb",
42
42
  });
43
43
  }
44
44
  }
@@ -46,8 +46,8 @@ let SyncTool = SyncTool_1 = class SyncTool {
46
46
  exports.SyncTool = SyncTool;
47
47
  __decorate([
48
48
  (0, mcp_nest_1.Tool)({
49
- name: 'sync',
50
- description: 'Synchronize local Anki collection with AnkiWeb. IMPORTANT: Always sync at the START of a review session (before getting cards) and at the END when user indicates they are done. This ensures data consistency across devices.',
49
+ name: "sync",
50
+ description: "Synchronize local Anki collection with AnkiWeb. IMPORTANT: Always sync at the START of a review session (before getting cards) and at the END when user indicates they are done. This ensures data consistency across devices.",
51
51
  parameters: zod_1.z.object({}),
52
52
  }),
53
53
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"sync.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/sync.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,8EAAsE;AACtE,0DAAoF;AAM7E,IAAM,QAAQ,gBAAd,MAAM,QAAQ;IAGU;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,UAAQ,CAAC,IAAI,CAAC,CAAC;IAEpD,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAQxD,AAAN,KAAK,CAAC,IAAI,CAAC,KAAS,EAAE,OAAgB;QACpC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC9D,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAG3D,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAErC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YACpD,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAE5D,OAAO,IAAA,kCAAqB,EAAC;gBAC3B,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,wCAAwC;gBACjD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YAExD,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE;gBAChC,IAAI,EAAE,2DAA2D;aAClE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AAnCY,4BAAQ;AAWb;IANL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,gOAAgO;QAClO,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;KACzB,CAAC;;;;oCAwBD;mBAlCU,QAAQ;IADpB,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,QAAQ,CAmCpB"}
1
+ {"version":3,"file":"sync.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/sync.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,8EAAsE;AACtE,0DAGgC;AAMzB,IAAM,QAAQ,gBAAd,MAAM,QAAQ;IAGU;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,UAAQ,CAAC,IAAI,CAAC,CAAC;IAEpD,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAQxD,AAAN,KAAK,CAAC,IAAI,CAAC,KAA4B,EAAE,OAAgB;QACvD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC9D,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAG3D,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAErC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YACpD,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAE5D,OAAO,IAAA,kCAAqB,EAAC;gBAC3B,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,wCAAwC;gBACjD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YAExD,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE;gBAChC,IAAI,EAAE,2DAA2D;aAClE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AAnCY,4BAAQ;AAWb;IANL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,gOAAgO;QAClO,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;KACzB,CAAC;;;;oCAwBD;mBAlCU,QAAQ;IADpB,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,QAAQ,CAmCpB"}
@@ -1,5 +1,5 @@
1
- import type { Context } from '@rekog/mcp-nest';
2
- import { AnkiConnectClient } from '@/mcp/clients/anki-connect.client';
1
+ import type { Context } from "@rekog/mcp-nest";
2
+ import { AnkiConnectClient } from "@/mcp/clients/anki-connect.client";
3
3
  export declare class UpdateModelStylingTool {
4
4
  private readonly ankiClient;
5
5
  private readonly logger;
@@ -28,15 +28,15 @@ let UpdateModelStylingTool = UpdateModelStylingTool_1 = class UpdateModelStyling
28
28
  await context.reportProgress({ progress: 10, total: 100 });
29
29
  let oldStyling = null;
30
30
  try {
31
- oldStyling = await this.ankiClient.invoke('modelStyling', {
31
+ oldStyling = await this.ankiClient.invoke("modelStyling", {
32
32
  modelName,
33
33
  });
34
34
  }
35
- catch (error) {
35
+ catch (_error) {
36
36
  this.logger.warn(`Could not fetch old styling for ${modelName}`);
37
37
  }
38
38
  await context.reportProgress({ progress: 40, total: 100 });
39
- await this.ankiClient.invoke('updateModelStyling', {
39
+ await this.ankiClient.invoke("updateModelStyling", {
40
40
  model: {
41
41
  name: modelName,
42
42
  css,
@@ -46,11 +46,11 @@ let UpdateModelStylingTool = UpdateModelStylingTool_1 = class UpdateModelStyling
46
46
  this.logger.log(`Successfully updated styling for model: ${modelName}`);
47
47
  await context.reportProgress({ progress: 100, total: 100 });
48
48
  const cssLength = css.length;
49
- const hasRtl = css.includes('direction: rtl') || css.includes('direction:rtl');
50
- const hasCardClass = css.includes('.card');
51
- const hasFrontClass = css.includes('.front');
52
- const hasBackClass = css.includes('.back');
53
- const hasClozeClass = css.includes('.cloze');
49
+ const hasRtl = css.includes("direction: rtl") || css.includes("direction:rtl");
50
+ const hasCardClass = css.includes(".card");
51
+ const hasFrontClass = css.includes(".front");
52
+ const hasBackClass = css.includes(".back");
53
+ const hasClozeClass = css.includes(".cloze");
54
54
  const response = {
55
55
  success: true,
56
56
  modelName,
@@ -73,17 +73,17 @@ let UpdateModelStylingTool = UpdateModelStylingTool_1 = class UpdateModelStyling
73
73
  catch (error) {
74
74
  this.logger.error(`Failed to update styling for model ${modelName}`, error);
75
75
  const errorMessage = error instanceof Error ? error.message : String(error);
76
- if (errorMessage.includes('not found') ||
77
- errorMessage.includes('does not exist') ||
78
- errorMessage.includes('model not found')) {
76
+ if (errorMessage.includes("not found") ||
77
+ errorMessage.includes("does not exist") ||
78
+ errorMessage.includes("model not found")) {
79
79
  return (0, anki_utils_1.createErrorResponse)(error, {
80
80
  modelName,
81
- hint: 'Model not found. Use modelNames tool to see available models.',
81
+ hint: "Model not found. Use modelNames tool to see available models.",
82
82
  });
83
83
  }
84
84
  return (0, anki_utils_1.createErrorResponse)(error, {
85
85
  modelName,
86
- hint: 'Make sure Anki is running and the model name is correct.',
86
+ hint: "Make sure Anki is running and the model name is correct.",
87
87
  });
88
88
  }
89
89
  }
@@ -91,11 +91,11 @@ let UpdateModelStylingTool = UpdateModelStylingTool_1 = class UpdateModelStyling
91
91
  exports.UpdateModelStylingTool = UpdateModelStylingTool;
92
92
  __decorate([
93
93
  (0, mcp_nest_1.Tool)({
94
- name: 'updateModelStyling',
95
- description: 'Update the CSS styling for an existing note type (model). ' +
96
- 'This changes how cards of this type are rendered in Anki. ' +
97
- 'Useful for adding RTL (Right-to-Left) support, changing fonts, colors, or layout. ' +
98
- 'Changes apply to all cards using this model.',
94
+ name: "updateModelStyling",
95
+ description: "Update the CSS styling for an existing note type (model). " +
96
+ "This changes how cards of this type are rendered in Anki. " +
97
+ "Useful for adding RTL (Right-to-Left) support, changing fonts, colors, or layout. " +
98
+ "Changes apply to all cards using this model.",
99
99
  parameters: zod_1.z.object({
100
100
  modelName: zod_1.z
101
101
  .string()
@@ -105,7 +105,7 @@ __decorate([
105
105
  .string()
106
106
  .min(1)
107
107
  .describe('New CSS styling content. For RTL languages, include "direction: rtl;" in .card class. ' +
108
- 'This will completely replace the existing CSS.'),
108
+ "This will completely replace the existing CSS."),
109
109
  }),
110
110
  }),
111
111
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"update-model-styling.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/update-model-styling.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-model-styling.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/update-model-styling.tool.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import type { Context } from '@rekog/mcp-nest';
2
- import { AnkiConnectClient } from '@/mcp/clients/anki-connect.client';
1
+ import type { Context } from "@rekog/mcp-nest";
2
+ import { AnkiConnectClient } from "@/mcp/clients/anki-connect.client";
3
3
  export declare class UpdateNoteFieldsTool {
4
4
  private readonly ankiClient;
5
5
  private readonly logger;
6
6
  constructor(ankiClient: AnkiConnectClient);
7
- updateNoteFields({ note }: {
7
+ updateNoteFields({ note, }: {
8
8
  note: {
9
9
  id: number;
10
10
  fields: Record<string, string>;