raysurfer 0.4.0 → 0.4.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.
- package/dist/client.d.ts +2 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/index.js +21 -13
- package/dist/sdk-client.d.ts +0 -2
- package/dist/sdk-client.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* RaySurfer SDK client
|
|
3
3
|
*/
|
|
4
|
-
export declare const VERSION = "0.4.
|
|
4
|
+
export declare const VERSION = "0.4.2";
|
|
5
5
|
import type { AgentReview, AgentVerdict, AutoReviewParams, AutoReviewResponse, ExecutionState, FewShotExample, FileWritten, GetCodeFilesResponse, GetExecutionsParams, RetrieveBestResponse, RetrieveCodeBlockResponse, RetrieveExecutionsResponse, SnipsDesired, StoreCodeBlockResponse, StoreExecutionResponse, SubmitExecutionResultResponse, TaskPattern } from "./types";
|
|
6
6
|
export interface RaySurferOptions {
|
|
7
7
|
/** RaySurfer API key */
|
|
@@ -14,8 +14,6 @@ export interface RaySurferOptions {
|
|
|
14
14
|
organizationId?: string;
|
|
15
15
|
/** Workspace ID for client-specific namespace (enterprise tier only) */
|
|
16
16
|
workspaceId?: string;
|
|
17
|
-
/** Whether to include public/shared snippets in retrieval (default: false) */
|
|
18
|
-
publicSnips?: boolean;
|
|
19
17
|
/** Scope of private snippets - "company" (Team/Enterprise) or "client" (Enterprise only) */
|
|
20
18
|
snipsDesired?: SnipsDesired;
|
|
21
19
|
/** Custom namespace for code storage/retrieval (overrides org-based namespacing) */
|
|
@@ -75,7 +73,6 @@ export declare class RaySurfer {
|
|
|
75
73
|
private timeout;
|
|
76
74
|
private organizationId?;
|
|
77
75
|
private workspaceId?;
|
|
78
|
-
private publicSnips;
|
|
79
76
|
private snipsDesired?;
|
|
80
77
|
private namespace?;
|
|
81
78
|
constructor(options?: RaySurferOptions);
|
|
@@ -100,7 +97,7 @@ export declare class RaySurfer {
|
|
|
100
97
|
codeBlockId: string;
|
|
101
98
|
filename: string;
|
|
102
99
|
description: string;
|
|
103
|
-
}
|
|
100
|
+
}>, autoVote?: boolean, executionLogs?: string): Promise<SubmitExecutionResultResponse>;
|
|
104
101
|
/** Get cached code snippets for a task (semantic search) */
|
|
105
102
|
getCodeSnips(params: RetrieveParams): Promise<RetrieveCodeBlockResponse>;
|
|
106
103
|
/** Get the single best code block for a task using verdict-aware scoring */
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAEZ,gBAAgB,EAChB,kBAAkB,EAKlB,cAAc,EACd,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,WAAW,EACZ,MAAM,SAAS,CAAC;AAQjB,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -69,8 +69,8 @@ class ValidationError extends RaySurferError {
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
// src/client.ts
|
|
72
|
-
var VERSION = "0.4.
|
|
73
|
-
var DEFAULT_BASE_URL = "https://
|
|
72
|
+
var VERSION = "0.4.2";
|
|
73
|
+
var DEFAULT_BASE_URL = "https://api.raysurfer.com";
|
|
74
74
|
var MAX_RETRIES = 3;
|
|
75
75
|
var RETRY_BASE_DELAY = 500;
|
|
76
76
|
var RETRYABLE_STATUS_CODES = new Set([429, 500, 502, 503, 504]);
|
|
@@ -81,7 +81,6 @@ class RaySurfer {
|
|
|
81
81
|
timeout;
|
|
82
82
|
organizationId;
|
|
83
83
|
workspaceId;
|
|
84
|
-
publicSnips;
|
|
85
84
|
snipsDesired;
|
|
86
85
|
namespace;
|
|
87
86
|
constructor(options = {}) {
|
|
@@ -90,7 +89,6 @@ class RaySurfer {
|
|
|
90
89
|
this.timeout = options.timeout ?? 60000;
|
|
91
90
|
this.organizationId = options.organizationId;
|
|
92
91
|
this.workspaceId = options.workspaceId;
|
|
93
|
-
this.publicSnips = options.publicSnips ?? false;
|
|
94
92
|
this.snipsDesired = options.snipsDesired;
|
|
95
93
|
this.namespace = options.namespace;
|
|
96
94
|
}
|
|
@@ -107,9 +105,6 @@ class RaySurfer {
|
|
|
107
105
|
if (this.workspaceId) {
|
|
108
106
|
headers["X-Raysurfer-Workspace-Id"] = this.workspaceId;
|
|
109
107
|
}
|
|
110
|
-
if (this.publicSnips) {
|
|
111
|
-
headers["X-Raysurfer-Public-Snips"] = "true";
|
|
112
|
-
}
|
|
113
108
|
if (this.snipsDesired) {
|
|
114
109
|
headers["X-Raysurfer-Snips-Desired"] = this.snipsDesired;
|
|
115
110
|
}
|
|
@@ -218,12 +213,16 @@ class RaySurfer {
|
|
|
218
213
|
message: result.message
|
|
219
214
|
};
|
|
220
215
|
}
|
|
221
|
-
async uploadNewCodeSnips(task, filesWritten, succeeded, cachedCodeBlocks) {
|
|
216
|
+
async uploadNewCodeSnips(task, filesWritten, succeeded, cachedCodeBlocks, autoVote = true, executionLogs) {
|
|
222
217
|
const data = {
|
|
223
218
|
task,
|
|
224
219
|
files_written: filesWritten,
|
|
225
|
-
succeeded
|
|
220
|
+
succeeded,
|
|
221
|
+
auto_vote: autoVote
|
|
226
222
|
};
|
|
223
|
+
if (executionLogs) {
|
|
224
|
+
data.execution_logs = executionLogs;
|
|
225
|
+
}
|
|
227
226
|
if (cachedCodeBlocks && cachedCodeBlocks.length > 0) {
|
|
228
227
|
data.cached_code_blocks = cachedCodeBlocks.map((cb) => ({
|
|
229
228
|
code_block_id: cb.codeBlockId,
|
|
@@ -506,7 +505,7 @@ var client_default = RaySurfer;
|
|
|
506
505
|
// src/sdk-client.ts
|
|
507
506
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
508
507
|
import { join } from "node:path";
|
|
509
|
-
var DEFAULT_RAYSURFER_URL = "https://
|
|
508
|
+
var DEFAULT_RAYSURFER_URL = "https://api.raysurfer.com";
|
|
510
509
|
var CACHE_DIR = ".raysurfer_code";
|
|
511
510
|
var FILE_MODIFY_TOOLS = ["Write", "Edit", "MultiEdit", "NotebookEdit"];
|
|
512
511
|
var TRACKABLE_EXTENSIONS = new Set([
|
|
@@ -575,6 +574,7 @@ async function* query(params) {
|
|
|
575
574
|
let cachedFiles = [];
|
|
576
575
|
const modifiedFilePaths = new Set;
|
|
577
576
|
const bashGeneratedFiles = new Set;
|
|
577
|
+
const executionLogs = [];
|
|
578
578
|
let taskSucceeded = false;
|
|
579
579
|
const extractBashOutputFiles = (command) => {
|
|
580
580
|
for (const pattern of BASH_OUTPUT_PATTERNS) {
|
|
@@ -599,7 +599,6 @@ async function* query(params) {
|
|
|
599
599
|
raysurfer = new RaySurfer({
|
|
600
600
|
apiKey,
|
|
601
601
|
baseUrl,
|
|
602
|
-
publicSnips: options.publicSnips,
|
|
603
602
|
snipsDesired: options.snipsDesired,
|
|
604
603
|
namespace: options.namespace
|
|
605
604
|
});
|
|
@@ -703,6 +702,12 @@ async function* query(params) {
|
|
|
703
702
|
extractBashOutputFiles(command);
|
|
704
703
|
}
|
|
705
704
|
}
|
|
705
|
+
if (block.type === "tool_result") {
|
|
706
|
+
const content2 = block.content;
|
|
707
|
+
if (content2) {
|
|
708
|
+
executionLogs.push(content2.slice(0, 5000));
|
|
709
|
+
}
|
|
710
|
+
}
|
|
706
711
|
if (block.type === "text") {
|
|
707
712
|
const text = block.text;
|
|
708
713
|
const codeMatches = text.match(/```(?:typescript|javascript|ts|js)?\n?([\s\S]*?)\n?```/g);
|
|
@@ -792,8 +797,11 @@ async function* query(params) {
|
|
|
792
797
|
if (filesToCache.length > 0 || cachedBlocksForVoting.length > 0) {
|
|
793
798
|
try {
|
|
794
799
|
debug.time("Cache upload + voting");
|
|
795
|
-
|
|
796
|
-
|
|
800
|
+
const joinedLogs = executionLogs.length > 0 ? executionLogs.join(`
|
|
801
|
+
---
|
|
802
|
+
`) : undefined;
|
|
803
|
+
debug.log("Uploading", filesToCache.length, "files, voting for", cachedBlocksForVoting.length, "cached blocks,", executionLogs.length, "log entries...");
|
|
804
|
+
await raysurfer.uploadNewCodeSnips(prompt, filesToCache, true, cachedBlocksForVoting.length > 0 ? cachedBlocksForVoting : undefined, true, joinedLogs);
|
|
797
805
|
debug.timeEnd("Cache upload + voting");
|
|
798
806
|
debug.log("Cache upload successful, voting queued on backend");
|
|
799
807
|
console.log("[raysurfer] Cache upload successful:", filesToCache.length, "files stored");
|
package/dist/sdk-client.d.ts
CHANGED
|
@@ -23,8 +23,6 @@ export interface QueryOptions {
|
|
|
23
23
|
disallowedTools?: string[];
|
|
24
24
|
maxTurns?: number;
|
|
25
25
|
env?: Record<string, string>;
|
|
26
|
-
/** Whether to include public/shared snippets in retrieval (default: false) */
|
|
27
|
-
publicSnips?: boolean;
|
|
28
26
|
/** Scope of private snippets - "company" (Team/Enterprise) or "client" (Enterprise only) */
|
|
29
27
|
snipsDesired?: SnipsDesired;
|
|
30
28
|
/** Custom namespace for code storage/retrieval */
|
package/dist/sdk-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-client.d.ts","sourceRoot":"","sources":["../src/sdk-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAyB,YAAY,EAAE,MAAM,SAAS,CAAC;AA2DnE,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,
|
|
1
|
+
{"version":3,"file":"sdk-client.d.ts","sourceRoot":"","sources":["../src/sdk-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAyB,YAAY,EAAE,MAAM,SAAS,CAAC;AA2DnE,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,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,CAqYzE;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"}
|