anki-mcp-http 0.8.0 → 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 (140) hide show
  1. package/LICENSE +5 -19
  2. package/README.md +74 -35
  3. package/dist/anki-config.service.d.ts +2 -2
  4. package/dist/anki-config.service.js +4 -4
  5. package/dist/app.module.d.ts +1 -1
  6. package/dist/app.module.js +7 -7
  7. package/dist/app.module.js.map +1 -1
  8. package/dist/bootstrap.d.ts +1 -1
  9. package/dist/bootstrap.js +4 -4
  10. package/dist/cli.js +13 -13
  11. package/dist/cli.js.map +1 -1
  12. package/dist/http/guards/origin-validation.guard.d.ts +1 -1
  13. package/dist/http/guards/origin-validation.guard.js +5 -5
  14. package/dist/main-http.js +3 -3
  15. package/dist/main-http.js.map +1 -1
  16. package/dist/main-stdio.js +2 -2
  17. package/dist/mcp/clients/__mocks__/anki-connect.client.js +1 -1
  18. package/dist/mcp/clients/anki-connect.client.d.ts +1 -1
  19. package/dist/mcp/clients/anki-connect.client.js +7 -7
  20. package/dist/mcp/config/anki-config.interface.js +1 -1
  21. package/dist/mcp/primitives/essential/index.d.ts +26 -26
  22. package/dist/mcp/primitives/essential/index.js +1 -4
  23. package/dist/mcp/primitives/essential/index.js.map +1 -1
  24. package/dist/mcp/primitives/essential/prompts/review-session.prompt.js +5 -5
  25. package/dist/mcp/primitives/essential/prompts/review-session.prompt.js.map +1 -1
  26. package/dist/mcp/primitives/essential/prompts/twenty-rules.prompt/index.js +10 -8
  27. package/dist/mcp/primitives/essential/prompts/twenty-rules.prompt/index.js.map +1 -1
  28. package/dist/mcp/primitives/essential/resources/system-info.resource.js +12 -12
  29. package/dist/mcp/primitives/essential/tools/add-note.tool.d.ts +3 -3
  30. package/dist/mcp/primitives/essential/tools/add-note.tool.js +27 -30
  31. package/dist/mcp/primitives/essential/tools/add-note.tool.js.map +1 -1
  32. package/dist/mcp/primitives/essential/tools/create-deck.tool.d.ts +2 -2
  33. package/dist/mcp/primitives/essential/tools/create-deck.tool.js +15 -15
  34. package/dist/mcp/primitives/essential/tools/create-deck.tool.js.map +1 -1
  35. package/dist/mcp/primitives/essential/tools/create-model.tool.d.ts +3 -3
  36. package/dist/mcp/primitives/essential/tools/create-model.tool.js +20 -18
  37. package/dist/mcp/primitives/essential/tools/create-model.tool.js.map +1 -1
  38. package/dist/mcp/primitives/essential/tools/delete-notes.tool.d.ts +2 -2
  39. package/dist/mcp/primitives/essential/tools/delete-notes.tool.js +22 -22
  40. package/dist/mcp/primitives/essential/tools/delete-notes.tool.js.map +1 -1
  41. package/dist/mcp/primitives/essential/tools/find-notes.tool.d.ts +2 -2
  42. package/dist/mcp/primitives/essential/tools/find-notes.tool.js +14 -14
  43. package/dist/mcp/primitives/essential/tools/find-notes.tool.js.map +1 -1
  44. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.d.ts +2 -2
  45. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.js +17 -15
  46. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.js.map +1 -1
  47. package/dist/mcp/primitives/essential/tools/list-decks.tool.d.ts +2 -2
  48. package/dist/mcp/primitives/essential/tools/list-decks.tool.js +10 -10
  49. package/dist/mcp/primitives/essential/tools/list-decks.tool.js.map +1 -1
  50. package/dist/mcp/primitives/essential/tools/mediaActions/actions/deleteMediaFile.action.d.ts +1 -1
  51. package/dist/mcp/primitives/essential/tools/mediaActions/actions/deleteMediaFile.action.js +3 -3
  52. package/dist/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.d.ts +1 -1
  53. package/dist/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.js +1 -1
  54. package/dist/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.js.map +1 -1
  55. package/dist/mcp/primitives/essential/tools/mediaActions/actions/retrieveMediaFile.action.d.ts +1 -1
  56. package/dist/mcp/primitives/essential/tools/mediaActions/actions/retrieveMediaFile.action.js +3 -3
  57. package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.d.ts +1 -1
  58. package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.js +7 -7
  59. package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.js.map +1 -1
  60. package/dist/mcp/primitives/essential/tools/mediaActions/index.d.ts +5 -5
  61. package/dist/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.d.ts +3 -3
  62. package/dist/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.js +23 -17
  63. package/dist/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.js.map +1 -1
  64. package/dist/mcp/primitives/essential/tools/model-field-names.tool.d.ts +2 -2
  65. package/dist/mcp/primitives/essential/tools/model-field-names.tool.js +20 -17
  66. package/dist/mcp/primitives/essential/tools/model-field-names.tool.js.map +1 -1
  67. package/dist/mcp/primitives/essential/tools/model-names.tool.d.ts +3 -3
  68. package/dist/mcp/primitives/essential/tools/model-names.tool.js +13 -11
  69. package/dist/mcp/primitives/essential/tools/model-names.tool.js.map +1 -1
  70. package/dist/mcp/primitives/essential/tools/model-styling.tool.d.ts +2 -2
  71. package/dist/mcp/primitives/essential/tools/model-styling.tool.js +11 -11
  72. package/dist/mcp/primitives/essential/tools/model-styling.tool.js.map +1 -1
  73. package/dist/mcp/primitives/essential/tools/notes-info.tool.d.ts +2 -2
  74. package/dist/mcp/primitives/essential/tools/notes-info.tool.js +19 -19
  75. package/dist/mcp/primitives/essential/tools/notes-info.tool.js.map +1 -1
  76. package/dist/mcp/primitives/essential/tools/present-card.tool.d.ts +2 -2
  77. package/dist/mcp/primitives/essential/tools/present-card.tool.js +11 -11
  78. package/dist/mcp/primitives/essential/tools/present-card.tool.js.map +1 -1
  79. package/dist/mcp/primitives/essential/tools/rate-card.tool.d.ts +2 -2
  80. package/dist/mcp/primitives/essential/tools/rate-card.tool.js +19 -14
  81. package/dist/mcp/primitives/essential/tools/rate-card.tool.js.map +1 -1
  82. package/dist/mcp/primitives/essential/tools/sync.tool.d.ts +3 -3
  83. package/dist/mcp/primitives/essential/tools/sync.tool.js +8 -8
  84. package/dist/mcp/primitives/essential/tools/sync.tool.js.map +1 -1
  85. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.d.ts +2 -2
  86. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.js +19 -19
  87. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.js.map +1 -1
  88. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.d.ts +3 -3
  89. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.js +32 -32
  90. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.js.map +1 -1
  91. package/dist/mcp/primitives/gui/index.d.ts +17 -17
  92. package/dist/mcp/primitives/gui/index.js.map +1 -1
  93. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.d.ts +2 -2
  94. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js +22 -22
  95. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js.map +1 -1
  96. package/dist/mcp/primitives/gui/tools/gui-browse.tool.d.ts +3 -3
  97. package/dist/mcp/primitives/gui/tools/gui-browse.tool.js +15 -14
  98. package/dist/mcp/primitives/gui/tools/gui-browse.tool.js.map +1 -1
  99. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.d.ts +3 -3
  100. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js +13 -13
  101. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js.map +1 -1
  102. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.d.ts +3 -3
  103. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js +12 -12
  104. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js.map +1 -1
  105. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.d.ts +2 -2
  106. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js +15 -12
  107. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js.map +1 -1
  108. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.d.ts +2 -2
  109. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js +13 -12
  110. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js.map +1 -1
  111. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.d.ts +2 -2
  112. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js +18 -15
  113. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js.map +1 -1
  114. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.d.ts +3 -3
  115. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js +15 -14
  116. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js.map +1 -1
  117. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.d.ts +3 -3
  118. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js +15 -15
  119. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js.map +1 -1
  120. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.d.ts +3 -3
  121. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js +15 -15
  122. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js.map +1 -1
  123. package/dist/mcp/primitives/gui/tools/gui-undo.tool.d.ts +3 -3
  124. package/dist/mcp/primitives/gui/tools/gui-undo.tool.js +15 -15
  125. package/dist/mcp/primitives/gui/tools/gui-undo.tool.js.map +1 -1
  126. package/dist/mcp/types/anki.types.d.ts +2 -2
  127. package/dist/mcp/utils/anki.utils.d.ts +3 -3
  128. package/dist/mcp/utils/anki.utils.js +42 -38
  129. package/dist/mcp/utils/anki.utils.js.map +1 -1
  130. package/dist/mcp/utils/markdown.utils.js +16 -12
  131. package/dist/mcp/utils/markdown.utils.js.map +1 -1
  132. package/dist/mcp/utils/mcpb-workarounds.js +2 -2
  133. package/dist/mcp/utils/mcpb-workarounds.js.map +1 -1
  134. package/dist/services/ngrok.service.js +30 -30
  135. package/dist/services/ngrok.service.js.map +1 -1
  136. package/dist/test-fixtures/mock-data.d.ts +2 -2
  137. package/dist/test-fixtures/mock-data.js +46 -46
  138. package/dist/test-fixtures/mock-data.js.map +1 -1
  139. package/dist/tsconfig.build.tsbuildinfo +1 -1
  140. package/package.json +12 -7
@@ -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":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,iFAAsE;AACtE,6DAGgC;AAChC,2EAGyC;AACzC,iFAG4C;AAC5C,mFAG6C;AAC7C,6EAG0C;AAOnC,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAGE;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IAE5D,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAmDxD,AAAN,KAAK,CAAC,OAAO,CACX,MAYC,EACD,OAAgB;QAEhB,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAE5D,IAAI,MAIqB,CAAC;YAG1B,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,KAAK,gBAAgB;oBACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACrB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;oBACpE,CAAC;oBACD,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC3D,MAAM,GAAG,MAAM,IAAA,sCAAc,EAC3B;wBACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,cAAc,EAAE,MAAM,CAAC,cAAc;qBACtC,EACD,IAAI,CAAC,UAAU,CAChB,CAAC;oBACF,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC5D,MAAM;gBAER,KAAK,mBAAmB;oBACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACrB,MAAM,IAAI,KAAK,CACb,mDAAmD,CACpD,CAAC;oBACJ,CAAC;oBACD,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC3D,MAAM,GAAG,MAAM,IAAA,4CAAiB,EAC9B,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAC7B,IAAI,CAAC,UAAU,CAChB,CAAC;oBACF,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC5D,MAAM;gBAER,KAAK,oBAAoB;oBACvB,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC3D,MAAM,GAAG,MAAM,IAAA,8CAAkB,EAC/B,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAC3B,IAAI,CAAC,UAAU,CAChB,CAAC;oBACF,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC5D,MAAM;gBAER,KAAK,iBAAiB;oBACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACrB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBACrE,CAAC;oBACD,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC3D,MAAM,GAAG,MAAM,IAAA,wCAAe,EAC5B,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAC7B,IAAI,CAAC,UAAU,CAChB,CAAC;oBACF,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC5D,MAAM;gBAER,OAAO,CAAC,CAAC,CAAC;oBAER,MAAM,WAAW,GAAU,MAAM,CAAC,MAAM,CAAC;oBACzC,MAAM,IAAI,KAAK,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1D,OAAO,IAAA,kCAAqB,EAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;YAC/D,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE;gBAChC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,4DAA4D;aACnE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AAvJY,4CAAgB;AAsDrB;IAjDL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE;;;;;;mEAMkD;QAC/D,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,OAAC;iBACN,IAAI,CAAC;gBACJ,gBAAgB;gBAChB,mBAAmB;gBACnB,oBAAoB;gBACpB,iBAAiB;aAClB,CAAC;iBACD,QAAQ,CAAC,6BAA6B,CAAC;YAC1C,QAAQ,EAAE,OAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,4EAA4E,CAC7E;YACH,IAAI,EAAE,OAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,IAAI,EAAE,OAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0CAA0C,CAAC;YACvD,GAAG,EAAE,OAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,cAAc,EAAE,OAAC;iBACd,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CACP,+DAA+D,CAChE;YACH,OAAO,EAAE,OAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0DAA0D,CAAC;SACxE,CAAC;KACH,CAAC;;;;+CAiGD;2BAtJU,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,gBAAgB,CAuJ5B"}
@@ -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;
@@ -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;