@kaitranntt/ccs 7.54.0 → 7.55.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 (230) hide show
  1. package/README.md +26 -4
  2. package/config/base-codex.settings.json +4 -4
  3. package/dist/auth/commands/create-command.js +1 -1
  4. package/dist/auth/commands/create-command.js.map +1 -1
  5. package/dist/auth/commands/remove-command.js +1 -1
  6. package/dist/auth/commands/remove-command.js.map +1 -1
  7. package/dist/ccs.js +70 -370
  8. package/dist/ccs.js.map +1 -1
  9. package/dist/cliproxy/codex-plan-compatibility.d.ts +29 -0
  10. package/dist/cliproxy/codex-plan-compatibility.d.ts.map +1 -0
  11. package/dist/cliproxy/codex-plan-compatibility.js +130 -0
  12. package/dist/cliproxy/codex-plan-compatibility.js.map +1 -0
  13. package/dist/cliproxy/codex-reasoning-proxy.d.ts +5 -0
  14. package/dist/cliproxy/codex-reasoning-proxy.d.ts.map +1 -1
  15. package/dist/cliproxy/codex-reasoning-proxy.js +103 -20
  16. package/dist/cliproxy/codex-reasoning-proxy.js.map +1 -1
  17. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  18. package/dist/cliproxy/executor/index.js +8 -0
  19. package/dist/cliproxy/executor/index.js.map +1 -1
  20. package/dist/cliproxy/index.d.ts +1 -0
  21. package/dist/cliproxy/index.d.ts.map +1 -1
  22. package/dist/cliproxy/index.js +6 -2
  23. package/dist/cliproxy/index.js.map +1 -1
  24. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  25. package/dist/cliproxy/model-catalog.js +81 -12
  26. package/dist/cliproxy/model-catalog.js.map +1 -1
  27. package/dist/cliproxy/model-config.d.ts.map +1 -1
  28. package/dist/cliproxy/model-config.js +2 -2
  29. package/dist/cliproxy/model-config.js.map +1 -1
  30. package/dist/cliproxy/services/variant-settings.d.ts +3 -1
  31. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
  32. package/dist/cliproxy/services/variant-settings.js +5 -2
  33. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  34. package/dist/commands/api-command/copy-command.d.ts +2 -0
  35. package/dist/commands/api-command/copy-command.d.ts.map +1 -0
  36. package/dist/commands/api-command/copy-command.js +41 -0
  37. package/dist/commands/api-command/copy-command.js.map +1 -0
  38. package/dist/commands/api-command/create-command.d.ts +2 -0
  39. package/dist/commands/api-command/create-command.d.ts.map +1 -0
  40. package/dist/commands/api-command/create-command.js +249 -0
  41. package/dist/commands/api-command/create-command.js.map +1 -0
  42. package/dist/commands/api-command/discover-command.d.ts +2 -0
  43. package/dist/commands/api-command/discover-command.d.ts.map +1 -0
  44. package/dist/commands/api-command/discover-command.js +69 -0
  45. package/dist/commands/api-command/discover-command.js.map +1 -0
  46. package/dist/commands/api-command/export-command.d.ts +2 -0
  47. package/dist/commands/api-command/export-command.d.ts.map +1 -0
  48. package/dist/commands/api-command/export-command.js +73 -0
  49. package/dist/commands/api-command/export-command.js.map +1 -0
  50. package/dist/commands/api-command/help.d.ts +3 -0
  51. package/dist/commands/api-command/help.d.ts.map +1 -0
  52. package/dist/commands/api-command/help.js +100 -0
  53. package/dist/commands/api-command/help.js.map +1 -0
  54. package/dist/commands/api-command/import-command.d.ts +2 -0
  55. package/dist/commands/api-command/import-command.d.ts.map +1 -0
  56. package/dist/commands/api-command/import-command.js +111 -0
  57. package/dist/commands/api-command/import-command.js.map +1 -0
  58. package/dist/commands/api-command/index.d.ts +3 -0
  59. package/dist/commands/api-command/index.d.ts.map +1 -0
  60. package/dist/commands/api-command/index.js +34 -0
  61. package/dist/commands/api-command/index.js.map +1 -0
  62. package/dist/commands/api-command/list-command.d.ts +2 -0
  63. package/dist/commands/api-command/list-command.d.ts.map +1 -0
  64. package/dist/commands/api-command/list-command.js +53 -0
  65. package/dist/commands/api-command/list-command.js.map +1 -0
  66. package/dist/commands/api-command/remove-command.d.ts +2 -0
  67. package/dist/commands/api-command/remove-command.d.ts.map +1 -0
  68. package/dist/commands/api-command/remove-command.js +63 -0
  69. package/dist/commands/api-command/remove-command.js.map +1 -0
  70. package/dist/commands/api-command/shared.d.ts +36 -0
  71. package/dist/commands/api-command/shared.d.ts.map +1 -0
  72. package/dist/commands/api-command/shared.js +164 -0
  73. package/dist/commands/api-command/shared.js.map +1 -0
  74. package/dist/commands/api-command.d.ts +1 -26
  75. package/dist/commands/api-command.d.ts.map +1 -1
  76. package/dist/commands/api-command.js +3 -807
  77. package/dist/commands/api-command.js.map +1 -1
  78. package/dist/commands/arg-extractor.d.ts +15 -0
  79. package/dist/commands/arg-extractor.d.ts.map +1 -1
  80. package/dist/commands/arg-extractor.js +48 -2
  81. package/dist/commands/arg-extractor.js.map +1 -1
  82. package/dist/commands/config-auth/index.d.ts.map +1 -1
  83. package/dist/commands/config-auth/index.js +35 -19
  84. package/dist/commands/config-auth/index.js.map +1 -1
  85. package/dist/commands/config-command-options.d.ts +14 -0
  86. package/dist/commands/config-command-options.d.ts.map +1 -0
  87. package/dist/commands/config-command-options.js +108 -0
  88. package/dist/commands/config-command-options.js.map +1 -0
  89. package/dist/commands/config-command.d.ts +1 -1
  90. package/dist/commands/config-command.d.ts.map +1 -1
  91. package/dist/commands/config-command.js +91 -104
  92. package/dist/commands/config-command.js.map +1 -1
  93. package/dist/commands/config-dashboard-host.d.ts +17 -0
  94. package/dist/commands/config-dashboard-host.d.ts.map +1 -0
  95. package/dist/commands/config-dashboard-host.js +99 -0
  96. package/dist/commands/config-dashboard-host.js.map +1 -0
  97. package/dist/commands/env-command.d.ts.map +1 -1
  98. package/dist/commands/env-command.js +5 -0
  99. package/dist/commands/env-command.js.map +1 -1
  100. package/dist/commands/help-command.js +1 -1
  101. package/dist/commands/help-command.js.map +1 -1
  102. package/dist/commands/named-command-router.d.ts +17 -0
  103. package/dist/commands/named-command-router.d.ts.map +1 -0
  104. package/dist/commands/named-command-router.js +39 -0
  105. package/dist/commands/named-command-router.js.map +1 -0
  106. package/dist/commands/persist-command.js +1 -1
  107. package/dist/commands/persist-command.js.map +1 -1
  108. package/dist/commands/root-command-router.d.ts +2 -0
  109. package/dist/commands/root-command-router.d.ts.map +1 -0
  110. package/dist/commands/root-command-router.js +209 -0
  111. package/dist/commands/root-command-router.js.map +1 -0
  112. package/dist/config/unified-config-loader.js +1 -1
  113. package/dist/config/unified-config-loader.js.map +1 -1
  114. package/dist/cursor/cursor-anthropic-response.d.ts +6 -0
  115. package/dist/cursor/cursor-anthropic-response.d.ts.map +1 -0
  116. package/dist/cursor/cursor-anthropic-response.js +190 -0
  117. package/dist/cursor/cursor-anthropic-response.js.map +1 -0
  118. package/dist/cursor/cursor-anthropic-translator.d.ts +11 -0
  119. package/dist/cursor/cursor-anthropic-translator.d.ts.map +1 -0
  120. package/dist/cursor/cursor-anthropic-translator.js +167 -0
  121. package/dist/cursor/cursor-anthropic-translator.js.map +1 -0
  122. package/dist/cursor/cursor-anthropic-types.d.ts +46 -0
  123. package/dist/cursor/cursor-anthropic-types.d.ts.map +1 -0
  124. package/dist/cursor/cursor-anthropic-types.js +3 -0
  125. package/dist/cursor/cursor-anthropic-types.js.map +1 -0
  126. package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -1
  127. package/dist/cursor/cursor-daemon-entry.js +53 -24
  128. package/dist/cursor/cursor-daemon-entry.js.map +1 -1
  129. package/dist/cursor/cursor-models.d.ts.map +1 -1
  130. package/dist/cursor/cursor-models.js +36 -2
  131. package/dist/cursor/cursor-models.js.map +1 -1
  132. package/dist/glmt/glmt-proxy.d.ts +4 -3
  133. package/dist/glmt/glmt-proxy.d.ts.map +1 -1
  134. package/dist/glmt/glmt-proxy.js +4 -3
  135. package/dist/glmt/glmt-proxy.js.map +1 -1
  136. package/dist/glmt/sse-parser.d.ts +2 -0
  137. package/dist/glmt/sse-parser.d.ts.map +1 -1
  138. package/dist/glmt/sse-parser.js +4 -0
  139. package/dist/glmt/sse-parser.js.map +1 -1
  140. package/dist/management/instance-manager.d.ts +2 -1
  141. package/dist/management/instance-manager.d.ts.map +1 -1
  142. package/dist/management/instance-manager.js +23 -8
  143. package/dist/management/instance-manager.js.map +1 -1
  144. package/dist/management/profile-context-sync-lock.d.ts +3 -0
  145. package/dist/management/profile-context-sync-lock.d.ts.map +1 -1
  146. package/dist/management/profile-context-sync-lock.js +75 -3
  147. package/dist/management/profile-context-sync-lock.js.map +1 -1
  148. package/dist/management/recovery-manager.d.ts +2 -2
  149. package/dist/management/recovery-manager.js +2 -2
  150. package/dist/management/shared-manager.d.ts +31 -1
  151. package/dist/management/shared-manager.d.ts.map +1 -1
  152. package/dist/management/shared-manager.js +420 -23
  153. package/dist/management/shared-manager.js.map +1 -1
  154. package/dist/shared/claude-extension-setup.d.ts.map +1 -1
  155. package/dist/shared/claude-extension-setup.js +16 -2
  156. package/dist/shared/claude-extension-setup.js.map +1 -1
  157. package/dist/shared/provider-preset-catalog.d.ts +1 -1
  158. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  159. package/dist/shared/provider-preset-catalog.js +34 -40
  160. package/dist/shared/provider-preset-catalog.js.map +1 -1
  161. package/dist/ui/assets/{accounts-CZEg1_PX.js → accounts-CxIwtPW5.js} +1 -1
  162. package/dist/ui/assets/{alert-dialog-DhwS38kc.js → alert-dialog-D0M-j0xk.js} +1 -1
  163. package/dist/ui/assets/{api-sWNND4wP.js → api-D_GvXEjg.js} +1 -1
  164. package/dist/ui/assets/{auth-section-nJIpOcnm.js → auth-section-DtxR8sof.js} +1 -1
  165. package/dist/ui/assets/{backups-section-D3A6hmrU.js → backups-section-DAPwVCGp.js} +1 -1
  166. package/dist/ui/assets/checkbox-D470Q1y9.js +1 -0
  167. package/dist/ui/assets/{claude-extension-BjInaILv.js → claude-extension-vRIHOe5q.js} +1 -1
  168. package/dist/ui/assets/cliproxy-DGsWe0cf.js +3 -0
  169. package/dist/ui/assets/{cliproxy-control-panel-CKO2Sn9B.js → cliproxy-control-panel-BoKpt64d.js} +1 -1
  170. package/dist/ui/assets/{confirm-dialog-DTKxwrat.js → confirm-dialog-BnNUvB5u.js} +1 -1
  171. package/dist/ui/assets/copilot-DCkXk9mK.js +3 -0
  172. package/dist/ui/assets/cursor-9aQfYlGU.js +1 -0
  173. package/dist/ui/assets/{droid-Cl8QsJJL.js → droid-Bzp6uHqU.js} +2 -2
  174. package/dist/ui/assets/{globalenv-section-C3dxxoD9.js → globalenv-section-BM9oGUk_.js} +1 -1
  175. package/dist/ui/assets/{health-BUifaDU7.js → health-DLIgkfxF.js} +1 -1
  176. package/dist/ui/assets/icons-DtwH984l.js +1 -0
  177. package/dist/ui/assets/index-C-7tLTU2.js +47 -0
  178. package/dist/ui/assets/index-ClEn7Y7g.css +1 -0
  179. package/dist/ui/assets/{index-CPdceT1C.js → index-D9tmeP-H.js} +1 -1
  180. package/dist/ui/assets/{index-CYo-E5rU.js → index-DGQhzUIq.js} +1 -1
  181. package/dist/ui/assets/{index-BOsbrhaa.js → index-DimlYMhI.js} +1 -1
  182. package/dist/ui/assets/{index-xayyyR26.js → index-DykKl5b0.js} +1 -1
  183. package/dist/ui/assets/providers/llama-cpp.svg +5 -0
  184. package/dist/ui/assets/{proxy-status-widget-D94htBPb.js → proxy-status-widget-DloYg7yP.js} +1 -1
  185. package/dist/ui/assets/{radix-ui-BR1vy4kf.js → radix-ui-Dt3edmE5.js} +8 -8
  186. package/dist/ui/assets/searchable-select-CSREngvO.js +1 -0
  187. package/dist/ui/assets/{separator-3fBbTn-V.js → separator-DzrBeBn-.js} +1 -1
  188. package/dist/ui/assets/{shared-q_FNNbjD.js → shared-qRzQxB-N.js} +1 -1
  189. package/dist/ui/assets/{switch-5N8qBdBr.js → switch-BP9rnaI6.js} +1 -1
  190. package/dist/ui/assets/{tanstack-e99Cjjy2.js → tanstack-B8i0evp-.js} +1 -1
  191. package/dist/ui/assets/{updates-CubQ54J0.js → updates-BQvHbU9s.js} +1 -1
  192. package/dist/ui/icons/novita.svg +9 -0
  193. package/dist/ui/index.html +5 -5
  194. package/dist/utils/config-manager.d.ts +1 -1
  195. package/dist/utils/config-manager.js +1 -1
  196. package/dist/utils/fetch-proxy-setup.d.ts.map +1 -1
  197. package/dist/utils/fetch-proxy-setup.js.map +1 -1
  198. package/dist/utils/glmt-deprecation.d.ts +11 -0
  199. package/dist/utils/glmt-deprecation.d.ts.map +1 -0
  200. package/dist/utils/glmt-deprecation.js +64 -0
  201. package/dist/utils/glmt-deprecation.js.map +1 -0
  202. package/dist/utils/shell-executor.d.ts.map +1 -1
  203. package/dist/utils/shell-executor.js +12 -0
  204. package/dist/utils/shell-executor.js.map +1 -1
  205. package/dist/web-server/index.d.ts +1 -0
  206. package/dist/web-server/index.d.ts.map +1 -1
  207. package/dist/web-server/index.js +39 -3
  208. package/dist/web-server/index.js.map +1 -1
  209. package/dist/web-server/routes/account-routes.js +2 -2
  210. package/dist/web-server/routes/account-routes.js.map +1 -1
  211. package/dist/web-server/routes/profile-routes.d.ts +1 -0
  212. package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
  213. package/dist/web-server/routes/profile-routes.js +3 -0
  214. package/dist/web-server/routes/profile-routes.js.map +1 -1
  215. package/dist/web-server/routes/variant-routes.d.ts +1 -0
  216. package/dist/web-server/routes/variant-routes.d.ts.map +1 -1
  217. package/dist/web-server/routes/variant-routes.js +3 -0
  218. package/dist/web-server/routes/variant-routes.js.map +1 -1
  219. package/package.json +3 -2
  220. package/scripts/completion/README.md +1 -1
  221. package/scripts/completion/ccs.fish +1 -2
  222. package/scripts/completion/ccs.zsh +1 -2
  223. package/scripts/postinstall.js +3 -3
  224. package/dist/ui/assets/checkbox-CZrxD1iS.js +0 -1
  225. package/dist/ui/assets/cliproxy-BGiSCGkl.js +0 -3
  226. package/dist/ui/assets/copilot-CuRngdBg.js +0 -3
  227. package/dist/ui/assets/cursor-Dxo0uIiU.js +0 -1
  228. package/dist/ui/assets/icons-DrEfTmfX.js +0 -1
  229. package/dist/ui/assets/index-Btf_ow2V.css +0 -1
  230. package/dist/ui/assets/index-Cw9Urr0S.js +0 -47
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAnthropicProxyResponse = exports.createAnthropicErrorResponse = void 0;
4
+ const delta_accumulator_1 = require("../glmt/delta-accumulator");
5
+ const glmt_transformer_1 = require("../glmt/glmt-transformer");
6
+ const sse_parser_1 = require("../glmt/sse-parser");
7
+ const JSON_TRANSLATION_ERROR_MESSAGE = 'Failed to translate Cursor JSON response';
8
+ const STREAM_TRANSLATION_ERROR_MESSAGE = 'Failed to translate Cursor SSE response';
9
+ function createAnthropicErrorPayload(type, message) {
10
+ return {
11
+ type: 'error',
12
+ error: {
13
+ type,
14
+ message,
15
+ },
16
+ };
17
+ }
18
+ function formatErrorForLog(error) {
19
+ if (error instanceof Error) {
20
+ return error.message;
21
+ }
22
+ try {
23
+ return JSON.stringify(error);
24
+ }
25
+ catch {
26
+ return String(error);
27
+ }
28
+ }
29
+ function logTranslationError(context, error) {
30
+ console.error(`[cursor-anthropic-response] ${context}: ${formatErrorForLog(error)}`);
31
+ }
32
+ function createAnthropicErrorResponse(status, type, message, headers) {
33
+ const responseHeaders = new Headers(headers);
34
+ responseHeaders.set('Content-Type', 'application/json');
35
+ responseHeaders.delete('Content-Length');
36
+ return new Response(JSON.stringify(createAnthropicErrorPayload(type, message)), {
37
+ status,
38
+ headers: responseHeaders,
39
+ });
40
+ }
41
+ exports.createAnthropicErrorResponse = createAnthropicErrorResponse;
42
+ function formatSseEvent(event, data) {
43
+ return `event: ${event}\ndata: ${JSON.stringify(data)}\n\n`;
44
+ }
45
+ function hasTranslatableChoices(value) {
46
+ if (typeof value !== 'object' || value === null) {
47
+ return false;
48
+ }
49
+ const { choices } = value;
50
+ if (!Array.isArray(choices) || choices.length === 0) {
51
+ return false;
52
+ }
53
+ const firstChoice = choices[0];
54
+ if (typeof firstChoice !== 'object' || firstChoice === null) {
55
+ return false;
56
+ }
57
+ const message = firstChoice.message;
58
+ return typeof message === 'object' && message !== null;
59
+ }
60
+ function isSyntheticTransformationFallback(value) {
61
+ return (typeof value === 'object' &&
62
+ value !== null &&
63
+ typeof value.id === 'string' &&
64
+ value.id.startsWith('msg_error_'));
65
+ }
66
+ async function createAnthropicErrorProxyResponse(response) {
67
+ const headers = new Headers(response.headers);
68
+ headers.delete('Content-Type');
69
+ headers.delete('Content-Length');
70
+ let type = response.status === 401
71
+ ? 'authentication_error'
72
+ : response.status === 429
73
+ ? 'rate_limit_error'
74
+ : response.status >= 400 && response.status < 500
75
+ ? 'invalid_request_error'
76
+ : 'api_error';
77
+ let message = `Cursor request failed with status ${response.status}`;
78
+ try {
79
+ const contentType = (response.headers.get('content-type') || '').toLowerCase();
80
+ if (contentType.includes('application/json')) {
81
+ const payload = (await response.json());
82
+ if (typeof payload?.error?.type === 'string' && payload.error.type.trim().length > 0) {
83
+ type = payload.error.type;
84
+ }
85
+ if (typeof payload?.error?.message === 'string' && payload.error.message.trim().length > 0) {
86
+ message = payload.error.message;
87
+ }
88
+ else if (typeof payload?.message === 'string' && payload.message.trim().length > 0) {
89
+ message = payload.message;
90
+ }
91
+ }
92
+ else {
93
+ const text = (await response.text()).trim();
94
+ if (text.length > 0) {
95
+ message = text;
96
+ }
97
+ }
98
+ }
99
+ catch (error) {
100
+ logTranslationError('Failed to parse Cursor error response', error);
101
+ }
102
+ return createAnthropicErrorResponse(response.status, type, message, headers);
103
+ }
104
+ async function createAnthropicJsonResponse(response) {
105
+ try {
106
+ const openAiResponse = await response.json();
107
+ if (!hasTranslatableChoices(openAiResponse)) {
108
+ return createAnthropicErrorResponse(502, 'api_error', JSON_TRANSLATION_ERROR_MESSAGE);
109
+ }
110
+ const anthropicResponse = new glmt_transformer_1.GlmtTransformer().transformResponse(openAiResponse);
111
+ if (isSyntheticTransformationFallback(anthropicResponse)) {
112
+ logTranslationError('Cursor JSON translation produced synthetic fallback response', anthropicResponse);
113
+ return createAnthropicErrorResponse(502, 'api_error', JSON_TRANSLATION_ERROR_MESSAGE);
114
+ }
115
+ return new Response(JSON.stringify(anthropicResponse), {
116
+ status: response.status,
117
+ headers: { 'Content-Type': 'application/json' },
118
+ });
119
+ }
120
+ catch (error) {
121
+ logTranslationError('Cursor JSON translation failed', error);
122
+ return createAnthropicErrorResponse(502, 'api_error', JSON_TRANSLATION_ERROR_MESSAGE);
123
+ }
124
+ }
125
+ function createAnthropicStreamingResponse(response) {
126
+ const body = response.body;
127
+ if (!body) {
128
+ return createAnthropicErrorResponse(502, 'api_error', 'Cursor stream ended before a response body was available');
129
+ }
130
+ const parser = new sse_parser_1.SSEParser({ throwOnMalformedJson: true });
131
+ const transformer = new glmt_transformer_1.GlmtTransformer();
132
+ const accumulator = new delta_accumulator_1.DeltaAccumulator({});
133
+ const encoder = new TextEncoder();
134
+ const readable = new ReadableStream({
135
+ async start(controller) {
136
+ const reader = body.getReader();
137
+ try {
138
+ while (true) {
139
+ const { done, value } = await reader.read();
140
+ if (done) {
141
+ break;
142
+ }
143
+ if (!value) {
144
+ continue;
145
+ }
146
+ const events = parser.parse(Buffer.from(value));
147
+ events.forEach((event) => {
148
+ const anthropicEvents = transformer.transformDelta(event, accumulator);
149
+ anthropicEvents.forEach((anthropicEvent) => {
150
+ controller.enqueue(encoder.encode(formatSseEvent(anthropicEvent.event, anthropicEvent.data)));
151
+ });
152
+ });
153
+ }
154
+ if (!accumulator.isFinalized() && accumulator.isMessageStarted()) {
155
+ transformer.finalizeDelta(accumulator).forEach((anthropicEvent) => {
156
+ controller.enqueue(encoder.encode(formatSseEvent(anthropicEvent.event, anthropicEvent.data)));
157
+ });
158
+ }
159
+ }
160
+ catch (error) {
161
+ logTranslationError('Cursor SSE translation failed', error);
162
+ controller.enqueue(encoder.encode(formatSseEvent('error', createAnthropicErrorPayload('api_error', STREAM_TRANSLATION_ERROR_MESSAGE))));
163
+ }
164
+ finally {
165
+ reader.releaseLock();
166
+ controller.close();
167
+ }
168
+ },
169
+ });
170
+ return new Response(readable, {
171
+ status: response.status,
172
+ headers: {
173
+ 'Content-Type': 'text/event-stream',
174
+ 'Cache-Control': 'no-cache',
175
+ Connection: 'keep-alive',
176
+ },
177
+ });
178
+ }
179
+ async function createAnthropicProxyResponse(response) {
180
+ if (!response.ok) {
181
+ return createAnthropicErrorProxyResponse(response);
182
+ }
183
+ const contentType = (response.headers.get('content-type') || '').toLowerCase();
184
+ const isEventStream = contentType === 'text/event-stream' || contentType.startsWith('text/event-stream;');
185
+ return isEventStream
186
+ ? createAnthropicStreamingResponse(response)
187
+ : createAnthropicJsonResponse(response);
188
+ }
189
+ exports.createAnthropicProxyResponse = createAnthropicProxyResponse;
190
+ //# sourceMappingURL=cursor-anthropic-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-anthropic-response.js","sourceRoot":"","sources":["../../src/cursor/cursor-anthropic-response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { CursorTool } from './cursor-protobuf-schema';
2
+ import type { CursorOpenAIMessage } from './cursor-anthropic-types';
3
+ export interface TranslatedAnthropicRequest {
4
+ model?: string;
5
+ stream: boolean;
6
+ reasoning_effort?: string;
7
+ tools?: CursorTool[];
8
+ messages: CursorOpenAIMessage[];
9
+ }
10
+ export declare function translateAnthropicRequest(raw: unknown): TranslatedAnthropicRequest;
11
+ //# sourceMappingURL=cursor-anthropic-translator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-anthropic-translator.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-anthropic-translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAGV,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AA0ED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,0BAA0B,CAgIlF"}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.translateAnthropicRequest = void 0;
4
+ const TOOL_RESULT_SERIALIZATION_FALLBACK = '[unserializable content]';
5
+ const TOOL_USE_ARGUMENTS_FALLBACK = '{}';
6
+ function assertObject(value, label) {
7
+ if (typeof value !== 'object' || value === null) {
8
+ throw new Error(`${label} must be an object`);
9
+ }
10
+ return value;
11
+ }
12
+ function safeJsonStringify(value, fallback) {
13
+ try {
14
+ const serialized = JSON.stringify(value);
15
+ return typeof serialized === 'string' ? serialized : fallback;
16
+ }
17
+ catch {
18
+ return fallback;
19
+ }
20
+ }
21
+ function createFallbackToolId(messageIndex, blockIndex) {
22
+ return `toolu_ccs_fallback_${messageIndex}_${blockIndex}`;
23
+ }
24
+ function flattenTextContent(content, label) {
25
+ if (typeof content === 'string') {
26
+ return content;
27
+ }
28
+ if (!Array.isArray(content)) {
29
+ throw new Error(`${label} must be a string or content block array`);
30
+ }
31
+ return content
32
+ .map((block, index) => {
33
+ const parsed = assertObject(block, `${label}[${index}]`);
34
+ if (parsed.type !== 'text') {
35
+ throw new Error(`${label}[${index}].type "${String(parsed.type)}" is not supported`);
36
+ }
37
+ return typeof parsed.text === 'string' ? parsed.text : '';
38
+ })
39
+ .join('\n');
40
+ }
41
+ function toToolResultContent(content, label) {
42
+ if (content === undefined) {
43
+ return '';
44
+ }
45
+ if (typeof content === 'string') {
46
+ return content;
47
+ }
48
+ if (Array.isArray(content)) {
49
+ return flattenTextContent(content, label);
50
+ }
51
+ return safeJsonStringify(content, TOOL_RESULT_SERIALIZATION_FALLBACK);
52
+ }
53
+ function mapThinkingToReasoningEffort(thinking) {
54
+ if (!thinking) {
55
+ return undefined;
56
+ }
57
+ if (thinking.type === 'disabled') {
58
+ return undefined;
59
+ }
60
+ if (thinking.type !== 'enabled') {
61
+ throw new Error('thinking.type must be "enabled" or "disabled"');
62
+ }
63
+ return typeof thinking.budget_tokens === 'number' && thinking.budget_tokens >= 8192
64
+ ? 'high'
65
+ : 'medium';
66
+ }
67
+ function translateAnthropicRequest(raw) {
68
+ const request = assertObject(raw, 'request');
69
+ const translatedMessages = [];
70
+ if (request.system !== undefined) {
71
+ translatedMessages.push({
72
+ role: 'system',
73
+ content: flattenTextContent(request.system, 'system'),
74
+ });
75
+ }
76
+ if (!Array.isArray(request.messages)) {
77
+ throw new Error('messages must be an array');
78
+ }
79
+ request.messages.forEach((message, messageIndex) => {
80
+ const role = message.role;
81
+ if (role !== 'user' && role !== 'assistant') {
82
+ throw new Error(`messages[${messageIndex}].role must be "user" or "assistant"`);
83
+ }
84
+ const content = message.content;
85
+ if (typeof content === 'string') {
86
+ translatedMessages.push({ role, content });
87
+ return;
88
+ }
89
+ if (!Array.isArray(content)) {
90
+ throw new Error(`messages[${messageIndex}].content must be a string or array`);
91
+ }
92
+ const textParts = [];
93
+ const toolCalls = [];
94
+ let sawToolResult = false;
95
+ content.forEach((block, blockIndex) => {
96
+ const parsed = assertObject(block, `messages[${messageIndex}].content[${blockIndex}]`);
97
+ if (parsed.type === 'text') {
98
+ textParts.push(typeof parsed.text === 'string' ? parsed.text : '');
99
+ return;
100
+ }
101
+ if (parsed.type === 'tool_use') {
102
+ if (role !== 'assistant') {
103
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}] tool_use requires assistant role`);
104
+ }
105
+ toolCalls.push({
106
+ id: typeof parsed.id === 'string' && parsed.id.length > 0
107
+ ? parsed.id
108
+ : createFallbackToolId(messageIndex, blockIndex),
109
+ type: 'function',
110
+ function: {
111
+ name: typeof parsed.name === 'string' ? parsed.name : 'tool',
112
+ arguments: safeJsonStringify(parsed.input ?? {}, TOOL_USE_ARGUMENTS_FALLBACK),
113
+ },
114
+ });
115
+ return;
116
+ }
117
+ if (parsed.type === 'tool_result') {
118
+ if (role !== 'user') {
119
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}] tool_result requires user role`);
120
+ }
121
+ if (typeof parsed.tool_use_id !== 'string' || parsed.tool_use_id.trim().length === 0) {
122
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}].tool_use_id must be a non-empty string`);
123
+ }
124
+ sawToolResult = true;
125
+ if (textParts.length > 0) {
126
+ translatedMessages.push({
127
+ role,
128
+ content: textParts.join('\n'),
129
+ });
130
+ textParts.length = 0;
131
+ }
132
+ translatedMessages.push({
133
+ role: 'tool',
134
+ tool_call_id: parsed.tool_use_id,
135
+ content: toToolResultContent(parsed.content, `messages[${messageIndex}].content[${blockIndex}].content`),
136
+ });
137
+ return;
138
+ }
139
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}].type "${String(parsed.type)}" is not supported`);
140
+ });
141
+ if (role === 'assistant') {
142
+ translatedMessages.push({
143
+ role,
144
+ content: textParts.join('\n'),
145
+ tool_calls: toolCalls.length > 0 ? toolCalls : undefined,
146
+ });
147
+ return;
148
+ }
149
+ if (textParts.length > 0 || !sawToolResult) {
150
+ translatedMessages.push({
151
+ role,
152
+ content: textParts.join('\n'),
153
+ });
154
+ }
155
+ });
156
+ return {
157
+ model: typeof request.model === 'string' && request.model.trim().length > 0
158
+ ? request.model
159
+ : undefined,
160
+ stream: request.stream === true,
161
+ reasoning_effort: mapThinkingToReasoningEffort(request.thinking),
162
+ tools: Array.isArray(request.tools) ? request.tools : undefined,
163
+ messages: translatedMessages,
164
+ };
165
+ }
166
+ exports.translateAnthropicRequest = translateAnthropicRequest;
167
+ //# sourceMappingURL=cursor-anthropic-translator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-anthropic-translator.js","sourceRoot":"","sources":["../../src/cursor/cursor-anthropic-translator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { CursorTool } from './cursor-protobuf-schema';
2
+ export interface CursorOpenAIMessage {
3
+ role: string;
4
+ content: string;
5
+ name?: string;
6
+ tool_call_id?: string;
7
+ tool_calls?: Array<{
8
+ id: string;
9
+ type: string;
10
+ function: {
11
+ name: string;
12
+ arguments: string;
13
+ };
14
+ }>;
15
+ }
16
+ export interface AnthropicTextBlock {
17
+ type: 'text';
18
+ text?: string;
19
+ }
20
+ export interface AnthropicToolUseBlock {
21
+ type: 'tool_use';
22
+ id?: string;
23
+ name?: string;
24
+ input?: Record<string, unknown>;
25
+ }
26
+ export interface AnthropicToolResultBlock {
27
+ type: 'tool_result';
28
+ tool_use_id?: string;
29
+ content?: unknown;
30
+ }
31
+ export type AnthropicContentBlock = AnthropicTextBlock | AnthropicToolUseBlock | AnthropicToolResultBlock;
32
+ export interface CursorAnthropicRequest {
33
+ model?: string;
34
+ messages?: Array<{
35
+ role?: string;
36
+ content?: string | AnthropicContentBlock[];
37
+ }>;
38
+ system?: string | AnthropicTextBlock[];
39
+ stream?: boolean;
40
+ tools?: CursorTool[];
41
+ thinking?: {
42
+ type?: string;
43
+ budget_tokens?: number;
44
+ };
45
+ }
46
+ //# sourceMappingURL=cursor-anthropic-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-anthropic-types.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-anthropic-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,qBAAqB,GACrB,wBAAwB,CAAC;AAE7B,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAA;KAAE,CAAC,CAAC;IAChF,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cursor-anthropic-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-anthropic-types.js","sourceRoot":"","sources":["../../src/cursor/cursor-anthropic-types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-daemon-entry.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-daemon-entry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AA4KD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAkIlF"}
1
+ {"version":3,"file":"cursor-daemon-entry.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-daemon-entry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAY7B,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AA4KD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAoKlF"}
@@ -32,6 +32,8 @@ exports.startCursorDaemonServer = void 0;
32
32
  const http = __importStar(require("http"));
33
33
  const stream_1 = require("stream");
34
34
  const cursor_executor_1 = require("./cursor-executor");
35
+ const cursor_anthropic_response_1 = require("./cursor-anthropic-response");
36
+ const cursor_anthropic_translator_1 = require("./cursor-anthropic-translator");
35
37
  const cursor_auth_1 = require("./cursor-auth");
36
38
  const cursor_models_1 = require("./cursor-models");
37
39
  const MAX_BODY_SIZE = 10 * 1024 * 1024; // 10MB
@@ -155,9 +157,11 @@ function parseArgs(argv) {
155
157
  function startCursorDaemonServer(options) {
156
158
  const executor = new cursor_executor_1.CursorExecutor();
157
159
  const server = http.createServer(async (req, res) => {
160
+ const method = req.method || 'GET';
161
+ const requestUrl = req.url || '/';
162
+ const isOpenAiRoute = method === 'POST' && requestUrl === '/v1/chat/completions';
163
+ const isAnthropicRoute = method === 'POST' && requestUrl === '/v1/messages';
158
164
  try {
159
- const method = req.method || 'GET';
160
- const requestUrl = req.url || '/';
161
165
  if (method === 'GET' && requestUrl === '/health') {
162
166
  writeJson(res, 200, { ok: true, service: 'cursor-daemon' });
163
167
  return;
@@ -182,33 +186,49 @@ function startCursorDaemonServer(options) {
182
186
  writeJson(res, 200, { object: 'list', data });
183
187
  return;
184
188
  }
185
- if (method !== 'POST' || requestUrl !== '/v1/chat/completions') {
189
+ if (!isOpenAiRoute && !isAnthropicRoute) {
186
190
  writeJson(res, 404, { error: 'Not found' });
187
191
  return;
188
192
  }
189
- const parsedBody = (await readJsonBody(req));
190
- const messages = normalizeMessages(parsedBody.messages);
193
+ const rawBody = await readJsonBody(req);
194
+ const anthropicBody = isAnthropicRoute ? (0, cursor_anthropic_translator_1.translateAnthropicRequest)(rawBody) : undefined;
195
+ const parsedBody = anthropicBody ?? (rawBody || {});
196
+ const messages = anthropicBody
197
+ ? anthropicBody.messages
198
+ : normalizeMessages(parsedBody.messages);
191
199
  const requestedModel = typeof parsedBody.model === 'string' && parsedBody.model.trim().length > 0
192
200
  ? parsedBody.model.trim()
193
201
  : undefined;
194
202
  const stream = parsedBody.stream === true;
195
203
  const authStatus = (0, cursor_auth_1.checkAuthStatus)();
196
204
  if (!authStatus.authenticated || !authStatus.credentials) {
197
- writeJson(res, 401, {
198
- error: {
199
- type: 'authentication_error',
200
- message: 'Cursor credentials not found. Run `ccs cursor auth` first.',
201
- },
202
- });
205
+ const message = 'Cursor credentials not found. Run `ccs cursor auth` first.';
206
+ if (isAnthropicRoute) {
207
+ await pipeWebResponseToNode((0, cursor_anthropic_response_1.createAnthropicErrorResponse)(401, 'authentication_error', message), res);
208
+ }
209
+ else {
210
+ writeJson(res, 401, {
211
+ error: {
212
+ type: 'authentication_error',
213
+ message,
214
+ },
215
+ });
216
+ }
203
217
  return;
204
218
  }
205
219
  if (authStatus.expired) {
206
- writeJson(res, 401, {
207
- error: {
208
- type: 'authentication_error',
209
- message: 'Cursor credentials expired. Run `ccs cursor auth` again.',
210
- },
211
- });
220
+ const message = 'Cursor credentials expired. Run `ccs cursor auth` again.';
221
+ if (isAnthropicRoute) {
222
+ await pipeWebResponseToNode((0, cursor_anthropic_response_1.createAnthropicErrorResponse)(401, 'authentication_error', message), res);
223
+ }
224
+ else {
225
+ writeJson(res, 401, {
226
+ error: {
227
+ type: 'authentication_error',
228
+ message,
229
+ },
230
+ });
231
+ }
212
232
  return;
213
233
  }
214
234
  const daemonCredentials = {
@@ -247,17 +267,26 @@ function startCursorDaemonServer(options) {
247
267
  : undefined,
248
268
  },
249
269
  });
250
- await pipeWebResponseToNode(result.response, res);
270
+ const outgoingResponse = isAnthropicRoute
271
+ ? await (0, cursor_anthropic_response_1.createAnthropicProxyResponse)(result.response)
272
+ : result.response;
273
+ await pipeWebResponseToNode(outgoingResponse, res);
251
274
  }
252
275
  catch (error) {
253
276
  const message = error instanceof Error ? error.message : 'Unknown error';
254
277
  const isPayloadTooLarge = message.includes('Request body too large');
255
- writeJson(res, isPayloadTooLarge ? 413 : 400, {
256
- error: {
257
- type: 'invalid_request_error',
258
- message,
259
- },
260
- });
278
+ const status = isPayloadTooLarge ? 413 : 400;
279
+ if (isAnthropicRoute) {
280
+ await pipeWebResponseToNode((0, cursor_anthropic_response_1.createAnthropicErrorResponse)(status, 'invalid_request_error', message), res);
281
+ }
282
+ else {
283
+ writeJson(res, status, {
284
+ error: {
285
+ type: 'invalid_request_error',
286
+ message,
287
+ },
288
+ });
289
+ }
261
290
  }
262
291
  });
263
292
  server.listen(options.port, '127.0.0.1');
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-daemon-entry.js","sourceRoot":"","sources":["../../src/cursor/cursor-daemon-entry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursor-daemon-entry.js","sourceRoot":"","sources":["../../src/cursor/cursor-daemon-entry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-models.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC,0BAA0B;AAC1B,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AA8ExF,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,oBAAoB,EACjC,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAqC/B;AAED,wBAAsB,kBAAkB,CACtC,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,WAAW,EAAE,CAAC,CAmBxB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAwEhF;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAK7E;AAmBD,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,eAAe,EAAE,WAAW,EAAE,GAC7B,MAAM,CAYR;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
1
+ {"version":3,"file":"cursor-models.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC,0BAA0B;AAC1B,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AA8ExF,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,oBAAoB,EACjC,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAqC/B;AAED,wBAAsB,kBAAkB,CACtC,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,WAAW,EAAE,CAAC,CAmBxB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAwEhF;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAK7E;AA6DD,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,eAAe,EAAE,WAAW,EAAE,GAC7B,MAAM,CAgBR;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC"}