@kaitranntt/ccs 7.43.0 → 7.44.0-dev.2

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 (271) hide show
  1. package/README.md +49 -2
  2. package/config/base-codex.settings.json +4 -4
  3. package/dist/api/services/profile-reader.d.ts.map +1 -1
  4. package/dist/api/services/profile-reader.js +4 -1
  5. package/dist/api/services/profile-reader.js.map +1 -1
  6. package/dist/auth/profile-detector.d.ts +14 -3
  7. package/dist/auth/profile-detector.d.ts.map +1 -1
  8. package/dist/auth/profile-detector.js +35 -15
  9. package/dist/auth/profile-detector.js.map +1 -1
  10. package/dist/ccs.js +34 -4
  11. package/dist/ccs.js.map +1 -1
  12. package/dist/cliproxy/auth/auth-types.d.ts +28 -1
  13. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  14. package/dist/cliproxy/auth/auth-types.js +70 -4
  15. package/dist/cliproxy/auth/auth-types.js.map +1 -1
  16. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  17. package/dist/cliproxy/auth/oauth-handler.js +19 -4
  18. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  19. package/dist/cliproxy/composite-validator.d.ts +20 -0
  20. package/dist/cliproxy/composite-validator.d.ts.map +1 -0
  21. package/dist/cliproxy/composite-validator.js +85 -0
  22. package/dist/cliproxy/composite-validator.js.map +1 -0
  23. package/dist/cliproxy/config/env-builder.d.ts +24 -0
  24. package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
  25. package/dist/cliproxy/config/env-builder.js +72 -1
  26. package/dist/cliproxy/config/env-builder.js.map +1 -1
  27. package/dist/cliproxy/config/thinking-config.d.ts +19 -2
  28. package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
  29. package/dist/cliproxy/config/thinking-config.js +127 -27
  30. package/dist/cliproxy/config/thinking-config.js.map +1 -1
  31. package/dist/cliproxy/executor/env-resolver.d.ts +16 -0
  32. package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
  33. package/dist/cliproxy/executor/env-resolver.js +82 -26
  34. package/dist/cliproxy/executor/env-resolver.js.map +1 -1
  35. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  36. package/dist/cliproxy/executor/index.js +202 -67
  37. package/dist/cliproxy/executor/index.js.map +1 -1
  38. package/dist/cliproxy/executor/retry-handler.d.ts +11 -0
  39. package/dist/cliproxy/executor/retry-handler.d.ts.map +1 -1
  40. package/dist/cliproxy/executor/retry-handler.js +30 -1
  41. package/dist/cliproxy/executor/retry-handler.js.map +1 -1
  42. package/dist/cliproxy/executor/thinking-arg-parser.d.ts +27 -0
  43. package/dist/cliproxy/executor/thinking-arg-parser.d.ts.map +1 -0
  44. package/dist/cliproxy/executor/thinking-arg-parser.js +80 -0
  45. package/dist/cliproxy/executor/thinking-arg-parser.js.map +1 -0
  46. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  47. package/dist/cliproxy/model-catalog.js +14 -3
  48. package/dist/cliproxy/model-catalog.js.map +1 -1
  49. package/dist/cliproxy/model-config.d.ts.map +1 -1
  50. package/dist/cliproxy/model-config.js +27 -7
  51. package/dist/cliproxy/model-config.js.map +1 -1
  52. package/dist/cliproxy/provider-capabilities.d.ts +22 -0
  53. package/dist/cliproxy/provider-capabilities.d.ts.map +1 -0
  54. package/dist/cliproxy/provider-capabilities.js +95 -0
  55. package/dist/cliproxy/provider-capabilities.js.map +1 -0
  56. package/dist/cliproxy/quota-fetcher-codex.d.ts.map +1 -1
  57. package/dist/cliproxy/quota-fetcher-codex.js +106 -87
  58. package/dist/cliproxy/quota-fetcher-codex.js.map +1 -1
  59. package/dist/cliproxy/remote-auth-fetcher.d.ts.map +1 -1
  60. package/dist/cliproxy/remote-auth-fetcher.js +3 -26
  61. package/dist/cliproxy/remote-auth-fetcher.js.map +1 -1
  62. package/dist/cliproxy/service-manager.d.ts.map +1 -1
  63. package/dist/cliproxy/service-manager.js +3 -6
  64. package/dist/cliproxy/service-manager.js.map +1 -1
  65. package/dist/cliproxy/services/index.d.ts +2 -2
  66. package/dist/cliproxy/services/index.d.ts.map +1 -1
  67. package/dist/cliproxy/services/index.js +4 -1
  68. package/dist/cliproxy/services/index.js.map +1 -1
  69. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts +15 -3
  70. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts.map +1 -1
  71. package/dist/cliproxy/services/proxy-lifecycle-service.js +15 -6
  72. package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -1
  73. package/dist/cliproxy/services/variant-config-adapter.d.ts +15 -0
  74. package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -1
  75. package/dist/cliproxy/services/variant-config-adapter.js +84 -11
  76. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
  77. package/dist/cliproxy/services/variant-service.d.ts +26 -0
  78. package/dist/cliproxy/services/variant-service.d.ts.map +1 -1
  79. package/dist/cliproxy/services/variant-service.js +164 -9
  80. package/dist/cliproxy/services/variant-service.js.map +1 -1
  81. package/dist/cliproxy/services/variant-settings.d.ts +19 -1
  82. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
  83. package/dist/cliproxy/services/variant-settings.js +150 -12
  84. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  85. package/dist/cliproxy/types.d.ts +13 -0
  86. package/dist/cliproxy/types.d.ts.map +1 -1
  87. package/dist/cliproxy/types.js.map +1 -1
  88. package/dist/commands/cliproxy/auth-subcommand.d.ts.map +1 -1
  89. package/dist/commands/cliproxy/auth-subcommand.js +2 -1
  90. package/dist/commands/cliproxy/auth-subcommand.js.map +1 -1
  91. package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
  92. package/dist/commands/cliproxy/help-subcommand.js +4 -0
  93. package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
  94. package/dist/commands/cliproxy/index.d.ts.map +1 -1
  95. package/dist/commands/cliproxy/index.js +12 -0
  96. package/dist/commands/cliproxy/index.js.map +1 -1
  97. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts +9 -0
  98. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts.map +1 -1
  99. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +92 -6
  100. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -1
  101. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
  102. package/dist/commands/cliproxy/quota-subcommand.js +106 -4
  103. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
  104. package/dist/commands/cliproxy/variant-subcommand.d.ts +1 -0
  105. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
  106. package/dist/commands/cliproxy/variant-subcommand.js +307 -3
  107. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  108. package/dist/commands/command-execution-contract.d.ts +23 -0
  109. package/dist/commands/command-execution-contract.d.ts.map +1 -0
  110. package/dist/commands/command-execution-contract.js +21 -0
  111. package/dist/commands/command-execution-contract.js.map +1 -0
  112. package/dist/commands/cursor-command-display.d.ts +6 -0
  113. package/dist/commands/cursor-command-display.d.ts.map +1 -0
  114. package/dist/commands/cursor-command-display.js +100 -0
  115. package/dist/commands/cursor-command-display.js.map +1 -0
  116. package/dist/commands/cursor-command.d.ts +12 -0
  117. package/dist/commands/cursor-command.d.ts.map +1 -0
  118. package/dist/commands/cursor-command.js +222 -0
  119. package/dist/commands/cursor-command.js.map +1 -0
  120. package/dist/commands/help-command.d.ts.map +1 -1
  121. package/dist/commands/help-command.js +30 -3
  122. package/dist/commands/help-command.js.map +1 -1
  123. package/dist/commands/shell-completion-command.d.ts +20 -0
  124. package/dist/commands/shell-completion-command.d.ts.map +1 -1
  125. package/dist/commands/shell-completion-command.js +45 -30
  126. package/dist/commands/shell-completion-command.js.map +1 -1
  127. package/dist/config/reserved-names.d.ts +1 -1
  128. package/dist/config/reserved-names.d.ts.map +1 -1
  129. package/dist/config/reserved-names.js +2 -0
  130. package/dist/config/reserved-names.js.map +1 -1
  131. package/dist/config/unified-config-loader.d.ts +6 -1
  132. package/dist/config/unified-config-loader.d.ts.map +1 -1
  133. package/dist/config/unified-config-loader.js +63 -3
  134. package/dist/config/unified-config-loader.js.map +1 -1
  135. package/dist/config/unified-config-types.d.ts +79 -2
  136. package/dist/config/unified-config-types.d.ts.map +1 -1
  137. package/dist/config/unified-config-types.js +28 -2
  138. package/dist/config/unified-config-types.js.map +1 -1
  139. package/dist/cursor/cursor-auth.d.ts +58 -0
  140. package/dist/cursor/cursor-auth.d.ts.map +1 -0
  141. package/dist/cursor/cursor-auth.js +295 -0
  142. package/dist/cursor/cursor-auth.js.map +1 -0
  143. package/dist/cursor/cursor-daemon-entry.d.ts +14 -0
  144. package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -0
  145. package/dist/cursor/cursor-daemon-entry.js +236 -0
  146. package/dist/cursor/cursor-daemon-entry.js.map +1 -0
  147. package/dist/cursor/cursor-daemon-pid.d.ts +4 -0
  148. package/dist/cursor/cursor-daemon-pid.d.ts.map +1 -0
  149. package/dist/cursor/cursor-daemon-pid.js +77 -0
  150. package/dist/cursor/cursor-daemon-pid.js.map +1 -0
  151. package/dist/cursor/cursor-daemon.d.ts +36 -0
  152. package/dist/cursor/cursor-daemon.d.ts.map +1 -0
  153. package/dist/cursor/cursor-daemon.js +315 -0
  154. package/dist/cursor/cursor-daemon.js.map +1 -0
  155. package/dist/cursor/cursor-executor.d.ts +81 -0
  156. package/dist/cursor/cursor-executor.d.ts.map +1 -0
  157. package/dist/cursor/cursor-executor.js +821 -0
  158. package/dist/cursor/cursor-executor.js.map +1 -0
  159. package/dist/cursor/cursor-models.d.ts +43 -0
  160. package/dist/cursor/cursor-models.d.ts.map +1 -0
  161. package/dist/cursor/cursor-models.js +288 -0
  162. package/dist/cursor/cursor-models.js.map +1 -0
  163. package/dist/cursor/cursor-protobuf-decoder.d.ts +52 -0
  164. package/dist/cursor/cursor-protobuf-decoder.d.ts.map +1 -0
  165. package/dist/cursor/cursor-protobuf-decoder.js +311 -0
  166. package/dist/cursor/cursor-protobuf-decoder.js.map +1 -0
  167. package/dist/cursor/cursor-protobuf-encoder.d.ts +54 -0
  168. package/dist/cursor/cursor-protobuf-encoder.d.ts.map +1 -0
  169. package/dist/cursor/cursor-protobuf-encoder.js +173 -0
  170. package/dist/cursor/cursor-protobuf-encoder.js.map +1 -0
  171. package/dist/cursor/cursor-protobuf-schema.d.ts +215 -0
  172. package/dist/cursor/cursor-protobuf-schema.d.ts.map +1 -0
  173. package/dist/cursor/cursor-protobuf-schema.js +120 -0
  174. package/dist/cursor/cursor-protobuf-schema.js.map +1 -0
  175. package/dist/cursor/cursor-protobuf.d.ts +21 -0
  176. package/dist/cursor/cursor-protobuf.d.ts.map +1 -0
  177. package/dist/cursor/cursor-protobuf.js +116 -0
  178. package/dist/cursor/cursor-protobuf.js.map +1 -0
  179. package/dist/cursor/cursor-stream-parser.d.ts +52 -0
  180. package/dist/cursor/cursor-stream-parser.d.ts.map +1 -0
  181. package/dist/cursor/cursor-stream-parser.js +142 -0
  182. package/dist/cursor/cursor-stream-parser.js.map +1 -0
  183. package/dist/cursor/cursor-translator.d.ts +39 -0
  184. package/dist/cursor/cursor-translator.d.ts.map +1 -0
  185. package/dist/cursor/cursor-translator.js +118 -0
  186. package/dist/cursor/cursor-translator.js.map +1 -0
  187. package/dist/cursor/daemon-process-ownership.d.ts +3 -0
  188. package/dist/cursor/daemon-process-ownership.d.ts.map +1 -0
  189. package/dist/cursor/daemon-process-ownership.js +96 -0
  190. package/dist/cursor/daemon-process-ownership.js.map +1 -0
  191. package/dist/cursor/index.d.ts +11 -0
  192. package/dist/cursor/index.d.ts.map +1 -0
  193. package/dist/cursor/index.js +55 -0
  194. package/dist/cursor/index.js.map +1 -0
  195. package/dist/cursor/types.d.ts +80 -0
  196. package/dist/cursor/types.d.ts.map +1 -0
  197. package/dist/cursor/types.js +8 -0
  198. package/dist/cursor/types.js.map +1 -0
  199. package/dist/management/oauth-port-diagnostics.d.ts +4 -7
  200. package/dist/management/oauth-port-diagnostics.d.ts.map +1 -1
  201. package/dist/management/oauth-port-diagnostics.js +12 -23
  202. package/dist/management/oauth-port-diagnostics.js.map +1 -1
  203. package/dist/types/index.d.ts +1 -1
  204. package/dist/types/index.d.ts.map +1 -1
  205. package/dist/types/index.js.map +1 -1
  206. package/dist/ui/assets/{accounts-CkN_roEn.js → accounts-B8J62kJ6.js} +1 -1
  207. package/dist/ui/assets/{alert-dialog-Dy-8Z_Ud.js → alert-dialog-B5t_5_UL.js} +1 -1
  208. package/dist/ui/assets/api-DuZyDFf7.js +1 -0
  209. package/dist/ui/assets/auth-section-Dnaxf97q.js +1 -0
  210. package/dist/ui/assets/{backups-section-CDuqhiZo.js → backups-section-DUIq9Rxi.js} +1 -1
  211. package/dist/ui/assets/cliproxy-aK19VC4f.js +3 -0
  212. package/dist/ui/assets/{cliproxy-control-panel-DJd_zNR3.js → cliproxy-control-panel-9OS_kdTh.js} +1 -1
  213. package/dist/ui/assets/confirm-dialog-D7hNt3ez.js +1 -0
  214. package/dist/ui/assets/copilot-B5dVoOMQ.js +3 -0
  215. package/dist/ui/assets/cursor-4zDGbBRA.js +1 -0
  216. package/dist/ui/assets/{globalenv-section-Cn5ufgRh.js → globalenv-section-DuUcheRN.js} +1 -1
  217. package/dist/ui/assets/{health-BsMhSeFz.js → health-Ddkl8zIJ.js} +1 -1
  218. package/dist/ui/assets/{icons-D5eAI-GR.js → icons-DGASzt3M.js} +1 -1
  219. package/dist/ui/assets/index-BRCdKMse.js +1 -0
  220. package/dist/ui/assets/{index-B2GQ_Joi.js → index-BRxqvMyp.js} +1 -1
  221. package/dist/ui/assets/index-C6u1zYVL.css +1 -0
  222. package/dist/ui/assets/index-D0I8OsQ3.js +1 -0
  223. package/dist/ui/assets/{index-CEF_VhSR.js → index-DOxNxHpI.js} +1 -1
  224. package/dist/ui/assets/index-Dv5jtphl.js +47 -0
  225. package/dist/ui/assets/{proxy-status-widget-Cb7KfEqq.js → proxy-status-widget-DKYj4dWI.js} +1 -1
  226. package/dist/ui/assets/separator-DrDw3JjB.js +1 -0
  227. package/dist/ui/assets/{shared-BsWeldW8.js → shared-psG1uSqB.js} +1 -1
  228. package/dist/ui/assets/sidebar/cursor.svg +1 -0
  229. package/dist/ui/assets/{switch-D6XSRTo_.js → switch-C0ri2ChT.js} +1 -1
  230. package/dist/ui/index.html +3 -3
  231. package/dist/utils/config-manager.d.ts.map +1 -1
  232. package/dist/utils/config-manager.js +17 -6
  233. package/dist/utils/config-manager.js.map +1 -1
  234. package/dist/web-server/jsonl-parser.js +1 -1
  235. package/dist/web-server/jsonl-parser.js.map +1 -1
  236. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  237. package/dist/web-server/routes/account-routes.js +5 -11
  238. package/dist/web-server/routes/account-routes.js.map +1 -1
  239. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +5 -0
  240. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  241. package/dist/web-server/routes/cliproxy-auth-routes.js +73 -6
  242. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  243. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  244. package/dist/web-server/routes/cliproxy-stats-routes.js +43 -4
  245. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  246. package/dist/web-server/routes/cursor-routes.d.ts +16 -0
  247. package/dist/web-server/routes/cursor-routes.d.ts.map +1 -0
  248. package/dist/web-server/routes/cursor-routes.js +171 -0
  249. package/dist/web-server/routes/cursor-routes.js.map +1 -0
  250. package/dist/web-server/routes/cursor-settings-routes.d.ts +6 -0
  251. package/dist/web-server/routes/cursor-settings-routes.d.ts.map +1 -0
  252. package/dist/web-server/routes/cursor-settings-routes.js +305 -0
  253. package/dist/web-server/routes/cursor-settings-routes.js.map +1 -0
  254. package/dist/web-server/routes/index.d.ts.map +1 -1
  255. package/dist/web-server/routes/index.js +3 -0
  256. package/dist/web-server/routes/index.js.map +1 -1
  257. package/dist/web-server/routes/variant-routes.d.ts.map +1 -1
  258. package/dist/web-server/routes/variant-routes.js +107 -6
  259. package/dist/web-server/routes/variant-routes.js.map +1 -1
  260. package/package.json +5 -2
  261. package/scripts/hardening-inventory.js +526 -0
  262. package/scripts/maintainability-baseline.js +309 -0
  263. package/dist/ui/assets/api-2TN7yVwm.js +0 -1
  264. package/dist/ui/assets/auth-section-CeKCNzzC.js +0 -1
  265. package/dist/ui/assets/cliproxy-626zUpA_.js +0 -3
  266. package/dist/ui/assets/confirm-dialog-DtYrWaa7.js +0 -1
  267. package/dist/ui/assets/copilot-DHdywZ9L.js +0 -4
  268. package/dist/ui/assets/index-Bmgylhgn.js +0 -1
  269. package/dist/ui/assets/index-Cr6iEc8x.js +0 -47
  270. package/dist/ui/assets/index-DkMR3J96.js +0 -1
  271. package/dist/ui/assets/index-QvMpU4Lc.css +0 -1
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ /**
3
+ * Cursor Protobuf Decoder
4
+ * Implements ConnectRPC protobuf wire format decoding
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.extractTextFromResponse = exports.parseConnectRPCFrame = exports.decodeMessage = exports.decodeField = exports.decodeVarint = void 0;
31
+ const zlib = __importStar(require("zlib"));
32
+ const cursor_protobuf_schema_js_1 = require("./cursor-protobuf-schema.js");
33
+ /**
34
+ * Decode a varint from buffer
35
+ * Returns [value, newOffset]
36
+ */
37
+ function decodeVarint(buffer, offset) {
38
+ let result = 0;
39
+ let shift = 0;
40
+ let pos = offset;
41
+ const maxBytes = 5;
42
+ while (pos < buffer.length && pos - offset < maxBytes) {
43
+ const b = buffer[pos];
44
+ result |= (b & 0x7f) << shift;
45
+ pos++;
46
+ if (!(b & 0x80))
47
+ break;
48
+ shift += 7;
49
+ }
50
+ return [result >>> 0, pos]; // Ensure unsigned
51
+ }
52
+ exports.decodeVarint = decodeVarint;
53
+ /**
54
+ * Decode a single protobuf field
55
+ * Returns [fieldNum, wireType, value, newOffset]
56
+ */
57
+ function decodeField(buffer, offset) {
58
+ if (offset >= buffer.length) {
59
+ return [null, null, null, offset];
60
+ }
61
+ const [tag, pos1] = decodeVarint(buffer, offset);
62
+ const fieldNum = tag >> 3;
63
+ const wireType = (tag & 0x07);
64
+ let value;
65
+ let pos = pos1;
66
+ if (wireType === cursor_protobuf_schema_js_1.WIRE_TYPE.VARINT) {
67
+ [value, pos] = decodeVarint(buffer, pos);
68
+ }
69
+ else if (wireType === cursor_protobuf_schema_js_1.WIRE_TYPE.LEN) {
70
+ const [length, pos2] = decodeVarint(buffer, pos);
71
+ if (pos2 + length > buffer.length) {
72
+ return [null, null, null, buffer.length];
73
+ }
74
+ value = buffer.slice(pos2, pos2 + length);
75
+ pos = pos2 + length;
76
+ }
77
+ else if (wireType === cursor_protobuf_schema_js_1.WIRE_TYPE.FIXED64) {
78
+ if (pos + 8 > buffer.length) {
79
+ return [null, null, null, buffer.length];
80
+ }
81
+ value = buffer.slice(pos, pos + 8);
82
+ pos += 8;
83
+ }
84
+ else if (wireType === cursor_protobuf_schema_js_1.WIRE_TYPE.FIXED32) {
85
+ if (pos + 4 > buffer.length) {
86
+ return [null, null, null, buffer.length];
87
+ }
88
+ value = buffer.slice(pos, pos + 4);
89
+ pos += 4;
90
+ }
91
+ else {
92
+ value = null;
93
+ }
94
+ return [fieldNum, wireType, value, pos];
95
+ }
96
+ exports.decodeField = decodeField;
97
+ /**
98
+ * Decode a protobuf message into a map of fields
99
+ */
100
+ function decodeMessage(data) {
101
+ const fields = new Map();
102
+ let pos = 0;
103
+ // NOTE: If two fields share the same field number but different wire types, later values overwrite earlier ones.
104
+ while (pos < data.length) {
105
+ const [fieldNum, wireType, value, newPos] = decodeField(data, pos);
106
+ if (fieldNum === null || wireType === null || value === null)
107
+ break;
108
+ if (!fields.has(fieldNum)) {
109
+ fields.set(fieldNum, []);
110
+ }
111
+ const fieldArray = fields.get(fieldNum);
112
+ if (fieldArray) {
113
+ fieldArray.push({ wireType, value: value });
114
+ }
115
+ pos = newPos;
116
+ }
117
+ return fields;
118
+ }
119
+ exports.decodeMessage = decodeMessage;
120
+ /**
121
+ * Parse ConnectRPC frame from buffer
122
+ * Returns frame data or null if incomplete
123
+ */
124
+ function parseConnectRPCFrame(buffer) {
125
+ if (buffer.length < 5)
126
+ return null;
127
+ const flags = buffer[0];
128
+ const length = (buffer[1] << 24) | (buffer[2] << 16) | (buffer[3] << 8) | buffer[4];
129
+ if (buffer.length < 5 + length)
130
+ return null;
131
+ let payload = buffer.slice(5, 5 + length);
132
+ // Decompress if gzip
133
+ if (flags === cursor_protobuf_schema_js_1.COMPRESS_FLAG.GZIP ||
134
+ flags === cursor_protobuf_schema_js_1.COMPRESS_FLAG.GZIP_ALT ||
135
+ flags === cursor_protobuf_schema_js_1.COMPRESS_FLAG.GZIP_BOTH) {
136
+ try {
137
+ payload = Buffer.from(zlib.gunzipSync(payload));
138
+ }
139
+ catch (err) {
140
+ if (process.env.CCS_DEBUG) {
141
+ console.error('[cursor] parseConnectRPCFrame decompression failed:', err);
142
+ }
143
+ // Decompression failed, use raw payload
144
+ }
145
+ }
146
+ return {
147
+ flags,
148
+ length,
149
+ payload: new Uint8Array(payload),
150
+ consumed: 5 + length,
151
+ };
152
+ }
153
+ exports.parseConnectRPCFrame = parseConnectRPCFrame;
154
+ /**
155
+ * Extract tool call from protobuf data
156
+ */
157
+ function extractToolCall(toolCallData) {
158
+ const toolCall = decodeMessage(toolCallData);
159
+ let toolCallId = '';
160
+ let toolName = '';
161
+ let rawArgs = '';
162
+ let isLast = false;
163
+ // Extract tool call ID
164
+ if (toolCall.has(cursor_protobuf_schema_js_1.FIELD.ToolCall.ID)) {
165
+ const idField = toolCall.get(cursor_protobuf_schema_js_1.FIELD.ToolCall.ID);
166
+ if (idField && idField[0]) {
167
+ const fullId = new TextDecoder().decode(idField[0].value);
168
+ toolCallId = fullId.split('\n')[0]; // Take first line
169
+ }
170
+ }
171
+ // Extract tool name
172
+ if (toolCall.has(cursor_protobuf_schema_js_1.FIELD.ToolCall.NAME)) {
173
+ const nameField = toolCall.get(cursor_protobuf_schema_js_1.FIELD.ToolCall.NAME);
174
+ if (nameField && nameField[0]) {
175
+ toolName = new TextDecoder().decode(nameField[0].value);
176
+ }
177
+ }
178
+ // Extract is_last flag
179
+ if (toolCall.has(cursor_protobuf_schema_js_1.FIELD.ToolCall.IS_LAST)) {
180
+ const lastField = toolCall.get(cursor_protobuf_schema_js_1.FIELD.ToolCall.IS_LAST);
181
+ if (lastField && lastField[0]) {
182
+ isLast = lastField[0].value !== 0;
183
+ }
184
+ }
185
+ // Extract MCP params - nested real tool info
186
+ if (toolCall.has(cursor_protobuf_schema_js_1.FIELD.ToolCall.MCP_PARAMS)) {
187
+ try {
188
+ const mcpField = toolCall.get(cursor_protobuf_schema_js_1.FIELD.ToolCall.MCP_PARAMS);
189
+ if (!mcpField || !mcpField[0])
190
+ return null;
191
+ const mcpParams = decodeMessage(mcpField[0].value);
192
+ if (mcpParams.has(cursor_protobuf_schema_js_1.FIELD.McpParams.TOOLS_LIST)) {
193
+ const toolsList = mcpParams.get(cursor_protobuf_schema_js_1.FIELD.McpParams.TOOLS_LIST);
194
+ if (!toolsList || !toolsList[0])
195
+ return null;
196
+ const tool = decodeMessage(toolsList[0].value);
197
+ if (tool.has(cursor_protobuf_schema_js_1.FIELD.McpNested.NAME)) {
198
+ const nestedName = tool.get(cursor_protobuf_schema_js_1.FIELD.McpNested.NAME);
199
+ if (nestedName && nestedName[0]) {
200
+ toolName = new TextDecoder().decode(nestedName[0].value);
201
+ }
202
+ }
203
+ if (tool.has(cursor_protobuf_schema_js_1.FIELD.McpNested.PARAMS)) {
204
+ const nestedParams = tool.get(cursor_protobuf_schema_js_1.FIELD.McpNested.PARAMS);
205
+ if (nestedParams && nestedParams[0]) {
206
+ rawArgs = new TextDecoder().decode(nestedParams[0].value);
207
+ }
208
+ }
209
+ }
210
+ }
211
+ catch (err) {
212
+ if (process.env.CCS_DEBUG) {
213
+ console.error('[cursor] extractToolCall MCP parsing failed:', err);
214
+ }
215
+ // MCP parse error, continue
216
+ }
217
+ }
218
+ // Fallback to raw_args
219
+ if (!rawArgs && toolCall.has(cursor_protobuf_schema_js_1.FIELD.ToolCall.RAW_ARGS)) {
220
+ const rawArgsField = toolCall.get(cursor_protobuf_schema_js_1.FIELD.ToolCall.RAW_ARGS);
221
+ if (rawArgsField && rawArgsField[0]) {
222
+ rawArgs = new TextDecoder().decode(rawArgsField[0].value);
223
+ }
224
+ }
225
+ if (toolCallId && toolName) {
226
+ return {
227
+ id: toolCallId,
228
+ type: 'function',
229
+ function: {
230
+ name: toolName,
231
+ arguments: rawArgs || '{}',
232
+ },
233
+ isLast,
234
+ };
235
+ }
236
+ return null;
237
+ }
238
+ /**
239
+ * Extract text and thinking from response data
240
+ */
241
+ function extractTextAndThinking(responseData) {
242
+ const nested = decodeMessage(responseData);
243
+ let text = null;
244
+ let thinking = null;
245
+ // Extract text
246
+ if (nested.has(cursor_protobuf_schema_js_1.FIELD.ChatResponse.TEXT)) {
247
+ const textField = nested.get(cursor_protobuf_schema_js_1.FIELD.ChatResponse.TEXT);
248
+ if (textField && textField[0]) {
249
+ text = new TextDecoder().decode(textField[0].value);
250
+ }
251
+ }
252
+ // Extract thinking
253
+ if (nested.has(cursor_protobuf_schema_js_1.FIELD.ChatResponse.THINKING)) {
254
+ try {
255
+ const thinkingField = nested.get(cursor_protobuf_schema_js_1.FIELD.ChatResponse.THINKING);
256
+ if (thinkingField && thinkingField[0]) {
257
+ const thinkingMsg = decodeMessage(thinkingField[0].value);
258
+ if (thinkingMsg.has(cursor_protobuf_schema_js_1.FIELD.Thinking.TEXT)) {
259
+ const thinkingTextField = thinkingMsg.get(cursor_protobuf_schema_js_1.FIELD.Thinking.TEXT);
260
+ if (thinkingTextField && thinkingTextField[0]) {
261
+ thinking = new TextDecoder().decode(thinkingTextField[0].value);
262
+ }
263
+ }
264
+ }
265
+ }
266
+ catch (err) {
267
+ if (process.env.CCS_DEBUG) {
268
+ console.error('[cursor] extractTextAndThinking parsing failed:', err);
269
+ }
270
+ // Thinking parse error, continue
271
+ }
272
+ }
273
+ return { text, thinking };
274
+ }
275
+ /**
276
+ * Extract text and tool calls from response payload
277
+ */
278
+ function extractTextFromResponse(payload) {
279
+ try {
280
+ const fields = decodeMessage(payload);
281
+ // Field 1: ClientSideToolV2Call
282
+ if (fields.has(cursor_protobuf_schema_js_1.FIELD.Response.TOOL_CALL)) {
283
+ const toolCallField = fields.get(cursor_protobuf_schema_js_1.FIELD.Response.TOOL_CALL);
284
+ if (toolCallField && toolCallField[0]) {
285
+ const toolCall = extractToolCall(toolCallField[0].value);
286
+ if (toolCall) {
287
+ return { text: null, error: null, toolCall, thinking: null };
288
+ }
289
+ }
290
+ }
291
+ // Field 2: StreamUnifiedChatResponse
292
+ if (fields.has(cursor_protobuf_schema_js_1.FIELD.Response.RESPONSE)) {
293
+ const responseField = fields.get(cursor_protobuf_schema_js_1.FIELD.Response.RESPONSE);
294
+ if (responseField && responseField[0]) {
295
+ const { text, thinking } = extractTextAndThinking(responseField[0].value);
296
+ if (text || thinking) {
297
+ return { text, error: null, toolCall: null, thinking };
298
+ }
299
+ }
300
+ }
301
+ return { text: null, error: null, toolCall: null, thinking: null };
302
+ }
303
+ catch (err) {
304
+ if (process.env.CCS_DEBUG) {
305
+ console.error('[cursor] extractTextFromResponse parsing failed:', err);
306
+ }
307
+ return { text: null, error: null, toolCall: null, thinking: null };
308
+ }
309
+ }
310
+ exports.extractTextFromResponse = extractTextFromResponse;
311
+ //# sourceMappingURL=cursor-protobuf-decoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-protobuf-decoder.js","sourceRoot":"","sources":["../../src/cursor/cursor-protobuf-decoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Cursor Protobuf Encoder
3
+ * Implements ConnectRPC protobuf wire format encoding
4
+ */
5
+ import { type WireType, type RoleType, type CursorTool, type CursorToolResult } from './cursor-protobuf-schema.js';
6
+ /**
7
+ * Encode a varint (variable-length integer)
8
+ */
9
+ export declare function encodeVarint(value: number): Uint8Array;
10
+ /**
11
+ * Encode a protobuf field (tag + value)
12
+ */
13
+ export declare function encodeField(fieldNum: number, wireType: WireType, value: number | string | Uint8Array): Uint8Array;
14
+ /**
15
+ * Concatenate multiple Uint8Arrays
16
+ */
17
+ export declare function concatArrays(...arrays: Uint8Array[]): Uint8Array;
18
+ /**
19
+ * Encode a tool result
20
+ */
21
+ export declare function encodeToolResult(toolResult: CursorToolResult): Uint8Array;
22
+ /**
23
+ * Encode a conversation message
24
+ */
25
+ export declare function encodeMessage(content: string, role: RoleType, messageId: string, isLast: boolean, hasTools: boolean, toolResults: CursorToolResult[]): Uint8Array;
26
+ /**
27
+ * Encode instruction text
28
+ */
29
+ export declare function encodeInstruction(text: string): Uint8Array;
30
+ /**
31
+ * Encode model information
32
+ */
33
+ export declare function encodeModel(modelName: string): Uint8Array;
34
+ /**
35
+ * Encode cursor settings
36
+ */
37
+ export declare function encodeCursorSetting(): Uint8Array;
38
+ /**
39
+ * Encode metadata
40
+ */
41
+ export declare function encodeMetadata(): Uint8Array;
42
+ /**
43
+ * Encode message ID
44
+ */
45
+ export declare function encodeMessageId(messageId: string, role: RoleType, summaryId?: string): Uint8Array;
46
+ /**
47
+ * Encode MCP tool
48
+ */
49
+ export declare function encodeMcpTool(tool: CursorTool): Uint8Array;
50
+ /**
51
+ * Wrap payload in ConnectRPC frame (5-byte header + payload)
52
+ */
53
+ export declare function wrapConnectRPCFrame(payload: Uint8Array, compress?: boolean): Uint8Array;
54
+ //# sourceMappingURL=cursor-protobuf-encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-protobuf-encoder.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-protobuf-encoder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAKL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AAErC;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAStD;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAClC,UAAU,CAsBZ;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAShE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,UAAU,CAYzE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,gBAAgB,EAAE,GAC9B,UAAU,CAoBZ;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAE1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAKzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,CAahD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,UAAU,CAQ3C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAMjG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAa1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,UAAQ,GAAG,UAAU,CAkBrF"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ /**
3
+ * Cursor Protobuf Encoder
4
+ * Implements ConnectRPC protobuf wire format encoding
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.wrapConnectRPCFrame = exports.encodeMcpTool = exports.encodeMessageId = exports.encodeMetadata = exports.encodeCursorSetting = exports.encodeModel = exports.encodeInstruction = exports.encodeMessage = exports.encodeToolResult = exports.concatArrays = exports.encodeField = exports.encodeVarint = void 0;
31
+ const zlib = __importStar(require("zlib"));
32
+ const cursor_protobuf_schema_js_1 = require("./cursor-protobuf-schema.js");
33
+ /**
34
+ * Encode a varint (variable-length integer)
35
+ */
36
+ function encodeVarint(value) {
37
+ const bytes = [];
38
+ let val = value >>> 0; // Ensure unsigned
39
+ while (val >= 0x80) {
40
+ bytes.push((val & 0x7f) | 0x80);
41
+ val >>>= 7;
42
+ }
43
+ bytes.push(val & 0x7f);
44
+ return new Uint8Array(bytes);
45
+ }
46
+ exports.encodeVarint = encodeVarint;
47
+ /**
48
+ * Encode a protobuf field (tag + value)
49
+ */
50
+ function encodeField(fieldNum, wireType, value) {
51
+ const tag = (fieldNum << 3) | wireType;
52
+ const tagBytes = encodeVarint(tag);
53
+ if (wireType === cursor_protobuf_schema_js_1.WIRE_TYPE.VARINT) {
54
+ const valueBytes = encodeVarint(value);
55
+ return concatArrays(tagBytes, valueBytes);
56
+ }
57
+ if (wireType === cursor_protobuf_schema_js_1.WIRE_TYPE.LEN) {
58
+ const dataBytes = typeof value === 'string'
59
+ ? new TextEncoder().encode(value)
60
+ : value instanceof Uint8Array
61
+ ? value
62
+ : new Uint8Array(0);
63
+ const lengthBytes = encodeVarint(dataBytes.length);
64
+ return concatArrays(tagBytes, lengthBytes, dataBytes);
65
+ }
66
+ return new Uint8Array(0);
67
+ }
68
+ exports.encodeField = encodeField;
69
+ /**
70
+ * Concatenate multiple Uint8Arrays
71
+ */
72
+ function concatArrays(...arrays) {
73
+ const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
74
+ const result = new Uint8Array(totalLength);
75
+ let offset = 0;
76
+ for (const arr of arrays) {
77
+ result.set(arr, offset);
78
+ offset += arr.length;
79
+ }
80
+ return result;
81
+ }
82
+ exports.concatArrays = concatArrays;
83
+ /**
84
+ * Encode a tool result
85
+ */
86
+ function encodeToolResult(toolResult) {
87
+ const toolCallId = toolResult.tool_call_id || '';
88
+ const toolName = toolResult.name || '';
89
+ const toolIndex = toolResult.index || 0;
90
+ const rawArgs = toolResult.raw_args || '{}';
91
+ return concatArrays(encodeField(cursor_protobuf_schema_js_1.FIELD.ToolResult.CALL_ID, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, toolCallId), encodeField(cursor_protobuf_schema_js_1.FIELD.ToolResult.NAME, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, toolName), encodeField(cursor_protobuf_schema_js_1.FIELD.ToolResult.INDEX, cursor_protobuf_schema_js_1.WIRE_TYPE.VARINT, toolIndex), encodeField(cursor_protobuf_schema_js_1.FIELD.ToolResult.RAW_ARGS, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, rawArgs));
92
+ }
93
+ exports.encodeToolResult = encodeToolResult;
94
+ /**
95
+ * Encode a conversation message
96
+ */
97
+ function encodeMessage(content, role, messageId, isLast, hasTools, toolResults) {
98
+ return concatArrays(encodeField(cursor_protobuf_schema_js_1.FIELD.Message.CONTENT, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, content), encodeField(cursor_protobuf_schema_js_1.FIELD.Message.ROLE, cursor_protobuf_schema_js_1.WIRE_TYPE.VARINT, role), encodeField(cursor_protobuf_schema_js_1.FIELD.Message.ID, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, messageId), ...(toolResults.length > 0
99
+ ? toolResults.map((tr) => encodeField(cursor_protobuf_schema_js_1.FIELD.Message.TOOL_RESULTS, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, encodeToolResult(tr)))
100
+ : []), encodeField(cursor_protobuf_schema_js_1.FIELD.Message.IS_AGENTIC, cursor_protobuf_schema_js_1.WIRE_TYPE.VARINT, hasTools ? 1 : 0), encodeField(cursor_protobuf_schema_js_1.FIELD.Message.UNIFIED_MODE, cursor_protobuf_schema_js_1.WIRE_TYPE.VARINT, hasTools ? cursor_protobuf_schema_js_1.UNIFIED_MODE.AGENT : cursor_protobuf_schema_js_1.UNIFIED_MODE.CHAT), ...(isLast && hasTools
101
+ ? [encodeField(cursor_protobuf_schema_js_1.FIELD.Message.SUPPORTED_TOOLS, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, encodeVarint(1))]
102
+ : []));
103
+ }
104
+ exports.encodeMessage = encodeMessage;
105
+ /**
106
+ * Encode instruction text
107
+ */
108
+ function encodeInstruction(text) {
109
+ return text ? encodeField(cursor_protobuf_schema_js_1.FIELD.Instruction.TEXT, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, text) : new Uint8Array(0);
110
+ }
111
+ exports.encodeInstruction = encodeInstruction;
112
+ /**
113
+ * Encode model information
114
+ */
115
+ function encodeModel(modelName) {
116
+ return concatArrays(encodeField(cursor_protobuf_schema_js_1.FIELD.Model.NAME, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, modelName), encodeField(cursor_protobuf_schema_js_1.FIELD.Model.EMPTY, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, new Uint8Array(0)));
117
+ }
118
+ exports.encodeModel = encodeModel;
119
+ /**
120
+ * Encode cursor settings
121
+ */
122
+ function encodeCursorSetting() {
123
+ const unknown6 = concatArrays(encodeField(cursor_protobuf_schema_js_1.FIELD.Setting.U6_FIELD_1, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, new Uint8Array(0)), encodeField(cursor_protobuf_schema_js_1.FIELD.Setting.U6_FIELD_2, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, new Uint8Array(0)));
124
+ return concatArrays(encodeField(cursor_protobuf_schema_js_1.FIELD.Setting.PATH, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, 'cursor\\aisettings'), encodeField(cursor_protobuf_schema_js_1.FIELD.Setting.UNKNOWN_3, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, new Uint8Array(0)), encodeField(cursor_protobuf_schema_js_1.FIELD.Setting.UNKNOWN_6, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, unknown6), encodeField(cursor_protobuf_schema_js_1.FIELD.Setting.UNKNOWN_8, cursor_protobuf_schema_js_1.WIRE_TYPE.VARINT, 1), encodeField(cursor_protobuf_schema_js_1.FIELD.Setting.UNKNOWN_9, cursor_protobuf_schema_js_1.WIRE_TYPE.VARINT, 1));
125
+ }
126
+ exports.encodeCursorSetting = encodeCursorSetting;
127
+ /**
128
+ * Encode metadata
129
+ */
130
+ function encodeMetadata() {
131
+ return concatArrays(encodeField(cursor_protobuf_schema_js_1.FIELD.Metadata.PLATFORM, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, process.platform || 'linux'), encodeField(cursor_protobuf_schema_js_1.FIELD.Metadata.ARCH, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, process.arch || 'x64'), encodeField(cursor_protobuf_schema_js_1.FIELD.Metadata.VERSION, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, process.version || 'v20.0.0'), encodeField(cursor_protobuf_schema_js_1.FIELD.Metadata.CWD, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, process.cwd() || '/'), encodeField(cursor_protobuf_schema_js_1.FIELD.Metadata.TIMESTAMP, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, new Date().toISOString()));
132
+ }
133
+ exports.encodeMetadata = encodeMetadata;
134
+ /**
135
+ * Encode message ID
136
+ */
137
+ function encodeMessageId(messageId, role, summaryId) {
138
+ return concatArrays(encodeField(cursor_protobuf_schema_js_1.FIELD.MessageId.ID, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, messageId), ...(summaryId ? [encodeField(cursor_protobuf_schema_js_1.FIELD.MessageId.SUMMARY, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, summaryId)] : []), encodeField(cursor_protobuf_schema_js_1.FIELD.MessageId.ROLE, cursor_protobuf_schema_js_1.WIRE_TYPE.VARINT, role));
139
+ }
140
+ exports.encodeMessageId = encodeMessageId;
141
+ /**
142
+ * Encode MCP tool
143
+ */
144
+ function encodeMcpTool(tool) {
145
+ const toolName = tool.function?.name || tool.name || '';
146
+ const toolDesc = tool.function?.description || tool.description || '';
147
+ const inputSchema = tool.function?.parameters || tool.input_schema || {};
148
+ return concatArrays(...(toolName ? [encodeField(cursor_protobuf_schema_js_1.FIELD.McpTool.NAME, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, toolName)] : []), ...(toolDesc ? [encodeField(cursor_protobuf_schema_js_1.FIELD.McpTool.DESC, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, toolDesc)] : []), ...(Object.keys(inputSchema).length > 0
149
+ ? [encodeField(cursor_protobuf_schema_js_1.FIELD.McpTool.PARAMS, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, JSON.stringify(inputSchema))]
150
+ : []), encodeField(cursor_protobuf_schema_js_1.FIELD.McpTool.SERVER, cursor_protobuf_schema_js_1.WIRE_TYPE.LEN, 'custom'));
151
+ }
152
+ exports.encodeMcpTool = encodeMcpTool;
153
+ /**
154
+ * Wrap payload in ConnectRPC frame (5-byte header + payload)
155
+ */
156
+ function wrapConnectRPCFrame(payload, compress = false) {
157
+ let finalPayload = payload;
158
+ let flags = cursor_protobuf_schema_js_1.COMPRESS_FLAG.NONE;
159
+ if (compress) {
160
+ finalPayload = new Uint8Array(zlib.gzipSync(Buffer.from(payload)));
161
+ flags = cursor_protobuf_schema_js_1.COMPRESS_FLAG.GZIP;
162
+ }
163
+ const frame = new Uint8Array(5 + finalPayload.length);
164
+ frame[0] = flags;
165
+ frame[1] = (finalPayload.length >> 24) & 0xff;
166
+ frame[2] = (finalPayload.length >> 16) & 0xff;
167
+ frame[3] = (finalPayload.length >> 8) & 0xff;
168
+ frame[4] = finalPayload.length & 0xff;
169
+ frame.set(finalPayload, 5);
170
+ return frame;
171
+ }
172
+ exports.wrapConnectRPCFrame = wrapConnectRPCFrame;
173
+ //# sourceMappingURL=cursor-protobuf-encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-protobuf-encoder.js","sourceRoot":"","sources":["../../src/cursor/cursor-protobuf-encoder.ts"],"names":[],"mappings":"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"}