anki-mcp-http 0.3.0 → 0.4.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 (65) 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/tools/add-note.tool.d.ts +1 -1
  10. package/dist/mcp/primitives/essential/tools/create-deck.tool.d.ts +1 -1
  11. package/dist/mcp/primitives/essential/tools/create-deck.tool.js +2 -1
  12. package/dist/mcp/primitives/essential/tools/create-deck.tool.js.map +1 -1
  13. package/dist/mcp/primitives/essential/tools/create-model.tool.d.ts +1 -1
  14. package/dist/mcp/primitives/essential/tools/delete-notes.tool.d.ts +1 -1
  15. package/dist/mcp/primitives/essential/tools/find-notes.tool.d.ts +1 -1
  16. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.d.ts +1 -1
  17. package/dist/mcp/primitives/essential/tools/list-decks.tool.d.ts +1 -1
  18. package/dist/mcp/primitives/essential/tools/model-field-names.tool.d.ts +1 -1
  19. package/dist/mcp/primitives/essential/tools/model-names.tool.d.ts +1 -1
  20. package/dist/mcp/primitives/essential/tools/model-styling.tool.d.ts +1 -1
  21. package/dist/mcp/primitives/essential/tools/notes-info.tool.d.ts +1 -1
  22. package/dist/mcp/primitives/essential/tools/present-card.tool.d.ts +1 -1
  23. package/dist/mcp/primitives/essential/tools/rate-card.tool.d.ts +1 -1
  24. package/dist/mcp/primitives/essential/tools/sync.tool.d.ts +1 -1
  25. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.d.ts +1 -1
  26. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.d.ts +1 -1
  27. package/dist/mcp/primitives/gui/index.d.ts +21 -2
  28. package/dist/mcp/primitives/gui/index.js +73 -5
  29. package/dist/mcp/primitives/gui/index.js.map +1 -1
  30. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.d.ts +88 -0
  31. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js +111 -0
  32. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js.map +1 -0
  33. package/dist/mcp/primitives/gui/tools/gui-browse.tool.d.ts +87 -0
  34. package/dist/mcp/primitives/gui/tools/gui-browse.tool.js +98 -0
  35. package/dist/mcp/primitives/gui/tools/gui-browse.tool.js.map +1 -0
  36. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.d.ts +81 -0
  37. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js +76 -0
  38. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js.map +1 -0
  39. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.d.ts +81 -0
  40. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js +64 -0
  41. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js.map +1 -0
  42. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.d.ts +83 -0
  43. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js +85 -0
  44. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js.map +1 -0
  45. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.d.ts +83 -0
  46. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js +79 -0
  47. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js.map +1 -0
  48. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.d.ts +83 -0
  49. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js +87 -0
  50. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js.map +1 -0
  51. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.d.ts +81 -0
  52. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js +82 -0
  53. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js.map +1 -0
  54. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.d.ts +81 -0
  55. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js +74 -0
  56. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js.map +1 -0
  57. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.d.ts +81 -0
  58. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js +74 -0
  59. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js.map +1 -0
  60. package/dist/mcp/primitives/gui/tools/gui-undo.tool.d.ts +81 -0
  61. package/dist/mcp/primitives/gui/tools/gui-undo.tool.js +74 -0
  62. package/dist/mcp/primitives/gui/tools/gui-undo.tool.js.map +1 -0
  63. package/dist/mcp/types/anki.types.d.ts +28 -0
  64. package/dist/tsconfig.build.tsbuildinfo +1 -1
  65. package/package.json +13 -7
package/README.md CHANGED
@@ -336,6 +336,8 @@ tail -f ~/Library/Logs/Claude/mcp-server-Anki\ MCP\ Server.log
336
336
 
337
337
  You can debug the MCP server using the MCP Inspector and attaching a debugger from your IDE (WebStorm, VS Code, etc.).
338
338
 
339
+ **Note for HTTP Mode:** When testing HTTP mode (Streamable HTTP) with MCP Inspector, use "Connection Type: Via Proxy" to avoid CORS errors.
340
+
339
341
  #### Step 1: Configure Debug Server in MCP Inspector
340
342
 
341
343
  The `mcp-inspector-config.json` already includes a debug server configuration:
@@ -35,7 +35,12 @@ let AppModule = AppModule_1 = class AppModule {
35
35
  useClass: anki_config_service_1.AnkiConfigService,
36
36
  },
37
37
  }),
38
- gui_1.McpPrimitivesAnkiGuiModule.forRoot(),
38
+ gui_1.McpPrimitivesAnkiGuiModule.forRoot({
39
+ ankiConfigProvider: {
40
+ provide: essential_1.ANKI_CONFIG,
41
+ useClass: anki_config_service_1.AnkiConfigService,
42
+ },
43
+ }),
39
44
  ],
40
45
  providers: [anki_config_service_1.AnkiConfigService],
41
46
  };
@@ -61,7 +66,12 @@ let AppModule = AppModule_1 = class AppModule {
61
66
  useClass: anki_config_service_1.AnkiConfigService,
62
67
  },
63
68
  }),
64
- gui_1.McpPrimitivesAnkiGuiModule.forRoot(),
69
+ gui_1.McpPrimitivesAnkiGuiModule.forRoot({
70
+ ankiConfigProvider: {
71
+ provide: essential_1.ANKI_CONFIG,
72
+ useClass: anki_config_service_1.AnkiConfigService,
73
+ },
74
+ }),
65
75
  ],
66
76
  providers: [anki_config_service_1.AnkiConfigService],
67
77
  };
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,2CAA8C;AAC9C,8CAA8D;AAC9D,0DAGoC;AACpC,8CAAkE;AAClE,+DAA0D;AAGnD,IAAM,SAAS,iBAAf,MAAM,SAAS;IAIpB,MAAM,CAAC,QAAQ;QACb,OAAO;YACL,MAAM,EAAE,WAAS;YACjB,OAAO,EAAE;gBAEP,qBAAY,CAAC,OAAO,CAAC;oBACnB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;iBACpC,CAAC;gBAGF,oBAAS,CAAC,OAAO,CAAC;oBAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,kBAAkB;oBACvD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;oBAClD,SAAS,EAAE,2BAAgB,CAAC,KAAK;iBAClC,CAAC;gBAGF,4CAAgC,CAAC,OAAO,CAAC;oBACvC,kBAAkB,EAAE;wBAClB,OAAO,EAAE,uBAAW;wBACpB,QAAQ,EAAE,uCAAiB;qBAC5B;iBACF,CAAC;gBAGF,gCAA0B,CAAC,OAAO,EAAE;aACrC;YACD,SAAS,EAAE,CAAC,uCAAiB,CAAC;SAC/B,CAAC;IACJ,CAAC;IAKD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,MAAM,EAAE,WAAS;YACjB,OAAO,EAAE;gBAEP,qBAAY,CAAC,OAAO,CAAC;oBACnB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;iBACpC,CAAC;gBAGF,oBAAS,CAAC,OAAO,CAAC;oBAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,kBAAkB;oBACvD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;oBAClD,SAAS,EAAE,2BAAgB,CAAC,eAAe;oBAC3C,WAAW,EAAE,GAAG;iBACjB,CAAC;gBAGF,4CAAgC,CAAC,OAAO,CAAC;oBACvC,kBAAkB,EAAE;wBAClB,OAAO,EAAE,uBAAW;wBACpB,QAAQ,EAAE,uCAAiB;qBAC5B;iBACF,CAAC;gBAGF,gCAA0B,CAAC,OAAO,EAAE;aACrC;YACD,SAAS,EAAE,CAAC,uCAAiB,CAAC;SAC/B,CAAC;IACJ,CAAC;CACF,CAAA;AAzEY,8BAAS;oBAAT,SAAS;IADrB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,SAAS,CAyErB"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,2CAA8C;AAC9C,8CAA8D;AAC9D,0DAGoC;AACpC,8CAAkE;AAClE,+DAA0D;AAGnD,IAAM,SAAS,iBAAf,MAAM,SAAS;IAIpB,MAAM,CAAC,QAAQ;QACb,OAAO;YACL,MAAM,EAAE,WAAS;YACjB,OAAO,EAAE;gBAEP,qBAAY,CAAC,OAAO,CAAC;oBACnB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;iBACpC,CAAC;gBAGF,oBAAS,CAAC,OAAO,CAAC;oBAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,kBAAkB;oBACvD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;oBAClD,SAAS,EAAE,2BAAgB,CAAC,KAAK;iBAClC,CAAC;gBAGF,4CAAgC,CAAC,OAAO,CAAC;oBACvC,kBAAkB,EAAE;wBAClB,OAAO,EAAE,uBAAW;wBACpB,QAAQ,EAAE,uCAAiB;qBAC5B;iBACF,CAAC;gBAGF,gCAA0B,CAAC,OAAO,CAAC;oBACjC,kBAAkB,EAAE;wBAClB,OAAO,EAAE,uBAAW;wBACpB,QAAQ,EAAE,uCAAiB;qBAC5B;iBACF,CAAC;aACH;YACD,SAAS,EAAE,CAAC,uCAAiB,CAAC;SAC/B,CAAC;IACJ,CAAC;IAKD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,MAAM,EAAE,WAAS;YACjB,OAAO,EAAE;gBAEP,qBAAY,CAAC,OAAO,CAAC;oBACnB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;iBACpC,CAAC;gBAGF,oBAAS,CAAC,OAAO,CAAC;oBAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,kBAAkB;oBACvD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;oBAClD,SAAS,EAAE,2BAAgB,CAAC,eAAe;oBAC3C,WAAW,EAAE,GAAG;iBACjB,CAAC;gBAGF,4CAAgC,CAAC,OAAO,CAAC;oBACvC,kBAAkB,EAAE;wBAClB,OAAO,EAAE,uBAAW;wBACpB,QAAQ,EAAE,uCAAiB;qBAC5B;iBACF,CAAC;gBAGF,gCAA0B,CAAC,OAAO,CAAC;oBACjC,kBAAkB,EAAE;wBAClB,OAAO,EAAE,uBAAW;wBACpB,QAAQ,EAAE,uCAAiB;qBAC5B;iBACF,CAAC;aACH;YACD,SAAS,EAAE,CAAC,uCAAiB,CAAC;SAC/B,CAAC;IACJ,CAAC;CACF,CAAA;AAnFY,8BAAS;oBAAT,SAAS;IADrB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,SAAS,CAmFrB"}
package/dist/cli.d.ts CHANGED
@@ -3,5 +3,6 @@ export interface CliOptions {
3
3
  host: string;
4
4
  ankiConnect: string;
5
5
  }
6
+ export declare function checkForUpdates(): void;
6
7
  export declare function parseCliArgs(): CliOptions;
7
8
  export declare function displayStartupBanner(options: CliOptions): void;
package/dist/cli.js CHANGED
@@ -1,19 +1,29 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.checkForUpdates = checkForUpdates;
3
7
  exports.parseCliArgs = parseCliArgs;
4
8
  exports.displayStartupBanner = displayStartupBanner;
5
9
  const commander_1 = require("commander");
6
10
  const fs_1 = require("fs");
7
11
  const path_1 = require("path");
8
- function getVersion() {
12
+ const update_notifier_1 = __importDefault(require("update-notifier"));
13
+ function getPackageJson() {
9
14
  try {
10
- const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../package.json'), 'utf-8'));
11
- return packageJson.version;
15
+ return JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../package.json'), 'utf-8'));
12
16
  }
13
17
  catch {
14
- return '0.0.0';
18
+ return { version: '0.0.0', name: 'anki-mcp-http' };
15
19
  }
16
20
  }
21
+ function getVersion() {
22
+ return getPackageJson().version;
23
+ }
24
+ function checkForUpdates() {
25
+ (0, update_notifier_1.default)({ pkg: getPackageJson() }).notify();
26
+ }
17
27
  function parseCliArgs() {
18
28
  const program = new commander_1.Command();
19
29
  program
@@ -44,9 +54,13 @@ Usage with ngrok:
44
54
  };
45
55
  }
46
56
  function displayStartupBanner(options) {
57
+ const version = getVersion();
58
+ const title = `AnkiMCP HTTP Server v${version}`;
59
+ const padding = Math.floor((64 - title.length) / 2);
60
+ const paddedTitle = ' '.repeat(padding) + title + ' '.repeat(64 - padding - title.length);
47
61
  console.log(`
48
62
  ╔════════════════════════════════════════════════════════════════╗
49
- AnkiMCP HTTP Server ║
63
+ ║${paddedTitle}
50
64
  ╚════════════════════════════════════════════════════════════════╝
51
65
 
52
66
  🚀 Server running on: http://${options.host}:${options.port}
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAqBA,oCAuCC;AAED,oDAqBC;AAnFD,yCAAoC;AACpC,2BAAkC;AAClC,+BAA4B;AAQ5B,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAC1D,CAAC;QACF,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAgB,YAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CAAC,8DAA8D,CAAC;SAC3E,OAAO,CAAC,UAAU,EAAE,CAAC;SACrB,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,CAAC;SAC1D,MAAM,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,CAAC;SAC9D,MAAM,CACL,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,CACxB;SACA,WAAW,CACV,OAAO,EACP;;;;;;;;;;;CAWL,CACI,CAAC;IAEJ,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;IAE3C,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC3C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAmB;IACtD,OAAO,CAAC,GAAG,CAAC;;;;;+BAKiB,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;wBACnC,OAAO,CAAC,WAAW;;;0BAGjB,OAAO,CAAC,IAAI;0BACZ,OAAO,CAAC,IAAI;0BACZ,OAAO,CAAC,WAAW;;;;uCAIN,OAAO,CAAC,IAAI;;;;CAIlD,CAAC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAyBA,0CAEC;AAED,oCAuCC;AAED,oDA0BC;AAhGD,yCAAoC;AACpC,2BAAkC;AAClC,+BAA4B;AAC5B,sEAA6C;AAQ7C,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CACf,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAC1D,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IACrD,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,cAAc,EAAE,CAAC,OAAO,CAAC;AAClC,CAAC;AAED,SAAgB,eAAe;IAC7B,IAAA,yBAAc,EAAC,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AACrD,CAAC;AAED,SAAgB,YAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CAAC,8DAA8D,CAAC;SAC3E,OAAO,CAAC,UAAU,EAAE,CAAC;SACrB,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,CAAC;SAC1D,MAAM,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,CAAC;SAC9D,MAAM,CACL,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,CACxB;SACA,WAAW,CACV,OAAO,EACP;;;;;;;;;;;CAWL,CACI,CAAC;IAEJ,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;IAE3C,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC3C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAmB;IACtD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,wBAAwB,OAAO,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE1F,OAAO,CAAC,GAAG,CAAC;;GAEX,WAAW;;;+BAGiB,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;wBACnC,OAAO,CAAC,WAAW;;;0BAGjB,OAAO,CAAC,IAAI;0BACZ,OAAO,CAAC,IAAI;0BACZ,OAAO,CAAC,WAAW;;;;uCAIN,OAAO,CAAC,IAAI;;;;CAIlD,CAAC,CAAC;AACH,CAAC"}
package/dist/main-http.js CHANGED
@@ -6,6 +6,7 @@ const bootstrap_1 = require("./bootstrap");
6
6
  const origin_validation_guard_1 = require("./http/guards/origin-validation.guard");
7
7
  const cli_1 = require("./cli");
8
8
  async function bootstrap() {
9
+ (0, cli_1.checkForUpdates)();
9
10
  const options = (0, cli_1.parseCliArgs)();
10
11
  process.env.PORT = options.port.toString();
11
12
  process.env.HOST = options.host;
@@ -1 +1 @@
1
- {"version":3,"file":"main-http.js","sourceRoot":"","sources":["../src/main-http.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,6CAAyC;AACzC,2CAAoE;AACpE,mFAA8E;AAC9E,+BAA2D;AAE3D,KAAK,UAAU,SAAS;IACtB,MAAM,OAAO,GAAG,IAAA,kBAAY,GAAE,CAAC;IAG/B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAGnD,MAAM,UAAU,GAAG,IAAA,4BAAgB,EAAC,CAAC,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,IAAA,+BAAmB,EAAC,UAAU,CAAC,CAAC;IAGtD,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,OAAO,EAAE,EAAE;QACxD,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAGH,GAAG,CAAC,eAAe,CAAC,IAAI,+CAAqB,EAAE,CAAC,CAAC;IAEjD,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAG7C,IAAA,0BAAoB,EAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"main-http.js","sourceRoot":"","sources":["../src/main-http.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,6CAAyC;AACzC,2CAAoE;AACpE,mFAA8E;AAC9E,+BAIe;AAEf,KAAK,UAAU,SAAS;IAEtB,IAAA,qBAAe,GAAE,CAAC;IAElB,MAAM,OAAO,GAAG,IAAA,kBAAY,GAAE,CAAC;IAG/B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAGnD,MAAM,UAAU,GAAG,IAAA,4BAAgB,EAAC,CAAC,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,IAAA,+BAAmB,EAAC,UAAU,CAAC,CAAC;IAGtD,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,OAAO,EAAE,EAAE;QACxD,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAGH,GAAG,CAAC,eAAe,CAAC,IAAI,+CAAqB,EAAE,CAAC,CAAC;IAEjD,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAG7C,IAAA,0BAAoB,EAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -56,7 +56,7 @@ export declare class AddNoteTool {
56
56
  [x: string]: unknown;
57
57
  src: string;
58
58
  mimeType?: string | undefined;
59
- sizes?: string | undefined;
59
+ sizes?: string[] | undefined;
60
60
  }[] | undefined;
61
61
  } | {
62
62
  [x: string]: unknown;
@@ -46,7 +46,7 @@ export declare class CreateDeckTool {
46
46
  [x: string]: unknown;
47
47
  src: string;
48
48
  mimeType?: string | undefined;
49
- sizes?: string | undefined;
49
+ sizes?: string[] | undefined;
50
50
  }[] | undefined;
51
51
  } | {
52
52
  [x: string]: unknown;
@@ -95,7 +95,8 @@ exports.CreateDeckTool = CreateDeckTool;
95
95
  __decorate([
96
96
  (0, mcp_nest_1.Tool)({
97
97
  name: 'create_deck',
98
- description: 'Create a new empty Anki deck. Supports parent::child structure (e.g., "Japanese::Tokyo" creates parent deck "Japanese" and child deck "Tokyo"). Maximum 2 levels of nesting allowed. Will not overwrite existing decks. IMPORTANT: Only create the deck - do NOT automatically add notes unless explicitly requested by the user.',
98
+ description: 'Create a new empty Anki deck. Supports parent::child structure (e.g., "Japanese::Tokyo" creates parent deck "Japanese" and child deck "Tokyo"). Maximum 2 levels of nesting allowed. Will not overwrite existing decks. ' +
99
+ 'IMPORTANT: This tool ONLY creates an empty deck. DO NOT add cards or notes after creating a deck unless the user EXPLICITLY asks to add them. Wait for user instructions before adding any content.',
99
100
  parameters: zod_1.z.object({
100
101
  deck_name: zod_1.z
101
102
  .string()
@@ -1 +1 @@
1
- {"version":3,"file":"create-deck.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/create-deck.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,8EAAyE;AACzE,0DAAuF;AAMhF,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;IAsBxD,AAAN,KAAK,CAAC,UAAU,CACd,EAAE,SAAS,EAAyB,EACpC,OAAgB;QAEhB,IAAI,CAAC;YAEH,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAA,gCAAmB,EACxB,IAAI,KAAK,CAAC,qDAAqD,CAAC,EAChE;oBACE,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,SAAS,EAAE,CAAC;iBACb,CACF,CAAC;YACJ,CAAC;YAGD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBAC3C,OAAO,IAAA,gCAAmB,EACxB,IAAI,KAAK,CAAC,iCAAiC,CAAC,EAC5C,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;YAC/C,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAG3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAS,YAAY,EAAE;gBAChE,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAE3D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;gBAGzD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAW,WAAW,CAAC,CAAC;gBAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAErD,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAE5D,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,IAAA,kCAAqB,EAAC;wBAC3B,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,SAAS,SAAS,kBAAkB;wBAC7C,QAAQ,EAAE,SAAS;wBACnB,OAAO,EAAE,KAAK;wBACd,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,IAAA,gCAAmB,EACxB,IAAI,KAAK,CAAC,uCAAuC,CAAC,EAClD,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB,CAAC;YACJ,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,8BAA8B,SAAS,aAAa,MAAM,EAAE,CAAC,CAAC;YAE9E,MAAM,QAAQ,GAAQ;gBACpB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,8BAA8B,SAAS,GAAG;gBACnD,OAAO,EAAE,IAAI;aACd,CAAC;YAGF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/B,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9B,QAAQ,CAAC,OAAO,GAAG,qCAAqC,KAAK,CAAC,CAAC,CAAC,qBAAqB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;YACnG,CAAC;YAED,OAAO,IAAA,kCAAqB,EAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;YAG/D,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACvE,OAAO,IAAA,kCAAqB,EAAC;oBAC3B,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,SAAS,SAAS,kBAAkB;oBAC7C,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;YACL,CAAC;YAED,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE;gBAChC,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,sDAAsD;aAC7D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AA7HY,wCAAc;AAyBnB;IApBL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,mUAAmU;QACrU,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;YACnB,SAAS,EAAE,OAAC;iBACT,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,qFAAqF,CAAC;iBAC/F,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;gBACP,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;YAC3B,CAAC,EACD;gBACE,OAAO,EAAE,wFAAwF;aAClG,CACF;SACJ,CAAC;KACH,CAAC;;;;gDAoGD;yBA5HU,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,cAAc,CA6H1B"}
1
+ {"version":3,"file":"create-deck.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/create-deck.tool.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ export declare class CreateModelTool {
51
51
  [x: string]: unknown;
52
52
  src: string;
53
53
  mimeType?: string | undefined;
54
- sizes?: string | undefined;
54
+ sizes?: string[] | undefined;
55
55
  }[] | undefined;
56
56
  } | {
57
57
  [x: string]: unknown;
@@ -47,7 +47,7 @@ export declare class DeleteNotesTool {
47
47
  [x: string]: unknown;
48
48
  src: string;
49
49
  mimeType?: string | undefined;
50
- sizes?: string | undefined;
50
+ sizes?: string[] | undefined;
51
51
  }[] | undefined;
52
52
  } | {
53
53
  [x: string]: unknown;
@@ -46,7 +46,7 @@ export declare class FindNotesTool {
46
46
  [x: string]: unknown;
47
47
  src: string;
48
48
  mimeType?: string | undefined;
49
- sizes?: string | undefined;
49
+ sizes?: string[] | undefined;
50
50
  }[] | undefined;
51
51
  } | {
52
52
  [x: string]: unknown;
@@ -47,7 +47,7 @@ export declare class GetDueCardsTool {
47
47
  [x: string]: unknown;
48
48
  src: string;
49
49
  mimeType?: string | undefined;
50
- sizes?: string | undefined;
50
+ sizes?: string[] | undefined;
51
51
  }[] | undefined;
52
52
  } | {
53
53
  [x: string]: unknown;
@@ -46,7 +46,7 @@ export declare class ListDecksTool {
46
46
  [x: string]: unknown;
47
47
  src: string;
48
48
  mimeType?: string | undefined;
49
- sizes?: string | undefined;
49
+ sizes?: string[] | undefined;
50
50
  }[] | undefined;
51
51
  } | {
52
52
  [x: string]: unknown;
@@ -46,7 +46,7 @@ export declare class ModelFieldNamesTool {
46
46
  [x: string]: unknown;
47
47
  src: string;
48
48
  mimeType?: string | undefined;
49
- sizes?: string | undefined;
49
+ sizes?: string[] | undefined;
50
50
  }[] | undefined;
51
51
  } | {
52
52
  [x: string]: unknown;
@@ -44,7 +44,7 @@ export declare class ModelNamesTool {
44
44
  [x: string]: unknown;
45
45
  src: string;
46
46
  mimeType?: string | undefined;
47
- sizes?: string | undefined;
47
+ sizes?: string[] | undefined;
48
48
  }[] | undefined;
49
49
  } | {
50
50
  [x: string]: unknown;
@@ -46,7 +46,7 @@ export declare class ModelStylingTool {
46
46
  [x: string]: unknown;
47
47
  src: string;
48
48
  mimeType?: string | undefined;
49
- sizes?: string | undefined;
49
+ sizes?: string[] | undefined;
50
50
  }[] | undefined;
51
51
  } | {
52
52
  [x: string]: unknown;
@@ -46,7 +46,7 @@ export declare class NotesInfoTool {
46
46
  [x: string]: unknown;
47
47
  src: string;
48
48
  mimeType?: string | undefined;
49
- sizes?: string | undefined;
49
+ sizes?: string[] | undefined;
50
50
  }[] | undefined;
51
51
  } | {
52
52
  [x: string]: unknown;
@@ -47,7 +47,7 @@ export declare class PresentCardTool {
47
47
  [x: string]: unknown;
48
48
  src: string;
49
49
  mimeType?: string | undefined;
50
- sizes?: string | undefined;
50
+ sizes?: string[] | undefined;
51
51
  }[] | undefined;
52
52
  } | {
53
53
  [x: string]: unknown;
@@ -47,7 +47,7 @@ export declare class RateCardTool {
47
47
  [x: string]: unknown;
48
48
  src: string;
49
49
  mimeType?: string | undefined;
50
- sizes?: string | undefined;
50
+ sizes?: string[] | undefined;
51
51
  }[] | undefined;
52
52
  } | {
53
53
  [x: string]: unknown;
@@ -44,7 +44,7 @@ export declare class SyncTool {
44
44
  [x: string]: unknown;
45
45
  src: string;
46
46
  mimeType?: string | undefined;
47
- sizes?: string | undefined;
47
+ sizes?: string[] | undefined;
48
48
  }[] | undefined;
49
49
  } | {
50
50
  [x: string]: unknown;
@@ -47,7 +47,7 @@ export declare class UpdateModelStylingTool {
47
47
  [x: string]: unknown;
48
48
  src: string;
49
49
  mimeType?: string | undefined;
50
- sizes?: string | undefined;
50
+ sizes?: string[] | undefined;
51
51
  }[] | undefined;
52
52
  } | {
53
53
  [x: string]: unknown;
@@ -59,7 +59,7 @@ export declare class UpdateNoteFieldsTool {
59
59
  [x: string]: unknown;
60
60
  src: string;
61
61
  mimeType?: string | undefined;
62
- sizes?: string | undefined;
62
+ sizes?: string[] | undefined;
63
63
  }[] | undefined;
64
64
  } | {
65
65
  [x: string]: unknown;
@@ -1,4 +1,23 @@
1
- import { DynamicModule } from '@nestjs/common';
1
+ export { ANKI_CONFIG } from '../../config/anki-config.interface';
2
+ export type { IAnkiConfig } from '../../config/anki-config.interface';
3
+ export * from '../../types/anki.types';
4
+ export * from '../../utils/anki.utils';
5
+ export { AnkiConnectClient, AnkiConnectError } from '../../clients/anki-connect.client';
6
+ export { GuiBrowseTool } from './tools/gui-browse.tool';
7
+ export { GuiSelectCardTool } from './tools/gui-select-card.tool';
8
+ export { GuiSelectedNotesTool } from './tools/gui-selected-notes.tool';
9
+ export { GuiAddCardsTool } from './tools/gui-add-cards.tool';
10
+ export { GuiEditNoteTool } from './tools/gui-edit-note.tool';
11
+ export { GuiDeckOverviewTool } from './tools/gui-deck-overview.tool';
12
+ export { GuiDeckBrowserTool } from './tools/gui-deck-browser.tool';
13
+ export { GuiCurrentCardTool } from './tools/gui-current-card.tool';
14
+ export { GuiShowQuestionTool } from './tools/gui-show-question.tool';
15
+ export { GuiShowAnswerTool } from './tools/gui-show-answer.tool';
16
+ export { GuiUndoTool } from './tools/gui-undo.tool';
17
+ import { DynamicModule, Provider } from '@nestjs/common';
18
+ export interface McpPrimitivesAnkiGuiModuleOptions {
19
+ ankiConfigProvider: Provider;
20
+ }
2
21
  export declare class McpPrimitivesAnkiGuiModule {
3
- static forRoot(): DynamicModule;
22
+ static forRoot(options: McpPrimitivesAnkiGuiModuleOptions): DynamicModule;
4
23
  }
@@ -1,21 +1,89 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
2
13
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
14
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
15
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
16
  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
17
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
18
  };
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
8
22
  var McpPrimitivesAnkiGuiModule_1;
9
23
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.McpPrimitivesAnkiGuiModule = void 0;
24
+ exports.McpPrimitivesAnkiGuiModule = exports.GuiUndoTool = exports.GuiShowAnswerTool = exports.GuiShowQuestionTool = exports.GuiCurrentCardTool = exports.GuiDeckBrowserTool = exports.GuiDeckOverviewTool = exports.GuiEditNoteTool = exports.GuiAddCardsTool = exports.GuiSelectedNotesTool = exports.GuiSelectCardTool = exports.GuiBrowseTool = exports.AnkiConnectError = exports.AnkiConnectClient = exports.ANKI_CONFIG = void 0;
25
+ var anki_config_interface_1 = require("../../config/anki-config.interface");
26
+ Object.defineProperty(exports, "ANKI_CONFIG", { enumerable: true, get: function () { return anki_config_interface_1.ANKI_CONFIG; } });
27
+ __exportStar(require("../../types/anki.types"), exports);
28
+ __exportStar(require("../../utils/anki.utils"), exports);
29
+ var anki_connect_client_1 = require("../../clients/anki-connect.client");
30
+ Object.defineProperty(exports, "AnkiConnectClient", { enumerable: true, get: function () { return anki_connect_client_1.AnkiConnectClient; } });
31
+ Object.defineProperty(exports, "AnkiConnectError", { enumerable: true, get: function () { return anki_connect_client_1.AnkiConnectError; } });
32
+ var gui_browse_tool_1 = require("./tools/gui-browse.tool");
33
+ Object.defineProperty(exports, "GuiBrowseTool", { enumerable: true, get: function () { return gui_browse_tool_1.GuiBrowseTool; } });
34
+ var gui_select_card_tool_1 = require("./tools/gui-select-card.tool");
35
+ Object.defineProperty(exports, "GuiSelectCardTool", { enumerable: true, get: function () { return gui_select_card_tool_1.GuiSelectCardTool; } });
36
+ var gui_selected_notes_tool_1 = require("./tools/gui-selected-notes.tool");
37
+ Object.defineProperty(exports, "GuiSelectedNotesTool", { enumerable: true, get: function () { return gui_selected_notes_tool_1.GuiSelectedNotesTool; } });
38
+ var gui_add_cards_tool_1 = require("./tools/gui-add-cards.tool");
39
+ Object.defineProperty(exports, "GuiAddCardsTool", { enumerable: true, get: function () { return gui_add_cards_tool_1.GuiAddCardsTool; } });
40
+ var gui_edit_note_tool_1 = require("./tools/gui-edit-note.tool");
41
+ Object.defineProperty(exports, "GuiEditNoteTool", { enumerable: true, get: function () { return gui_edit_note_tool_1.GuiEditNoteTool; } });
42
+ var gui_deck_overview_tool_1 = require("./tools/gui-deck-overview.tool");
43
+ Object.defineProperty(exports, "GuiDeckOverviewTool", { enumerable: true, get: function () { return gui_deck_overview_tool_1.GuiDeckOverviewTool; } });
44
+ var gui_deck_browser_tool_1 = require("./tools/gui-deck-browser.tool");
45
+ Object.defineProperty(exports, "GuiDeckBrowserTool", { enumerable: true, get: function () { return gui_deck_browser_tool_1.GuiDeckBrowserTool; } });
46
+ var gui_current_card_tool_1 = require("./tools/gui-current-card.tool");
47
+ Object.defineProperty(exports, "GuiCurrentCardTool", { enumerable: true, get: function () { return gui_current_card_tool_1.GuiCurrentCardTool; } });
48
+ var gui_show_question_tool_1 = require("./tools/gui-show-question.tool");
49
+ Object.defineProperty(exports, "GuiShowQuestionTool", { enumerable: true, get: function () { return gui_show_question_tool_1.GuiShowQuestionTool; } });
50
+ var gui_show_answer_tool_1 = require("./tools/gui-show-answer.tool");
51
+ Object.defineProperty(exports, "GuiShowAnswerTool", { enumerable: true, get: function () { return gui_show_answer_tool_1.GuiShowAnswerTool; } });
52
+ var gui_undo_tool_1 = require("./tools/gui-undo.tool");
53
+ Object.defineProperty(exports, "GuiUndoTool", { enumerable: true, get: function () { return gui_undo_tool_1.GuiUndoTool; } });
11
54
  const common_1 = require("@nestjs/common");
12
- const MCP_GUI_PRIMITIVES = [];
55
+ const anki_connect_client_2 = require("../../clients/anki-connect.client");
56
+ const gui_browse_tool_2 = require("./tools/gui-browse.tool");
57
+ const gui_select_card_tool_2 = require("./tools/gui-select-card.tool");
58
+ const gui_selected_notes_tool_2 = require("./tools/gui-selected-notes.tool");
59
+ const gui_add_cards_tool_2 = require("./tools/gui-add-cards.tool");
60
+ const gui_edit_note_tool_2 = require("./tools/gui-edit-note.tool");
61
+ const gui_deck_overview_tool_2 = require("./tools/gui-deck-overview.tool");
62
+ const gui_deck_browser_tool_2 = require("./tools/gui-deck-browser.tool");
63
+ const gui_current_card_tool_2 = require("./tools/gui-current-card.tool");
64
+ const gui_show_question_tool_2 = require("./tools/gui-show-question.tool");
65
+ const gui_show_answer_tool_2 = require("./tools/gui-show-answer.tool");
66
+ const gui_undo_tool_2 = require("./tools/gui-undo.tool");
67
+ const MCP_PRIMITIVES = [
68
+ anki_connect_client_2.AnkiConnectClient,
69
+ gui_browse_tool_2.GuiBrowseTool,
70
+ gui_select_card_tool_2.GuiSelectCardTool,
71
+ gui_selected_notes_tool_2.GuiSelectedNotesTool,
72
+ gui_add_cards_tool_2.GuiAddCardsTool,
73
+ gui_edit_note_tool_2.GuiEditNoteTool,
74
+ gui_deck_overview_tool_2.GuiDeckOverviewTool,
75
+ gui_deck_browser_tool_2.GuiDeckBrowserTool,
76
+ gui_current_card_tool_2.GuiCurrentCardTool,
77
+ gui_show_question_tool_2.GuiShowQuestionTool,
78
+ gui_show_answer_tool_2.GuiShowAnswerTool,
79
+ gui_undo_tool_2.GuiUndoTool,
80
+ ];
13
81
  let McpPrimitivesAnkiGuiModule = McpPrimitivesAnkiGuiModule_1 = class McpPrimitivesAnkiGuiModule {
14
- static forRoot() {
82
+ static forRoot(options) {
15
83
  return {
16
84
  module: McpPrimitivesAnkiGuiModule_1,
17
- providers: MCP_GUI_PRIMITIVES,
18
- exports: MCP_GUI_PRIMITIVES,
85
+ providers: [options.ankiConfigProvider, ...MCP_PRIMITIVES],
86
+ exports: MCP_PRIMITIVES,
19
87
  };
20
88
  }
21
89
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/primitives/gui/index.ts"],"names":[],"mappings":";;;;;;;;;;AACA,2CAAuD;AAEvD,MAAM,kBAAkB,GAAU,EAEjC,CAAC;AAGK,IAAM,0BAA0B,kCAAhC,MAAM,0BAA0B;IACrC,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,MAAM,EAAE,4BAA0B;YAClC,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,kBAAkB;SAC5B,CAAC;IACJ,CAAC;CACF,CAAA;AARY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,0BAA0B,CAQtC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/primitives/gui/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,4EAAiE;AAAxD,oHAAA,WAAW,OAAA;AAIpB,yDAAuC;AAGvC,yDAAuC;AAGvC,yEAAwF;AAA/E,wHAAA,iBAAiB,OAAA;AAAE,uHAAA,gBAAgB,OAAA;AAG5C,2DAAwD;AAA/C,gHAAA,aAAa,OAAA;AACtB,qEAAiE;AAAxD,yHAAA,iBAAiB,OAAA;AAC1B,2EAAuE;AAA9D,+HAAA,oBAAoB,OAAA;AAG7B,iEAA6D;AAApD,qHAAA,eAAe,OAAA;AACxB,iEAA6D;AAApD,qHAAA,eAAe,OAAA;AACxB,yEAAqE;AAA5D,6HAAA,mBAAmB,OAAA;AAC5B,uEAAmE;AAA1D,2HAAA,kBAAkB,OAAA;AAG3B,uEAAmE;AAA1D,2HAAA,kBAAkB,OAAA;AAC3B,yEAAqE;AAA5D,6HAAA,mBAAmB,OAAA;AAC5B,qEAAiE;AAAxD,yHAAA,iBAAiB,OAAA;AAC1B,uDAAoD;AAA3C,4GAAA,WAAW,OAAA;AAGpB,2CAAiE;AACjE,2EAAsE;AACtE,6DAAwD;AACxD,uEAAiE;AACjE,6EAAuE;AACvE,mEAA6D;AAC7D,mEAA6D;AAC7D,2EAAqE;AACrE,yEAAmE;AACnE,yEAAmE;AACnE,2EAAqE;AACrE,uEAAiE;AACjE,yDAAoD;AAEpD,MAAM,cAAc,GAAG;IAErB,uCAAiB;IAEjB,+BAAa;IACb,wCAAiB;IACjB,8CAAoB;IAEpB,oCAAe;IACf,oCAAe;IACf,4CAAmB;IACnB,0CAAkB;IAElB,0CAAkB;IAClB,4CAAmB;IACnB,wCAAiB;IACjB,2BAAW;CACZ,CAAC;AAOK,IAAM,0BAA0B,kCAAhC,MAAM,0BAA0B;IACrC,MAAM,CAAC,OAAO,CAAC,OAA0C;QACvD,OAAO;YACL,MAAM,EAAE,4BAA0B;YAClC,SAAS,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,cAAc,CAAC;YAC1D,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;CACF,CAAA;AARY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,0BAA0B,CAQtC"}
@@ -0,0 +1,88 @@
1
+ import type { Context } from '@rekog/mcp-nest';
2
+ import { AnkiConnectClient } from '../../../clients/anki-connect.client';
3
+ export declare class GuiAddCardsTool {
4
+ private readonly ankiClient;
5
+ private readonly logger;
6
+ constructor(ankiClient: AnkiConnectClient);
7
+ guiAddCards({ note, }: {
8
+ note: {
9
+ deckName: string;
10
+ modelName: string;
11
+ fields: Record<string, string>;
12
+ tags?: string[];
13
+ };
14
+ }, context: Context): Promise<{
15
+ [x: string]: unknown;
16
+ content: ({
17
+ [x: string]: unknown;
18
+ type: "text";
19
+ text: string;
20
+ _meta?: {
21
+ [x: string]: unknown;
22
+ } | undefined;
23
+ } | {
24
+ [x: string]: unknown;
25
+ type: "image";
26
+ data: string;
27
+ mimeType: string;
28
+ _meta?: {
29
+ [x: string]: unknown;
30
+ } | undefined;
31
+ } | {
32
+ [x: string]: unknown;
33
+ type: "audio";
34
+ data: string;
35
+ mimeType: string;
36
+ _meta?: {
37
+ [x: string]: unknown;
38
+ } | undefined;
39
+ } | {
40
+ [x: string]: unknown;
41
+ type: "resource_link";
42
+ name: string;
43
+ uri: string;
44
+ _meta?: {
45
+ [x: string]: unknown;
46
+ } | undefined;
47
+ mimeType?: string | undefined;
48
+ title?: string | undefined;
49
+ description?: string | undefined;
50
+ icons?: {
51
+ [x: string]: unknown;
52
+ src: string;
53
+ mimeType?: string | undefined;
54
+ sizes?: string[] | undefined;
55
+ }[] | undefined;
56
+ } | {
57
+ [x: string]: unknown;
58
+ type: "resource";
59
+ resource: {
60
+ [x: string]: unknown;
61
+ text: string;
62
+ uri: string;
63
+ _meta?: {
64
+ [x: string]: unknown;
65
+ } | undefined;
66
+ mimeType?: string | undefined;
67
+ } | {
68
+ [x: string]: unknown;
69
+ uri: string;
70
+ blob: string;
71
+ _meta?: {
72
+ [x: string]: unknown;
73
+ } | undefined;
74
+ mimeType?: string | undefined;
75
+ };
76
+ _meta?: {
77
+ [x: string]: unknown;
78
+ } | undefined;
79
+ })[];
80
+ _meta?: {
81
+ [x: string]: unknown;
82
+ } | undefined;
83
+ structuredContent?: {
84
+ [x: string]: unknown;
85
+ } | undefined;
86
+ isError?: boolean | undefined;
87
+ }>;
88
+ }