@ankimcp/anki-mcp-server 0.18.5 → 0.19.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 (231) hide show
  1. package/README.md +204 -139
  2. package/bin/ankimcp.js +10 -1
  3. package/dist/app-config.service.d.ts +20 -0
  4. package/dist/app-config.service.js +73 -0
  5. package/dist/app-config.service.js.map +1 -0
  6. package/dist/app.module.d.ts +4 -2
  7. package/dist/app.module.js +99 -11
  8. package/dist/app.module.js.map +1 -1
  9. package/dist/bootstrap.d.ts +6 -1
  10. package/dist/bootstrap.js +7 -2
  11. package/dist/bootstrap.js.map +1 -1
  12. package/dist/cli/__tests__/cli-output.manual.d.ts +2 -0
  13. package/dist/cli/__tests__/cli-output.manual.js +14 -0
  14. package/dist/cli/__tests__/cli-output.manual.js.map +1 -0
  15. package/dist/cli/args.d.ts +16 -0
  16. package/dist/{cli.js → cli/args.js} +42 -9
  17. package/dist/cli/args.js.map +1 -0
  18. package/dist/cli/cli-output.d.ts +17 -0
  19. package/dist/cli/cli-output.js +60 -0
  20. package/dist/cli/cli-output.js.map +1 -0
  21. package/dist/cli/index.d.ts +3 -0
  22. package/dist/cli/index.js +20 -0
  23. package/dist/cli/index.js.map +1 -0
  24. package/dist/cli/spinner.d.ts +1 -0
  25. package/dist/cli/spinner.js +16 -0
  26. package/dist/cli/spinner.js.map +1 -0
  27. package/dist/config/config.factory.d.ts +13 -0
  28. package/dist/config/config.factory.js +32 -0
  29. package/dist/config/config.factory.js.map +1 -0
  30. package/dist/config/config.schema.d.ts +31 -0
  31. package/dist/config/config.schema.js +54 -0
  32. package/dist/config/config.schema.js.map +1 -0
  33. package/dist/config/index.d.ts +3 -0
  34. package/dist/config/index.js +11 -0
  35. package/dist/config/index.js.map +1 -0
  36. package/dist/http/guards/origin-validation.guard.d.ts +1 -0
  37. package/dist/http/guards/origin-validation.guard.js +5 -3
  38. package/dist/http/guards/origin-validation.guard.js.map +1 -1
  39. package/dist/main-http.js +23 -11
  40. package/dist/main-http.js.map +1 -1
  41. package/dist/main-stdio.js +10 -9
  42. package/dist/main-stdio.js.map +1 -1
  43. package/dist/main-tunnel.d.ts +1 -0
  44. package/dist/main-tunnel.js +27 -0
  45. package/dist/main-tunnel.js.map +1 -0
  46. package/dist/mcp/clients/anki-connect.client.js +3 -3
  47. package/dist/mcp/clients/anki-connect.client.js.map +1 -1
  48. package/dist/mcp/primitives/essential/index.d.ts +1 -0
  49. package/dist/mcp/primitives/essential/index.js +8 -1
  50. package/dist/mcp/primitives/essential/index.js.map +1 -1
  51. package/dist/mcp/primitives/essential/tools/add-note.tool.d.ts +2 -3
  52. package/dist/mcp/primitives/essential/tools/add-note.tool.js +2 -9
  53. package/dist/mcp/primitives/essential/tools/add-note.tool.js.map +1 -1
  54. package/dist/mcp/primitives/essential/tools/add-notes.tool.d.ts +1 -2
  55. package/dist/mcp/primitives/essential/tools/add-notes.tool.js +2 -23
  56. package/dist/mcp/primitives/essential/tools/add-notes.tool.js.map +1 -1
  57. package/dist/mcp/primitives/essential/tools/add-tags.tool.d.ts +1 -2
  58. package/dist/mcp/primitives/essential/tools/add-tags.tool.js +2 -4
  59. package/dist/mcp/primitives/essential/tools/add-tags.tool.js.map +1 -1
  60. package/dist/mcp/primitives/essential/tools/change-deck.tool.d.ts +1 -2
  61. package/dist/mcp/primitives/essential/tools/change-deck.tool.js +2 -4
  62. package/dist/mcp/primitives/essential/tools/change-deck.tool.js.map +1 -1
  63. package/dist/mcp/primitives/essential/tools/clear-unused-tags.tool.d.ts +1 -2
  64. package/dist/mcp/primitives/essential/tools/clear-unused-tags.tool.js +2 -4
  65. package/dist/mcp/primitives/essential/tools/clear-unused-tags.tool.js.map +1 -1
  66. package/dist/mcp/primitives/essential/tools/collection-stats/collection-stats.tool.d.ts +1 -2
  67. package/dist/mcp/primitives/essential/tools/collection-stats/collection-stats.tool.js +2 -12
  68. package/dist/mcp/primitives/essential/tools/collection-stats/collection-stats.tool.js.map +1 -1
  69. package/dist/mcp/primitives/essential/tools/create-deck.tool.d.ts +1 -2
  70. package/dist/mcp/primitives/essential/tools/create-deck.tool.js +2 -4
  71. package/dist/mcp/primitives/essential/tools/create-deck.tool.js.map +1 -1
  72. package/dist/mcp/primitives/essential/tools/create-model.tool.d.ts +1 -2
  73. package/dist/mcp/primitives/essential/tools/create-model.tool.js +2 -6
  74. package/dist/mcp/primitives/essential/tools/create-model.tool.js.map +1 -1
  75. package/dist/mcp/primitives/essential/tools/deck-stats.tool.d.ts +1 -2
  76. package/dist/mcp/primitives/essential/tools/deck-stats.tool.js +3 -7
  77. package/dist/mcp/primitives/essential/tools/deck-stats.tool.js.map +1 -1
  78. package/dist/mcp/primitives/essential/tools/delete-media-file.tool.d.ts +1 -2
  79. package/dist/mcp/primitives/essential/tools/delete-media-file.tool.js +2 -4
  80. package/dist/mcp/primitives/essential/tools/delete-media-file.tool.js.map +1 -1
  81. package/dist/mcp/primitives/essential/tools/delete-notes.tool.d.ts +2 -3
  82. package/dist/mcp/primitives/essential/tools/delete-notes.tool.js +2 -6
  83. package/dist/mcp/primitives/essential/tools/delete-notes.tool.js.map +1 -1
  84. package/dist/mcp/primitives/essential/tools/find-notes.tool.d.ts +1 -2
  85. package/dist/mcp/primitives/essential/tools/find-notes.tool.js +2 -6
  86. package/dist/mcp/primitives/essential/tools/find-notes.tool.js.map +1 -1
  87. package/dist/mcp/primitives/essential/tools/get-cards.tool.d.ts +1 -2
  88. package/dist/mcp/primitives/essential/tools/get-cards.tool.js +2 -6
  89. package/dist/mcp/primitives/essential/tools/get-cards.tool.js.map +1 -1
  90. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.d.ts +1 -2
  91. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.js +2 -6
  92. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.js.map +1 -1
  93. package/dist/mcp/primitives/essential/tools/get-media-files-names.tool.d.ts +1 -2
  94. package/dist/mcp/primitives/essential/tools/get-media-files-names.tool.js +2 -4
  95. package/dist/mcp/primitives/essential/tools/get-media-files-names.tool.js.map +1 -1
  96. package/dist/mcp/primitives/essential/tools/get-tags.tool.d.ts +1 -2
  97. package/dist/mcp/primitives/essential/tools/get-tags.tool.js +2 -6
  98. package/dist/mcp/primitives/essential/tools/get-tags.tool.js.map +1 -1
  99. package/dist/mcp/primitives/essential/tools/list-decks.tool.d.ts +1 -2
  100. package/dist/mcp/primitives/essential/tools/list-decks.tool.js +2 -4
  101. package/dist/mcp/primitives/essential/tools/list-decks.tool.js.map +1 -1
  102. package/dist/mcp/primitives/essential/tools/model-field-names.tool.d.ts +1 -2
  103. package/dist/mcp/primitives/essential/tools/model-field-names.tool.js +2 -7
  104. package/dist/mcp/primitives/essential/tools/model-field-names.tool.js.map +1 -1
  105. package/dist/mcp/primitives/essential/tools/model-names.tool.d.ts +1 -2
  106. package/dist/mcp/primitives/essential/tools/model-names.tool.js +2 -6
  107. package/dist/mcp/primitives/essential/tools/model-names.tool.js.map +1 -1
  108. package/dist/mcp/primitives/essential/tools/model-styling.tool.d.ts +1 -2
  109. package/dist/mcp/primitives/essential/tools/model-styling.tool.js +2 -6
  110. package/dist/mcp/primitives/essential/tools/model-styling.tool.js.map +1 -1
  111. package/dist/mcp/primitives/essential/tools/notes-info.tool.d.ts +1 -2
  112. package/dist/mcp/primitives/essential/tools/notes-info.tool.js +2 -6
  113. package/dist/mcp/primitives/essential/tools/notes-info.tool.js.map +1 -1
  114. package/dist/mcp/primitives/essential/tools/present-card.tool.d.ts +2 -3
  115. package/dist/mcp/primitives/essential/tools/present-card.tool.js +2 -5
  116. package/dist/mcp/primitives/essential/tools/present-card.tool.js.map +1 -1
  117. package/dist/mcp/primitives/essential/tools/rate-card.tool.d.ts +1 -2
  118. package/dist/mcp/primitives/essential/tools/rate-card.tool.js +2 -5
  119. package/dist/mcp/primitives/essential/tools/rate-card.tool.js.map +1 -1
  120. package/dist/mcp/primitives/essential/tools/remove-tags.tool.d.ts +1 -2
  121. package/dist/mcp/primitives/essential/tools/remove-tags.tool.js +2 -4
  122. package/dist/mcp/primitives/essential/tools/remove-tags.tool.js.map +1 -1
  123. package/dist/mcp/primitives/essential/tools/replace-tags.tool.d.ts +1 -2
  124. package/dist/mcp/primitives/essential/tools/replace-tags.tool.js +2 -4
  125. package/dist/mcp/primitives/essential/tools/replace-tags.tool.js.map +1 -1
  126. package/dist/mcp/primitives/essential/tools/retrieve-media-file.tool.d.ts +1 -2
  127. package/dist/mcp/primitives/essential/tools/retrieve-media-file.tool.js +2 -4
  128. package/dist/mcp/primitives/essential/tools/retrieve-media-file.tool.js.map +1 -1
  129. package/dist/mcp/primitives/essential/tools/review-stats/review-stats.tool.d.ts +1 -2
  130. package/dist/mcp/primitives/essential/tools/review-stats/review-stats.tool.js +2 -8
  131. package/dist/mcp/primitives/essential/tools/review-stats/review-stats.tool.js.map +1 -1
  132. package/dist/mcp/primitives/essential/tools/store-media-file.tool.d.ts +1 -2
  133. package/dist/mcp/primitives/essential/tools/store-media-file.tool.js +2 -4
  134. package/dist/mcp/primitives/essential/tools/store-media-file.tool.js.map +1 -1
  135. package/dist/mcp/primitives/essential/tools/sync.tool.d.ts +1 -2
  136. package/dist/mcp/primitives/essential/tools/sync.tool.js +2 -4
  137. package/dist/mcp/primitives/essential/tools/sync.tool.js.map +1 -1
  138. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.d.ts +2 -3
  139. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.js +2 -6
  140. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.js.map +1 -1
  141. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.d.ts +1 -2
  142. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.js +2 -5
  143. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.js.map +1 -1
  144. package/dist/mcp/primitives/gui/index.d.ts +1 -0
  145. package/dist/mcp/primitives/gui/index.js +8 -1
  146. package/dist/mcp/primitives/gui/index.js.map +1 -1
  147. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.d.ts +1 -2
  148. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js +2 -5
  149. package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js.map +1 -1
  150. package/dist/mcp/primitives/gui/tools/gui-browse.tool.d.ts +1 -2
  151. package/dist/mcp/primitives/gui/tools/gui-browse.tool.js +2 -4
  152. package/dist/mcp/primitives/gui/tools/gui-browse.tool.js.map +1 -1
  153. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.d.ts +1 -2
  154. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js +2 -4
  155. package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js.map +1 -1
  156. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.d.ts +1 -2
  157. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js +2 -4
  158. package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js.map +1 -1
  159. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.d.ts +1 -2
  160. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js +2 -4
  161. package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js.map +1 -1
  162. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.d.ts +1 -2
  163. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js +2 -4
  164. package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js.map +1 -1
  165. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.d.ts +1 -2
  166. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js +2 -4
  167. package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js.map +1 -1
  168. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.d.ts +1 -2
  169. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js +2 -4
  170. package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js.map +1 -1
  171. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.d.ts +1 -2
  172. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js +2 -4
  173. package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js.map +1 -1
  174. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.d.ts +1 -2
  175. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js +2 -4
  176. package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js.map +1 -1
  177. package/dist/mcp/primitives/gui/tools/gui-undo.tool.d.ts +1 -2
  178. package/dist/mcp/primitives/gui/tools/gui-undo.tool.js +2 -4
  179. package/dist/mcp/primitives/gui/tools/gui-undo.tool.js.map +1 -1
  180. package/dist/services/ngrok.service.d.ts +1 -0
  181. package/dist/services/ngrok.service.js +5 -3
  182. package/dist/services/ngrok.service.js.map +1 -1
  183. package/dist/test-fixtures/mock-data.d.ts +8 -0
  184. package/dist/test-fixtures/mock-data.js +8 -0
  185. package/dist/test-fixtures/mock-data.js.map +1 -1
  186. package/dist/tunnel/commands/index.d.ts +3 -0
  187. package/dist/tunnel/commands/index.js +10 -0
  188. package/dist/tunnel/commands/index.js.map +1 -0
  189. package/dist/tunnel/commands/login.command.d.ts +2 -0
  190. package/dist/tunnel/commands/login.command.js +29 -0
  191. package/dist/tunnel/commands/login.command.js.map +1 -0
  192. package/dist/tunnel/commands/logout.command.d.ts +2 -0
  193. package/dist/tunnel/commands/logout.command.js +25 -0
  194. package/dist/tunnel/commands/logout.command.js.map +1 -0
  195. package/dist/tunnel/commands/perform-login.d.ts +9 -0
  196. package/dist/tunnel/commands/perform-login.js +72 -0
  197. package/dist/tunnel/commands/perform-login.js.map +1 -0
  198. package/dist/tunnel/commands/tunnel.command.d.ts +3 -0
  199. package/dist/tunnel/commands/tunnel.command.js +225 -0
  200. package/dist/tunnel/commands/tunnel.command.js.map +1 -0
  201. package/dist/tunnel/credentials.service.d.ts +23 -0
  202. package/dist/tunnel/credentials.service.js +152 -0
  203. package/dist/tunnel/credentials.service.js.map +1 -0
  204. package/dist/tunnel/device-flow.service.d.ts +46 -0
  205. package/dist/tunnel/device-flow.service.js +230 -0
  206. package/dist/tunnel/device-flow.service.js.map +1 -0
  207. package/dist/tunnel/in-memory.transport.d.ts +14 -0
  208. package/dist/tunnel/in-memory.transport.js +63 -0
  209. package/dist/tunnel/in-memory.transport.js.map +1 -0
  210. package/dist/tunnel/index.d.ts +6 -0
  211. package/dist/tunnel/index.js +31 -0
  212. package/dist/tunnel/index.js.map +1 -0
  213. package/dist/tunnel/tunnel-mcp.service.d.ts +15 -0
  214. package/dist/tunnel/tunnel-mcp.service.js +100 -0
  215. package/dist/tunnel/tunnel-mcp.service.js.map +1 -0
  216. package/dist/tunnel/tunnel.client.d.ts +60 -0
  217. package/dist/tunnel/tunnel.client.js +386 -0
  218. package/dist/tunnel/tunnel.client.js.map +1 -0
  219. package/dist/tunnel/tunnel.protocol.d.ts +67 -0
  220. package/dist/tunnel/tunnel.protocol.js +25 -0
  221. package/dist/tunnel/tunnel.protocol.js.map +1 -0
  222. package/dist/version.d.ts +2 -0
  223. package/dist/version.js +21 -0
  224. package/dist/version.js.map +1 -0
  225. package/package.json +31 -22
  226. package/dist/anki-config.service.d.ts +0 -11
  227. package/dist/anki-config.service.js +0 -46
  228. package/dist/anki-config.service.js.map +0 -1
  229. package/dist/cli.d.ts +0 -10
  230. package/dist/cli.js.map +0 -1
  231. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -22,12 +22,10 @@ let GuiSelectedNotesTool = GuiSelectedNotesTool_1 = class GuiSelectedNotesTool {
22
22
  constructor(ankiClient) {
23
23
  this.ankiClient = ankiClient;
24
24
  }
25
- async guiSelectedNotes(_args, context) {
25
+ async guiSelectedNotes(_args) {
26
26
  try {
27
27
  this.logger.log("Getting selected notes from Card Browser");
28
- await context.reportProgress({ progress: 50, total: 100 });
29
28
  const noteIds = await this.ankiClient.invoke("guiSelectedNotes");
30
- await context.reportProgress({ progress: 100, total: 100 });
31
29
  this.logger.log(`Retrieved ${noteIds.length} selected note(s) from Card Browser`);
32
30
  if (noteIds.length === 0) {
33
31
  return {
@@ -86,7 +84,7 @@ __decorate([
86
84
  },
87
85
  }),
88
86
  __metadata("design:type", Function),
89
- __metadata("design:paramtypes", [Object, Object]),
87
+ __metadata("design:paramtypes", [Object]),
90
88
  __metadata("design:returntype", Promise)
91
89
  ], GuiSelectedNotesTool.prototype, "guiSelectedNotes", null);
92
90
  exports.GuiSelectedNotesTool = GuiSelectedNotesTool = GuiSelectedNotesTool_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"gui-selected-notes.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/gui/tools/gui-selected-notes.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gui-selected-notes.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/gui/tools/gui-selected-notes.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AACvC,6BAAwB;AACxB,8EAAsE;AACtE,0DAA6D;AAMtD,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAGF;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;IAEhE,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAwBxD,AAAN,KAAK,CAAC,gBAAgB,CAAC,KAA4B;QACjD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YAG5D,MAAM,OAAO,GACX,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAW,kBAAkB,CAAC,CAAC;YAE7D,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,aAAa,OAAO,CAAC,MAAM,qCAAqC,CACjE,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,EAAE;oBACX,SAAS,EAAE,CAAC;oBACZ,OAAO,EAAE,qDAAqD;oBAC9D,IAAI,EAAE,sEAAsE;iBAC7E,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO;gBACP,SAAS,EAAE,OAAO,CAAC,MAAM;gBACzB,OAAO,EAAE,aAAa,OAAO,CAAC,MAAM,wCAAwC;gBAC5E,IAAI,EAAE,iGAAiG;aACxG,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YAEzD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,IACE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACjC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAClC,CAAC;oBACD,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE;wBAChC,IAAI,EAAE,2DAA2D;qBAClE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE;gBAChC,IAAI,EAAE,wDAAwD;aAC/D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AA3EY,oDAAoB;AA2BzB;IAtBL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,kHAAkH;YAClH,4EAA4E;YAC5E,6EAA6E;YAC7E,oDAAoD;QACtD,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;YACpB,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;YAC5B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;YACrB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;KACF,CAAC;;;;4DAgDD;+BA1EU,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,oBAAoB,CA2EhC"}
@@ -1,10 +1,9 @@
1
- import type { Context } from "@rekog/mcp-nest";
2
1
  import { AnkiConnectClient } from "../../../clients/anki-connect.client";
3
2
  export declare class GuiShowAnswerTool {
4
3
  private readonly ankiClient;
5
4
  private readonly logger;
6
5
  constructor(ankiClient: AnkiConnectClient);
7
- guiShowAnswer(_args: Record<string, never>, context: Context): Promise<{
6
+ guiShowAnswer(_args: Record<string, never>): Promise<{
8
7
  [x: string]: unknown;
9
8
  content: ({
10
9
  type: "text";
@@ -22,12 +22,10 @@ let GuiShowAnswerTool = GuiShowAnswerTool_1 = class GuiShowAnswerTool {
22
22
  constructor(ankiClient) {
23
23
  this.ankiClient = ankiClient;
24
24
  }
25
- async guiShowAnswer(_args, context) {
25
+ async guiShowAnswer(_args) {
26
26
  try {
27
27
  this.logger.log("Showing answer side of current card");
28
- await context.reportProgress({ progress: 50, total: 100 });
29
28
  const inReview = await this.ankiClient.invoke("guiShowAnswer");
30
- await context.reportProgress({ progress: 100, total: 100 });
31
29
  if (!inReview) {
32
30
  this.logger.warn("Not in review mode");
33
31
  return {
@@ -76,7 +74,7 @@ __decorate([
76
74
  },
77
75
  }),
78
76
  __metadata("design:type", Function),
79
- __metadata("design:paramtypes", [Object, Object]),
77
+ __metadata("design:paramtypes", [Object]),
80
78
  __metadata("design:returntype", Promise)
81
79
  ], GuiShowAnswerTool.prototype, "guiShowAnswer", null);
82
80
  exports.GuiShowAnswerTool = GuiShowAnswerTool = GuiShowAnswerTool_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"gui-show-answer.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/gui/tools/gui-show-answer.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,8EAAsE;AACtE,0DAA6D;AAMtD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAGC;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAE7D,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAuBxD,AAAN,KAAK,CAAC,aAAa,CAAC,KAA4B,EAAE,OAAgB;QAChE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACvD,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAG3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAU,eAAe,CAAC,CAAC;YAExE,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAE5D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,6CAA6C;oBACtD,IAAI,EAAE,kDAAkD;iBACzD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAErC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,8BAA8B;gBACvC,IAAI,EAAE,2EAA2E;aAClF,CAAC;QACJ,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,uEAAuE;aAC9E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AA9DY,8CAAiB;AA0BtB;IArBL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,4GAA4G;YAC5G,6HAA6H;YAC7H,wGAAwG;YACxG,uEAAuE;QACzE,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;YACpB,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;YACrB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,kBAAkB;YACzB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;KACF,CAAC;;;;sDAoCD;4BA7DU,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,iBAAiB,CA8D7B"}
1
+ {"version":3,"file":"gui-show-answer.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/gui/tools/gui-show-answer.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AACvC,6BAAwB;AACxB,8EAAsE;AACtE,0DAA6D;AAMtD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAGC;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAE7D,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAuBxD,AAAN,KAAK,CAAC,aAAa,CAAC,KAA4B;QAC9C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YAGvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAU,eAAe,CAAC,CAAC;YAExE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,6CAA6C;oBACtD,IAAI,EAAE,kDAAkD;iBACzD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAErC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,8BAA8B;gBACvC,IAAI,EAAE,2EAA2E;aAClF,CAAC;QACJ,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,uEAAuE;aAC9E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AA3DY,8CAAiB;AA0BtB;IArBL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,4GAA4G;YAC5G,6HAA6H;YAC7H,wGAAwG;YACxG,uEAAuE;QACzE,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;YACpB,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;YACrB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,kBAAkB;YACzB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;KACF,CAAC;;;;sDAiCD;4BA1DU,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,iBAAiB,CA2D7B"}
@@ -1,10 +1,9 @@
1
- import type { Context } from "@rekog/mcp-nest";
2
1
  import { AnkiConnectClient } from "../../../clients/anki-connect.client";
3
2
  export declare class GuiShowQuestionTool {
4
3
  private readonly ankiClient;
5
4
  private readonly logger;
6
5
  constructor(ankiClient: AnkiConnectClient);
7
- guiShowQuestion(_args: Record<string, never>, context: Context): Promise<{
6
+ guiShowQuestion(_args: Record<string, never>): Promise<{
8
7
  [x: string]: unknown;
9
8
  content: ({
10
9
  type: "text";
@@ -22,12 +22,10 @@ let GuiShowQuestionTool = GuiShowQuestionTool_1 = class GuiShowQuestionTool {
22
22
  constructor(ankiClient) {
23
23
  this.ankiClient = ankiClient;
24
24
  }
25
- async guiShowQuestion(_args, context) {
25
+ async guiShowQuestion(_args) {
26
26
  try {
27
27
  this.logger.log("Showing question side of current card");
28
- await context.reportProgress({ progress: 50, total: 100 });
29
28
  const inReview = await this.ankiClient.invoke("guiShowQuestion");
30
- await context.reportProgress({ progress: 100, total: 100 });
31
29
  if (!inReview) {
32
30
  this.logger.warn("Not in review mode");
33
31
  return {
@@ -76,7 +74,7 @@ __decorate([
76
74
  },
77
75
  }),
78
76
  __metadata("design:type", Function),
79
- __metadata("design:paramtypes", [Object, Object]),
77
+ __metadata("design:paramtypes", [Object]),
80
78
  __metadata("design:returntype", Promise)
81
79
  ], GuiShowQuestionTool.prototype, "guiShowQuestion", null);
82
80
  exports.GuiShowQuestionTool = GuiShowQuestionTool = GuiShowQuestionTool_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"gui-show-question.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/gui/tools/gui-show-question.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,8EAAsE;AACtE,0DAA6D;AAMtD,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAGD;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;IAE/D,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAuBxD,AAAN,KAAK,CAAC,eAAe,CAAC,KAA4B,EAAE,OAAgB;QAClE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACzD,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAG3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAU,iBAAiB,CAAC,CAAC;YAE1E,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAE5D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,+CAA+C;oBACxD,IAAI,EAAE,kDAAkD;iBACzD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAEvC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,gCAAgC;gBACzC,IAAI,EAAE,oFAAoF;aAC3F,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAEpD,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE;gBAChC,IAAI,EAAE,uEAAuE;aAC9E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AA9DY,kDAAmB;AA0BxB;IArBL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,8GAA8G;YAC9G,+HAA+H;YAC/H,wGAAwG;YACxG,yEAAyE;QAC3E,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;YACpB,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;YACrB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;KACF,CAAC;;;;0DAoCD;8BA7DU,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,mBAAmB,CA8D/B"}
1
+ {"version":3,"file":"gui-show-question.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/gui/tools/gui-show-question.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AACvC,6BAAwB;AACxB,8EAAsE;AACtE,0DAA6D;AAMtD,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAGD;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;IAE/D,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAuBxD,AAAN,KAAK,CAAC,eAAe,CAAC,KAA4B;QAChD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YAGzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAU,iBAAiB,CAAC,CAAC;YAE1E,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,+CAA+C;oBACxD,IAAI,EAAE,kDAAkD;iBACzD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAEvC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,gCAAgC;gBACzC,IAAI,EAAE,oFAAoF;aAC3F,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAEpD,OAAO,IAAA,gCAAmB,EAAC,KAAK,EAAE;gBAChC,IAAI,EAAE,uEAAuE;aAC9E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AA3DY,kDAAmB;AA0BxB;IArBL,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,8GAA8G;YAC9G,+HAA+H;YAC/H,wGAAwG;YACxG,yEAAyE;QAC3E,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;YACpB,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;YACrB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;KACF,CAAC;;;;0DAiCD;8BA1DU,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,mBAAmB,CA2D/B"}
@@ -1,10 +1,9 @@
1
- import type { Context } from "@rekog/mcp-nest";
2
1
  import { AnkiConnectClient } from "../../../clients/anki-connect.client";
3
2
  export declare class GuiUndoTool {
4
3
  private readonly ankiClient;
5
4
  private readonly logger;
6
5
  constructor(ankiClient: AnkiConnectClient);
7
- guiUndo(_args: Record<string, never>, context: Context): Promise<{
6
+ guiUndo(_args: Record<string, never>): Promise<{
8
7
  [x: string]: unknown;
9
8
  content: ({
10
9
  type: "text";
@@ -22,12 +22,10 @@ let GuiUndoTool = GuiUndoTool_1 = class GuiUndoTool {
22
22
  constructor(ankiClient) {
23
23
  this.ankiClient = ankiClient;
24
24
  }
25
- async guiUndo(_args, context) {
25
+ async guiUndo(_args) {
26
26
  try {
27
27
  this.logger.log("Undoing last action in Anki");
28
- await context.reportProgress({ progress: 50, total: 100 });
29
28
  const success = await this.ankiClient.invoke("guiUndo");
30
- await context.reportProgress({ progress: 100, total: 100 });
31
29
  if (!success) {
32
30
  this.logger.warn("Nothing to undo");
33
31
  return {
@@ -76,7 +74,7 @@ __decorate([
76
74
  },
77
75
  }),
78
76
  __metadata("design:type", Function),
79
- __metadata("design:paramtypes", [Object, Object]),
77
+ __metadata("design:paramtypes", [Object]),
80
78
  __metadata("design:returntype", Promise)
81
79
  ], GuiUndoTool.prototype, "guiUndo", null);
82
80
  exports.GuiUndoTool = GuiUndoTool = GuiUndoTool_1 = __decorate([
@@ -1 +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,0DAA6D;AAMtD,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;IAuBxD,AAAN,KAAK,CAAC,OAAO,CAAC,KAA4B,EAAE,OAAgB;QAC1D,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;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,iBAAiB;oBAC1B,IAAI,EAAE,8CAA8C;iBACrD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,iCAAiC;gBAC1C,IAAI,EAAE,kEAAkE;aACzE,CAAC;QACJ,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;AA9DY,kCAAW;AA0BhB;IArBL,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;QACxB,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;YACpB,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE;YACnB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,kBAAkB;YACzB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;SACtB;KACF,CAAC;;;;0CAoCD;sBA7DU,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,WAAW,CA8DvB"}
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;AACvC,6BAAwB;AACxB,8EAAsE;AACtE,0DAA6D;AAMtD,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;IAuBxD,AAAN,KAAK,CAAC,OAAO,CAAC,KAA4B;QACxC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAG/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAU,SAAS,CAAC,CAAC;YAEjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,iBAAiB;oBAC1B,IAAI,EAAE,8CAA8C;iBACrD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,iCAAiC;gBAC1C,IAAI,EAAE,kEAAkE;aACzE,CAAC;QACJ,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;AA3DY,kCAAW;AA0BhB;IArBL,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;QACxB,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;YACpB,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE;YACnB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,kBAAkB;YACzB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;SACtB;KACF,CAAC;;;;0CAiCD;sBA1DU,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAI8B,uCAAiB;GAH/C,WAAW,CA2DvB"}
@@ -3,6 +3,7 @@ export interface NgrokTunnelInfo {
3
3
  apiUrl: string;
4
4
  }
5
5
  export declare class NgrokService {
6
+ private readonly logger;
6
7
  private process;
7
8
  private cleanupHandlersRegistered;
8
9
  start(port: number): Promise<NgrokTunnelInfo>;
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NgrokService = void 0;
7
7
  const child_process_1 = require("child_process");
8
8
  const http_1 = __importDefault(require("http"));
9
+ const common_1 = require("@nestjs/common");
9
10
  class NgrokService {
11
+ logger = new common_1.Logger(NgrokService.name);
10
12
  process = null;
11
13
  cleanupHandlersRegistered = false;
12
14
  async start(port) {
@@ -28,7 +30,7 @@ class NgrokService {
28
30
  });
29
31
  this.process.on("exit", (code, _signal) => {
30
32
  if (code !== 0 && code !== null) {
31
- console.error(`ngrok exited with code ${code}`);
33
+ this.logger.error(`ngrok exited with code ${code}`);
32
34
  }
33
35
  });
34
36
  await this.waitForNgrok();
@@ -93,7 +95,7 @@ class NgrokService {
93
95
  }
94
96
  registerCleanupHandlers() {
95
97
  process.on("SIGINT", () => {
96
- console.log("\n\n🛑 Shutting down ngrok tunnel...");
98
+ this.logger.log("\n\n🛑 Shutting down ngrok tunnel...");
97
99
  this.cleanup();
98
100
  process.exit(0);
99
101
  });
@@ -105,7 +107,7 @@ class NgrokService {
105
107
  this.cleanup();
106
108
  });
107
109
  process.on("uncaughtException", (err) => {
108
- console.error("Uncaught exception:", err);
110
+ this.logger.error("Uncaught exception:", err);
109
111
  this.cleanup();
110
112
  process.exit(1);
111
113
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ngrok.service.js","sourceRoot":"","sources":["../../src/services/ngrok.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngrok.service.js","sourceRoot":"","sources":["../../src/services/ngrok.service.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,10 @@ export declare const mockCards: {
87
87
  type: number;
88
88
  queue: number;
89
89
  modelName: string;
90
+ fieldOrder: number;
91
+ ord: number;
92
+ css: string;
93
+ note: number;
90
94
  };
91
95
  newCard: {
92
96
  cardId: number;
@@ -102,6 +106,10 @@ export declare const mockCards: {
102
106
  type: number;
103
107
  queue: number;
104
108
  modelName: string;
109
+ fieldOrder: number;
110
+ ord: number;
111
+ css: string;
112
+ note: number;
105
113
  };
106
114
  };
107
115
  export declare const mockQueries: {
@@ -72,6 +72,10 @@ exports.mockCards = {
72
72
  type: 2,
73
73
  queue: 2,
74
74
  modelName: "Basic",
75
+ fieldOrder: 0,
76
+ ord: 0,
77
+ css: "",
78
+ note: 1502298033753,
75
79
  },
76
80
  newCard: {
77
81
  cardId: 1502298033758,
@@ -87,6 +91,10 @@ exports.mockCards = {
87
91
  type: 0,
88
92
  queue: 0,
89
93
  modelName: "Basic (and reversed card)",
94
+ fieldOrder: 0,
95
+ ord: 0,
96
+ css: "",
97
+ note: 1502298033757,
90
98
  },
91
99
  };
92
100
  exports.mockQueries = {
@@ -1 +1 @@
1
- {"version":3,"file":"mock-data.js","sourceRoot":"","sources":["../../src/test-fixtures/mock-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-data.js","sourceRoot":"","sources":["../../src/test-fixtures/mock-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { handleLogin } from "./login.command";
2
+ export { handleLogout } from "./logout.command";
3
+ export { handleTunnel } from "./tunnel.command";
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleTunnel = exports.handleLogout = exports.handleLogin = void 0;
4
+ var login_command_1 = require("./login.command");
5
+ Object.defineProperty(exports, "handleLogin", { enumerable: true, get: function () { return login_command_1.handleLogin; } });
6
+ var logout_command_1 = require("./logout.command");
7
+ Object.defineProperty(exports, "handleLogout", { enumerable: true, get: function () { return logout_command_1.handleLogout; } });
8
+ var tunnel_command_1 = require("./tunnel.command");
9
+ Object.defineProperty(exports, "handleTunnel", { enumerable: true, get: function () { return tunnel_command_1.handleTunnel; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tunnel/commands/index.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAArC,4GAAA,WAAW,OAAA;AACpB,mDAAgD;AAAvC,8GAAA,YAAY,OAAA;AACrB,mDAAgD;AAAvC,8GAAA,YAAY,OAAA"}
@@ -0,0 +1,2 @@
1
+ import type { Cli } from "../../cli/cli-output";
2
+ export declare function handleLogin(cli: Cli, tunnelUrl?: string): Promise<void>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleLogin = handleLogin;
4
+ const tunnel_1 = require("..");
5
+ const app_config_service_1 = require("../../app-config.service");
6
+ const config_1 = require("../../config");
7
+ const perform_login_1 = require("./perform-login");
8
+ async function handleLogin(cli, tunnelUrl) {
9
+ const credentialsService = new tunnel_1.CredentialsService();
10
+ const validatedConfig = (0, config_1.loadValidatedConfig)({ tunnel: tunnelUrl });
11
+ const appConfigService = new app_config_service_1.AppConfigService(validatedConfig);
12
+ const deviceFlowService = new tunnel_1.DeviceFlowService(appConfigService);
13
+ cli.blank();
14
+ try {
15
+ await (0, perform_login_1.performLogin)({ credentialsService, deviceFlowService, cli });
16
+ }
17
+ catch (error) {
18
+ cli.blank();
19
+ if (error instanceof tunnel_1.DeviceFlowError) {
20
+ cli.error((0, perform_login_1.translateDeviceFlowError)(error));
21
+ }
22
+ else {
23
+ cli.error(`Login failed: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
24
+ }
25
+ cli.blank();
26
+ process.exit(1);
27
+ }
28
+ }
29
+ //# sourceMappingURL=login.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.command.js","sourceRoot":"","sources":["../../../src/tunnel/commands/login.command.ts"],"names":[],"mappings":";;AA0BA,kCAyBC;AAnDD,+BAIkB;AAClB,iEAAwD;AACxD,yCAA+C;AAE/C,mDAAyE;AAkBlE,KAAK,UAAU,WAAW,CAAC,GAAQ,EAAE,SAAkB;IAC5D,MAAM,kBAAkB,GAAG,IAAI,2BAAkB,EAAE,CAAC;IACpD,MAAM,eAAe,GAAG,IAAA,4BAAmB,EAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,IAAI,qCAAgB,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,IAAI,0BAAiB,CAAC,gBAAgB,CAAC,CAAC;IAElE,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,IAAI,CAAC;QACH,MAAM,IAAA,4BAAY,EAAC,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,EAAE,CAAC;QAEZ,IAAI,KAAK,YAAY,wBAAe,EAAE,CAAC;YACrC,GAAG,CAAC,KAAK,CAAC,IAAA,wCAAwB,EAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CACP,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACzE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Cli } from "../../cli/cli-output";
2
+ export declare function handleLogout(cli: Cli): Promise<void>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleLogout = handleLogout;
4
+ const credentials_service_1 = require("../credentials.service");
5
+ async function handleLogout(cli) {
6
+ const credentialsService = new credentials_service_1.CredentialsService();
7
+ const hasCredentials = await credentialsService.hasCredentials();
8
+ if (!hasCredentials) {
9
+ cli.blank();
10
+ cli.info("Not logged in. Nothing to do.");
11
+ return;
12
+ }
13
+ try {
14
+ await credentialsService.clearCredentials();
15
+ cli.blank();
16
+ cli.success("Logged out successfully.");
17
+ cli.info(`Credentials removed from ${credentialsService.getCredentialsPath()}`);
18
+ }
19
+ catch (error) {
20
+ cli.blank();
21
+ cli.error(`Failed to remove credentials: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
22
+ process.exit(1);
23
+ }
24
+ }
25
+ //# sourceMappingURL=logout.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.command.js","sourceRoot":"","sources":["../../../src/tunnel/commands/logout.command.ts"],"names":[],"mappings":";;AAsBA,oCA6BC;AAnDD,gEAA4D;AAsBrD,KAAK,UAAU,YAAY,CAAC,GAAQ;IACzC,MAAM,kBAAkB,GAAG,IAAI,wCAAkB,EAAE,CAAC;IAGpD,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,CAAC;IAEjE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAGD,IAAI,CAAC;QACH,MAAM,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;QAE5C,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACxC,GAAG,CAAC,IAAI,CACN,4BAA4B,kBAAkB,CAAC,kBAAkB,EAAE,EAAE,CACtE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,KAAK,CACP,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACzF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { CredentialsService, DeviceFlowError, DeviceFlowService, TunnelCredentials } from "..";
2
+ import type { Cli } from "../../cli/cli-output";
3
+ export interface PerformLoginDeps {
4
+ credentialsService: CredentialsService;
5
+ deviceFlowService: DeviceFlowService;
6
+ cli: Cli;
7
+ }
8
+ export declare function translateDeviceFlowError(error: DeviceFlowError): string;
9
+ export declare function performLogin(deps: PerformLoginDeps): Promise<TunnelCredentials>;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.translateDeviceFlowError = translateDeviceFlowError;
4
+ exports.performLogin = performLogin;
5
+ const spinner_1 = require("../../cli/spinner");
6
+ const child_process_1 = require("child_process");
7
+ const util_1 = require("util");
8
+ const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
9
+ async function openBrowser(url) {
10
+ try {
11
+ switch (process.platform) {
12
+ case "darwin":
13
+ await execFileAsync("open", [url]);
14
+ break;
15
+ case "win32":
16
+ await execFileAsync("cmd", ["/c", "start", "", url]);
17
+ break;
18
+ default:
19
+ await execFileAsync("xdg-open", [url]);
20
+ break;
21
+ }
22
+ }
23
+ catch {
24
+ }
25
+ }
26
+ function translateDeviceFlowError(error) {
27
+ switch (error.code) {
28
+ case "expired_token":
29
+ return "Authentication timed out. Please try again with 'ankimcp --login'";
30
+ case "access_denied":
31
+ return "Authentication was denied. Please try again with 'ankimcp --login'";
32
+ case "network_error":
33
+ case "timeout":
34
+ return "Failed to connect to auth server. Check your internet connection.";
35
+ default:
36
+ return `Authentication failed: ${error.message}`;
37
+ }
38
+ }
39
+ async function performLogin(deps) {
40
+ const { credentialsService, deviceFlowService, cli } = deps;
41
+ const deviceCode = await deviceFlowService.requestDeviceCode();
42
+ cli.info("Opening browser for authentication...");
43
+ cli.info(`If browser doesn't open, visit: ${deviceCode.verification_uri}`);
44
+ cli.info(`Enter code: ${deviceCode.user_code}`);
45
+ cli.blank();
46
+ const urlToOpen = deviceCode.verification_uri_complete || deviceCode.verification_uri;
47
+ await openBrowser(urlToOpen);
48
+ const stopSpinner = (0, spinner_1.startSpinner)("Waiting for authentication...");
49
+ let tokenResponse;
50
+ try {
51
+ tokenResponse = await deviceFlowService.pollForToken(deviceCode.device_code, deviceCode.interval, deviceCode.expires_in);
52
+ }
53
+ finally {
54
+ stopSpinner();
55
+ }
56
+ cli.success("Authentication successful");
57
+ cli.blank();
58
+ const expiresAt = new Date(Date.now() + tokenResponse.expires_in * 1000).toISOString();
59
+ const credentials = {
60
+ access_token: tokenResponse.access_token,
61
+ refresh_token: tokenResponse.refresh_token,
62
+ expires_at: expiresAt,
63
+ user: tokenResponse.user,
64
+ };
65
+ await credentialsService.saveCredentials(credentials);
66
+ cli.info(`Logged in as: ${tokenResponse.user.email}`);
67
+ cli.info(`Tier: ${tokenResponse.user.tier}`);
68
+ cli.info(`Credentials saved to ${credentialsService.getCredentialsPath()}`);
69
+ cli.blank();
70
+ return credentials;
71
+ }
72
+ //# sourceMappingURL=perform-login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perform-login.js","sourceRoot":"","sources":["../../../src/tunnel/commands/perform-login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Cli } from "../../cli/cli-output";
2
+ export declare function deriveDashboardUrl(tunnelUrl: string): string;
3
+ export declare function handleTunnel(cli: Cli, tunnelUrl?: string, debug?: boolean, readOnly?: boolean): Promise<void>;