effect-cursor-sdk 0.2.1 → 0.3.1

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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # effect-cursor-sdk
2
2
 
3
- ![npm](https://img.shields.io/npm/v/effect-cursor-sdk) ![License MIT](https://img.shields.io/github/license/benjamin-kraatz/effect-cursor-sdk) ![CI](https://img.shields.io/github/actions/workflow/status/benjamin-kraatz/effect-cursor-sdk/ci.yml) ![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/benjamin-kraatz/effect-cursor-sdk?utm_source=oss&utm_medium=github&utm_campaign=benjamin-kraatz%2Feffect-cursor-sdk&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews)
3
+ [![npm](https://img.shields.io/npm/v/effect-cursor-sdk)](https://www.npmjs.com/package/effect-cursor-sdk) ![License MIT](https://img.shields.io/github/license/benjamin-kraatz/effect-cursor-sdk) ![CI](https://img.shields.io/github/actions/workflow/status/benjamin-kraatz/effect-cursor-sdk/ci.yml) ![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/benjamin-kraatz/effect-cursor-sdk?utm_source=oss&utm_medium=github&utm_campaign=benjamin-kraatz%2Feffect-cursor-sdk&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews)
4
4
 
5
5
  Effect-native access to the new [Cursor SDK](https://cursor.com/docs/sdk/typescript).
6
6
 
@@ -18,13 +18,20 @@ Effect-native access to the new [Cursor SDK](https://cursor.com/docs/sdk/typescr
18
18
  - Observable: SDK calls are wrapped in spans and metrics with secret redaction utilities.
19
19
  - Testable: mock layers and fixtures let applications test Cursor workflows without network calls.
20
20
 
21
+ ## Documentation
22
+
23
+ - [SDK coverage & compatibility](./docs/SDK_COVERAGE.md) — wrapper checklist, audit script, release alignment
24
+ - [Recipes](./docs/RECIPES.md) — short patterns (config-first agent, streaming, pagination, lifecycle, tests)
25
+ - [Release checklist](./docs/RELEASE_CHECKLIST.md) — gates, SDK bumps, Changesets
26
+ - [Next major migration (planned)](./docs/MIGRATION_NEXT_MAJOR.md) — config-first renames after deprecations are removed
27
+
21
28
  ## Feature Coverage
22
29
 
23
30
  | SDK capability | Effect wrapper |
24
31
  | -------------------------------------------------------------------------------- | ---------------------------------------------- |
25
32
  | `Agent.create`, `Agent.resume`, `Agent.prompt` | `CursorAgentService` |
26
33
  | `agent.send`, `reload`, `close`, async dispose | `CursorAgentService` |
27
- | `run.wait`, `stream`, `conversation`, `cancel`, status listeners, support checks | `CursorRunService` |
34
+ | `run.wait`, `stream`, `conversation`, `cancel`, status listeners / streams, support checks | `CursorRunService` |
28
35
  | `agent.listArtifacts`, `downloadArtifact` | `CursorArtifactService` |
29
36
  | `Agent.list`, `get`, `listRuns`, `getRun`, messages | `CursorInspectionService` |
30
37
  | `Agent.archive`, `unarchive`, `delete` | `CursorInspectionService` |
@@ -310,6 +317,8 @@ const testProgram = Effect.gen(function* () {
310
317
 
311
318
  The main exports are:
312
319
 
320
+ - **Recipes** — common compositions (prompt text, send + collect, pagination, lifecycle guards, artifacts) in [RECIPES.md](./docs/RECIPES.md)
321
+ - **Observability helpers** (`streamEventsTracked`, `collectTextTracked`, catalog retry/timeout presets, log summaries)
313
322
  - `CursorAgentService` (prefer `createFromConfig`, `scopedFromConfig`, `promptFromConfig`, `resumeFromConfig` with `loadCursorConfig`; plain `AgentOptions` at the agent boundary is [deprecated](./DEPRECATIONS.md))
314
323
  - `CursorRunService`
315
324
  - `CursorArtifactService`
@@ -326,6 +335,7 @@ Use generated TypeScript declarations for exact signatures.
326
335
 
327
336
  ```bash
328
337
  bun run typecheck
338
+ bun run sdk-audit
329
339
  bun run lint
330
340
  bun run format:check
331
341
  bun run test
@@ -334,6 +344,8 @@ bun run build
334
344
  bun run lint:package
335
345
  ```
336
346
 
347
+ After a `@cursor/sdk` bump, if `sdk-audit` fails, review [docs/SDK_COVERAGE.md](./docs/SDK_COVERAGE.md) and refresh the baseline only when drift is intentional: `bun run sdk-audit:refresh`.
348
+
337
349
  Coverage is measured with Vitest v8 coverage. The suite focuses on deterministic wrapper behavior; live SDK network paths should be validated separately with credentials and a disposable repository.
338
350
 
339
351
  ## Deprecations
@@ -365,4 +377,4 @@ bun run version
365
377
  bun run release
366
378
  ```
367
379
 
368
- `bun run release` runs `typecheck`, `lint`, `test`, `build`, and `publint` before publishing to NPM.
380
+ `bun run release` runs `verify:publish` (including `sdk-audit`) before publishing to NPM.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import { Config, Context, Effect, Layer, ManagedRuntime, Metric, Option, Redacted, Schema, Scope, Stream } from "effect";
1
+ import { Config, Context, Effect, Layer, ManagedRuntime, Metric, Option, Redacted, Schedule, Schema, Scope, Stream } from "effect";
2
2
  import { AgentDefinition, AgentMessage, AgentOperationOptions, AgentOptions, AuthenticationError, ConfigurationError, CursorAgentError, CursorAgentPlatform, CursorRequestOptions, GetAgentMessagesOptions, GetAgentOptions, GetRunOptions, IntegrationNotConnectedError, ListAgentsOptions, ListResult, ListRunsOptions, McpServerConfig, ModelListItem, ModelParameterDefinition, ModelParameterValue, ModelSelection, ModelVariant, NetworkError, RateLimitError, Run, RunOperation, RunResult, RunResultStatus, RunStatus, SDKAgent, SDKAgentInfo, SDKArtifact, SDKAssistantMessage, SDKImage, SDKImageDimension, SDKMessage, SDKModel, SDKRepository, SDKStatusMessage, SDKSystemMessage, SDKTaskMessage, SDKThinkingMessage, SDKToolUseMessage, SDKUser, SDKUserMessage, SDKUserMessageEvent, SendOptions, SettingSource, TextBlock, ToolUseBlock, UnknownAgentError, UnsupportedRunOperationError, createAgentPlatform, createInMemoryRunEventNotifier, createLocalRunEventNotifier, createSdkMessageRunStreamEvent, decodeLocalRunStreamEvent, decodeSdkMessageRunStreamEvent, getTurnType, isTerminalLocalRunStreamEvent, localRunStreamEventToSdkMessage, startLocalRunEventNotifierServer } from "@cursor/sdk";
3
3
  import * as _$effect_Types0 from "effect/Types";
4
4
  import * as _$effect_Cause0 from "effect/Cause";
5
+ import * as _$effect_Duration0 from "effect/Duration";
5
6
 
6
7
  //#region src/cursor-error.d.ts
7
8
  /**
@@ -275,6 +276,14 @@ declare const agentOptionsFromConfig: (config: CursorConfig, overrides?: AgentOp
275
276
  * It uses ConfigProvider to load the environment variables
276
277
  * with their default names (`CURSOR_API_KEY`, `CURSOR_MODEL`, `CURSOR_LOCAL_CWD`)
277
278
  * from {@link cursorConfig}.
279
+ * Omitting `CURSOR_API_KEY` only means no default API-key-based auth will be
280
+ * set; callers can still provide credentials via {@link agentOptionsFromConfig}
281
+ * overrides or the `*FromConfig` service helpers.
282
+ *
283
+ * If the API key is not set, it will log a warning message.
284
+ *
285
+ * **NOTE**: omitting the API key will cause an unauthenticated error
286
+ * in subsequent calls to the Cursor SDK API.
278
287
  *
279
288
  * @example
280
289
  * ```ts
@@ -602,6 +611,7 @@ declare class CursorInspectionService extends CursorInspectionService_base {
602
611
  * @see {@link makeMockSdkFactoryLayer}
603
612
  * @category testing
604
613
  */
614
+ type CursorMockFactoryMethod = "create" | "resume" | "prompt" | "listAgents" | "listRuns" | "getRun" | "getAgent" | "archiveAgent" | "unarchiveAgent" | "deleteAgent" | "listMessages" | "me" | "listModels" | "listRepositories";
605
615
  interface CursorMockFixtures {
606
616
  readonly agentId?: string;
607
617
  readonly runId?: string;
@@ -614,6 +624,19 @@ interface CursorMockFixtures {
614
624
  readonly models?: ReadonlyArray<SDKModel>;
615
625
  readonly repositories?: ReadonlyArray<SDKRepository>;
616
626
  readonly user?: SDKUser;
627
+ /**
628
+ * Per-`send` merged fixtures. Each `MockCursorAgent.send` increments the index;
629
+ * when exhausted, further sends reuse the last entry merged with the base fixtures.
630
+ */
631
+ readonly sendSequence?: ReadonlyArray<Partial<CursorMockFixtures>>;
632
+ /**
633
+ * Reject a factory method with this error (Promise rejection).
634
+ */
635
+ readonly factoryErrors?: Partial<Record<CursorMockFactoryMethod, unknown>>;
636
+ /** Override {@link Run.supports} per operation. */
637
+ readonly runSupports?: Partial<Record<RunOperation, boolean>>;
638
+ /** Override unsupported reasons for operations marked false in {@link runSupports}. */
639
+ readonly runUnsupportedReason?: Partial<Record<RunOperation, string>>;
617
640
  }
618
641
  /**
619
642
  * Deterministic SDK `Run` implementation for tests.
@@ -637,17 +660,24 @@ declare class MockCursorRun implements Run {
637
660
  #private;
638
661
  readonly streamEvents: ReadonlyArray<SDKMessage>;
639
662
  readonly waitResult: RunResult;
663
+ readonly behavior?: {
664
+ readonly supports?: Partial<Record<RunOperation, boolean>>;
665
+ readonly unsupportedReason?: Partial<Record<RunOperation, string>>;
666
+ } | undefined;
640
667
  readonly id: string;
641
668
  readonly agentId: string;
642
669
  readonly createdAt: number;
643
- constructor(streamEvents: ReadonlyArray<SDKMessage>, waitResult: RunResult);
670
+ constructor(streamEvents: ReadonlyArray<SDKMessage>, waitResult: RunResult, behavior?: {
671
+ readonly supports?: Partial<Record<RunOperation, boolean>>;
672
+ readonly unsupportedReason?: Partial<Record<RunOperation, string>>;
673
+ } | undefined);
644
674
  get status(): RunStatus;
645
675
  get result(): string | undefined;
646
676
  get model(): RunResult["model"];
647
677
  get durationMs(): number | undefined;
648
678
  get git(): RunResult["git"];
649
- supports(_operation: RunOperation): boolean;
650
- unsupportedReason(_operation: RunOperation): string | undefined;
679
+ supports(operation: RunOperation): boolean;
680
+ unsupportedReason(operation: RunOperation): string | undefined;
651
681
  stream(): AsyncGenerator<SDKMessage, void>;
652
682
  conversation(): Promise<[]>;
653
683
  wait(): Promise<RunResult>;
@@ -670,6 +700,7 @@ declare class MockCursorRun implements Run {
670
700
  * @category testing
671
701
  */
672
702
  declare class MockCursorAgent implements SDKAgent {
703
+ #private;
673
704
  readonly fixtures: CursorMockFixtures;
674
705
  readonly agentId: string;
675
706
  readonly runs: Run[];
@@ -701,6 +732,15 @@ declare const makeMockRun: (fixtures?: CursorMockFixtures) => MockCursorRun;
701
732
  * @category testing
702
733
  */
703
734
  declare const makeMockAgent: (fixtures?: CursorMockFixtures) => MockCursorAgent;
735
+ /**
736
+ * Minimal assistant {@link SDKMessage} for streaming tests.
737
+ *
738
+ * @category testing
739
+ */
740
+ declare const makeMockAssistantSdkMessage: (text: string, ids?: {
741
+ readonly agentId?: string;
742
+ readonly runId?: string;
743
+ }) => SDKMessage;
704
744
  /**
705
745
  * Layer replacing the SDK factory with deterministic mock behavior.
706
746
  *
@@ -722,6 +762,146 @@ declare const makeMockAgent: (fixtures?: CursorMockFixtures) => MockCursorAgent;
722
762
  */
723
763
  declare const makeMockSdkFactoryLayer: (fixtures?: CursorMockFixtures) => Layer.Layer<CursorSdkFactory, never, never>;
724
764
  //#endregion
765
+ //#region src/cursor-observability.d.ts
766
+ /**
767
+ * Default exponential retry for Cursor catalog-style calls (list agents, models, repos).
768
+ *
769
+ * Matches the pattern used in the advanced ops dashboard example: 150ms base, 3 attempts.
770
+ *
771
+ * @example
772
+ * ```ts
773
+ * import { CursorInspectionService, cursorCatalogRetrySchedule, liveLayer } from "effect-cursor-sdk";
774
+ * import { Effect } from "effect";
775
+ *
776
+ * const program = Effect.gen(function* () {
777
+ * const inspection = yield* CursorInspectionService;
778
+ * return yield* inspection.listModels().pipe(Effect.retry(cursorCatalogRetrySchedule));
779
+ * }).pipe(Effect.provide(liveLayer));
780
+ * ```
781
+ *
782
+ * @category observability
783
+ */
784
+ declare const cursorCatalogRetrySchedule: Schedule.Schedule<[_$effect_Duration0.Duration, number], unknown, never, never>;
785
+ /**
786
+ * Default timeout for parallel catalog loads.
787
+ *
788
+ * @example
789
+ * ```ts
790
+ * import { CursorInspectionService, cursorCatalogLoadTimeout, liveLayer } from "effect-cursor-sdk";
791
+ * import { Effect } from "effect";
792
+ *
793
+ * const program = Effect.gen(function* () {
794
+ * const inspection = yield* CursorInspectionService;
795
+ * return yield* Effect.all(
796
+ * { user: inspection.me(), models: inspection.listModels() },
797
+ * { concurrency: "unbounded" },
798
+ * ).pipe(Effect.timeout(cursorCatalogLoadTimeout));
799
+ * }).pipe(Effect.provide(liveLayer));
800
+ * ```
801
+ *
802
+ * @category observability
803
+ */
804
+ declare const cursorCatalogLoadTimeout: "45 seconds";
805
+ /**
806
+ * Append assistant-visible text from a streamed {@link SDKMessage} (same rules as {@link CursorRunService.collectText}).
807
+ *
808
+ * @example
809
+ * ```ts
810
+ * import { appendAssistantSdkMessageText } from "effect-cursor-sdk";
811
+ * import type { SDKMessage } from "effect-cursor-sdk";
812
+ *
813
+ * const events: SDKMessage[] = []; // from run.stream()
814
+ * const text = events.reduce(appendAssistantSdkMessageText, "");
815
+ * ```
816
+ *
817
+ * @category observability
818
+ */
819
+ declare const appendAssistantSdkMessageText: (text: string, event: SDKMessage) => string;
820
+ /**
821
+ * Wraps a run event stream and increments {@link cursorStreamEvents} per emitted event.
822
+ *
823
+ * @example
824
+ * ```ts
825
+ * import { CursorRunService, streamEventsTracked, liveLayer } from "effect-cursor-sdk";
826
+ * import { Effect, Stream } from "effect";
827
+ * import type { Run } from "effect-cursor-sdk";
828
+ *
829
+ * declare const run: Run;
830
+ *
831
+ * const program = Effect.gen(function* () {
832
+ * const runs = yield* CursorRunService;
833
+ * yield* streamEventsTracked(runs.streamEvents(run)).pipe(Stream.runDrain);
834
+ * }).pipe(Effect.provide(liveLayer));
835
+ * ```
836
+ *
837
+ * @category observability
838
+ */
839
+ declare const streamEventsTracked: <E>(stream: Stream.Stream<E, CursorStreamError>) => Stream.Stream<E, CursorStreamError>;
840
+ /**
841
+ * Like {@link CursorRunService.collectText}, but increments {@link cursorStreamEvents} per stream chunk.
842
+ *
843
+ * @param run - SDK run handle.
844
+ * @param streamEvents - Typically `runs.streamEvents` from {@link CursorRunService}.
845
+ *
846
+ * @example
847
+ * ```ts
848
+ * import { collectTextTracked, CursorRunService, liveLayer } from "effect-cursor-sdk";
849
+ * import { Effect } from "effect";
850
+ * import type { Run } from "effect-cursor-sdk";
851
+ *
852
+ * declare const run: Run;
853
+ *
854
+ * const text = Effect.gen(function* () {
855
+ * const runs = yield* CursorRunService;
856
+ * return yield* collectTextTracked(run, (r) => runs.streamEvents(r));
857
+ * }).pipe(Effect.provide(liveLayer));
858
+ * ```
859
+ *
860
+ * @category observability
861
+ */
862
+ declare const collectTextTracked: (run: Run, streamEvents: (r: Run) => Stream.Stream<SDKMessage, CursorStreamError>) => Effect.Effect<string, CursorStreamError>;
863
+ /**
864
+ * Build a redacted, log-safe summary of {@link AgentOptions} **without** an API key value.
865
+ *
866
+ * @remarks
867
+ * Nested structures are passed through {@link redact}. Never log raw `apiKey`.
868
+ *
869
+ * @example
870
+ * ```ts
871
+ * import { summarizeAgentOptionsForLog } from "effect-cursor-sdk";
872
+ * import { Effect } from "effect";
873
+ *
874
+ * const program = Effect.gen(function* () {
875
+ * const options = { model: { id: "composer-2" }, apiKey: "secret" };
876
+ * yield* Effect.logInfo("cursor run", summarizeAgentOptionsForLog(options));
877
+ * });
878
+ * ```
879
+ *
880
+ * @category observability
881
+ */
882
+ declare const summarizeAgentOptionsForLog: (options: AgentOptions) => Record<string, unknown>;
883
+ /**
884
+ * Attach minimal run identifiers for structured logs or span attributes.
885
+ *
886
+ * @example
887
+ * ```ts
888
+ * import { summarizeRunForLog } from "effect-cursor-sdk";
889
+ * import { Effect } from "effect";
890
+ *
891
+ * const program = Effect.gen(function* () {
892
+ * const run = { id: "run_1", agentId: "agt_1", status: "finished" as const };
893
+ * yield* Effect.logDebug("run done", summarizeRunForLog(run));
894
+ * });
895
+ * ```
896
+ *
897
+ * @category observability
898
+ */
899
+ declare const summarizeRunForLog: (run: {
900
+ readonly id: string;
901
+ readonly agentId: string;
902
+ readonly status?: string;
903
+ }) => Record<string, unknown>;
904
+ //#endregion
725
905
  //#region src/cursor-run.d.ts
726
906
  interface CursorRunServiceShape {
727
907
  readonly supports: (run: Run, operation: RunOperation) => boolean;
@@ -732,6 +912,15 @@ interface CursorRunServiceShape {
732
912
  readonly streamEvents: (run: Run) => Stream.Stream<SDKMessage, CursorStreamError>;
733
913
  readonly collectText: (run: Run) => Effect.Effect<string, CursorStreamError>;
734
914
  readonly onDidChangeStatus: (run: Run, listener: (status: RunStatus) => void) => Effect.Effect<() => void>;
915
+ /**
916
+ * Status updates as a stream (backed by {@link Run.onDidChangeStatus}).
917
+ *
918
+ * @example
919
+ * ```ts
920
+ *
921
+ * ```
922
+ */
923
+ readonly streamStatusChanges: (run: Run) => Stream.Stream<RunStatus, never, never>;
735
924
  }
736
925
  declare const CursorRunService_base: Context.ServiceClass<CursorRunService, "effect-cursor-sdk/cursor-run/CursorRunService", CursorRunServiceShape>;
737
926
  /**
@@ -739,8 +928,13 @@ declare const CursorRunService_base: Context.ServiceClass<CursorRunService, "eff
739
928
  *
740
929
  * @example
741
930
  * ```ts
931
+ * const runService = yield* CursorRunService;
932
+ *
933
+ * // Create a run with the agent service
742
934
  * const run = yield* agents.send(agent, "Refactor auth")
743
- * const text = yield* runs.collectText(run)
935
+ *
936
+ * // Use the run service with the created run
937
+ * const conversation = yield* runService.conversation(run);
744
938
  * ```
745
939
  *
746
940
  * @see {@link CursorAgentService} for creating and sending runs.
@@ -895,7 +1089,7 @@ declare const cursorStreamEvents: Metric.Counter<number>;
895
1089
  */
896
1090
  declare const redact: (value: unknown) => unknown;
897
1091
  /**
898
- * Wraps an SDK-backed {@link Effect.Effect | Effect} with consistent
1092
+ * Wraps an SDK-backed {@link Effect} with consistent
899
1093
  * observability: increments {@link cursorOperationsStarted} at execution start,
900
1094
  * increments {@link cursorOperationsFailed} on the error channel, and attaches
901
1095
  * a span named `cursor.<operation>` (for example `cursor.agent.list`).
@@ -941,5 +1135,5 @@ declare const instrument: <A, E, R>(operation: CursorOperation, effect: Effect.E
941
1135
  */
942
1136
  declare const packageName = "effect-cursor-sdk";
943
1137
  //#endregion
944
- export { type AgentDefinition, type AgentMessage, type AgentOperationOptions, type AgentOptions, AuthenticationError, ConfigurationError, CursorAgentError, CursorAgentPlatform, CursorAgentService, CursorAgentServiceShape, CursorApiKey, CursorArtifactService, CursorArtifactServiceShape, CursorAuthenticationError, CursorConfig, CursorConfigurationError, CursorErrorContext, CursorInspectionService, CursorInspectionServiceShape, CursorIntegrationNotConnectedError, CursorLocalCwd, CursorMockFixtures, CursorModelId, CursorNetworkError, CursorOperation, CursorRateLimitError, type CursorRequestOptions, CursorRunFailedError, CursorRunService, CursorRunServiceShape, CursorSdkFactory, CursorSdkFactoryShape, CursorStreamError, CursorUnknownError, CursorUnsupportedOperationError, type GetAgentMessagesOptions, type GetAgentOptions, type GetRunOptions, IntegrationNotConnectedError, type ListAgentsOptions, type ListResult, type ListRunsOptions, type McpServerConfig, MockCursorAgent, MockCursorRun, type ModelListItem, type ModelParameterDefinition, type ModelParameterValue, type ModelSelection, type ModelVariant, NetworkError, RateLimitError, type Run, type RunOperation, type RunResult, type RunResultStatus, type RunStatus, type SDKAgent, type SDKAgentInfo, type SDKArtifact, type SDKAssistantMessage, type SDKImage, type SDKImageDimension, type SDKMessage, type SDKModel, type SDKRepository, type SDKStatusMessage, type SDKSystemMessage, type SDKTaskMessage, type SDKThinkingMessage, type SDKToolUseMessage, type SDKUser, type SDKUserMessage, type SDKUserMessageEvent, type SendOptions, type SettingSource, type TextBlock, type ToolUseBlock, UnknownAgentError, UnsupportedRunOperationError, agentOptionsFromConfig, createAgentPlatform, createInMemoryRunEventNotifier, createLocalRunEventNotifier, createSdkMessageRunStreamEvent, cursorConfig, cursorOperationsFailed, cursorOperationsStarted, cursorStreamEvents, decodeLocalRunStreamEvent, decodeSdkMessageRunStreamEvent, getTurnType, instrument, isTerminalLocalRunStreamEvent, liveLayer, liveRuntime, loadCursorConfig, localRunStreamEventToSdkMessage, makeMockAgent, makeMockRun, makeMockRuntime, makeMockSdkFactoryLayer, mapCursorError, mockLayer, packageName, redact, startLocalRunEventNotifierServer };
1138
+ export { type AgentDefinition, type AgentMessage, type AgentOperationOptions, type AgentOptions, AuthenticationError, ConfigurationError, CursorAgentError, CursorAgentPlatform, CursorAgentService, CursorAgentServiceShape, CursorApiKey, CursorArtifactService, CursorArtifactServiceShape, CursorAuthenticationError, CursorConfig, CursorConfigurationError, CursorErrorContext, CursorInspectionService, CursorInspectionServiceShape, CursorIntegrationNotConnectedError, CursorLocalCwd, CursorMockFactoryMethod, CursorMockFixtures, CursorModelId, CursorNetworkError, CursorOperation, CursorRateLimitError, type CursorRequestOptions, CursorRunFailedError, CursorRunService, CursorRunServiceShape, CursorSdkFactory, CursorSdkFactoryShape, CursorStreamError, CursorUnknownError, CursorUnsupportedOperationError, type GetAgentMessagesOptions, type GetAgentOptions, type GetRunOptions, IntegrationNotConnectedError, type ListAgentsOptions, type ListResult, type ListRunsOptions, type McpServerConfig, MockCursorAgent, MockCursorRun, type ModelListItem, type ModelParameterDefinition, type ModelParameterValue, type ModelSelection, type ModelVariant, NetworkError, RateLimitError, type Run, type RunOperation, type RunResult, type RunResultStatus, type RunStatus, type SDKAgent, type SDKAgentInfo, type SDKArtifact, type SDKAssistantMessage, type SDKImage, type SDKImageDimension, type SDKMessage, type SDKModel, type SDKRepository, type SDKStatusMessage, type SDKSystemMessage, type SDKTaskMessage, type SDKThinkingMessage, type SDKToolUseMessage, type SDKUser, type SDKUserMessage, type SDKUserMessageEvent, type SendOptions, type SettingSource, type TextBlock, type ToolUseBlock, UnknownAgentError, UnsupportedRunOperationError, agentOptionsFromConfig, appendAssistantSdkMessageText, collectTextTracked, createAgentPlatform, createInMemoryRunEventNotifier, createLocalRunEventNotifier, createSdkMessageRunStreamEvent, cursorCatalogLoadTimeout, cursorCatalogRetrySchedule, cursorConfig, cursorOperationsFailed, cursorOperationsStarted, cursorStreamEvents, decodeLocalRunStreamEvent, decodeSdkMessageRunStreamEvent, getTurnType, instrument, isTerminalLocalRunStreamEvent, liveLayer, liveRuntime, loadCursorConfig, localRunStreamEventToSdkMessage, makeMockAgent, makeMockAssistantSdkMessage, makeMockRun, makeMockRuntime, makeMockSdkFactoryLayer, mapCursorError, mockLayer, packageName, redact, startLocalRunEventNotifierServer, streamEventsTracked, summarizeAgentOptionsForLog, summarizeRunForLog };
945
1139
  //# sourceMappingURL=index.d.ts.map