anki-mcp-http 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +2 -0
  2. package/dist/app.module.js +12 -2
  3. package/dist/app.module.js.map +1 -1
  4. package/dist/cli.d.ts +1 -0
  5. package/dist/cli.js +19 -5
  6. package/dist/cli.js.map +1 -1
  7. package/dist/main-http.js +1 -0
  8. package/dist/main-http.js.map +1 -1
  9. package/dist/mcp/primitives/essential/index.d.ts +1 -0
  10. package/dist/mcp/primitives/essential/index.js +5 -1
  11. package/dist/mcp/primitives/essential/index.js.map +1 -1
  12. package/dist/mcp/primitives/essential/tools/add-note.tool.d.ts +2 -2
  13. package/dist/mcp/primitives/essential/tools/add-note.tool.js.map +1 -1
  14. package/dist/mcp/primitives/essential/tools/create-deck.tool.d.ts +2 -2
  15. package/dist/mcp/primitives/essential/tools/create-deck.tool.js +2 -1
  16. package/dist/mcp/primitives/essential/tools/create-deck.tool.js.map +1 -1
  17. package/dist/mcp/primitives/essential/tools/create-model.tool.d.ts +3 -3
  18. package/dist/mcp/primitives/essential/tools/create-model.tool.js.map +1 -1
  19. package/dist/mcp/primitives/essential/tools/delete-notes.tool.d.ts +2 -2
  20. package/dist/mcp/primitives/essential/tools/delete-notes.tool.js.map +1 -1
  21. package/dist/mcp/primitives/essential/tools/find-notes.tool.d.ts +2 -2
  22. package/dist/mcp/primitives/essential/tools/find-notes.tool.js.map +1 -1
  23. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.d.ts +2 -2
  24. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.js.map +1 -1
  25. package/dist/mcp/primitives/essential/tools/list-decks.tool.d.ts +2 -2
  26. package/dist/mcp/primitives/essential/tools/list-decks.tool.js.map +1 -1
  27. package/dist/mcp/primitives/essential/tools/mediaActions/actions/deleteMediaFile.action.d.ts +10 -0
  28. package/dist/mcp/primitives/essential/tools/mediaActions/actions/deleteMediaFile.action.js +18 -0
  29. package/dist/mcp/primitives/essential/tools/mediaActions/actions/deleteMediaFile.action.js.map +1 -0
  30. package/dist/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.d.ts +12 -0
  31. package/dist/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.js +22 -0
  32. package/dist/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.js.map +1 -0
  33. package/dist/mcp/primitives/essential/tools/mediaActions/actions/retrieveMediaFile.action.d.ts +12 -0
  34. package/dist/mcp/primitives/essential/tools/mediaActions/actions/retrieveMediaFile.action.js +29 -0
  35. package/dist/mcp/primitives/essential/tools/mediaActions/actions/retrieveMediaFile.action.js.map +1 -0
  36. package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.d.ts +15 -0
  37. package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.js +41 -0
  38. package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.js.map +1 -0
  39. package/dist/mcp/primitives/essential/tools/mediaActions/index.d.ts +5 -0
  40. package/dist/mcp/primitives/essential/tools/mediaActions/index.js +6 -0
  41. package/dist/mcp/primitives/essential/tools/mediaActions/index.js.map +1 -0
  42. package/dist/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.d.ts +89 -0
  43. package/dist/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.js +135 -0
  44. package/dist/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.js.map +1 -0
  45. package/dist/mcp/primitives/essential/tools/model-field-names.tool.d.ts +2 -2
  46. package/dist/mcp/primitives/essential/tools/model-field-names.tool.js.map +1 -1
  47. package/dist/mcp/primitives/essential/tools/model-names.tool.d.ts +2 -2
  48. package/dist/mcp/primitives/essential/tools/model-names.tool.js.map +1 -1
  49. package/dist/mcp/primitives/essential/tools/model-styling.tool.d.ts +2 -2
  50. package/dist/mcp/primitives/essential/tools/model-styling.tool.js.map +1 -1
  51. package/dist/mcp/primitives/essential/tools/notes-info.tool.d.ts +2 -2
  52. package/dist/mcp/primitives/essential/tools/notes-info.tool.js.map +1 -1
  53. package/dist/mcp/primitives/essential/tools/present-card.tool.d.ts +2 -2
  54. package/dist/mcp/primitives/essential/tools/present-card.tool.js.map +1 -1
  55. package/dist/mcp/primitives/essential/tools/rate-card.tool.d.ts +2 -2
  56. package/dist/mcp/primitives/essential/tools/rate-card.tool.js.map +1 -1
  57. package/dist/mcp/primitives/essential/tools/sync.tool.d.ts +2 -2
  58. package/dist/mcp/primitives/essential/tools/sync.tool.js.map +1 -1
  59. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.d.ts +2 -2
  60. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.js.map +1 -1
  61. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.d.ts +2 -2
  62. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.js.map +1 -1
  63. package/dist/mcp/primitives/gui/index.d.ts +21 -2
  64. package/dist/mcp/primitives/gui/index.js +73 -5
  65. package/dist/mcp/primitives/gui/index.js.map +1 -1
  66. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.d.ts +88 -0
  67. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js +111 -0
  68. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js.map +1 -0
  69. package/dist/mcp/primitives/gui/tools/gui-browse.tool.d.ts +87 -0
  70. package/dist/mcp/primitives/gui/tools/gui-browse.tool.js +98 -0
  71. package/dist/mcp/primitives/gui/tools/gui-browse.tool.js.map +1 -0
  72. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.d.ts +81 -0
  73. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js +76 -0
  74. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js.map +1 -0
  75. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.d.ts +81 -0
  76. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js +64 -0
  77. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js.map +1 -0
  78. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.d.ts +83 -0
  79. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js +85 -0
  80. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js.map +1 -0
  81. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.d.ts +83 -0
  82. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js +79 -0
  83. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js.map +1 -0
  84. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.d.ts +83 -0
  85. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js +87 -0
  86. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js.map +1 -0
  87. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.d.ts +81 -0
  88. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js +82 -0
  89. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js.map +1 -0
  90. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.d.ts +81 -0
  91. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js +74 -0
  92. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js.map +1 -0
  93. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.d.ts +81 -0
  94. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js +74 -0
  95. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js.map +1 -0
  96. package/dist/mcp/primitives/gui/tools/gui-undo.tool.d.ts +81 -0
  97. package/dist/mcp/primitives/gui/tools/gui-undo.tool.js +74 -0
  98. package/dist/mcp/primitives/gui/tools/gui-undo.tool.js.map +1 -0
  99. package/dist/mcp/types/anki.types.d.ts +28 -0
  100. package/dist/tsconfig.build.tsbuildinfo +1 -1
  101. package/package.json +13 -7
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var GuiUndoTool_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.GuiUndoTool = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const mcp_nest_1 = require("@rekog/mcp-nest");
16
+ const zod_1 = require("zod");
17
+ const anki_connect_client_1 = require("../../../clients/anki-connect.client");
18
+ const anki_utils_1 = require("../../../utils/anki.utils");
19
+ let GuiUndoTool = GuiUndoTool_1 = class GuiUndoTool {
20
+ ankiClient;
21
+ logger = new common_1.Logger(GuiUndoTool_1.name);
22
+ constructor(ankiClient) {
23
+ this.ankiClient = ankiClient;
24
+ }
25
+ async guiUndo(_args, context) {
26
+ try {
27
+ this.logger.log('Undoing last action in Anki');
28
+ await context.reportProgress({ progress: 50, total: 100 });
29
+ const success = await this.ankiClient.invoke('guiUndo');
30
+ await context.reportProgress({ progress: 100, total: 100 });
31
+ if (!success) {
32
+ this.logger.warn('Nothing to undo');
33
+ return (0, anki_utils_1.createSuccessResponse)({
34
+ success: true,
35
+ undone: false,
36
+ message: 'Nothing to undo',
37
+ hint: 'There are no recent actions to undo in Anki.',
38
+ });
39
+ }
40
+ this.logger.log('Last action undone successfully');
41
+ return (0, anki_utils_1.createSuccessResponse)({
42
+ success: true,
43
+ undone: true,
44
+ message: 'Last action undone successfully',
45
+ hint: 'The previous action has been reversed. Check Anki GUI to verify.',
46
+ });
47
+ }
48
+ catch (error) {
49
+ this.logger.error('Failed to undo action', error);
50
+ return (0, anki_utils_1.createErrorResponse)(error, {
51
+ hint: 'Make sure Anki is running and the GUI is visible',
52
+ });
53
+ }
54
+ }
55
+ };
56
+ exports.GuiUndoTool = GuiUndoTool;
57
+ __decorate([
58
+ (0, mcp_nest_1.Tool)({
59
+ name: 'guiUndo',
60
+ description: 'Undo the last action or card in Anki. Returns true if undo succeeded, false otherwise. ' +
61
+ 'IMPORTANT: Only use when user explicitly requests undoing an action. ' +
62
+ 'This tool is for note editing/creation workflows, NOT for review sessions. ' +
63
+ 'Use this to undo mistakes in note creation, editing, or card management.',
64
+ parameters: zod_1.z.object({}),
65
+ }),
66
+ __metadata("design:type", Function),
67
+ __metadata("design:paramtypes", [Object, Object]),
68
+ __metadata("design:returntype", Promise)
69
+ ], GuiUndoTool.prototype, "guiUndo", null);
70
+ exports.GuiUndoTool = GuiUndoTool = GuiUndoTool_1 = __decorate([
71
+ (0, common_1.Injectable)(),
72
+ __metadata("design:paramtypes", [anki_connect_client_1.AnkiConnectClient])
73
+ ], GuiUndoTool);
74
+ //# sourceMappingURL=gui-undo.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gui-undo.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/gui/tools/gui-undo.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,8EAAsE;AACtE,0DAAoF;AAM7E,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAGO;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;IAEvD,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAWxD,AAAN,KAAK,CAAC,OAAO,CAAC,KAAS,EAAE,OAAgB;QACvC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC/C,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAG3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAU,SAAS,CAAC,CAAC;YAEjE,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACpC,OAAO,IAAA,kCAAqB,EAAC;oBAC3B,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,iBAAiB;oBAC1B,IAAI,EAAE,8CAA8C;iBACrD,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAEnD,OAAO,IAAA,kCAAqB,EAAC;gBAC3B,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,iCAAiC;gBAC1C,IAAI,EAAE,kEAAkE;aACzE,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAElD,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE;gBAChC,IAAI,EAAE,kDAAkD;aACzD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AAlDY,kCAAW;AAchB;IATL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,SAAS;QACf,WAAW,EACT,yFAAyF;YACzF,uEAAuE;YACvE,6EAA6E;YAC7E,0EAA0E;QAC5E,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;KACzB,CAAC;;;;0CAoCD;sBAjDU,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,WAAW,CAkDvB"}
@@ -150,3 +150,31 @@ export interface UpdateModelStylingParams {
150
150
  css: string;
151
151
  };
152
152
  }
153
+ export interface GuiCurrentCardInfo {
154
+ answer: string;
155
+ question: string;
156
+ deckName: string;
157
+ modelName: string;
158
+ cardId: number;
159
+ buttons: number[];
160
+ nextReviews: string[];
161
+ fields?: Record<string, {
162
+ value: string;
163
+ order: number;
164
+ }>;
165
+ }
166
+ export interface GuiBrowseParams {
167
+ query: string;
168
+ reorderCards?: {
169
+ order: 'ascending' | 'descending';
170
+ columnId: string;
171
+ };
172
+ }
173
+ export interface GuiAddCardsParams {
174
+ note: {
175
+ deckName: string;
176
+ modelName: string;
177
+ fields: Record<string, string>;
178
+ tags?: string[];
179
+ };
180
+ }