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
@@ -27,13 +27,13 @@ let ListDecksTool = ListDecksTool_1 = class ListDecksTool {
27
27
  const includeStats = include_stats || false;
28
28
  this.logger.log(`Listing Anki decks with stats: ${includeStats}`);
29
29
  await context.reportProgress({ progress: 10, total: 100 });
30
- const deckNames = await this.ankiClient.invoke('deckNames');
30
+ const deckNames = await this.ankiClient.invoke("deckNames");
31
31
  if (!deckNames || deckNames.length === 0) {
32
- this.logger.log('No decks found');
32
+ this.logger.log("No decks found");
33
33
  await context.reportProgress({ progress: 100, total: 100 });
34
34
  return (0, anki_utils_1.createSuccessResponse)({
35
35
  success: true,
36
- message: 'No decks found in Anki',
36
+ message: "No decks found in Anki",
37
37
  decks: [],
38
38
  });
39
39
  }
@@ -41,11 +41,11 @@ let ListDecksTool = ListDecksTool_1 = class ListDecksTool {
41
41
  let decks;
42
42
  let summary;
43
43
  if (includeStats) {
44
- const deckStatsResponse = await this.ankiClient.invoke('getDeckStats', {
44
+ const deckStatsResponse = await this.ankiClient.invoke("getDeckStats", {
45
45
  decks: deckNames,
46
46
  });
47
47
  const statsArray = Object.values(deckStatsResponse);
48
- decks = deckNames.map(name => {
48
+ decks = deckNames.map((name) => {
49
49
  const stats = statsArray.find((s) => s.name === name);
50
50
  if (stats) {
51
51
  return {
@@ -74,7 +74,7 @@ let ListDecksTool = ListDecksTool_1 = class ListDecksTool {
74
74
  }, { total_cards: 0, new_cards: 0, learning_cards: 0, review_cards: 0 });
75
75
  }
76
76
  else {
77
- decks = deckNames.map(name => ({ name }));
77
+ decks = deckNames.map((name) => ({ name }));
78
78
  }
79
79
  await context.reportProgress({ progress: 100, total: 100 });
80
80
  this.logger.log(`Found ${decks.length} decks`);
@@ -89,7 +89,7 @@ let ListDecksTool = ListDecksTool_1 = class ListDecksTool {
89
89
  return (0, anki_utils_1.createSuccessResponse)(response);
90
90
  }
91
91
  catch (error) {
92
- this.logger.error('Failed to list decks', error);
92
+ this.logger.error("Failed to list decks", error);
93
93
  return (0, anki_utils_1.createErrorResponse)(error);
94
94
  }
95
95
  }
@@ -97,13 +97,13 @@ let ListDecksTool = ListDecksTool_1 = class ListDecksTool {
97
97
  exports.ListDecksTool = ListDecksTool;
98
98
  __decorate([
99
99
  (0, mcp_nest_1.Tool)({
100
- name: 'list_decks',
101
- description: 'List all available Anki decks, optionally with statistics. Remember to sync first at the start of a review session for latest data.',
100
+ name: "list_decks",
101
+ description: "List all available Anki decks, optionally with statistics. Remember to sync first at the start of a review session for latest data.",
102
102
  parameters: zod_1.z.object({
103
103
  include_stats: zod_1.z
104
104
  .boolean()
105
105
  .default(false)
106
- .describe('Include card count statistics for each deck'),
106
+ .describe("Include card count statistics for each deck"),
107
107
  }),
108
108
  }),
109
109
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"list-decks.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/list-decks.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-decks.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/list-decks.tool.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AnkiConnectClient } from '@/mcp/clients/anki-connect.client';
1
+ import { AnkiConnectClient } from "@/mcp/clients/anki-connect.client";
2
2
  export interface DeleteMediaFileParams {
3
3
  filename: string;
4
4
  }
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deleteMediaFile = deleteMediaFile;
4
4
  async function deleteMediaFile(params, client) {
5
5
  const { filename } = params;
6
- if (!filename || filename.trim() === '') {
7
- throw new Error('Filename cannot be empty');
6
+ if (!filename || filename.trim() === "") {
7
+ throw new Error("Filename cannot be empty");
8
8
  }
9
- await client.invoke('deleteMediaFile', {
9
+ await client.invoke("deleteMediaFile", {
10
10
  filename,
11
11
  });
12
12
  return {
@@ -1,4 +1,4 @@
1
- import { AnkiConnectClient } from '@/mcp/clients/anki-connect.client';
1
+ import { AnkiConnectClient } from "@/mcp/clients/anki-connect.client";
2
2
  export interface GetMediaFilesNamesParams {
3
3
  pattern?: string;
4
4
  }
@@ -7,7 +7,7 @@ async function getMediaFilesNames(params, client) {
7
7
  if (pattern) {
8
8
  ankiParams.pattern = pattern;
9
9
  }
10
- const result = await client.invoke('getMediaFilesNames', ankiParams);
10
+ const result = await client.invoke("getMediaFilesNames", ankiParams);
11
11
  const message = pattern
12
12
  ? `Found ${result.length} media file(s) matching pattern "${pattern}"`
13
13
  : `Found ${result.length} media file(s)`;
@@ -1 +1 @@
1
- {"version":3,"file":"getMediaFilesNames.action.js","sourceRoot":"","sources":["../../../../../../../src/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.ts"],"names":[],"mappings":";;AAyBA,gDA0BC;AA1BM,KAAK,UAAU,kBAAkB,CACtC,MAAgC,EAChC,MAAyB;IAEzB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAG3B,MAAM,UAAU,GAAwB,EAAE,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC;QACZ,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,CAAC;IAGD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAW,oBAAoB,EAAE,UAAU,CAAC,CAAC;IAE/E,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,oCAAoC,OAAO,GAAG;QACtE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,gBAAgB,CAAC;IAE3C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,OAAO;QACP,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;KAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getMediaFilesNames.action.js","sourceRoot":"","sources":["../../../../../../../src/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.ts"],"names":[],"mappings":";;AAyBA,gDA6BC;AA7BM,KAAK,UAAU,kBAAkB,CACtC,MAAgC,EAChC,MAAyB;IAEzB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAG3B,MAAM,UAAU,GAAwB,EAAE,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC;QACZ,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,CAAC;IAGD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAChC,oBAAoB,EACpB,UAAU,CACX,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,oCAAoC,OAAO,GAAG;QACtE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,gBAAgB,CAAC;IAE3C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,OAAO;QACP,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;KAC5B,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AnkiConnectClient } from '@/mcp/clients/anki-connect.client';
1
+ import { AnkiConnectClient } from "@/mcp/clients/anki-connect.client";
2
2
  export interface RetrieveMediaFileParams {
3
3
  filename: string;
4
4
  }
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.retrieveMediaFile = retrieveMediaFile;
4
4
  async function retrieveMediaFile(params, client) {
5
5
  const { filename } = params;
6
- if (!filename || filename.trim() === '') {
7
- throw new Error('Filename cannot be empty');
6
+ if (!filename || filename.trim() === "") {
7
+ throw new Error("Filename cannot be empty");
8
8
  }
9
- const result = await client.invoke('retrieveMediaFile', {
9
+ const result = await client.invoke("retrieveMediaFile", {
10
10
  filename,
11
11
  });
12
12
  if (result === false) {
@@ -1,4 +1,4 @@
1
- import { AnkiConnectClient } from '@/mcp/clients/anki-connect.client';
1
+ import { AnkiConnectClient } from "@/mcp/clients/anki-connect.client";
2
2
  export interface StoreMediaFileParams {
3
3
  filename: string;
4
4
  data?: string;
@@ -4,16 +4,16 @@ exports.storeMediaFile = storeMediaFile;
4
4
  async function storeMediaFile(params, client) {
5
5
  const { filename, data, path, url, deleteExisting = true } = params;
6
6
  if (!data && !path && !url) {
7
- throw new Error('Must provide either data, path, or url parameter');
7
+ throw new Error("Must provide either data, path, or url parameter");
8
8
  }
9
9
  const sources = [data, path, url].filter(Boolean);
10
10
  if (sources.length > 1) {
11
- throw new Error('Cannot provide multiple sources (data, path, url). Choose one.');
11
+ throw new Error("Cannot provide multiple sources (data, path, url). Choose one.");
12
12
  }
13
- if (!filename || filename.trim() === '') {
14
- throw new Error('Filename cannot be empty');
13
+ if (!filename || filename.trim() === "") {
14
+ throw new Error("Filename cannot be empty");
15
15
  }
16
- const prefixedWithUnderscore = filename.startsWith('_');
16
+ const prefixedWithUnderscore = filename.startsWith("_");
17
17
  const ankiParams = {
18
18
  filename,
19
19
  deleteExisting,
@@ -27,9 +27,9 @@ async function storeMediaFile(params, client) {
27
27
  else if (url) {
28
28
  ankiParams.url = url;
29
29
  }
30
- const result = await client.invoke('storeMediaFile', ankiParams);
30
+ const result = await client.invoke("storeMediaFile", ankiParams);
31
31
  if (!result) {
32
- throw new Error('Failed to store media file');
32
+ throw new Error("Failed to store media file");
33
33
  }
34
34
  return {
35
35
  success: true,
@@ -1 +1 @@
1
- {"version":3,"file":"storeMediaFile.action.js","sourceRoot":"","sources":["../../../../../../../src/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.ts"],"names":[],"mappings":";;AAoCA,wCAqDC;AArDM,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,MAAyB;IAEzB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAGpE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAGD,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IAGD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAGD,MAAM,sBAAsB,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAGxD,MAAM,UAAU,GAAwB;QACtC,QAAQ;QACR,cAAc;KACf,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,IAAI,IAAI,EAAE,CAAC;QAChB,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,IAAI,GAAG,EAAE,CAAC;QACf,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,CAAC;IAGD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAS,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAGzE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,mCAAmC,MAAM,EAAE;QACpD,sBAAsB;KACvB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"storeMediaFile.action.js","sourceRoot":"","sources":["../../../../../../../src/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.ts"],"names":[],"mappings":";;AAoCA,wCAuDC;AAvDM,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,MAAyB;IAEzB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAGpE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAGD,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAGD,MAAM,sBAAsB,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAGxD,MAAM,UAAU,GAAwB;QACtC,QAAQ;QACR,cAAc;KACf,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,IAAI,IAAI,EAAE,CAAC;QAChB,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,IAAI,GAAG,EAAE,CAAC;QACf,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,CAAC;IAGD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAS,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAGzE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,mCAAmC,MAAM,EAAE;QACpD,sBAAsB;KACvB,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
- export { MediaActionsTool } from './mediaActions.tool';
2
- export type { StoreMediaFileParams, StoreMediaFileResult, } from './actions/storeMediaFile.action';
3
- export type { RetrieveMediaFileParams, RetrieveMediaFileResult, } from './actions/retrieveMediaFile.action';
4
- export type { GetMediaFilesNamesParams, GetMediaFilesNamesResult, } from './actions/getMediaFilesNames.action';
5
- export type { DeleteMediaFileParams, DeleteMediaFileResult, } from './actions/deleteMediaFile.action';
1
+ export { MediaActionsTool } from "./mediaActions.tool";
2
+ export type { StoreMediaFileParams, StoreMediaFileResult, } from "./actions/storeMediaFile.action";
3
+ export type { RetrieveMediaFileParams, RetrieveMediaFileResult, } from "./actions/retrieveMediaFile.action";
4
+ export type { GetMediaFilesNamesParams, GetMediaFilesNamesResult, } from "./actions/getMediaFilesNames.action";
5
+ export type { DeleteMediaFileParams, DeleteMediaFileResult, } from "./actions/deleteMediaFile.action";
@@ -1,11 +1,11 @@
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 MediaActionsTool {
4
4
  private readonly ankiClient;
5
5
  private readonly logger;
6
6
  constructor(ankiClient: AnkiConnectClient);
7
7
  execute(params: {
8
- action: 'storeMediaFile' | 'retrieveMediaFile' | 'getMediaFilesNames' | 'deleteMediaFile';
8
+ action: "storeMediaFile" | "retrieveMediaFile" | "getMediaFilesNames" | "deleteMediaFile";
9
9
  filename?: string;
10
10
  data?: string;
11
11
  path?: string;
@@ -31,9 +31,9 @@ let MediaActionsTool = MediaActionsTool_1 = class MediaActionsTool {
31
31
  this.logger.log(`Executing media action: ${params.action}`);
32
32
  let result;
33
33
  switch (params.action) {
34
- case 'storeMediaFile':
34
+ case "storeMediaFile":
35
35
  if (!params.filename) {
36
- throw new Error('filename is required for storeMediaFile action');
36
+ throw new Error("filename is required for storeMediaFile action");
37
37
  }
38
38
  await context.reportProgress({ progress: 25, total: 100 });
39
39
  result = await (0, storeMediaFile_action_1.storeMediaFile)({
@@ -45,30 +45,31 @@ let MediaActionsTool = MediaActionsTool_1 = class MediaActionsTool {
45
45
  }, this.ankiClient);
46
46
  await context.reportProgress({ progress: 100, total: 100 });
47
47
  break;
48
- case 'retrieveMediaFile':
48
+ case "retrieveMediaFile":
49
49
  if (!params.filename) {
50
- throw new Error('filename is required for retrieveMediaFile action');
50
+ throw new Error("filename is required for retrieveMediaFile action");
51
51
  }
52
52
  await context.reportProgress({ progress: 50, total: 100 });
53
53
  result = await (0, retrieveMediaFile_action_1.retrieveMediaFile)({ filename: params.filename }, this.ankiClient);
54
54
  await context.reportProgress({ progress: 100, total: 100 });
55
55
  break;
56
- case 'getMediaFilesNames':
56
+ case "getMediaFilesNames":
57
57
  await context.reportProgress({ progress: 50, total: 100 });
58
58
  result = await (0, getMediaFilesNames_action_1.getMediaFilesNames)({ pattern: params.pattern }, this.ankiClient);
59
59
  await context.reportProgress({ progress: 100, total: 100 });
60
60
  break;
61
- case 'deleteMediaFile':
61
+ case "deleteMediaFile":
62
62
  if (!params.filename) {
63
- throw new Error('filename is required for deleteMediaFile action');
63
+ throw new Error("filename is required for deleteMediaFile action");
64
64
  }
65
65
  await context.reportProgress({ progress: 50, total: 100 });
66
66
  result = await (0, deleteMediaFile_action_1.deleteMediaFile)({ filename: params.filename }, this.ankiClient);
67
67
  await context.reportProgress({ progress: 100, total: 100 });
68
68
  break;
69
- default:
69
+ default: {
70
70
  const _exhaustive = params.action;
71
71
  throw new Error(`Unknown action: ${_exhaustive}`);
72
+ }
72
73
  }
73
74
  this.logger.log(`Successfully executed ${params.action}`);
74
75
  return (0, anki_utils_1.createSuccessResponse)(result);
@@ -77,7 +78,7 @@ let MediaActionsTool = MediaActionsTool_1 = class MediaActionsTool {
77
78
  this.logger.error(`Failed to execute ${params.action}`, error);
78
79
  return (0, anki_utils_1.createErrorResponse)(error, {
79
80
  action: params.action,
80
- hint: 'Make sure Anki is running and the media file/path is valid',
81
+ hint: "Make sure Anki is running and the media file/path is valid",
81
82
  });
82
83
  }
83
84
  }
@@ -85,7 +86,7 @@ let MediaActionsTool = MediaActionsTool_1 = class MediaActionsTool {
85
86
  exports.MediaActionsTool = MediaActionsTool;
86
87
  __decorate([
87
88
  (0, mcp_nest_1.Tool)({
88
- name: 'mediaActions',
89
+ name: "mediaActions",
89
90
  description: `Manage Anki media files (audio/images). Supports four actions:
90
91
  - storeMediaFile: Upload media to Anki (supports base64 data, file paths, or URLs)
91
92
  - retrieveMediaFile: Download media from Anki as base64
@@ -95,29 +96,34 @@ __decorate([
95
96
  Perfect for workflows like ElevenLabs TTS → Anki audio flashcards.`,
96
97
  parameters: zod_1.z.object({
97
98
  action: zod_1.z
98
- .enum(['storeMediaFile', 'retrieveMediaFile', 'getMediaFilesNames', 'deleteMediaFile'])
99
- .describe('The media action to perform'),
99
+ .enum([
100
+ "storeMediaFile",
101
+ "retrieveMediaFile",
102
+ "getMediaFilesNames",
103
+ "deleteMediaFile",
104
+ ])
105
+ .describe("The media action to perform"),
100
106
  filename: zod_1.z
101
107
  .string()
102
108
  .optional()
103
- .describe('Filename (required for storeMediaFile, retrieveMediaFile, deleteMediaFile)'),
109
+ .describe("Filename (required for storeMediaFile, retrieveMediaFile, deleteMediaFile)"),
104
110
  data: zod_1.z
105
111
  .string()
106
112
  .optional()
107
- .describe('[storeMediaFile only] Base64-encoded file content'),
113
+ .describe("[storeMediaFile only] Base64-encoded file content"),
108
114
  path: zod_1.z
109
115
  .string()
110
116
  .optional()
111
- .describe('[storeMediaFile only] Absolute file path'),
117
+ .describe("[storeMediaFile only] Absolute file path"),
112
118
  url: zod_1.z
113
119
  .string()
114
120
  .optional()
115
- .describe('[storeMediaFile only] URL to download file from'),
121
+ .describe("[storeMediaFile only] URL to download file from"),
116
122
  deleteExisting: zod_1.z
117
123
  .boolean()
118
124
  .optional()
119
125
  .default(true)
120
- .describe('[storeMediaFile only] Overwrite existing file (default: true)'),
126
+ .describe("[storeMediaFile only] Overwrite existing file (default: true)"),
121
127
  pattern: zod_1.z
122
128
  .string()
123
129
  .optional()
@@ -1 +1 @@
1
- {"version":3,"file":"mediaActions.tool.js","sourceRoot":"","sources":["../../../../../../src/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mediaActions.tool.js","sourceRoot":"","sources":["../../../../../../src/mcp/primitives/essential/tools/mediaActions/mediaActions.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 ModelFieldNamesTool {
4
4
  private readonly ankiClient;
5
5
  private readonly logger;
@@ -26,7 +26,7 @@ let ModelFieldNamesTool = ModelFieldNamesTool_1 = class ModelFieldNamesTool {
26
26
  try {
27
27
  this.logger.log(`Retrieving field names for model: ${modelName}`);
28
28
  await context.reportProgress({ progress: 25, total: 100 });
29
- const fieldNames = await this.ankiClient.invoke('modelFieldNames', {
29
+ const fieldNames = await this.ankiClient.invoke("modelFieldNames", {
30
30
  modelName: modelName,
31
31
  });
32
32
  await context.reportProgress({ progress: 75, total: 100 });
@@ -35,7 +35,7 @@ let ModelFieldNamesTool = ModelFieldNamesTool_1 = class ModelFieldNamesTool {
35
35
  await context.reportProgress({ progress: 100, total: 100 });
36
36
  return (0, anki_utils_1.createErrorResponse)(new Error(`Model "${modelName}" not found`), {
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
  if (fieldNames.length === 0) {
@@ -53,22 +53,24 @@ let ModelFieldNamesTool = ModelFieldNamesTool_1 = class ModelFieldNamesTool {
53
53
  this.logger.log(`Found ${fieldNames.length} fields for model ${modelName}`);
54
54
  let exampleFields;
55
55
  const lowerModelName = modelName.toLowerCase();
56
- if (lowerModelName.includes('basic') && !lowerModelName.includes('reversed')) {
56
+ if (lowerModelName.includes("basic") &&
57
+ !lowerModelName.includes("reversed")) {
57
58
  exampleFields = {
58
- Front: 'Question or prompt text',
59
- Back: 'Answer or response text',
59
+ Front: "Question or prompt text",
60
+ Back: "Answer or response text",
60
61
  };
61
62
  }
62
- else if (lowerModelName.includes('basic') && lowerModelName.includes('reversed')) {
63
+ else if (lowerModelName.includes("basic") &&
64
+ lowerModelName.includes("reversed")) {
63
65
  exampleFields = {
64
- Front: 'First side of the card',
65
- Back: 'Second side of the card',
66
+ Front: "First side of the card",
67
+ Back: "Second side of the card",
66
68
  };
67
69
  }
68
- else if (lowerModelName.includes('cloze')) {
70
+ else if (lowerModelName.includes("cloze")) {
69
71
  exampleFields = {
70
- Text: 'The {{c1::hidden}} text will be replaced with [...] on the card',
71
- Extra: 'Additional information or hints',
72
+ Text: "The {{c1::hidden}} text will be replaced with [...] on the card",
73
+ Extra: "Additional information or hints",
72
74
  };
73
75
  }
74
76
  const response = {
@@ -76,11 +78,12 @@ let ModelFieldNamesTool = ModelFieldNamesTool_1 = class ModelFieldNamesTool {
76
78
  modelName: modelName,
77
79
  fieldNames: fieldNames,
78
80
  total: fieldNames.length,
79
- message: `Model "${modelName}" has ${fieldNames.length} field${fieldNames.length !== 1 ? 's' : ''}`,
81
+ message: `Model "${modelName}" has ${fieldNames.length} field${fieldNames.length !== 1 ? "s" : ""}`,
80
82
  };
81
83
  if (exampleFields) {
82
84
  response.example = exampleFields;
83
- response.hint = 'Use these field names as keys when creating notes with addNote tool';
85
+ response.hint =
86
+ "Use these field names as keys when creating notes with addNote tool";
84
87
  }
85
88
  return (0, anki_utils_1.createSuccessResponse)(response);
86
89
  }
@@ -88,7 +91,7 @@ let ModelFieldNamesTool = ModelFieldNamesTool_1 = class ModelFieldNamesTool {
88
91
  this.logger.error(`Failed to retrieve field names for model ${modelName}`, error);
89
92
  return (0, anki_utils_1.createErrorResponse)(error, {
90
93
  modelName: modelName,
91
- hint: 'Make sure the model name is correct and Anki is running',
94
+ hint: "Make sure the model name is correct and Anki is running",
92
95
  });
93
96
  }
94
97
  }
@@ -96,13 +99,13 @@ let ModelFieldNamesTool = ModelFieldNamesTool_1 = class ModelFieldNamesTool {
96
99
  exports.ModelFieldNamesTool = ModelFieldNamesTool;
97
100
  __decorate([
98
101
  (0, mcp_nest_1.Tool)({
99
- name: 'modelFieldNames',
100
- description: 'Get the field names for a specific note type (model). Use this to know what fields are required when creating notes of this type.',
102
+ name: "modelFieldNames",
103
+ description: "Get the field names for a specific note type (model). Use this to know what fields are required when creating notes of this type.",
101
104
  parameters: zod_1.z.object({
102
105
  modelName: zod_1.z
103
106
  .string()
104
107
  .min(1)
105
- .describe('The name of the model/note type to get fields for'),
108
+ .describe("The name of the model/note type to get fields for"),
106
109
  }),
107
110
  }),
108
111
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"model-field-names.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/model-field-names.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-field-names.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/model-field-names.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 ModelNamesTool {
4
4
  private readonly ankiClient;
5
5
  private readonly logger;
6
6
  constructor(ankiClient: AnkiConnectClient);
7
- modelNames(_args: {}, context: Context): Promise<{
7
+ modelNames(_args: Record<string, never>, context: Context): Promise<{
8
8
  [x: string]: unknown;
9
9
  content: ({
10
10
  [x: string]: unknown;
@@ -24,16 +24,16 @@ let ModelNamesTool = ModelNamesTool_1 = class ModelNamesTool {
24
24
  }
25
25
  async modelNames(_args, context) {
26
26
  try {
27
- this.logger.log('Retrieving model names from Anki');
27
+ this.logger.log("Retrieving model names from Anki");
28
28
  await context.reportProgress({ progress: 25, total: 100 });
29
- const modelNames = await this.ankiClient.invoke('modelNames');
29
+ const modelNames = await this.ankiClient.invoke("modelNames");
30
30
  await context.reportProgress({ progress: 75, total: 100 });
31
31
  if (!modelNames || modelNames.length === 0) {
32
- this.logger.log('No models found');
32
+ this.logger.log("No models found");
33
33
  await context.reportProgress({ progress: 100, total: 100 });
34
34
  return (0, anki_utils_1.createSuccessResponse)({
35
35
  success: true,
36
- message: 'No note types found in Anki',
36
+ message: "No note types found in Anki",
37
37
  modelNames: [],
38
38
  total: 0,
39
39
  });
@@ -46,16 +46,18 @@ let ModelNamesTool = ModelNamesTool_1 = class ModelNamesTool {
46
46
  total: modelNames.length,
47
47
  message: `Found ${modelNames.length} note types`,
48
48
  commonTypes: {
49
- basic: modelNames.includes('Basic') ? 'Basic' : null,
50
- basicReversed: modelNames.includes('Basic (and reversed card)') ? 'Basic (and reversed card)' : null,
51
- cloze: modelNames.includes('Cloze') ? 'Cloze' : null,
49
+ basic: modelNames.includes("Basic") ? "Basic" : null,
50
+ basicReversed: modelNames.includes("Basic (and reversed card)")
51
+ ? "Basic (and reversed card)"
52
+ : null,
53
+ cloze: modelNames.includes("Cloze") ? "Cloze" : null,
52
54
  },
53
55
  });
54
56
  }
55
57
  catch (error) {
56
- this.logger.error('Failed to retrieve model names', error);
58
+ this.logger.error("Failed to retrieve model names", error);
57
59
  return (0, anki_utils_1.createErrorResponse)(error, {
58
- hint: 'Make sure Anki is running and AnkiConnect is installed',
60
+ hint: "Make sure Anki is running and AnkiConnect is installed",
59
61
  });
60
62
  }
61
63
  }
@@ -63,8 +65,8 @@ let ModelNamesTool = ModelNamesTool_1 = class ModelNamesTool {
63
65
  exports.ModelNamesTool = ModelNamesTool;
64
66
  __decorate([
65
67
  (0, mcp_nest_1.Tool)({
66
- name: 'modelNames',
67
- description: 'Get a list of all available note type (model) names in Anki. Use this to see what note types are available before creating notes.',
68
+ name: "modelNames",
69
+ description: "Get a list of all available note type (model) names in Anki. Use this to see what note types are available before creating notes.",
68
70
  parameters: zod_1.z.object({}),
69
71
  }),
70
72
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"model-names.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/model-names.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,8EAAsE;AACtE,0DAAoF;AAM7E,IAAM,cAAc,sBAApB,MAAM,cAAc;IAGI;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;IAE1D,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAQxD,AAAN,KAAK,CAAC,UAAU,CAAC,KAAS,EAAE,OAAgB;QAC1C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YACpD,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAG3D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAW,YAAY,CAAC,CAAC;YAExE,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAE3D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBACnC,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5D,OAAO,IAAA,kCAAqB,EAAC;oBAC3B,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,6BAA6B;oBACtC,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,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,SAAS,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC;YAErD,OAAO,IAAA,kCAAqB,EAAC;gBAC3B,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,UAAU;gBACtB,KAAK,EAAE,UAAU,CAAC,MAAM;gBACxB,OAAO,EAAE,SAAS,UAAU,CAAC,MAAM,aAAa;gBAChD,WAAW,EAAE;oBACX,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;oBACpD,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI;oBACpG,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;iBACrD;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YAC3D,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE;gBAChC,IAAI,EAAE,wDAAwD;aAC/D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AArDY,wCAAc;AAWnB;IANL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,mIAAmI;QACrI,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;KACzB,CAAC;;;;gDA0CD;yBApDU,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,cAAc,CAqD1B"}
1
+ {"version":3,"file":"model-names.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/model-names.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,8EAAsE;AACtE,0DAGgC;AAMzB,IAAM,cAAc,sBAApB,MAAM,cAAc;IAGI;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;IAE1D,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAQxD,AAAN,KAAK,CAAC,UAAU,CAAC,KAA4B,EAAE,OAAgB;QAC7D,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YACpD,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAG3D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAW,YAAY,CAAC,CAAC;YAExE,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAE3D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBACnC,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5D,OAAO,IAAA,kCAAqB,EAAC;oBAC3B,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,6BAA6B;oBACtC,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,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,SAAS,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC;YAErD,OAAO,IAAA,kCAAqB,EAAC;gBAC3B,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,UAAU;gBACtB,KAAK,EAAE,UAAU,CAAC,MAAM;gBACxB,OAAO,EAAE,SAAS,UAAU,CAAC,MAAM,aAAa;gBAChD,WAAW,EAAE;oBACX,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;oBACpD,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,2BAA2B,CAAC;wBAC7D,CAAC,CAAC,2BAA2B;wBAC7B,CAAC,CAAC,IAAI;oBACR,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;iBACrD;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YAC3D,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE;gBAChC,IAAI,EAAE,wDAAwD;aAC/D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AAvDY,wCAAc;AAWnB;IANL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,mIAAmI;QACrI,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;KACzB,CAAC;;;;gDA4CD;yBAtDU,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,cAAc,CAuD1B"}
@@ -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 ModelStylingTool {
4
4
  private readonly ankiClient;
5
5
  private readonly logger;