@quantiya/codevibe-claude-plugin 1.0.11 → 1.0.13

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 (473) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/dist/server.js +16 -1162
  3. package/package.json +5 -5
  4. package/dist/appsync-client.js +0 -858
  5. package/dist/auth-cli.js +0 -472
  6. package/dist/command-executor.js +0 -127
  7. package/dist/config.js +0 -106
  8. package/dist/crypto-service.js +0 -278
  9. package/dist/http-api.js +0 -334
  10. package/dist/key-manager.js +0 -287
  11. package/dist/logger.js +0 -18
  12. package/dist/prompt-responder.js +0 -132
  13. package/dist/token-storage.js +0 -169
  14. package/dist/types.js +0 -17
  15. package/node_modules/@quantiya/codevibe-core/README.md +0 -170
  16. package/node_modules/@quantiya/codevibe-core/bin/codevibe.js +0 -7
  17. package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.d.ts +0 -132
  18. package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.js +0 -576
  19. package/node_modules/@quantiya/codevibe-core/dist/appsync/index.d.ts +0 -2
  20. package/node_modules/@quantiya/codevibe-core/dist/appsync/index.js +0 -10
  21. package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.d.ts +0 -16
  22. package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.js +0 -189
  23. package/node_modules/@quantiya/codevibe-core/dist/auth/auth-cli.d.ts +0 -5
  24. package/node_modules/@quantiya/codevibe-core/dist/auth/auth-cli.js +0 -217
  25. package/node_modules/@quantiya/codevibe-core/dist/auth/auth-service.d.ts +0 -87
  26. package/node_modules/@quantiya/codevibe-core/dist/auth/auth-service.js +0 -464
  27. package/node_modules/@quantiya/codevibe-core/dist/auth/fetch-helpers.d.ts +0 -11
  28. package/node_modules/@quantiya/codevibe-core/dist/auth/fetch-helpers.js +0 -165
  29. package/node_modules/@quantiya/codevibe-core/dist/auth/index.d.ts +0 -2
  30. package/node_modules/@quantiya/codevibe-core/dist/auth/index.js +0 -9
  31. package/node_modules/@quantiya/codevibe-core/dist/config/config.d.ts +0 -53
  32. package/node_modules/@quantiya/codevibe-core/dist/config/config.js +0 -123
  33. package/node_modules/@quantiya/codevibe-core/dist/config/index.d.ts +0 -2
  34. package/node_modules/@quantiya/codevibe-core/dist/config/index.js +0 -8
  35. package/node_modules/@quantiya/codevibe-core/dist/crypto/crypto-service.d.ts +0 -118
  36. package/node_modules/@quantiya/codevibe-core/dist/crypto/crypto-service.js +0 -284
  37. package/node_modules/@quantiya/codevibe-core/dist/crypto/index.d.ts +0 -1
  38. package/node_modules/@quantiya/codevibe-core/dist/crypto/index.js +0 -9
  39. package/node_modules/@quantiya/codevibe-core/dist/index.d.ts +0 -14
  40. package/node_modules/@quantiya/codevibe-core/dist/index.js +0 -68
  41. package/node_modules/@quantiya/codevibe-core/dist/keychain/index.d.ts +0 -1
  42. package/node_modules/@quantiya/codevibe-core/dist/keychain/index.js +0 -8
  43. package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-manager.d.ts +0 -125
  44. package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-manager.js +0 -375
  45. package/node_modules/@quantiya/codevibe-core/dist/logger/index.d.ts +0 -1
  46. package/node_modules/@quantiya/codevibe-core/dist/logger/index.js +0 -8
  47. package/node_modules/@quantiya/codevibe-core/dist/logger/logger.d.ts +0 -35
  48. package/node_modules/@quantiya/codevibe-core/dist/logger/logger.js +0 -142
  49. package/node_modules/@quantiya/codevibe-core/dist/prompt-parser.d.ts +0 -39
  50. package/node_modules/@quantiya/codevibe-core/dist/prompt-parser.js +0 -236
  51. package/node_modules/@quantiya/codevibe-core/dist/session/index.d.ts +0 -2
  52. package/node_modules/@quantiya/codevibe-core/dist/session/index.js +0 -7
  53. package/node_modules/@quantiya/codevibe-core/dist/session/session-resume.d.ts +0 -55
  54. package/node_modules/@quantiya/codevibe-core/dist/session/session-resume.js +0 -151
  55. package/node_modules/@quantiya/codevibe-core/dist/types/auth.d.ts +0 -15
  56. package/node_modules/@quantiya/codevibe-core/dist/types/auth.js +0 -3
  57. package/node_modules/@quantiya/codevibe-core/dist/types/encryption.d.ts +0 -54
  58. package/node_modules/@quantiya/codevibe-core/dist/types/encryption.js +0 -3
  59. package/node_modules/@quantiya/codevibe-core/dist/types/events.d.ts +0 -74
  60. package/node_modules/@quantiya/codevibe-core/dist/types/events.js +0 -28
  61. package/node_modules/@quantiya/codevibe-core/dist/types/index.d.ts +0 -4
  62. package/node_modules/@quantiya/codevibe-core/dist/types/index.js +0 -22
  63. package/node_modules/@quantiya/codevibe-core/dist/types/session.d.ts +0 -59
  64. package/node_modules/@quantiya/codevibe-core/dist/types/session.js +0 -22
  65. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/CHANGELOG.md +0 -274
  66. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/CONTRIBUTING.md +0 -18
  67. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/LICENSE.md +0 -9
  68. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/README.md +0 -466
  69. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/bin/uuid +0 -2
  70. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/index.js +0 -79
  71. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/md5.js +0 -223
  72. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/native.js +0 -11
  73. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/nil.js +0 -8
  74. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/parse.js +0 -45
  75. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/regex.js +0 -8
  76. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/rng.js +0 -25
  77. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/sha1.js +0 -104
  78. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/stringify.js +0 -44
  79. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v1.js +0 -107
  80. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v3.js +0 -16
  81. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v35.js +0 -80
  82. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v4.js +0 -43
  83. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v5.js +0 -16
  84. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/validate.js +0 -17
  85. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/version.js +0 -21
  86. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/index.js +0 -9
  87. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/md5.js +0 -215
  88. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/native.js +0 -4
  89. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/nil.js +0 -1
  90. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/parse.js +0 -35
  91. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/regex.js +0 -1
  92. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/rng.js +0 -18
  93. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/sha1.js +0 -96
  94. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/stringify.js +0 -33
  95. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v1.js +0 -95
  96. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v3.js +0 -4
  97. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v35.js +0 -66
  98. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v4.js +0 -29
  99. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v5.js +0 -4
  100. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/validate.js +0 -7
  101. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/version.js +0 -11
  102. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/index.js +0 -9
  103. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/md5.js +0 -13
  104. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/native.js +0 -4
  105. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/nil.js +0 -1
  106. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/parse.js +0 -35
  107. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/regex.js +0 -1
  108. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/rng.js +0 -12
  109. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/sha1.js +0 -13
  110. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/stringify.js +0 -33
  111. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v1.js +0 -95
  112. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v3.js +0 -4
  113. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v35.js +0 -66
  114. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v4.js +0 -29
  115. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v5.js +0 -4
  116. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/validate.js +0 -7
  117. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/version.js +0 -11
  118. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/index.js +0 -79
  119. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/md5-browser.js +0 -223
  120. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/md5.js +0 -23
  121. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/native-browser.js +0 -11
  122. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/native.js +0 -15
  123. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/nil.js +0 -8
  124. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/parse.js +0 -45
  125. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/regex.js +0 -8
  126. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/rng-browser.js +0 -25
  127. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/rng.js +0 -24
  128. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/sha1-browser.js +0 -104
  129. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/sha1.js +0 -23
  130. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/stringify.js +0 -44
  131. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/uuid-bin.js +0 -85
  132. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v1.js +0 -107
  133. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v3.js +0 -16
  134. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v35.js +0 -80
  135. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v4.js +0 -43
  136. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v5.js +0 -16
  137. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/validate.js +0 -17
  138. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/version.js +0 -21
  139. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/package.json +0 -135
  140. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/wrapper.mjs +0 -10
  141. package/node_modules/@quantiya/codevibe-core/package.json +0 -51
  142. package/node_modules/base64-js/LICENSE +0 -21
  143. package/node_modules/base64-js/README.md +0 -34
  144. package/node_modules/base64-js/base64js.min.js +0 -1
  145. package/node_modules/base64-js/index.d.ts +0 -3
  146. package/node_modules/base64-js/index.js +0 -150
  147. package/node_modules/base64-js/package.json +0 -47
  148. package/node_modules/bl/.travis.yml +0 -17
  149. package/node_modules/bl/BufferList.js +0 -396
  150. package/node_modules/bl/LICENSE.md +0 -13
  151. package/node_modules/bl/README.md +0 -247
  152. package/node_modules/bl/bl.js +0 -84
  153. package/node_modules/bl/package.json +0 -37
  154. package/node_modules/bl/test/convert.js +0 -21
  155. package/node_modules/bl/test/indexOf.js +0 -492
  156. package/node_modules/bl/test/isBufferList.js +0 -32
  157. package/node_modules/bl/test/test.js +0 -869
  158. package/node_modules/buffer/AUTHORS.md +0 -70
  159. package/node_modules/buffer/LICENSE +0 -21
  160. package/node_modules/buffer/README.md +0 -410
  161. package/node_modules/buffer/index.d.ts +0 -186
  162. package/node_modules/buffer/index.js +0 -1817
  163. package/node_modules/buffer/package.json +0 -96
  164. package/node_modules/chownr/LICENSE +0 -15
  165. package/node_modules/chownr/README.md +0 -3
  166. package/node_modules/chownr/chownr.js +0 -167
  167. package/node_modules/chownr/package.json +0 -29
  168. package/node_modules/decompress-response/index.d.ts +0 -22
  169. package/node_modules/decompress-response/index.js +0 -58
  170. package/node_modules/decompress-response/license +0 -9
  171. package/node_modules/decompress-response/package.json +0 -56
  172. package/node_modules/decompress-response/readme.md +0 -48
  173. package/node_modules/deep-extend/CHANGELOG.md +0 -46
  174. package/node_modules/deep-extend/LICENSE +0 -20
  175. package/node_modules/deep-extend/README.md +0 -91
  176. package/node_modules/deep-extend/index.js +0 -1
  177. package/node_modules/deep-extend/lib/deep-extend.js +0 -150
  178. package/node_modules/deep-extend/package.json +0 -62
  179. package/node_modules/detect-libc/LICENSE +0 -201
  180. package/node_modules/detect-libc/README.md +0 -163
  181. package/node_modules/detect-libc/index.d.ts +0 -14
  182. package/node_modules/detect-libc/lib/detect-libc.js +0 -313
  183. package/node_modules/detect-libc/lib/elf.js +0 -39
  184. package/node_modules/detect-libc/lib/filesystem.js +0 -51
  185. package/node_modules/detect-libc/lib/process.js +0 -24
  186. package/node_modules/detect-libc/package.json +0 -44
  187. package/node_modules/end-of-stream/LICENSE +0 -21
  188. package/node_modules/end-of-stream/README.md +0 -54
  189. package/node_modules/end-of-stream/index.js +0 -96
  190. package/node_modules/end-of-stream/package.json +0 -37
  191. package/node_modules/expand-template/.travis.yml +0 -6
  192. package/node_modules/expand-template/LICENSE +0 -21
  193. package/node_modules/expand-template/README.md +0 -43
  194. package/node_modules/expand-template/index.js +0 -26
  195. package/node_modules/expand-template/package.json +0 -29
  196. package/node_modules/expand-template/test.js +0 -67
  197. package/node_modules/fs-constants/LICENSE +0 -21
  198. package/node_modules/fs-constants/README.md +0 -26
  199. package/node_modules/fs-constants/browser.js +0 -1
  200. package/node_modules/fs-constants/index.js +0 -1
  201. package/node_modules/fs-constants/package.json +0 -19
  202. package/node_modules/github-from-package/.travis.yml +0 -4
  203. package/node_modules/github-from-package/LICENSE +0 -18
  204. package/node_modules/github-from-package/example/package.json +0 -8
  205. package/node_modules/github-from-package/example/url.js +0 -3
  206. package/node_modules/github-from-package/index.js +0 -17
  207. package/node_modules/github-from-package/package.json +0 -30
  208. package/node_modules/github-from-package/readme.markdown +0 -53
  209. package/node_modules/github-from-package/test/a.json +0 -8
  210. package/node_modules/github-from-package/test/b.json +0 -5
  211. package/node_modules/github-from-package/test/c.json +0 -5
  212. package/node_modules/github-from-package/test/d.json +0 -7
  213. package/node_modules/github-from-package/test/e.json +0 -5
  214. package/node_modules/github-from-package/test/url.js +0 -19
  215. package/node_modules/ieee754/LICENSE +0 -11
  216. package/node_modules/ieee754/README.md +0 -51
  217. package/node_modules/ieee754/index.d.ts +0 -10
  218. package/node_modules/ieee754/index.js +0 -85
  219. package/node_modules/ieee754/package.json +0 -52
  220. package/node_modules/ini/LICENSE +0 -15
  221. package/node_modules/ini/README.md +0 -102
  222. package/node_modules/ini/ini.js +0 -206
  223. package/node_modules/ini/package.json +0 -33
  224. package/node_modules/keytar/LICENSE.md +0 -20
  225. package/node_modules/keytar/README.md +0 -94
  226. package/node_modules/keytar/binding.gyp +0 -66
  227. package/node_modules/keytar/build/Release/keytar.node +0 -0
  228. package/node_modules/keytar/keytar.d.ts +0 -51
  229. package/node_modules/keytar/lib/keytar.js +0 -43
  230. package/node_modules/keytar/package.json +0 -66
  231. package/node_modules/keytar/src/async.cc +0 -242
  232. package/node_modules/keytar/src/async.h +0 -103
  233. package/node_modules/keytar/src/credentials.h +0 -13
  234. package/node_modules/keytar/src/keytar.h +0 -41
  235. package/node_modules/keytar/src/keytar_mac.cc +0 -296
  236. package/node_modules/keytar/src/keytar_posix.cc +0 -184
  237. package/node_modules/keytar/src/keytar_win.cc +0 -272
  238. package/node_modules/keytar/src/main.cc +0 -139
  239. package/node_modules/mimic-response/index.d.ts +0 -17
  240. package/node_modules/mimic-response/index.js +0 -77
  241. package/node_modules/mimic-response/license +0 -9
  242. package/node_modules/mimic-response/package.json +0 -42
  243. package/node_modules/mimic-response/readme.md +0 -78
  244. package/node_modules/minimist/.eslintrc +0 -29
  245. package/node_modules/minimist/.github/FUNDING.yml +0 -12
  246. package/node_modules/minimist/.nycrc +0 -14
  247. package/node_modules/minimist/CHANGELOG.md +0 -298
  248. package/node_modules/minimist/LICENSE +0 -18
  249. package/node_modules/minimist/README.md +0 -121
  250. package/node_modules/minimist/example/parse.js +0 -4
  251. package/node_modules/minimist/index.js +0 -263
  252. package/node_modules/minimist/package.json +0 -75
  253. package/node_modules/minimist/test/all_bool.js +0 -34
  254. package/node_modules/minimist/test/bool.js +0 -177
  255. package/node_modules/minimist/test/dash.js +0 -43
  256. package/node_modules/minimist/test/default_bool.js +0 -37
  257. package/node_modules/minimist/test/dotted.js +0 -24
  258. package/node_modules/minimist/test/kv_short.js +0 -32
  259. package/node_modules/minimist/test/long.js +0 -33
  260. package/node_modules/minimist/test/num.js +0 -38
  261. package/node_modules/minimist/test/parse.js +0 -209
  262. package/node_modules/minimist/test/parse_modified.js +0 -11
  263. package/node_modules/minimist/test/proto.js +0 -64
  264. package/node_modules/minimist/test/short.js +0 -69
  265. package/node_modules/minimist/test/stop_early.js +0 -17
  266. package/node_modules/minimist/test/unknown.js +0 -104
  267. package/node_modules/minimist/test/whitespace.js +0 -10
  268. package/node_modules/mkdirp-classic/LICENSE +0 -21
  269. package/node_modules/mkdirp-classic/README.md +0 -18
  270. package/node_modules/mkdirp-classic/index.js +0 -98
  271. package/node_modules/mkdirp-classic/package.json +0 -18
  272. package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +0 -31
  273. package/node_modules/napi-build-utils/LICENSE +0 -21
  274. package/node_modules/napi-build-utils/README.md +0 -52
  275. package/node_modules/napi-build-utils/index.js +0 -214
  276. package/node_modules/napi-build-utils/index.md +0 -0
  277. package/node_modules/napi-build-utils/package.json +0 -42
  278. package/node_modules/node-abi/LICENSE +0 -21
  279. package/node_modules/node-abi/README.md +0 -54
  280. package/node_modules/node-abi/abi_registry.json +0 -432
  281. package/node_modules/node-abi/index.js +0 -179
  282. package/node_modules/node-abi/package.json +0 -45
  283. package/node_modules/node-addon-api/LICENSE.md +0 -13
  284. package/node_modules/node-addon-api/README.md +0 -293
  285. package/node_modules/node-addon-api/common.gypi +0 -21
  286. package/node_modules/node-addon-api/except.gypi +0 -25
  287. package/node_modules/node-addon-api/index.js +0 -11
  288. package/node_modules/node-addon-api/napi-inl.deprecated.h +0 -192
  289. package/node_modules/node-addon-api/napi-inl.h +0 -6209
  290. package/node_modules/node-addon-api/napi.h +0 -2983
  291. package/node_modules/node-addon-api/node_api.gyp +0 -9
  292. package/node_modules/node-addon-api/noexcept.gypi +0 -26
  293. package/node_modules/node-addon-api/nothing.c +0 -0
  294. package/node_modules/node-addon-api/package-support.json +0 -21
  295. package/node_modules/node-addon-api/package.json +0 -399
  296. package/node_modules/node-addon-api/tools/README.md +0 -73
  297. package/node_modules/node-addon-api/tools/check-napi.js +0 -100
  298. package/node_modules/node-addon-api/tools/clang-format.js +0 -68
  299. package/node_modules/node-addon-api/tools/conversion.js +0 -309
  300. package/node_modules/node-addon-api/tools/eslint-format.js +0 -71
  301. package/node_modules/prebuild-install/CHANGELOG.md +0 -131
  302. package/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
  303. package/node_modules/prebuild-install/LICENSE +0 -21
  304. package/node_modules/prebuild-install/README.md +0 -163
  305. package/node_modules/prebuild-install/asset.js +0 -44
  306. package/node_modules/prebuild-install/bin.js +0 -78
  307. package/node_modules/prebuild-install/download.js +0 -142
  308. package/node_modules/prebuild-install/error.js +0 -14
  309. package/node_modules/prebuild-install/help.txt +0 -16
  310. package/node_modules/prebuild-install/index.js +0 -1
  311. package/node_modules/prebuild-install/log.js +0 -33
  312. package/node_modules/prebuild-install/package.json +0 -67
  313. package/node_modules/prebuild-install/proxy.js +0 -35
  314. package/node_modules/prebuild-install/rc.js +0 -64
  315. package/node_modules/prebuild-install/util.js +0 -143
  316. package/node_modules/pump/.github/FUNDING.yml +0 -2
  317. package/node_modules/pump/.travis.yml +0 -5
  318. package/node_modules/pump/LICENSE +0 -21
  319. package/node_modules/pump/README.md +0 -74
  320. package/node_modules/pump/SECURITY.md +0 -5
  321. package/node_modules/pump/empty.js +0 -1
  322. package/node_modules/pump/index.js +0 -86
  323. package/node_modules/pump/package.json +0 -30
  324. package/node_modules/pump/test-browser.js +0 -66
  325. package/node_modules/pump/test-node.js +0 -53
  326. package/node_modules/rc/LICENSE.APACHE2 +0 -15
  327. package/node_modules/rc/LICENSE.BSD +0 -26
  328. package/node_modules/rc/LICENSE.MIT +0 -24
  329. package/node_modules/rc/README.md +0 -227
  330. package/node_modules/rc/browser.js +0 -7
  331. package/node_modules/rc/cli.js +0 -4
  332. package/node_modules/rc/index.js +0 -53
  333. package/node_modules/rc/lib/utils.js +0 -104
  334. package/node_modules/rc/package.json +0 -29
  335. package/node_modules/rc/test/ini.js +0 -16
  336. package/node_modules/rc/test/nested-env-vars.js +0 -50
  337. package/node_modules/rc/test/test.js +0 -59
  338. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  339. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  340. package/node_modules/readable-stream/LICENSE +0 -47
  341. package/node_modules/readable-stream/README.md +0 -106
  342. package/node_modules/readable-stream/errors-browser.js +0 -127
  343. package/node_modules/readable-stream/errors.js +0 -116
  344. package/node_modules/readable-stream/experimentalWarning.js +0 -17
  345. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  346. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  347. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  348. package/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  349. package/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  350. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  351. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  352. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  353. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  354. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  355. package/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  356. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  357. package/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  358. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  359. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  360. package/node_modules/readable-stream/package.json +0 -68
  361. package/node_modules/readable-stream/readable-browser.js +0 -9
  362. package/node_modules/readable-stream/readable.js +0 -16
  363. package/node_modules/safe-buffer/LICENSE +0 -21
  364. package/node_modules/safe-buffer/README.md +0 -584
  365. package/node_modules/safe-buffer/index.d.ts +0 -187
  366. package/node_modules/safe-buffer/index.js +0 -65
  367. package/node_modules/safe-buffer/package.json +0 -51
  368. package/node_modules/semver/LICENSE +0 -15
  369. package/node_modules/semver/README.md +0 -665
  370. package/node_modules/semver/bin/semver.js +0 -191
  371. package/node_modules/semver/classes/comparator.js +0 -143
  372. package/node_modules/semver/classes/index.js +0 -7
  373. package/node_modules/semver/classes/range.js +0 -557
  374. package/node_modules/semver/classes/semver.js +0 -333
  375. package/node_modules/semver/functions/clean.js +0 -8
  376. package/node_modules/semver/functions/cmp.js +0 -54
  377. package/node_modules/semver/functions/coerce.js +0 -62
  378. package/node_modules/semver/functions/compare-build.js +0 -9
  379. package/node_modules/semver/functions/compare-loose.js +0 -5
  380. package/node_modules/semver/functions/compare.js +0 -7
  381. package/node_modules/semver/functions/diff.js +0 -60
  382. package/node_modules/semver/functions/eq.js +0 -5
  383. package/node_modules/semver/functions/gt.js +0 -5
  384. package/node_modules/semver/functions/gte.js +0 -5
  385. package/node_modules/semver/functions/inc.js +0 -21
  386. package/node_modules/semver/functions/lt.js +0 -5
  387. package/node_modules/semver/functions/lte.js +0 -5
  388. package/node_modules/semver/functions/major.js +0 -5
  389. package/node_modules/semver/functions/minor.js +0 -5
  390. package/node_modules/semver/functions/neq.js +0 -5
  391. package/node_modules/semver/functions/parse.js +0 -18
  392. package/node_modules/semver/functions/patch.js +0 -5
  393. package/node_modules/semver/functions/prerelease.js +0 -8
  394. package/node_modules/semver/functions/rcompare.js +0 -5
  395. package/node_modules/semver/functions/rsort.js +0 -5
  396. package/node_modules/semver/functions/satisfies.js +0 -12
  397. package/node_modules/semver/functions/sort.js +0 -5
  398. package/node_modules/semver/functions/valid.js +0 -8
  399. package/node_modules/semver/index.js +0 -91
  400. package/node_modules/semver/internal/constants.js +0 -37
  401. package/node_modules/semver/internal/debug.js +0 -11
  402. package/node_modules/semver/internal/identifiers.js +0 -29
  403. package/node_modules/semver/internal/lrucache.js +0 -42
  404. package/node_modules/semver/internal/parse-options.js +0 -17
  405. package/node_modules/semver/internal/re.js +0 -223
  406. package/node_modules/semver/package.json +0 -78
  407. package/node_modules/semver/preload.js +0 -4
  408. package/node_modules/semver/range.bnf +0 -16
  409. package/node_modules/semver/ranges/gtr.js +0 -6
  410. package/node_modules/semver/ranges/intersects.js +0 -9
  411. package/node_modules/semver/ranges/ltr.js +0 -6
  412. package/node_modules/semver/ranges/max-satisfying.js +0 -27
  413. package/node_modules/semver/ranges/min-satisfying.js +0 -26
  414. package/node_modules/semver/ranges/min-version.js +0 -63
  415. package/node_modules/semver/ranges/outside.js +0 -82
  416. package/node_modules/semver/ranges/simplify.js +0 -49
  417. package/node_modules/semver/ranges/subset.js +0 -249
  418. package/node_modules/semver/ranges/to-comparators.js +0 -10
  419. package/node_modules/semver/ranges/valid.js +0 -13
  420. package/node_modules/simple-concat/.travis.yml +0 -3
  421. package/node_modules/simple-concat/LICENSE +0 -20
  422. package/node_modules/simple-concat/README.md +0 -44
  423. package/node_modules/simple-concat/index.js +0 -15
  424. package/node_modules/simple-concat/package.json +0 -47
  425. package/node_modules/simple-concat/test/basic.js +0 -41
  426. package/node_modules/simple-get/.github/dependabot.yml +0 -15
  427. package/node_modules/simple-get/.github/workflows/ci.yml +0 -23
  428. package/node_modules/simple-get/LICENSE +0 -20
  429. package/node_modules/simple-get/README.md +0 -333
  430. package/node_modules/simple-get/index.js +0 -108
  431. package/node_modules/simple-get/package.json +0 -67
  432. package/node_modules/string_decoder/LICENSE +0 -48
  433. package/node_modules/string_decoder/README.md +0 -47
  434. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  435. package/node_modules/string_decoder/package.json +0 -34
  436. package/node_modules/strip-json-comments/index.js +0 -70
  437. package/node_modules/strip-json-comments/license +0 -21
  438. package/node_modules/strip-json-comments/package.json +0 -42
  439. package/node_modules/strip-json-comments/readme.md +0 -64
  440. package/node_modules/tar-fs/.travis.yml +0 -6
  441. package/node_modules/tar-fs/LICENSE +0 -21
  442. package/node_modules/tar-fs/README.md +0 -165
  443. package/node_modules/tar-fs/index.js +0 -363
  444. package/node_modules/tar-fs/package.json +0 -41
  445. package/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
  446. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
  447. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  448. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  449. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  450. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  451. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  452. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  453. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  454. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  455. package/node_modules/tar-fs/test/index.js +0 -346
  456. package/node_modules/tar-stream/LICENSE +0 -21
  457. package/node_modules/tar-stream/README.md +0 -168
  458. package/node_modules/tar-stream/extract.js +0 -257
  459. package/node_modules/tar-stream/headers.js +0 -295
  460. package/node_modules/tar-stream/index.js +0 -2
  461. package/node_modules/tar-stream/pack.js +0 -255
  462. package/node_modules/tar-stream/package.json +0 -58
  463. package/node_modules/tar-stream/sandbox.js +0 -11
  464. package/node_modules/tunnel-agent/LICENSE +0 -55
  465. package/node_modules/tunnel-agent/README.md +0 -4
  466. package/node_modules/tunnel-agent/index.js +0 -244
  467. package/node_modules/tunnel-agent/package.json +0 -22
  468. package/node_modules/util-deprecate/History.md +0 -16
  469. package/node_modules/util-deprecate/LICENSE +0 -24
  470. package/node_modules/util-deprecate/README.md +0 -53
  471. package/node_modules/util-deprecate/browser.js +0 -67
  472. package/node_modules/util-deprecate/node.js +0 -6
  473. package/node_modules/util-deprecate/package.json +0 -27
@@ -1,858 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AppSyncClient = void 0;
7
- const ws_1 = __importDefault(require("ws"));
8
- const uuid_1 = require("uuid");
9
- const config_1 = require("./config");
10
- const logger_1 = require("./logger");
11
- const token_storage_1 = require("./token-storage");
12
- const types_1 = require("./types");
13
- // GraphQL queries and mutations
14
- const createSessionMutation = /* GraphQL */ `
15
- mutation CreateSession($input: CreateSessionInput!) {
16
- createSession(input: $input) {
17
- sessionId
18
- userId
19
- agentType
20
- projectPath
21
- status
22
- createdAt
23
- updatedAt
24
- }
25
- }
26
- `;
27
- const updateSessionMutation = /* GraphQL */ `
28
- mutation UpdateSession($input: UpdateSessionInput!) {
29
- updateSession(input: $input) {
30
- sessionId
31
- status
32
- updatedAt
33
- }
34
- }
35
- `;
36
- const createEventMutation = /* GraphQL */ `
37
- mutation CreateEvent($input: CreateEventInput!) {
38
- createEvent(input: $input) {
39
- eventId
40
- sessionId
41
- type
42
- source
43
- content
44
- timestamp
45
- metadata
46
- promptId
47
- deliveryStatus
48
- deliveredAt
49
- executedAt
50
- }
51
- }
52
- `;
53
- const updateEventStatusMutation = /* GraphQL */ `
54
- mutation UpdateEventStatus($input: UpdateEventStatusInput!) {
55
- updateEventStatus(input: $input) {
56
- eventId
57
- sessionId
58
- type
59
- source
60
- content
61
- timestamp
62
- metadata
63
- promptId
64
- deliveryStatus
65
- deliveredAt
66
- executedAt
67
- }
68
- }
69
- `;
70
- const createFileChangeMutation = /* GraphQL */ `
71
- mutation CreateFileChange($input: CreateFileChangeInput!) {
72
- createFileChange(input: $input) {
73
- changeId
74
- sessionId
75
- filePath
76
- action
77
- diff
78
- timestamp
79
- }
80
- }
81
- `;
82
- const getSessionQuery = /* GraphQL */ `
83
- query GetSession($sessionId: ID!) {
84
- getSession(sessionId: $sessionId) {
85
- sessionId
86
- userId
87
- projectPath
88
- status
89
- createdAt
90
- updatedAt
91
- metadata
92
- isEncrypted
93
- encryptedKeys {
94
- deviceId
95
- encryptedKey
96
- ephemeralPublicKey
97
- }
98
- creatorDeviceId
99
- encryptionVersion
100
- }
101
- }
102
- `;
103
- const listEventsQuery = /* GraphQL */ `
104
- query ListEvents($sessionId: ID!, $source: EventSource) {
105
- listEvents(sessionId: $sessionId, source: $source) {
106
- items {
107
- eventId
108
- sessionId
109
- type
110
- source
111
- content
112
- timestamp
113
- metadata
114
- promptId
115
- }
116
- nextToken
117
- }
118
- }
119
- `;
120
- const onEventCreatedSubscription = /* GraphQL */ `
121
- subscription OnEventCreated($sessionId: ID!) {
122
- onEventCreated(sessionId: $sessionId) {
123
- eventId
124
- sessionId
125
- type
126
- source
127
- content
128
- timestamp
129
- metadata
130
- promptId
131
- attachments {
132
- id
133
- type
134
- filename
135
- s3Key
136
- size
137
- width
138
- height
139
- isEncrypted
140
- }
141
- deliveryStatus
142
- deliveredAt
143
- executedAt
144
- isEncrypted
145
- }
146
- }
147
- `;
148
- const getAttachmentDownloadUrlMutation = /* GraphQL */ `
149
- mutation GetAttachmentDownloadUrl($s3Key: String!) {
150
- getAttachmentDownloadUrl(s3Key: $s3Key) {
151
- downloadUrl
152
- expiresAt
153
- }
154
- }
155
- `;
156
- const listUserDeviceKeysQuery = /* GraphQL */ `
157
- query ListUserDeviceKeys {
158
- listUserDeviceKeys {
159
- userId
160
- deviceId
161
- publicKey
162
- platform
163
- deviceName
164
- createdAt
165
- lastUsedAt
166
- }
167
- }
168
- `;
169
- const registerDeviceKeyMutation = /* GraphQL */ `
170
- mutation RegisterDeviceKey($input: RegisterDeviceKeyInput!) {
171
- registerDeviceKey(input: $input) {
172
- userId
173
- deviceId
174
- publicKey
175
- platform
176
- deviceName
177
- createdAt
178
- lastUsedAt
179
- }
180
- }
181
- `;
182
- // Reconnection configuration
183
- const RECONNECT_CONFIG = {
184
- maxAttempts: 10,
185
- baseDelayMs: 1000, // Start with 1 second
186
- maxDelayMs: 60000, // Max 1 minute between attempts
187
- backoffMultiplier: 2, // Double delay each attempt
188
- };
189
- class AppSyncClient {
190
- constructor() {
191
- this.authenticated = false;
192
- this.currentUserId = null;
193
- this.currentEmail = null;
194
- this.storedTokens = null;
195
- this.activeSubscriptions = new Map();
196
- logger_1.logger.info('AppSync client initialized (Cognito User Pool auth via OAuth)');
197
- }
198
- // Get the current authenticated user ID
199
- getCurrentUserId() {
200
- return this.currentUserId || 'default-user';
201
- }
202
- // Get the current authenticated user email
203
- getCurrentUserEmail() {
204
- return this.currentEmail;
205
- }
206
- /**
207
- * Authenticate using stored OAuth tokens from 'codevibe-claude login'
208
- * Returns true if successfully authenticated, false otherwise
209
- */
210
- async authenticateWithStoredTokens() {
211
- try {
212
- // Load tokens from storage
213
- const tokens = (0, token_storage_1.loadTokens)();
214
- if (!tokens) {
215
- logger_1.logger.debug('No stored tokens found');
216
- return false;
217
- }
218
- logger_1.logger.info('Found stored OAuth tokens', {
219
- userId: tokens.userId,
220
- email: tokens.email,
221
- expired: (0, token_storage_1.isTokenExpired)(tokens),
222
- });
223
- // If tokens are expired, try to refresh them
224
- if ((0, token_storage_1.isTokenExpired)(tokens)) {
225
- logger_1.logger.info('Stored tokens are expired, attempting refresh...');
226
- const refreshed = await this.refreshStoredTokens(tokens);
227
- if (!refreshed) {
228
- logger_1.logger.warn('Token refresh failed - user needs to re-authenticate');
229
- return false;
230
- }
231
- }
232
- // Use the stored tokens
233
- this.storedTokens = tokens;
234
- this.currentUserId = tokens.userId;
235
- this.currentEmail = tokens.email;
236
- this.authenticated = true;
237
- logger_1.logger.info('Authenticated with stored OAuth tokens', {
238
- userId: this.currentUserId,
239
- email: this.currentEmail,
240
- });
241
- return true;
242
- }
243
- catch (error) {
244
- logger_1.logger.error('Failed to authenticate with stored tokens:', error);
245
- return false;
246
- }
247
- }
248
- /**
249
- * Refresh expired tokens using the refresh token
250
- */
251
- async refreshStoredTokens(tokens) {
252
- try {
253
- const tokenUrl = `https://${config_1.config.aws.cognitoDomain}/oauth2/token`;
254
- const params = new URLSearchParams({
255
- grant_type: 'refresh_token',
256
- client_id: config_1.config.aws.cognitoClientId,
257
- refresh_token: tokens.refreshToken,
258
- });
259
- const response = await fetch(tokenUrl, {
260
- method: 'POST',
261
- headers: {
262
- 'Content-Type': 'application/x-www-form-urlencoded',
263
- },
264
- body: params.toString(),
265
- });
266
- if (!response.ok) {
267
- const errorText = await response.text();
268
- logger_1.logger.error('Token refresh failed:', { status: response.status, error: errorText });
269
- return false;
270
- }
271
- const data = await response.json();
272
- // Update stored tokens
273
- const updatedTokens = {
274
- ...tokens,
275
- accessToken: data.access_token,
276
- idToken: data.id_token,
277
- expiresAt: Date.now() + (data.expires_in * 1000),
278
- };
279
- (0, token_storage_1.saveTokens)(updatedTokens);
280
- this.storedTokens = updatedTokens;
281
- logger_1.logger.info('Tokens refreshed successfully', {
282
- expiresAt: new Date(updatedTokens.expiresAt).toISOString(),
283
- });
284
- return true;
285
- }
286
- catch (error) {
287
- logger_1.logger.error('Token refresh error:', error);
288
- return false;
289
- }
290
- }
291
- /**
292
- * Check if stored tokens exist and are valid
293
- */
294
- hasValidStoredTokens() {
295
- const tokens = (0, token_storage_1.loadTokens)();
296
- return tokens !== null && !(0, token_storage_1.isTokenExpired)(tokens);
297
- }
298
- // Sign out - clears local state (token removal handled by auth-cli)
299
- signOutUser() {
300
- this.authenticated = false;
301
- this.storedTokens = null;
302
- this.currentUserId = null;
303
- this.currentEmail = null;
304
- logger_1.logger.info('Signed out successfully');
305
- }
306
- /**
307
- * Make a direct GraphQL request to AppSync using fetch
308
- * Uses stored OAuth tokens for Cognito User Pool authentication
309
- * Automatically refreshes token and retries on 401 errors
310
- */
311
- async graphqlRequest(query, variables, isRetry = false) {
312
- const headers = {
313
- 'Content-Type': 'application/json',
314
- };
315
- // Add authorization header using stored OAuth tokens
316
- if (this.storedTokens?.idToken) {
317
- // Cognito User Pool expects raw JWT in Authorization header (no Bearer prefix)
318
- headers['Authorization'] = this.storedTokens.idToken;
319
- }
320
- else {
321
- throw new Error('No valid auth tokens available. Run "codevibe-claude login" first.');
322
- }
323
- logger_1.logger.debug('Making GraphQL request', {
324
- hasAuth: !!headers['Authorization'],
325
- isRetry,
326
- });
327
- const response = await fetch(config_1.config.aws.appsyncUrl, {
328
- method: 'POST',
329
- headers,
330
- body: JSON.stringify({ query, variables }),
331
- });
332
- const result = await response.json();
333
- // Check for 401 Unauthorized - try to refresh token and retry once
334
- if (response.status === 401 && !isRetry && this.storedTokens) {
335
- logger_1.logger.info('Received 401 Unauthorized, attempting token refresh...');
336
- const refreshed = await this.refreshStoredTokens(this.storedTokens);
337
- if (refreshed) {
338
- logger_1.logger.info('Token refreshed successfully, retrying request...');
339
- return this.graphqlRequest(query, variables, true);
340
- }
341
- else {
342
- logger_1.logger.error('Token refresh failed - user needs to re-authenticate with "codevibe-claude login"');
343
- throw new Error('Token expired and refresh failed. Run "codevibe-claude login" to re-authenticate.');
344
- }
345
- }
346
- if (!response.ok) {
347
- logger_1.logger.error('GraphQL request failed', { status: response.status, errors: result.errors });
348
- throw new Error(`GraphQL request failed: ${response.status}`);
349
- }
350
- if (result.errors && result.errors.length > 0) {
351
- logger_1.logger.error('GraphQL errors', { errors: result.errors });
352
- throw new Error(`GraphQL error: ${result.errors[0].message}`);
353
- }
354
- return result;
355
- }
356
- // Create a new session
357
- async createSession(input) {
358
- try {
359
- logger_1.logger.debug('Creating session', input);
360
- // Stringify metadata for AWSJSON type
361
- const preparedInput = {
362
- ...input,
363
- metadata: input.metadata ? JSON.stringify(input.metadata) : undefined,
364
- };
365
- const response = await this.graphqlRequest(createSessionMutation, { input: preparedInput });
366
- const session = response.data.createSession;
367
- logger_1.logger.info('Session created', { sessionId: session.sessionId });
368
- return session;
369
- }
370
- catch (error) {
371
- logger_1.logger.error('Failed to create session:', error);
372
- throw error;
373
- }
374
- }
375
- // Update an existing session
376
- async updateSession(input) {
377
- try {
378
- logger_1.logger.debug('Updating session', input);
379
- // Stringify metadata for AWSJSON type
380
- const preparedInput = {
381
- ...input,
382
- metadata: input.metadata ? JSON.stringify(input.metadata) : undefined,
383
- };
384
- const response = await this.graphqlRequest(updateSessionMutation, { input: preparedInput });
385
- const session = response.data.updateSession;
386
- logger_1.logger.info('Session updated', { sessionId: session.sessionId });
387
- return session;
388
- }
389
- catch (error) {
390
- logger_1.logger.error('Failed to update session:', error);
391
- throw error;
392
- }
393
- }
394
- // Create an event
395
- async createEvent(input) {
396
- try {
397
- logger_1.logger.debug('Creating event', {
398
- sessionId: input.sessionId,
399
- type: input.type,
400
- source: input.source,
401
- });
402
- // Stringify metadata for AWSJSON type
403
- const preparedInput = {
404
- ...input,
405
- metadata: input.metadata ? JSON.stringify(input.metadata) : undefined,
406
- };
407
- const response = await this.graphqlRequest(createEventMutation, { input: preparedInput });
408
- const event = response.data.createEvent;
409
- logger_1.logger.info('Event created', {
410
- eventId: event.eventId,
411
- sessionId: event.sessionId,
412
- type: event.type,
413
- });
414
- return event;
415
- }
416
- catch (error) {
417
- logger_1.logger.error('Failed to create event:', error);
418
- throw error;
419
- }
420
- }
421
- // Update event delivery status (for double checkmark feature)
422
- async updateEventStatus(input) {
423
- try {
424
- logger_1.logger.debug('Updating event status', {
425
- eventId: input.eventId,
426
- sessionId: input.sessionId,
427
- deliveryStatus: input.deliveryStatus,
428
- });
429
- const response = await this.graphqlRequest(updateEventStatusMutation, { input });
430
- const event = response.data.updateEventStatus;
431
- logger_1.logger.info('Event status updated', {
432
- eventId: event.eventId,
433
- deliveryStatus: event.deliveryStatus,
434
- });
435
- return event;
436
- }
437
- catch (error) {
438
- logger_1.logger.error('Failed to update event status:', error);
439
- throw error;
440
- }
441
- }
442
- // Create a file change
443
- async createFileChange(input) {
444
- try {
445
- logger_1.logger.debug('Creating file change', {
446
- sessionId: input.sessionId,
447
- filePath: input.filePath,
448
- action: input.action,
449
- });
450
- // Stringify metadata for AWSJSON type
451
- const preparedInput = {
452
- ...input,
453
- metadata: input.metadata ? JSON.stringify(input.metadata) : undefined,
454
- };
455
- const response = await this.graphqlRequest(createFileChangeMutation, { input: preparedInput });
456
- const fileChange = response.data.createFileChange;
457
- logger_1.logger.info('File change created', {
458
- changeId: fileChange.changeId,
459
- filePath: fileChange.filePath,
460
- });
461
- return fileChange;
462
- }
463
- catch (error) {
464
- logger_1.logger.error('Failed to create file change:', error);
465
- throw error;
466
- }
467
- }
468
- // Get a session
469
- async getSession(sessionId) {
470
- try {
471
- logger_1.logger.debug('Getting session', { sessionId });
472
- const response = await this.graphqlRequest(getSessionQuery, { sessionId });
473
- return response.data.getSession;
474
- }
475
- catch (error) {
476
- logger_1.logger.error('Failed to get session:', error);
477
- throw error;
478
- }
479
- }
480
- // List events for a session
481
- async listEvents(sessionId, source) {
482
- try {
483
- logger_1.logger.debug('Listing events', { sessionId, source });
484
- const response = await this.graphqlRequest(listEventsQuery, { sessionId, source });
485
- return response.data.listEvents.items;
486
- }
487
- catch (error) {
488
- logger_1.logger.error('Failed to list events:', error);
489
- throw error;
490
- }
491
- }
492
- // Subscribe to events for a session with automatic reconnection
493
- subscribeToEvents(sessionId, onEvent, onError) {
494
- logger_1.logger.info('Subscribing to events', { sessionId });
495
- // Clean up existing subscription for this sessionId if any
496
- const existingState = this.activeSubscriptions.get(sessionId);
497
- if (existingState) {
498
- logger_1.logger.info('Cleaning up existing subscription before creating new one', { sessionId });
499
- this.cleanupSubscriptionState(existingState);
500
- this.activeSubscriptions.delete(sessionId);
501
- }
502
- // Create subscription state
503
- const state = {
504
- ws: null,
505
- subscriptionId: (0, uuid_1.v4)(),
506
- sessionId,
507
- onEvent,
508
- onError,
509
- reconnectAttempts: 0,
510
- isReconnecting: false,
511
- };
512
- // Store state before creating subscription
513
- this.activeSubscriptions.set(sessionId, state);
514
- // Create the actual subscription
515
- this.createSubscription(state);
516
- // Return unsubscribe function
517
- return () => {
518
- logger_1.logger.info('Unsubscribing from events', { sessionId });
519
- this.cleanupSubscriptionState(state);
520
- this.activeSubscriptions.delete(sessionId);
521
- };
522
- }
523
- /**
524
- * Build the AppSync real-time WebSocket URL with authorization
525
- */
526
- buildRealtimeUrl() {
527
- // Convert AppSync URL to real-time URL
528
- // https://xxx.appsync-api.region.amazonaws.com/graphql -> wss://xxx.appsync-realtime-api.region.amazonaws.com/graphql
529
- const realtimeUrl = config_1.config.aws.appsyncUrl
530
- .replace('https://', 'wss://')
531
- .replace('appsync-api', 'appsync-realtime-api');
532
- // Build authorization header using stored OAuth token
533
- const authHeader = {
534
- host: new URL(config_1.config.aws.appsyncUrl).host,
535
- };
536
- if (this.storedTokens?.idToken) {
537
- authHeader['Authorization'] = this.storedTokens.idToken;
538
- }
539
- // Encode headers as base64 for URL
540
- const headerBase64 = Buffer.from(JSON.stringify(authHeader)).toString('base64');
541
- const payloadBase64 = Buffer.from(JSON.stringify({})).toString('base64');
542
- return `${realtimeUrl}?header=${headerBase64}&payload=${payloadBase64}`;
543
- }
544
- /**
545
- * Create a custom WebSocket subscription to AppSync
546
- * This bypasses Amplify which doesn't work with externally stored tokens
547
- */
548
- createSubscription(state) {
549
- const { sessionId, subscriptionId, onEvent, onError } = state;
550
- try {
551
- const wsUrl = this.buildRealtimeUrl();
552
- logger_1.logger.info('Creating WebSocket subscription', { sessionId, subscriptionId });
553
- const ws = new ws_1.default(wsUrl, ['graphql-ws']);
554
- ws.on('open', () => {
555
- logger_1.logger.info('WebSocket connected, sending connection_init', { sessionId });
556
- // Send connection_init
557
- ws.send(JSON.stringify({
558
- type: 'connection_init',
559
- }));
560
- });
561
- ws.on('message', (data) => {
562
- try {
563
- const message = JSON.parse(data.toString());
564
- switch (message.type) {
565
- case 'connection_ack':
566
- logger_1.logger.info('WebSocket connection acknowledged', {
567
- sessionId,
568
- connectionTimeout: message.payload?.connectionTimeoutMs
569
- });
570
- // Start the subscription
571
- this.sendSubscriptionStart(ws, state);
572
- break;
573
- case 'start_ack':
574
- logger_1.logger.info('Subscription started successfully', { sessionId, subscriptionId });
575
- state.isReconnecting = false;
576
- if (state.reconnectAttempts > 0) {
577
- logger_1.logger.info('Subscription reconnected successfully', {
578
- sessionId,
579
- afterAttempts: state.reconnectAttempts
580
- });
581
- state.reconnectAttempts = 0;
582
- }
583
- break;
584
- case 'data':
585
- // Reset keep-alive timer on data
586
- this.resetKeepAliveTimer(state);
587
- const event = message.payload?.data?.onEventCreated;
588
- if (event) {
589
- // DEBUG: Log full event to diagnose attachment.isEncrypted issue
590
- if (event.attachments && event.attachments.length > 0) {
591
- logger_1.logger.info('DEBUG: Raw subscription payload for event with attachments', {
592
- eventId: event.eventId,
593
- fullPayload: JSON.stringify(message.payload?.data?.onEventCreated),
594
- });
595
- }
596
- logger_1.logger.debug('Event received from subscription', {
597
- eventId: event.eventId,
598
- type: event.type,
599
- source: event.source,
600
- });
601
- // Filter out desktop events (we only want mobile events)
602
- if (event.source === types_1.EventSource.MOBILE) {
603
- onEvent(event);
604
- }
605
- }
606
- break;
607
- case 'ka':
608
- // Keep-alive message - reset timer
609
- this.resetKeepAliveTimer(state);
610
- logger_1.logger.debug('Keep-alive received', { sessionId });
611
- break;
612
- case 'error':
613
- logger_1.logger.error('Subscription error from server', {
614
- sessionId,
615
- errors: message.payload?.errors
616
- });
617
- const errorMsg = message.payload?.errors?.[0]?.message || 'Unknown subscription error';
618
- this.handleSubscriptionError(state, new Error(errorMsg));
619
- break;
620
- case 'complete':
621
- logger_1.logger.info('Subscription completed by server', { sessionId });
622
- break;
623
- default:
624
- logger_1.logger.debug('Unknown WebSocket message type', { type: message.type, sessionId });
625
- }
626
- }
627
- catch (parseError) {
628
- logger_1.logger.error('Failed to parse WebSocket message', { error: parseError, data: data.toString() });
629
- }
630
- });
631
- ws.on('error', (error) => {
632
- logger_1.logger.error('WebSocket error:', { sessionId, error: error.message });
633
- this.handleSubscriptionError(state, error);
634
- });
635
- ws.on('close', (code, reason) => {
636
- logger_1.logger.info('WebSocket closed', {
637
- sessionId,
638
- code,
639
- reason: reason.toString()
640
- });
641
- // Clear keep-alive timer
642
- if (state.keepAliveTimer) {
643
- clearTimeout(state.keepAliveTimer);
644
- state.keepAliveTimer = undefined;
645
- }
646
- // Attempt reconnection if not intentionally closed
647
- if (code !== 1000 && this.activeSubscriptions.has(sessionId)) {
648
- this.handleSubscriptionError(state, new Error(`WebSocket closed: ${code} ${reason.toString()}`));
649
- }
650
- });
651
- state.ws = ws;
652
- // Set initial keep-alive timer (AppSync sends ka every ~240 seconds)
653
- this.resetKeepAliveTimer(state);
654
- }
655
- catch (error) {
656
- logger_1.logger.error('Failed to create WebSocket subscription:', { sessionId, error });
657
- this.handleSubscriptionError(state, error);
658
- }
659
- }
660
- /**
661
- * Send subscription start message
662
- */
663
- sendSubscriptionStart(ws, state) {
664
- const { sessionId, subscriptionId } = state;
665
- // Build authorization for the subscription using stored OAuth token
666
- const authHeader = {
667
- host: new URL(config_1.config.aws.appsyncUrl).host,
668
- };
669
- if (this.storedTokens?.idToken) {
670
- authHeader['Authorization'] = this.storedTokens.idToken;
671
- }
672
- const startMessage = {
673
- id: subscriptionId,
674
- type: 'start',
675
- payload: {
676
- data: JSON.stringify({
677
- query: onEventCreatedSubscription,
678
- variables: { sessionId },
679
- }),
680
- extensions: {
681
- authorization: authHeader,
682
- },
683
- },
684
- };
685
- logger_1.logger.debug('Sending subscription start', { sessionId, subscriptionId });
686
- ws.send(JSON.stringify(startMessage));
687
- }
688
- /**
689
- * Reset the keep-alive timer - if no message received in 5 minutes, reconnect
690
- */
691
- resetKeepAliveTimer(state) {
692
- if (state.keepAliveTimer) {
693
- clearTimeout(state.keepAliveTimer);
694
- }
695
- // AppSync sends keep-alive every ~240 seconds, timeout after 5 minutes
696
- state.keepAliveTimer = setTimeout(() => {
697
- logger_1.logger.warn('Keep-alive timeout, reconnecting subscription', { sessionId: state.sessionId });
698
- this.handleSubscriptionError(state, new Error('Keep-alive timeout'));
699
- }, 5 * 60 * 1000);
700
- }
701
- // Handle subscription errors with reconnection logic
702
- handleSubscriptionError(state, error) {
703
- const { sessionId, onError } = state;
704
- // Don't reconnect if we're already trying or if session was removed
705
- if (state.isReconnecting || !this.activeSubscriptions.has(sessionId)) {
706
- return;
707
- }
708
- // Check if we've exceeded max attempts
709
- if (state.reconnectAttempts >= RECONNECT_CONFIG.maxAttempts) {
710
- logger_1.logger.error('Max reconnection attempts reached, giving up', {
711
- sessionId,
712
- attempts: state.reconnectAttempts
713
- });
714
- if (onError) {
715
- onError(new Error(`Subscription failed after ${state.reconnectAttempts} reconnection attempts: ${error.message}`));
716
- }
717
- return;
718
- }
719
- state.isReconnecting = true;
720
- state.reconnectAttempts++;
721
- // Calculate delay with exponential backoff
722
- const delay = Math.min(RECONNECT_CONFIG.baseDelayMs * Math.pow(RECONNECT_CONFIG.backoffMultiplier, state.reconnectAttempts - 1), RECONNECT_CONFIG.maxDelayMs);
723
- logger_1.logger.info('Scheduling subscription reconnection', {
724
- sessionId,
725
- attempt: state.reconnectAttempts,
726
- maxAttempts: RECONNECT_CONFIG.maxAttempts,
727
- delayMs: delay
728
- });
729
- // Clean up old WebSocket if it exists
730
- if (state.ws) {
731
- try {
732
- state.ws.close(1000, 'Reconnecting');
733
- }
734
- catch (e) {
735
- // Ignore errors when closing failed WebSocket
736
- }
737
- state.ws = null;
738
- }
739
- // Clear keep-alive timer
740
- if (state.keepAliveTimer) {
741
- clearTimeout(state.keepAliveTimer);
742
- state.keepAliveTimer = undefined;
743
- }
744
- // Schedule reconnection
745
- state.reconnectTimer = setTimeout(() => {
746
- // Verify session still exists before reconnecting
747
- if (this.activeSubscriptions.has(sessionId)) {
748
- logger_1.logger.info('Attempting subscription reconnection', {
749
- sessionId,
750
- attempt: state.reconnectAttempts
751
- });
752
- // Generate new subscription ID for reconnection
753
- state.subscriptionId = (0, uuid_1.v4)();
754
- this.createSubscription(state);
755
- }
756
- }, delay);
757
- }
758
- // Clean up subscription state
759
- cleanupSubscriptionState(state) {
760
- // Clear any pending reconnection timer
761
- if (state.reconnectTimer) {
762
- clearTimeout(state.reconnectTimer);
763
- state.reconnectTimer = undefined;
764
- }
765
- // Clear keep-alive timer
766
- if (state.keepAliveTimer) {
767
- clearTimeout(state.keepAliveTimer);
768
- state.keepAliveTimer = undefined;
769
- }
770
- // Close WebSocket if active
771
- if (state.ws) {
772
- try {
773
- // Send stop message for the subscription before closing
774
- if (state.ws.readyState === ws_1.default.OPEN) {
775
- state.ws.send(JSON.stringify({
776
- id: state.subscriptionId,
777
- type: 'stop',
778
- }));
779
- state.ws.close(1000, 'Unsubscribing');
780
- }
781
- }
782
- catch (e) {
783
- // Ignore errors
784
- }
785
- state.ws = null;
786
- }
787
- }
788
- // Cleanup all subscriptions
789
- cleanupSubscriptions() {
790
- logger_1.logger.info('Cleaning up all subscriptions', {
791
- count: this.activeSubscriptions.size,
792
- });
793
- this.activeSubscriptions.forEach((state, sessionId) => {
794
- logger_1.logger.debug('Unsubscribing from session', { sessionId });
795
- this.cleanupSubscriptionState(state);
796
- });
797
- this.activeSubscriptions.clear();
798
- }
799
- // Get pre-signed download URL for an attachment
800
- async getAttachmentDownloadUrl(s3Key) {
801
- try {
802
- logger_1.logger.debug('Getting attachment download URL', { s3Key });
803
- const response = await this.graphqlRequest(getAttachmentDownloadUrlMutation, { s3Key });
804
- const result = response.data.getAttachmentDownloadUrl;
805
- logger_1.logger.info('Got attachment download URL', {
806
- s3Key,
807
- expiresAt: result.expiresAt,
808
- });
809
- return result;
810
- }
811
- catch (error) {
812
- logger_1.logger.error('Failed to get attachment download URL:', error);
813
- throw error;
814
- }
815
- }
816
- // List all device keys for the current user (for E2E encryption)
817
- async listUserDeviceKeys() {
818
- try {
819
- logger_1.logger.debug('Listing user device keys');
820
- const response = await this.graphqlRequest(listUserDeviceKeysQuery, {});
821
- // listUserDeviceKeys returns [DeviceKey!]! directly, not a connection type
822
- const items = response.data.listUserDeviceKeys || [];
823
- logger_1.logger.info('Listed user device keys', { count: items.length });
824
- return items.map((item) => ({
825
- deviceId: item.deviceId,
826
- publicKey: item.publicKey,
827
- }));
828
- }
829
- catch (error) {
830
- logger_1.logger.error('Failed to list user device keys:', error);
831
- throw error;
832
- }
833
- }
834
- // Register device key for E2E encryption
835
- async registerDeviceKey(deviceId, publicKey, platform, deviceName) {
836
- try {
837
- logger_1.logger.debug('Registering device key', { deviceId, platform, deviceName });
838
- const input = {
839
- deviceId,
840
- publicKey,
841
- platform,
842
- deviceName,
843
- };
844
- await this.graphqlRequest(registerDeviceKeyMutation, { input });
845
- logger_1.logger.info('Device key registered', { deviceId, platform, deviceName });
846
- }
847
- catch (error) {
848
- logger_1.logger.error('Failed to register device key:', error);
849
- throw error;
850
- }
851
- }
852
- // Check if authenticated
853
- isAuthenticated() {
854
- return this.authenticated;
855
- }
856
- }
857
- exports.AppSyncClient = AppSyncClient;
858
- //# sourceMappingURL=appsync-client.js.map