clawdex-mobile 5.1.3-internal.9 → 5.2.3

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 (48) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +6 -55
  3. package/bin/clawdex.js +2 -2
  4. package/docs/setup-and-operations.md +13 -100
  5. package/docs/troubleshooting.md +2 -71
  6. package/package.json +17 -6
  7. package/scripts/setup-secure-dev.sh +5 -79
  8. package/scripts/setup-wizard.sh +37 -87
  9. package/scripts/start-bridge-secure.js +9 -269
  10. package/services/cursor-app-server/README.md +39 -0
  11. package/services/cursor-app-server/dist/appServer.d.ts +52 -0
  12. package/services/cursor-app-server/dist/appServer.js +780 -0
  13. package/services/cursor-app-server/dist/appServer.js.map +1 -0
  14. package/services/cursor-app-server/dist/cursorWorkspace.d.ts +7 -0
  15. package/services/cursor-app-server/dist/cursorWorkspace.js +126 -0
  16. package/services/cursor-app-server/dist/cursorWorkspace.js.map +1 -0
  17. package/services/cursor-app-server/dist/index.d.ts +4 -0
  18. package/services/cursor-app-server/dist/index.js +4 -0
  19. package/services/cursor-app-server/dist/index.js.map +1 -0
  20. package/services/cursor-app-server/dist/input.d.ts +27 -0
  21. package/services/cursor-app-server/dist/input.js +143 -0
  22. package/services/cursor-app-server/dist/input.js.map +1 -0
  23. package/services/cursor-app-server/dist/jsonRpc.d.ts +15 -0
  24. package/services/cursor-app-server/dist/jsonRpc.js +93 -0
  25. package/services/cursor-app-server/dist/jsonRpc.js.map +1 -0
  26. package/services/cursor-app-server/dist/projection.d.ts +8 -0
  27. package/services/cursor-app-server/dist/projection.js +507 -0
  28. package/services/cursor-app-server/dist/projection.js.map +1 -0
  29. package/services/cursor-app-server/dist/sdkDriver.d.ts +50 -0
  30. package/services/cursor-app-server/dist/sdkDriver.js +166 -0
  31. package/services/cursor-app-server/dist/sdkDriver.js.map +1 -0
  32. package/services/cursor-app-server/dist/stdio.d.ts +2 -0
  33. package/services/cursor-app-server/dist/stdio.js +7 -0
  34. package/services/cursor-app-server/dist/stdio.js.map +1 -0
  35. package/services/cursor-app-server/dist/types.d.ts +218 -0
  36. package/services/cursor-app-server/dist/types.js +2 -0
  37. package/services/cursor-app-server/dist/types.js.map +1 -0
  38. package/services/cursor-app-server/package.json +43 -0
  39. package/services/rust-bridge/Cargo.lock +1 -1
  40. package/services/rust-bridge/Cargo.toml +1 -1
  41. package/services/rust-bridge/src/main.rs +1703 -353
  42. package/vendor/bridge-binaries/darwin-arm64/codex-rust-bridge +0 -0
  43. package/vendor/bridge-binaries/darwin-x64/codex-rust-bridge +0 -0
  44. package/vendor/bridge-binaries/linux-arm64/codex-rust-bridge +0 -0
  45. package/vendor/bridge-binaries/linux-armv7l/codex-rust-bridge +0 -0
  46. package/vendor/bridge-binaries/linux-x64/codex-rust-bridge +0 -0
  47. package/vendor/bridge-binaries/win32-x64/codex-rust-bridge.exe +0 -0
  48. package/scripts/codespaces-bootstrap.js +0 -297
@@ -0,0 +1,507 @@
1
+ export function projectAgentInfoToThread(agent, cwd, turns) {
2
+ const createdAtMs = agent.createdAt ?? agent.lastModified;
3
+ const updatedAtMs = agent.lastModified;
4
+ const status = agent.status === 'running'
5
+ ? 'running'
6
+ : agent.status === 'error'
7
+ ? 'error'
8
+ : turns && turns.length > 0
9
+ ? 'complete'
10
+ : 'idle';
11
+ const summaryPreview = toPreview(agent.summary || '');
12
+ const lastPreview = lastTurnPreview(turns);
13
+ const preview = summaryPreview || toPreview(lastPreview || '');
14
+ const titlePreview = summaryPreview || firstUserPreview(turns) || preview;
15
+ const name = displayableCursorAgentName(agent.name, agent.agentId) ?? titlePreview ?? null;
16
+ return {
17
+ id: agent.agentId,
18
+ name,
19
+ title: name,
20
+ preview,
21
+ createdAt: toUnixSeconds(createdAtMs),
22
+ updatedAt: toUnixSeconds(updatedAtMs),
23
+ status: { type: status },
24
+ cwd,
25
+ source: 'cursorSdk',
26
+ turns,
27
+ };
28
+ }
29
+ export function messagesToTurns(messages) {
30
+ const turns = [];
31
+ let currentTurn = null;
32
+ for (const message of messages) {
33
+ const projectedTurn = cursorMessageToTurn(message);
34
+ if (projectedTurn) {
35
+ turns.push(projectedTurn);
36
+ currentTurn = projectedTurn;
37
+ continue;
38
+ }
39
+ const text = readMessageText(message.message);
40
+ if (!text.trim()) {
41
+ continue;
42
+ }
43
+ if (message.type === 'user') {
44
+ currentTurn = {
45
+ id: message.uuid,
46
+ status: 'completed',
47
+ items: [
48
+ {
49
+ type: 'userMessage',
50
+ id: message.uuid,
51
+ content: [{ type: 'text', text }],
52
+ },
53
+ ],
54
+ };
55
+ turns.push(currentTurn);
56
+ continue;
57
+ }
58
+ if (!currentTurn) {
59
+ currentTurn = {
60
+ id: `cursor-turn-${message.uuid}`,
61
+ status: 'completed',
62
+ items: [],
63
+ };
64
+ turns.push(currentTurn);
65
+ }
66
+ const lastItem = currentTurn.items[currentTurn.items.length - 1];
67
+ if (lastItem?.type === 'agentMessage') {
68
+ lastItem.text = `${lastItem.text ?? ''}${text}`;
69
+ continue;
70
+ }
71
+ currentTurn.items.push({
72
+ type: 'agentMessage',
73
+ id: message.uuid,
74
+ text,
75
+ });
76
+ }
77
+ return turns;
78
+ }
79
+ function cursorMessageToTurn(message) {
80
+ const conversationTurn = readConversationTurn(message.message);
81
+ if (!conversationTurn) {
82
+ return null;
83
+ }
84
+ if (conversationTurn.type === 'shellConversationTurn') {
85
+ return shellConversationTurnToTurn(message.uuid, conversationTurn.turn);
86
+ }
87
+ const items = [];
88
+ const userText = readMessageText(readRecordValue(conversationTurn.turn, 'userMessage') ??
89
+ readRecordValue(conversationTurn.turn, 'user_message'));
90
+ if (userText.trim()) {
91
+ items.push({
92
+ type: 'userMessage',
93
+ id: `${message.uuid}-user`,
94
+ content: [{ type: 'text', text: userText }],
95
+ });
96
+ }
97
+ const steps = readRecordValue(conversationTurn.turn, 'steps');
98
+ if (Array.isArray(steps)) {
99
+ steps.forEach((step, index) => {
100
+ const item = conversationStepToItem(step, `${message.uuid}-step-${index}`);
101
+ if (item) {
102
+ items.push(item);
103
+ }
104
+ });
105
+ }
106
+ if (items.length === 0) {
107
+ return null;
108
+ }
109
+ return {
110
+ id: message.uuid,
111
+ status: 'completed',
112
+ items,
113
+ };
114
+ }
115
+ function shellConversationTurnToTurn(id, turn) {
116
+ const command = toRecord(readRecordValue(turn, 'shellCommand') ?? readRecordValue(turn, 'shell_command'));
117
+ const output = toRecord(readRecordValue(turn, 'shellOutput') ?? readRecordValue(turn, 'shell_output'));
118
+ const commandText = readString(readRecordValue(command, 'command'));
119
+ const stdout = readString(readRecordValue(output, 'stdout'));
120
+ const stderr = readString(readRecordValue(output, 'stderr'));
121
+ const exitCode = readNumber(readRecordValue(output, 'exitCode') ?? readRecordValue(output, 'exit_code'));
122
+ const failed = exitCode !== null && exitCode !== 0;
123
+ const workingDirectory = readString(readRecordValue(command, 'workingDirectory') ??
124
+ readRecordValue(command, 'working_directory'));
125
+ if (!commandText && !stdout && !stderr) {
126
+ return null;
127
+ }
128
+ return {
129
+ id,
130
+ status: failed ? 'failed' : 'completed',
131
+ items: [
132
+ {
133
+ type: 'toolCall',
134
+ id: `${id}-shell`,
135
+ tool: 'shell',
136
+ status: failed ? 'error' : 'completed',
137
+ args: {
138
+ ...(commandText ? { command: commandText } : {}),
139
+ ...(workingDirectory ? { workingDirectory } : {}),
140
+ },
141
+ result: {
142
+ ...(stdout ? { stdout } : {}),
143
+ ...(stderr ? { stderr } : {}),
144
+ ...(exitCode !== null ? { exitCode } : {}),
145
+ },
146
+ },
147
+ ],
148
+ };
149
+ }
150
+ function conversationStepToItem(value, id) {
151
+ const step = toRecord(value);
152
+ if (!step) {
153
+ return null;
154
+ }
155
+ let type = readString(readRecordValue(step, 'type'));
156
+ let message = readRecordValue(step, 'message');
157
+ const oneOfMessage = readOneOf(message);
158
+ if (!type && oneOfMessage) {
159
+ type = oneOfMessage.case;
160
+ message = oneOfMessage.value;
161
+ }
162
+ if (type === 'assistantMessage' || readRecordValue(step, 'assistantMessage')) {
163
+ const text = readMessageText(message ?? readRecordValue(step, 'assistantMessage'));
164
+ if (!text.trim()) {
165
+ return null;
166
+ }
167
+ return {
168
+ type: 'agentMessage',
169
+ id,
170
+ text,
171
+ };
172
+ }
173
+ if (type === 'thinkingMessage' || readRecordValue(step, 'thinkingMessage')) {
174
+ const text = readMessageText(message ?? readRecordValue(step, 'thinkingMessage'));
175
+ if (!text.trim()) {
176
+ return null;
177
+ }
178
+ return {
179
+ type: 'reasoning',
180
+ id,
181
+ text,
182
+ };
183
+ }
184
+ if (type === 'toolCall' || readRecordValue(step, 'toolCall')) {
185
+ const tool = toRecord(message ?? readRecordValue(step, 'toolCall'));
186
+ const nestedTool = readOneOf(readRecordValue(tool, 'tool'));
187
+ const nestedToolPayload = toRecord(nestedTool?.value);
188
+ const result = readRecordValue(nestedToolPayload, 'result') ?? readRecordValue(tool, 'result');
189
+ const truncated = toRecord(readRecordValue(tool, 'truncated'));
190
+ const item = {
191
+ type: 'toolCall',
192
+ id,
193
+ tool: readString(readRecordValue(tool, 'name')) ??
194
+ readString(readRecordValue(tool, 'type')) ??
195
+ normalizeCursorToolName(nestedTool?.case) ??
196
+ 'unknown',
197
+ status: toolCallStatus(tool, result),
198
+ args: readRecordValue(nestedToolPayload, 'args') ?? readRecordValue(tool, 'args'),
199
+ result,
200
+ };
201
+ if (truncated) {
202
+ item.truncated = truncated;
203
+ }
204
+ return item;
205
+ }
206
+ return null;
207
+ }
208
+ function readConversationTurn(value) {
209
+ const record = toRecord(value);
210
+ if (!record) {
211
+ return null;
212
+ }
213
+ const directType = readString(readRecordValue(record, 'type'));
214
+ const directTurn = toRecord(readRecordValue(record, 'turn'));
215
+ if ((directType === 'agentConversationTurn' || directType === 'shellConversationTurn') &&
216
+ directTurn) {
217
+ return {
218
+ type: directType,
219
+ turn: directTurn,
220
+ };
221
+ }
222
+ const agentConversationTurn = toRecord(readRecordValue(record, 'agentConversationTurn'));
223
+ if (agentConversationTurn) {
224
+ return {
225
+ type: 'agentConversationTurn',
226
+ turn: agentConversationTurn,
227
+ };
228
+ }
229
+ const shellConversationTurn = toRecord(readRecordValue(record, 'shellConversationTurn'));
230
+ if (shellConversationTurn) {
231
+ return {
232
+ type: 'shellConversationTurn',
233
+ turn: shellConversationTurn,
234
+ };
235
+ }
236
+ const oneOfTurn = toRecord(readRecordValue(record, 'turn'));
237
+ const oneOfCase = readString(readRecordValue(oneOfTurn, 'case'));
238
+ const oneOfValue = toRecord(readRecordValue(oneOfTurn, 'value'));
239
+ if ((oneOfCase === 'agentConversationTurn' || oneOfCase === 'shellConversationTurn') &&
240
+ oneOfValue) {
241
+ return {
242
+ type: oneOfCase,
243
+ turn: oneOfValue,
244
+ };
245
+ }
246
+ return null;
247
+ }
248
+ export function displayableCursorAgentName(name, agentId) {
249
+ const value = toPreview(name ?? '');
250
+ if (!value || isGenericCursorAgentName(value, agentId)) {
251
+ return null;
252
+ }
253
+ return value;
254
+ }
255
+ export function isGenericCursorAgentName(name, agentId) {
256
+ const value = (name ?? '').trim().toLowerCase();
257
+ if (!value) {
258
+ return true;
259
+ }
260
+ if (value === 'new agent' ||
261
+ value === 'cursor agent' ||
262
+ value === 'untitled' ||
263
+ value === 'untitled agent') {
264
+ return true;
265
+ }
266
+ const agentPrefix = agentId.slice(0, 8).toLowerCase();
267
+ const normalizedAgentId = agentId.trim().toLowerCase();
268
+ const normalizedAgentIdWithoutCursorPrefix = normalizedAgentId.replace(/^cursor:/u, '');
269
+ return (value === `cursor ${agentPrefix}` ||
270
+ value === `cursor ${normalizedAgentId}` ||
271
+ value === `chat ${normalizedAgentId}` ||
272
+ value === `chat cursor:${normalizedAgentIdWithoutCursorPrefix}` ||
273
+ /^chat\s+cursor:[a-z0-9_-]+$/u.test(value) ||
274
+ /^cursor\s+agent[-\s][0-9a-f]{2,}/u.test(value));
275
+ }
276
+ export function streamMessageToThreadItem(message) {
277
+ if (message.type === 'assistant') {
278
+ const text = readMessageText(message.message);
279
+ if (!text.trim()) {
280
+ return null;
281
+ }
282
+ return {
283
+ type: 'agentMessage',
284
+ id: `${message.run_id ?? 'run'}-assistant`,
285
+ text,
286
+ };
287
+ }
288
+ if (message.type === 'thinking') {
289
+ const text = message.text?.trim();
290
+ if (!text) {
291
+ return null;
292
+ }
293
+ return {
294
+ type: 'reasoning',
295
+ id: `${message.run_id ?? 'run'}-thinking`,
296
+ text,
297
+ };
298
+ }
299
+ if (message.type === 'tool_call') {
300
+ return {
301
+ type: 'toolCall',
302
+ id: message.call_id ?? `${message.run_id ?? 'run'}-tool`,
303
+ tool: message.name ?? 'unknown',
304
+ status: message.status ?? 'running',
305
+ args: message.args,
306
+ result: message.result,
307
+ truncated: message.truncated,
308
+ };
309
+ }
310
+ if (message.type === 'task') {
311
+ const text = message.text?.trim();
312
+ if (!text) {
313
+ return null;
314
+ }
315
+ return {
316
+ type: 'reasoning',
317
+ id: `${message.run_id ?? 'run'}-task`,
318
+ text,
319
+ status: message.status,
320
+ };
321
+ }
322
+ return null;
323
+ }
324
+ export function readMessageText(value) {
325
+ if (typeof value === 'string') {
326
+ return value;
327
+ }
328
+ const record = toRecord(value);
329
+ if (!record) {
330
+ return '';
331
+ }
332
+ if (typeof record.text === 'string') {
333
+ return record.text;
334
+ }
335
+ const oneOf = readOneOf(record);
336
+ if (oneOf) {
337
+ return readMessageText(oneOf.value);
338
+ }
339
+ const userMessage = toRecord(readRecordValue(record, 'userMessage')) ??
340
+ toRecord(readRecordValue(record, 'user_message'));
341
+ if (userMessage) {
342
+ return readMessageText(userMessage);
343
+ }
344
+ const conversationTurn = readConversationTurn(record);
345
+ if (conversationTurn?.type === 'agentConversationTurn') {
346
+ const parts = [];
347
+ const userText = readMessageText(readRecordValue(conversationTurn.turn, 'userMessage') ??
348
+ readRecordValue(conversationTurn.turn, 'user_message'));
349
+ if (userText.trim()) {
350
+ parts.push(userText);
351
+ }
352
+ const steps = readRecordValue(conversationTurn.turn, 'steps');
353
+ if (Array.isArray(steps)) {
354
+ for (const step of steps) {
355
+ const stepText = readConversationStepText(step);
356
+ if (stepText.trim()) {
357
+ parts.push(stepText);
358
+ }
359
+ }
360
+ }
361
+ return parts.join('');
362
+ }
363
+ if (conversationTurn?.type === 'shellConversationTurn') {
364
+ const shellTurn = shellConversationTurnToTurn('preview', conversationTurn.turn);
365
+ return (shellTurn?.items
366
+ .map((item) => {
367
+ const args = toRecord(item.args);
368
+ const result = toRecord(item.result);
369
+ return [
370
+ readString(readRecordValue(args, 'command')),
371
+ readString(readRecordValue(result, 'stdout')),
372
+ readString(readRecordValue(result, 'stderr')),
373
+ ]
374
+ .filter(Boolean)
375
+ .join('\n');
376
+ })
377
+ .filter(Boolean)
378
+ .join('\n') ?? '');
379
+ }
380
+ if (Array.isArray(record.content)) {
381
+ return record.content
382
+ .map((entry) => {
383
+ if (!entry || typeof entry !== 'object') {
384
+ return '';
385
+ }
386
+ const content = entry;
387
+ return typeof content.text === 'string' ? content.text : '';
388
+ })
389
+ .filter((entry) => entry.length > 0)
390
+ .join('');
391
+ }
392
+ const nested = record.message;
393
+ if (nested !== undefined && nested !== value) {
394
+ return readMessageText(nested);
395
+ }
396
+ return '';
397
+ }
398
+ function readConversationStepText(value) {
399
+ const step = toRecord(value);
400
+ if (!step) {
401
+ return '';
402
+ }
403
+ const message = readRecordValue(step, 'message');
404
+ const oneOfMessage = readOneOf(message);
405
+ return readMessageText(oneOfMessage?.value ??
406
+ message ??
407
+ readRecordValue(step, 'assistantMessage') ??
408
+ readRecordValue(step, 'thinkingMessage'));
409
+ }
410
+ function toolCallStatus(tool, resultValue) {
411
+ const status = readString(readRecordValue(tool, 'status'));
412
+ if (status) {
413
+ return status;
414
+ }
415
+ const result = toRecord(resultValue) ?? toRecord(readRecordValue(tool, 'result'));
416
+ const resultStatus = readString(readRecordValue(result, 'status'));
417
+ return resultStatus === 'error' ? 'error' : 'completed';
418
+ }
419
+ function normalizeCursorToolName(value) {
420
+ if (!value) {
421
+ return null;
422
+ }
423
+ const withoutSuffix = value.replace(/ToolCall$/u, '');
424
+ return withoutSuffix.trim() ? withoutSuffix : value;
425
+ }
426
+ function readOneOf(value) {
427
+ const record = toRecord(value);
428
+ if (!record) {
429
+ return null;
430
+ }
431
+ const oneOfCase = readString(readRecordValue(record, 'case'));
432
+ if (!oneOfCase || !Object.prototype.hasOwnProperty.call(record, 'value')) {
433
+ return null;
434
+ }
435
+ return {
436
+ case: oneOfCase,
437
+ value: readRecordValue(record, 'value'),
438
+ };
439
+ }
440
+ function readRecordValue(record, key) {
441
+ return record ? record[key] : undefined;
442
+ }
443
+ function toRecord(value) {
444
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
445
+ return null;
446
+ }
447
+ return value;
448
+ }
449
+ function readString(value) {
450
+ return typeof value === 'string' && value.trim() ? value.trim() : null;
451
+ }
452
+ function readNumber(value) {
453
+ return typeof value === 'number' && Number.isFinite(value) ? value : null;
454
+ }
455
+ export function toPreview(value) {
456
+ const collapsed = value.replace(/\s+/g, ' ').trim();
457
+ if (collapsed.length <= 180) {
458
+ return collapsed;
459
+ }
460
+ return `${collapsed.slice(0, 177)}...`;
461
+ }
462
+ function lastTurnPreview(turns) {
463
+ if (!turns || turns.length === 0) {
464
+ return null;
465
+ }
466
+ for (let turnIndex = turns.length - 1; turnIndex >= 0; turnIndex -= 1) {
467
+ const turn = turns[turnIndex];
468
+ for (let itemIndex = turn.items.length - 1; itemIndex >= 0; itemIndex -= 1) {
469
+ const item = turn.items[itemIndex];
470
+ const text = item.text ?? threadContentText(item.content);
471
+ if (text.trim()) {
472
+ return text;
473
+ }
474
+ }
475
+ }
476
+ return null;
477
+ }
478
+ function firstUserPreview(turns) {
479
+ if (!turns || turns.length === 0) {
480
+ return null;
481
+ }
482
+ for (const turn of turns) {
483
+ for (const item of turn.items) {
484
+ if (item.type !== 'userMessage') {
485
+ continue;
486
+ }
487
+ const text = threadContentText(item.content);
488
+ const preview = toPreview(text);
489
+ if (preview) {
490
+ return preview;
491
+ }
492
+ }
493
+ }
494
+ return null;
495
+ }
496
+ function threadContentText(content) {
497
+ return content
498
+ ?.map((entry) => (entry.type === 'text' ? entry.text : ''))
499
+ .join('') ?? '';
500
+ }
501
+ function toUnixSeconds(ms) {
502
+ if (!Number.isFinite(ms) || ms <= 0) {
503
+ return Math.floor(Date.now() / 1000);
504
+ }
505
+ return Math.floor(ms / 1000);
506
+ }
507
+ //# sourceMappingURL=projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { type AgentOptions, type CursorAgentPlatformOptions } from '@cursor/sdk';
2
+ import type { CursorAgentHandle, CursorAgentInfo, CursorAgentMessage, CursorDriver, CursorModelListItem, CursorRunInfo, ModelSelection } from './types.js';
3
+ export declare class CursorSdkDriver implements CursorDriver {
4
+ createAgent(options: {
5
+ agentId?: string;
6
+ cwd: string;
7
+ apiKey: string;
8
+ name?: string;
9
+ model?: ModelSelection;
10
+ }): Promise<CursorAgentHandle>;
11
+ resumeAgent(agentId: string, options: {
12
+ cwd: string;
13
+ storeCwd?: string;
14
+ apiKey: string;
15
+ model?: ModelSelection;
16
+ }): Promise<CursorAgentHandle>;
17
+ listAgents(options: {
18
+ cwd: string;
19
+ limit?: number;
20
+ cursor?: string;
21
+ }): Promise<{
22
+ items: CursorAgentInfo[];
23
+ nextCursor?: string;
24
+ }>;
25
+ getAgent(agentId: string, options: {
26
+ cwd: string;
27
+ apiKey?: string;
28
+ }): Promise<CursorAgentInfo>;
29
+ listMessages(agentId: string, options: {
30
+ cwd: string;
31
+ limit?: number;
32
+ offset?: number;
33
+ }): Promise<CursorAgentMessage[]>;
34
+ listRuns(agentId: string, options: {
35
+ cwd: string;
36
+ limit?: number;
37
+ cursor?: string;
38
+ }): Promise<{
39
+ items: CursorRunInfo[];
40
+ nextCursor?: string;
41
+ }>;
42
+ listModels(options: {
43
+ apiKey: string;
44
+ }): Promise<CursorModelListItem[]>;
45
+ }
46
+ export declare function buildLocalCursorAgentOptions(options: {
47
+ cwd: string;
48
+ storeCwd?: string;
49
+ }): Pick<AgentOptions, 'local' | 'platform'>;
50
+ export declare function localCursorAgentPlatform(cwd: string): CursorAgentPlatformOptions;