raysurfer 0.3.6 → 0.3.8

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,113 +1,84 @@
1
1
  # RaySurfer TypeScript SDK
2
2
 
3
- TypeScript SDK for RaySurfer - code block caching and retrieval for AI agents with Claude Agent SDK integration.
3
+ Drop-in replacement for Claude Agent SDK with automatic code caching.
4
4
 
5
5
  ## Installation
6
6
 
7
7
  ```bash
8
8
  npm install raysurfer
9
- # or
10
- bun add raysurfer
11
9
  ```
12
10
 
13
- ## Quick Start
11
+ ## Setup
14
12
 
15
- ### Basic Client (Store/Retrieve Code Blocks)
13
+ Set your API key:
16
14
 
17
- ```typescript
18
- import { RaySurfer } from "raysurfer";
19
-
20
- const client = new RaySurfer({ apiKey: "rs_..." });
15
+ ```bash
16
+ export RAYSURFER_API_KEY=your_api_key_here
17
+ ```
21
18
 
22
- // Store a code block
23
- const result = await client.storeCodeBlock({
24
- name: "GitHub User Fetcher",
25
- source: "async function fetchUser(username) { ... }",
26
- entrypoint: "fetchUser",
27
- language: "typescript",
28
- });
19
+ Get your key from the [dashboard](https://raysurfer.com/dashboard/api-keys).
29
20
 
30
- // Retrieve code blocks for a task
31
- const response = await client.retrieve({ task: "Fetch GitHub user data" });
32
- for (const match of response.codeBlocks) {
33
- console.log(match.codeBlock.name, match.verdictScore);
34
- }
35
- ```
21
+ ## Usage
36
22
 
37
- ### Claude Agent SDK Integration
23
+ Swap your client class and method names. Options come directly from `@anthropic-ai/claude-agent-sdk`:
38
24
 
39
25
  ```typescript
26
+ // Before
27
+ import { ClaudeSDKClient, ClaudeAgentOptions } from "@anthropic-ai/claude-agent-sdk";
28
+
29
+ // After
40
30
  import { RaysurferClient } from "raysurfer";
31
+ import { ClaudeAgentOptions } from "@anthropic-ai/claude-agent-sdk";
41
32
 
42
- const client = new RaysurferClient({
43
- raysurferApiKey: "rs_...",
44
- model: "claude-sonnet-4-5",
45
- systemPrompt: "You are a helpful assistant.",
33
+ const options: ClaudeAgentOptions = {
46
34
  allowedTools: ["Read", "Write", "Bash"],
47
- });
35
+ systemPrompt: "You are a helpful assistant.",
36
+ };
48
37
 
49
- // Pre-fetches code files, downloads to sandbox, injects into prompt
50
- for await (const message of client.query("Fetch user data from GitHub API")) {
51
- if (message.type === "assistant") {
52
- console.log(message.content);
53
- }
38
+ const client = new RaysurferClient(options);
39
+
40
+ for await (const msg of client.raysurferQuery("Generate quarterly report")) {
41
+ console.log(msg);
54
42
  }
55
43
  ```
56
44
 
57
- ## How It Works
45
+ ## Method Mapping
58
46
 
59
- 1. **On `query()`**: RaysurferClient calls the backend to get relevant code files
60
- 2. **Downloads to sandbox**: Files are written to `~/.raysurfer/sandbox/`
61
- 3. **Injects into prompt**: Code snippets are added to the system prompt
62
- 4. **Agent executes**: Agent can run the code using the Bash tool within the sandbox
63
- 5. **Caches results**: On success, generated code is stored back to the cache
47
+ | Claude SDK | Raysurfer |
48
+ |------------|-----------|
49
+ | `new ClaudeSDKClient(options)` | `new RaysurferClient(options)` |
50
+ | `client.query(prompt)` | `client.raysurferQuery(prompt)` |
64
51
 
65
- ## RaysurferAgentOptions
52
+ ## How It Works
66
53
 
67
- ```typescript
68
- interface RaysurferAgentOptions {
69
- // Raysurfer-specific
70
- raysurferApiKey?: string;
71
- raysurferBaseUrl?: string;
72
- prefetchCount?: number; // default: 5
73
- minVerdictScore?: number; // default: 0.3
74
- preferComplete?: boolean; // default: true
75
- sandboxDir?: string; // default: ~/.raysurfer/sandbox
76
- cleanupSandbox?: boolean; // default: true
77
- cleanupOnError?: boolean; // default: false
78
-
79
- // Standard Claude Agent SDK options
80
- model?: string; // default: "claude-sonnet-4-5"
81
- workingDirectory?: string;
82
- systemPrompt?: string;
83
- permissionMode?: "default" | "acceptEdits" | "plan" | "bypassPermissions";
84
- maxBudgetUsd?: number;
85
- allowedTools?: string[];
86
- disallowedTools?: string[];
87
- maxTurns?: number;
88
- env?: Record<string, string>;
89
- mcpServers?: Record<string, unknown>;
90
- }
91
- ```
54
+ 1. **On `raysurferQuery()`**: Retrieves cached code blocks matching your task
55
+ 2. **Downloads to sandbox**: Files ready for the agent to execute
56
+ 3. **Injects into prompt**: Agent sees proven code snippets
57
+ 4. **After success**: New code is cached for next time
58
+
59
+ Caching is enabled automatically when `RAYSURFER_API_KEY` is set.
92
60
 
93
61
  ## Snippet Retrieval Scope
94
62
 
95
- Control which snippets are retrieved using `publicSnips` and `snipsDesired`:
63
+ Control which cached snippets are retrieved using `publicSnips` and `snipsDesired`:
96
64
 
97
65
  ```typescript
98
- import { RaySurfer } from "raysurfer";
66
+ import { RaysurferClient } from "raysurfer";
67
+ import { ClaudeAgentOptions } from "@anthropic-ai/claude-agent-sdk";
68
+
69
+ const options: ClaudeAgentOptions = {
70
+ allowedTools: ["Read", "Write", "Bash"],
71
+ };
99
72
 
100
73
  // Include both public and company snippets
101
- const client = new RaySurfer({
102
- apiKey: "rs_...",
103
- publicSnips: true, // Include public/shared snippets
104
- snipsDesired: "company", // Also include company-level snippets (Team/Enterprise)
74
+ const client = new RaysurferClient(options, {
75
+ publicSnips: true, // Include public/shared snippets
76
+ snipsDesired: "company", // Also include company-level snippets
105
77
  });
106
78
 
107
79
  // Enterprise: Retrieve client-specific snippets only
108
- const enterpriseClient = new RaySurfer({
109
- apiKey: "rs_...",
110
- snipsDesired: "client", // Client workspace snippets (Enterprise only)
80
+ const enterpriseClient = new RaysurferClient(options, {
81
+ snipsDesired: "client", // Client workspace snippets (Enterprise only)
111
82
  });
112
83
  ```
113
84
 
@@ -117,26 +88,76 @@ const enterpriseClient = new RaySurfer({
117
88
  | `snipsDesired: "company"` | TEAM or ENTERPRISE |
118
89
  | `snipsDesired: "client"` | ENTERPRISE only |
119
90
 
120
- ## API Reference
91
+ ## Full Example
121
92
 
122
- ### RaySurfer Client
93
+ ```typescript
94
+ import { RaysurferClient } from "raysurfer";
95
+ import { ClaudeAgentOptions } from "@anthropic-ai/claude-agent-sdk";
96
+
97
+ process.env.RAYSURFER_API_KEY = "your_api_key";
98
+
99
+ const options: ClaudeAgentOptions = {
100
+ allowedTools: ["Read", "Write", "Bash"],
101
+ systemPrompt: "You are a helpful assistant.",
102
+ };
103
+
104
+ const client = new RaysurferClient(options);
105
+
106
+ // First run: generates and caches code
107
+ for await (const msg of client.raysurferQuery("Fetch GitHub trending repos")) {
108
+ console.log(msg);
109
+ }
110
+
111
+ // Second run: retrieves from cache (instant)
112
+ for await (const msg of client.raysurferQuery("Fetch GitHub trending repos")) {
113
+ console.log(msg);
114
+ }
115
+ ```
116
+
117
+ ## Without Caching
118
+
119
+ If `RAYSURFER_API_KEY` is not set, `RaysurferClient` behaves exactly like `ClaudeSDKClient` — no caching, just a pass-through wrapper.
120
+
121
+ ## Low-Level API
122
+
123
+ For custom integrations, use the `RaySurfer` client directly with three core methods:
123
124
 
124
125
  ```typescript
125
- const client = new RaySurfer({ apiKey: "rs_..." });
126
-
127
- // Store
128
- await client.storeCodeBlock({ name, source, entrypoint, language, ... });
129
- await client.storeExecution({ codeBlockId, triggeringTask, inputData, outputData, ... });
130
- await client.submitExecutionResult(task, filesWritten, succeeded);
131
-
132
- // Retrieve
133
- await client.retrieve({ task, topK, minVerdictScore });
134
- await client.retrieveBest({ task, topK, minVerdictScore });
135
- await client.getFewShotExamples(task, k);
136
- await client.getTaskPatterns({ task, codeBlockId, minThumbsUp, topK });
137
- await client.getCodeFiles({ task, topK, minVerdictScore, preferComplete });
126
+ import { RaySurfer } from "raysurfer";
127
+
128
+ const client = new RaySurfer({ apiKey: "your_api_key" });
129
+
130
+ // 1. Get cached code snippets for a task
131
+ const snips = await client.getCodeSnips({ task: "Fetch GitHub trending repos" });
132
+ for (const match of snips.codeBlocks) {
133
+ console.log(`${match.codeBlock.name}: ${match.score}`);
134
+ }
135
+
136
+ // 2. Upload new code snippets after execution
137
+ await client.uploadNewCodeSnips(
138
+ "Fetch GitHub trending repos",
139
+ [{ filename: "fetch_repos.ts", content: "function fetch() { ... }" }],
140
+ true // succeeded
141
+ );
142
+
143
+ // 3. Vote on whether a cached snippet was useful
144
+ await client.voteCodeSnip({
145
+ task: "Fetch GitHub trending repos",
146
+ codeBlockId: "abc123",
147
+ codeBlockName: "github_fetcher",
148
+ codeBlockDescription: "Fetches trending repos from GitHub",
149
+ succeeded: true,
150
+ });
138
151
  ```
139
152
 
153
+ ### Method Reference
154
+
155
+ | Method | Description |
156
+ |--------|-------------|
157
+ | `getCodeSnips({ task, topK?, minVerdictScore? })` | Retrieve cached code snippets by semantic search |
158
+ | `uploadNewCodeSnips(task, filesWritten, succeeded)` | Store new code files for future reuse |
159
+ | `voteCodeSnip({ task, codeBlockId, codeBlockName, codeBlockDescription, succeeded })` | Vote on snippet usefulness |
160
+
140
161
  ## License
141
162
 
142
163
  MIT
package/dist/client.d.ts CHANGED
@@ -56,6 +56,8 @@ export interface GetCodeFilesParams {
56
56
  topK?: number;
57
57
  minVerdictScore?: number;
58
58
  preferComplete?: boolean;
59
+ /** Directory path where files will be written (default: .raysurfer_code). Used to generate full paths in addToLlmPrompt. */
60
+ cacheDir?: string;
59
61
  }
60
62
  export interface GetTaskPatternsParams {
61
63
  task?: string;
@@ -113,8 +115,16 @@ export declare class RaySurfer {
113
115
  * - High verdict scores (proven to work)
114
116
  * - More complete implementations (prefer longer source)
115
117
  * - Task relevance (semantic similarity)
118
+ *
119
+ * Also returns `addToLlmPrompt` - a pre-formatted string you can append
120
+ * to your LLM system prompt to inform it about the cached files.
116
121
  */
117
122
  getCodeFiles(params: GetCodeFilesParams): Promise<GetCodeFilesResponse>;
123
+ /**
124
+ * Format a prompt string listing all retrieved code files.
125
+ * @internal
126
+ */
127
+ private formatLlmPrompt;
118
128
  /**
119
129
  * Record that a cached code block was used for a task.
120
130
  *
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -13356,12 +13356,53 @@ class RaySurfer {
13356
13356
  similarityScore: f.similarity_score,
13357
13357
  combinedScore: f.combined_score
13358
13358
  }));
13359
+ const addToLlmPrompt = this.formatLlmPrompt(files, params.cacheDir ?? ".raysurfer_code");
13359
13360
  return {
13360
13361
  files,
13361
13362
  task: result.task,
13362
- totalFound: result.total_found
13363
+ totalFound: result.total_found,
13364
+ addToLlmPrompt
13363
13365
  };
13364
13366
  }
13367
+ formatLlmPrompt(files, cacheDir) {
13368
+ if (files.length === 0)
13369
+ return "";
13370
+ const lines = [
13371
+ `
13372
+
13373
+ ## IMPORTANT: Pre-validated Code Files Available
13374
+ `,
13375
+ "The following validated code has been retrieved from the cache. " + `Use these files directly instead of regenerating code.
13376
+ `
13377
+ ];
13378
+ for (const f of files) {
13379
+ if (cacheDir) {
13380
+ const fullPath = `${cacheDir}/${f.filename}`;
13381
+ lines.push(`
13382
+ ### \`${f.filename}\` → \`${fullPath}\``);
13383
+ } else {
13384
+ lines.push(`
13385
+ ### \`${f.filename}\``);
13386
+ }
13387
+ lines.push(`- **Description**: ${f.description}`);
13388
+ lines.push(`- **Language**: ${f.language}`);
13389
+ lines.push(`- **Entrypoint**: \`${f.entrypoint}\``);
13390
+ lines.push(`- **Confidence**: ${Math.round(f.verdictScore * 100)}%`);
13391
+ if (f.dependencies.length > 0) {
13392
+ lines.push(`- **Dependencies**: ${f.dependencies.join(", ")}`);
13393
+ }
13394
+ }
13395
+ lines.push(`
13396
+
13397
+ **Instructions**:`);
13398
+ lines.push("1. Read the cached file(s) before writing new code");
13399
+ lines.push("2. Use the cached code as your starting point");
13400
+ lines.push("3. Only modify if the task requires specific changes");
13401
+ lines.push(`4. Do not regenerate code that already exists
13402
+ `);
13403
+ return lines.join(`
13404
+ `);
13405
+ }
13365
13406
  async recordCacheUsage(params) {
13366
13407
  const data = {
13367
13408
  task: params.task,
@@ -13412,7 +13453,7 @@ var client_default = RaySurfer;
13412
13453
  import { writeFileSync, mkdirSync as mkdirSync2, rmSync as rmSync2, readFileSync as readFileSync2, existsSync as existsSync2 } from "fs";
13413
13454
  import { join } from "path";
13414
13455
  var DEFAULT_RAYSURFER_URL = "https://web-production-3d338.up.railway.app";
13415
- var CACHE_DIR = ".raysurfer-cache";
13456
+ var CACHE_DIR = ".raysurfer_code";
13416
13457
  var FILE_MODIFY_TOOLS = ["Write", "Edit", "MultiEdit", "NotebookEdit"];
13417
13458
  var createDebugLogger = (enabled) => ({
13418
13459
  log: (...args) => enabled && console.log("[raysurfer]", ...args),
@@ -13439,6 +13480,7 @@ async function* query(params) {
13439
13480
  const modifiedFilePaths = new Set;
13440
13481
  let taskSucceeded = false;
13441
13482
  const workDir = options.workingDirectory || process.cwd();
13483
+ let addToLlmPrompt = "";
13442
13484
  if (cacheEnabled) {
13443
13485
  raysurfer = new RaySurfer({
13444
13486
  apiKey,
@@ -13449,14 +13491,17 @@ async function* query(params) {
13449
13491
  });
13450
13492
  try {
13451
13493
  debug.time("Cache lookup");
13494
+ const cacheDir = join(workDir, CACHE_DIR);
13452
13495
  const response2 = await raysurfer.getCodeFiles({
13453
13496
  task: prompt,
13454
13497
  topK: 5,
13455
13498
  minVerdictScore: 0.3,
13456
- preferComplete: true
13499
+ preferComplete: true,
13500
+ cacheDir
13457
13501
  });
13458
13502
  debug.timeEnd("Cache lookup");
13459
13503
  cachedFiles = response2.files;
13504
+ addToLlmPrompt = response2.addToLlmPrompt;
13460
13505
  debug.log(`Found ${cachedFiles.length} cached files:`);
13461
13506
  if (cachedFiles.length > 0) {
13462
13507
  debug.table(cachedFiles.map((f3) => ({
@@ -13467,7 +13512,6 @@ async function* query(params) {
13467
13512
  thumbs: `${f3.thumbsUp}/${f3.thumbsDown}`,
13468
13513
  sourceLength: `${f3.source.length} chars`
13469
13514
  })));
13470
- const cacheDir = join(workDir, CACHE_DIR);
13471
13515
  try {
13472
13516
  mkdirSync2(cacheDir, { recursive: true });
13473
13517
  for (const file of cachedFiles) {
@@ -13484,14 +13528,14 @@ async function* query(params) {
13484
13528
  debug.log("Cache lookup failed:", error);
13485
13529
  }
13486
13530
  }
13487
- const augmentedPrompt = buildSystemPrompt(options.systemPrompt, cachedFiles, workDir);
13531
+ const augmentedPrompt = (options.systemPrompt ?? "") + addToLlmPrompt;
13488
13532
  debug.log("System prompt length:", options.systemPrompt?.length ?? 0, "chars");
13489
13533
  debug.log("Augmented prompt length:", augmentedPrompt.length, "chars");
13490
- debug.log("Added from cache:", augmentedPrompt.length - (options.systemPrompt?.length ?? 0), "chars");
13491
- if (cachedFiles.length > 0) {
13534
+ debug.log("Added from cache:", addToLlmPrompt.length, "chars");
13535
+ if (addToLlmPrompt) {
13492
13536
  debug.log(`
13493
13537
  --- AUGMENTED PROMPT ADDITION ---`);
13494
- debug.log(formatCodeSnippets(cachedFiles, workDir));
13538
+ debug.log(addToLlmPrompt);
13495
13539
  debug.log(`--- END AUGMENTED PROMPT ---
13496
13540
  `);
13497
13541
  }
@@ -13638,41 +13682,6 @@ class ClaudeSDKClient {
13638
13682
  yield* query({ prompt, options: this.options });
13639
13683
  }
13640
13684
  }
13641
- function buildSystemPrompt(basePrompt, files, workDir) {
13642
- const base = basePrompt ?? "";
13643
- if (files.length === 0)
13644
- return base;
13645
- return base + formatCodeSnippets(files, workDir);
13646
- }
13647
- function formatCodeSnippets(files, workDir) {
13648
- const cacheDir = join(workDir || process.cwd(), CACHE_DIR);
13649
- const bestMatch = files[0];
13650
- if (!bestMatch)
13651
- return "";
13652
- const filePath = join(cacheDir, bestMatch.filename);
13653
- let snippets = `
13654
-
13655
- ## IMPORTANT: USE CACHED CODE
13656
-
13657
- `;
13658
- snippets += `**DO NOT generate new code from scratch.** Instead, use the cached code below and modify it if needed.
13659
-
13660
- `;
13661
- snippets += `Cached code location: \`${filePath}\`
13662
-
13663
- `;
13664
- snippets += `Steps:
13665
- `;
13666
- snippets += `1. Read the cached code file above
13667
- `;
13668
- snippets += `2. Use it as your starting point
13669
- `;
13670
- snippets += `3. Make minimal modifications if needed for the specific task
13671
- `;
13672
- snippets += `4. Output the final code
13673
- `;
13674
- return snippets;
13675
- }
13676
13685
  var sdk_client_default = query;
13677
13686
  // src/types.ts
13678
13687
  var ExecutionState;
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-client.d.ts","sourceRoot":"","sources":["../src/sdk-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAyB,YAAY,EAAE,MAAM,SAAS,CAAC;AAoBnE,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,mBAAmB,CAAC;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,8EAA8E;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,yCAAyC;IACzC,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAuB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CA2QzE;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,GAAE,YAAiB;IAI/B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC;CAGtD;AAGD,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,CAAC;AAC9C,YAAY,EAAE,YAAY,IAAI,qBAAqB,EAAE,CAAC;AAqCtD,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"sdk-client.d.ts","sourceRoot":"","sources":["../src/sdk-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAyB,YAAY,EAAE,MAAM,SAAS,CAAC;AAoBnE,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,mBAAmB,CAAC;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,8EAA8E;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,yCAAyC;IACzC,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAuB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CA8QzE;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,GAAE,YAAiB;IAI/B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC;CAGtD;AAGD,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,CAAC;AAC9C,YAAY,EAAE,YAAY,IAAI,qBAAqB,EAAE,CAAC;AAEtD,eAAe,KAAK,CAAC"}
package/dist/types.d.ts CHANGED
@@ -178,6 +178,8 @@ export interface GetCodeFilesResponse {
178
178
  files: CodeFile[];
179
179
  task: string;
180
180
  totalFound: number;
181
+ /** Pre-formatted string to append to LLM system prompt with all file paths */
182
+ addToLlmPrompt: string;
181
183
  }
182
184
  /** Request to record cache usage */
183
185
  export interface RecordCacheUsageParams {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "raysurfer",
3
- "version": "0.3.6",
3
+ "version": "0.3.8",
4
4
  "description": "Drop-in replacement for Claude Agent SDK with automatic code caching - just swap your import",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",