@sovara/sdk 0.0.0-stage → 0.9.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.
Files changed (133) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +36 -2
  3. package/dist/apiTypes.d.ts +5 -0
  4. package/dist/apiTypes.d.ts.map +1 -0
  5. package/dist/apiTypes.js +5 -0
  6. package/dist/apiTypes.js.map +1 -0
  7. package/dist/capture/requestEnvelope.d.ts +10 -0
  8. package/dist/capture/requestEnvelope.d.ts.map +1 -0
  9. package/dist/capture/requestEnvelope.js +79 -0
  10. package/dist/capture/requestEnvelope.js.map +1 -0
  11. package/dist/capture/responseEnvelope.d.ts +17 -0
  12. package/dist/capture/responseEnvelope.d.ts.map +1 -0
  13. package/dist/capture/responseEnvelope.js +72 -0
  14. package/dist/capture/responseEnvelope.js.map +1 -0
  15. package/dist/capture/sensitiveHeaders.d.ts +7 -0
  16. package/dist/capture/sensitiveHeaders.d.ts.map +1 -0
  17. package/dist/capture/sensitiveHeaders.js +41 -0
  18. package/dist/capture/sensitiveHeaders.js.map +1 -0
  19. package/dist/capture/sseUtils.d.ts +3 -0
  20. package/dist/capture/sseUtils.d.ts.map +1 -0
  21. package/dist/capture/sseUtils.js +69 -0
  22. package/dist/capture/sseUtils.js.map +1 -0
  23. package/dist/capture/streamCapture.d.ts +5 -0
  24. package/dist/capture/streamCapture.d.ts.map +1 -0
  25. package/dist/capture/streamCapture.js +19 -0
  26. package/dist/capture/streamCapture.js.map +1 -0
  27. package/dist/client.d.ts +52 -0
  28. package/dist/client.d.ts.map +1 -0
  29. package/dist/client.js +66 -0
  30. package/dist/client.js.map +1 -0
  31. package/dist/codeVersion.d.ts +17 -0
  32. package/dist/codeVersion.d.ts.map +1 -0
  33. package/dist/codeVersion.js +107 -0
  34. package/dist/codeVersion.js.map +1 -0
  35. package/dist/compatibility.d.ts +26 -0
  36. package/dist/compatibility.d.ts.map +1 -0
  37. package/dist/compatibility.js +130 -0
  38. package/dist/compatibility.js.map +1 -0
  39. package/dist/constants.d.ts +9 -0
  40. package/dist/constants.d.ts.map +1 -0
  41. package/dist/constants.js +37 -0
  42. package/dist/constants.js.map +1 -0
  43. package/dist/context.d.ts +55 -0
  44. package/dist/context.d.ts.map +1 -0
  45. package/dist/context.js +380 -0
  46. package/dist/context.js.map +1 -0
  47. package/dist/endpointPatterns.json +90 -0
  48. package/dist/endpointWhitelist.d.ts +2 -0
  49. package/dist/endpointWhitelist.d.ts.map +1 -0
  50. package/dist/endpointWhitelist.js +11 -0
  51. package/dist/endpointWhitelist.js.map +1 -0
  52. package/dist/env.d.ts +7 -0
  53. package/dist/env.d.ts.map +1 -0
  54. package/dist/env.js +11 -0
  55. package/dist/env.js.map +1 -0
  56. package/dist/failsafe.d.ts +5 -0
  57. package/dist/failsafe.d.ts.map +1 -0
  58. package/dist/failsafe.js +25 -0
  59. package/dist/failsafe.js.map +1 -0
  60. package/dist/index.d.ts +6 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +16 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/mcpPatch.d.ts +2 -0
  65. package/dist/mcpPatch.d.ts.map +1 -0
  66. package/dist/mcpPatch.js +202 -0
  67. package/dist/mcpPatch.js.map +1 -0
  68. package/dist/openaiAgentsPatch.d.ts +2 -0
  69. package/dist/openaiAgentsPatch.d.ts.map +1 -0
  70. package/dist/openaiAgentsPatch.js +112 -0
  71. package/dist/openaiAgentsPatch.js.map +1 -0
  72. package/dist/payload/editIoExcludePatterns.json +322 -0
  73. package/dist/payload/filterDict.d.ts +3 -0
  74. package/dist/payload/filterDict.d.ts.map +1 -0
  75. package/dist/payload/filterDict.js +26 -0
  76. package/dist/payload/filterDict.js.map +1 -0
  77. package/dist/payload/flatten.d.ts +6 -0
  78. package/dist/payload/flatten.d.ts.map +1 -0
  79. package/dist/payload/flatten.js +79 -0
  80. package/dist/payload/flatten.js.map +1 -0
  81. package/dist/payload/wrap.d.ts +10 -0
  82. package/dist/payload/wrap.d.ts.map +1 -0
  83. package/dist/payload/wrap.js +82 -0
  84. package/dist/payload/wrap.js.map +1 -0
  85. package/dist/platformSession.d.ts +3 -0
  86. package/dist/platformSession.d.ts.map +1 -0
  87. package/dist/platformSession.js +21 -0
  88. package/dist/platformSession.js.map +1 -0
  89. package/dist/runtimeClient.d.ts +117 -0
  90. package/dist/runtimeClient.d.ts.map +1 -0
  91. package/dist/runtimeClient.js +287 -0
  92. package/dist/runtimeClient.js.map +1 -0
  93. package/dist/serverLifecycle.d.ts +12 -0
  94. package/dist/serverLifecycle.d.ts.map +1 -0
  95. package/dist/serverLifecycle.js +77 -0
  96. package/dist/serverLifecycle.js.map +1 -0
  97. package/dist/toolTraceUtils.d.ts +38 -0
  98. package/dist/toolTraceUtils.d.ts.map +1 -0
  99. package/dist/toolTraceUtils.js +189 -0
  100. package/dist/toolTraceUtils.js.map +1 -0
  101. package/dist/trace.d.ts +13 -0
  102. package/dist/trace.d.ts.map +1 -0
  103. package/dist/trace.js +133 -0
  104. package/dist/trace.js.map +1 -0
  105. package/dist/traceLogCapture.d.ts +18 -0
  106. package/dist/traceLogCapture.d.ts.map +1 -0
  107. package/dist/traceLogCapture.js +125 -0
  108. package/dist/traceLogCapture.js.map +1 -0
  109. package/dist/transport/awsSdkHttp2Patch.d.ts +2 -0
  110. package/dist/transport/awsSdkHttp2Patch.d.ts.map +1 -0
  111. package/dist/transport/awsSdkHttp2Patch.js +442 -0
  112. package/dist/transport/awsSdkHttp2Patch.js.map +1 -0
  113. package/dist/transport/fetchPatch.d.ts +3 -0
  114. package/dist/transport/fetchPatch.d.ts.map +1 -0
  115. package/dist/transport/fetchPatch.js +257 -0
  116. package/dist/transport/fetchPatch.js.map +1 -0
  117. package/dist/transport/nodeHttpPatch.d.ts +3 -0
  118. package/dist/transport/nodeHttpPatch.d.ts.map +1 -0
  119. package/dist/transport/nodeHttpPatch.js +532 -0
  120. package/dist/transport/nodeHttpPatch.js.map +1 -0
  121. package/dist/util/logger.d.ts +2 -0
  122. package/dist/util/logger.d.ts.map +1 -0
  123. package/dist/util/logger.js +9 -0
  124. package/dist/util/logger.js.map +1 -0
  125. package/dist/util/stableJson.d.ts +2 -0
  126. package/dist/util/stableJson.d.ts.map +1 -0
  127. package/dist/util/stableJson.js +22 -0
  128. package/dist/util/stableJson.js.map +1 -0
  129. package/dist/util/stackTrace.d.ts +2 -0
  130. package/dist/util/stackTrace.d.ts.map +1 -0
  131. package/dist/util/stackTrace.js +11 -0
  132. package/dist/util/stackTrace.js.map +1 -0
  133. package/package.json +70 -4
@@ -0,0 +1,287 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { stableJsonStringify } from "./util/stableJson.js";
3
+ import { readDesktopPlatformSessionToken } from "./platformSession.js";
4
+ import { compatibilityHeaders, hasFeature, raiseForCompatibilityResponse } from "./compatibility.js";
5
+ const TRACE_WRITE_TOKEN_HEADER = "x-sovara-trace-token";
6
+ // Serialized fields above this many UTF-8 bytes go through chunked uploads, well below the
7
+ // body limit of common proxies, when the server advertises capture_uploads.
8
+ const CAPTURE_UPLOAD_THRESHOLD_BYTES = 32 * 1024 * 1024;
9
+ const UPLOAD_PART_TIMEOUT_MS = 120_000;
10
+ export class RuntimeClientError extends Error {
11
+ status;
12
+ body;
13
+ detail;
14
+ constructor(status, body) {
15
+ const raw = body?.detail;
16
+ const detail = typeof raw === "string" && raw.trim() ? raw.trim() : undefined;
17
+ super(`Runtime client request failed with status ${status}${detail ? `: ${detail}` : ""}`);
18
+ this.status = status;
19
+ this.body = body;
20
+ this.detail = detail;
21
+ }
22
+ }
23
+ /** Internal immutable identity for writes to one registered recording. */
24
+ export class TraceWriteCredentials {
25
+ traceId;
26
+ recordingId;
27
+ #traceWriteToken;
28
+ constructor(traceId, recordingId, traceWriteToken) {
29
+ this.traceId = traceId;
30
+ this.recordingId = recordingId;
31
+ this.#traceWriteToken = traceWriteToken;
32
+ Object.freeze(this);
33
+ }
34
+ authorizationHeaders() {
35
+ return { [TRACE_WRITE_TOKEN_HEADER]: this.#traceWriteToken };
36
+ }
37
+ }
38
+ function toJsonBody(payload) {
39
+ return stableJsonStringify(payload);
40
+ }
41
+ function requireStringField(payload, field) {
42
+ const value = payload && typeof payload === "object" ? payload[field] : undefined;
43
+ if (typeof value !== "string" || value.trim() === "") {
44
+ throw new RuntimeClientError(200, { error: "invalid_runtime_response", field });
45
+ }
46
+ return value;
47
+ }
48
+ function credentialsFromPayload(payload) {
49
+ return new TraceWriteCredentials(requireStringField(payload, "trace_id"), requireStringField(payload, "recording_id"), requireStringField(payload, "trace_write_token"));
50
+ }
51
+ export class RuntimeClient {
52
+ baseUrl;
53
+ fetchFn;
54
+ agentToken;
55
+ // Prepare's input upload per step, so finalize can reference it instead of re-uploading.
56
+ inputRefsByStep = new Map();
57
+ constructor(baseUrl, fetchFn, agentToken) {
58
+ this.baseUrl = baseUrl.replace(/\/$/, "");
59
+ this.agentToken = agentToken?.trim() || undefined;
60
+ if (fetchFn) {
61
+ this.fetchFn = fetchFn;
62
+ return;
63
+ }
64
+ const maybeOriginal = globalThis[Symbol.for("sovara.originalFetch")];
65
+ this.fetchFn = typeof maybeOriginal === "function" ? maybeOriginal : fetch;
66
+ }
67
+ async registerTrace(request) {
68
+ const payload = await this.request("/runner/register", {
69
+ method: "POST",
70
+ body: toJsonBody({
71
+ name: request.name,
72
+ trace_id: request.traceId,
73
+ eval_run_id: request.evalRunId,
74
+ project_id: request.projectId,
75
+ project_name: request.projectName,
76
+ project_root: request.projectRoot,
77
+ code_version: request.codeVersion,
78
+ }),
79
+ });
80
+ const credentials = credentialsFromPayload(payload);
81
+ const projectId = payload.project_id;
82
+ return {
83
+ credentials,
84
+ projectId: typeof projectId === "string" && projectId.trim() ? projectId : undefined,
85
+ appended: payload.appended === true,
86
+ };
87
+ }
88
+ async registerSubtrace(request) {
89
+ const payload = await this.request("/runner/subtrace", {
90
+ method: "POST",
91
+ body: toJsonBody({
92
+ name: request.name,
93
+ parent_trace_id: request.credentials.traceId,
94
+ turn_id: request.turnId,
95
+ lesson_scope_paths: request.lessonScopePaths ?? null,
96
+ }),
97
+ }, request.credentials);
98
+ const credentials = credentialsFromPayload(payload);
99
+ return { credentials };
100
+ }
101
+ async declareTurn(credentials, turnInput) {
102
+ const payload = await this.request("/runner/turns", { method: "POST", body: toJsonBody({ trace_id: credentials.traceId, turn_input: turnInput ?? null }) }, credentials);
103
+ if (payload.trace_id !== credentials.traceId || payload.recording_id !== credentials.recordingId) {
104
+ throw new RuntimeClientError(200, { error: "invalid_turn_identity" });
105
+ }
106
+ return requireStringField(payload, "turn_id");
107
+ }
108
+ async deregisterTrace(credentials) {
109
+ await this.request("/runner/deregister", { method: "POST", body: toJsonBody({ trace_id: credentials.traceId }) }, credentials);
110
+ }
111
+ async updateTraceLog(request) {
112
+ await this.request("/runner/update-log", {
113
+ method: "POST",
114
+ body: toJsonBody({
115
+ trace_id: request.credentials.traceId,
116
+ turn_id: request.turnId,
117
+ log_text: request.logText,
118
+ replace: request.replace,
119
+ }),
120
+ }, request.credentials);
121
+ }
122
+ async logMetrics(request) {
123
+ await this.request("/runner/log", {
124
+ method: "POST",
125
+ body: toJsonBody({ trace_id: request.credentials.traceId, turn_id: request.turnId, metrics: request.metrics }),
126
+ }, request.credentials);
127
+ }
128
+ async logInput(request) {
129
+ await this.logTraceIo({ ...request, kind: "input" });
130
+ }
131
+ async logOutput(request) {
132
+ await this.logTraceIo({ ...request, kind: "output" });
133
+ }
134
+ async logTraceIo(request) {
135
+ await this.request("/runner/trace-io", {
136
+ method: "POST",
137
+ body: toJsonBody({
138
+ trace_id: request.credentials.traceId,
139
+ turn_id: request.turnId,
140
+ kind: request.kind,
141
+ value: typeof request.value === "string"
142
+ ? request.value
143
+ : stableJsonStringify(request.value),
144
+ }),
145
+ }, request.credentials);
146
+ }
147
+ /** Upload bytes for one step as a chunked capture upload and return its upload ID. */
148
+ async uploadCapture(credentials, stepUuid, data) {
149
+ const created = await this.request("/internal/runner/uploads", {
150
+ method: "POST",
151
+ body: toJsonBody({
152
+ trace_id: credentials.traceId,
153
+ step_uuid: stepUuid,
154
+ total_size: data.length,
155
+ sha256: createHash("sha256").update(data).digest("hex"),
156
+ }),
157
+ }, credentials);
158
+ const { upload_id: uploadId, part_size: partSize, part_count: partCount } = created;
159
+ for (let partNumber = 0; partNumber < partCount; partNumber += 1) {
160
+ const part = data.subarray(partNumber * partSize, (partNumber + 1) * partSize);
161
+ const putPart = () => this.request(`/internal/runner/uploads/${uploadId}/parts/${partNumber}`, {
162
+ method: "PUT",
163
+ body: new Uint8Array(part.buffer, part.byteOffset, part.length),
164
+ headers: { "content-type": "application/octet-stream" },
165
+ signal: AbortSignal.timeout(UPLOAD_PART_TIMEOUT_MS),
166
+ }, credentials);
167
+ try {
168
+ await putPart();
169
+ }
170
+ catch (error) {
171
+ // The server accepts a repeated part until completion, so retry once after a network
172
+ // error or timeout that may have lost the acknowledgement; anything else is final.
173
+ const lostAck = error instanceof TypeError || (error instanceof Error && error.name === "TimeoutError");
174
+ if (!lostAck)
175
+ throw error;
176
+ await putPart();
177
+ }
178
+ }
179
+ await this.request(`/internal/runner/uploads/${uploadId}/complete`, { method: "POST", body: toJsonBody({}) }, credentials);
180
+ return uploadId;
181
+ }
182
+ /** Return the `<name>_ref` or `<name>_json` body field for a serialized payload. */
183
+ async payloadField(credentials, name, stepUuid, text, ref) {
184
+ let uploadRef = ref;
185
+ if (uploadRef === undefined
186
+ && Buffer.byteLength(text, "utf8") > CAPTURE_UPLOAD_THRESHOLD_BYTES
187
+ && hasFeature(this.baseUrl, "capture_uploads")) {
188
+ uploadRef = await this.uploadCapture(credentials, stepUuid, Buffer.from(text, "utf8"));
189
+ }
190
+ return uploadRef === undefined ? { [`${name}_json`]: text } : { [`${name}_ref`]: uploadRef };
191
+ }
192
+ async prepareCall(request) {
193
+ const clientStepUuid = randomUUID();
194
+ const inputField = await this.payloadField(request.credentials, "input", clientStepUuid, request.inputJson);
195
+ const inputRef = inputField.input_ref;
196
+ const payload = await this.request("/internal/runner/llm/prepare", {
197
+ method: "POST",
198
+ body: toJsonBody({
199
+ trace_id: request.credentials.traceId,
200
+ turn_id: request.turnId,
201
+ ...inputField,
202
+ // The upload is bound to this step, so prepare must name it.
203
+ ...(inputRef ? { step_uuid: clientStepUuid } : {}),
204
+ api_type: request.apiType,
205
+ stack_trace: request.stackTrace,
206
+ prompt_bearing_suffix_json: request.promptBearingSuffixJson,
207
+ prepare_runtime_lessons: request.prepareRuntimeLessons ?? false,
208
+ lesson_scope_paths: request.lessonScopePaths ?? null,
209
+ }),
210
+ }, request.credentials);
211
+ const stepUuid = requireStringField(payload, "step_uuid");
212
+ if (inputRef && payload.prepared_input_json === undefined) {
213
+ this.inputRefsByStep.set(stepUuid, inputRef);
214
+ }
215
+ return {
216
+ stepUuid,
217
+ stepKind: payload.step_kind ?? null,
218
+ preparedInputJson: payload.prepared_input_json ?? request.inputJson,
219
+ suffixKeysJson: payload.suffix_keys_json ?? "[]",
220
+ promptBearingSuffixJson: payload.prompt_bearing_suffix_json
221
+ ?? request.promptBearingSuffixJson,
222
+ preparedRawInput: payload.prepared_raw_input ?? null,
223
+ };
224
+ }
225
+ async recordOutput(request) {
226
+ await this.finalize(request, false);
227
+ }
228
+ async recordException(request) {
229
+ await this.finalize(request, true);
230
+ }
231
+ async finalize(request, failed) {
232
+ // Kept until finalize succeeds, so a recordException fallback still reuses the upload.
233
+ const inputRef = this.inputRefsByStep.get(request.stepUuid);
234
+ const inputField = await this.payloadField(request.credentials, "input", request.stepUuid, request.inputJson, inputRef);
235
+ const outputField = failed || request.outputJson === undefined
236
+ ? {}
237
+ : await this.payloadField(request.credentials, "output", request.stepUuid, request.outputJson);
238
+ await this.request("/internal/runner/llm/finalize", {
239
+ method: "POST",
240
+ body: toJsonBody({
241
+ trace_id: request.credentials.traceId,
242
+ turn_id: request.turnId,
243
+ step_uuid: request.stepUuid,
244
+ api_type: request.apiType,
245
+ ...(failed ? { status: request.status ?? "error" } : {}),
246
+ ...inputField,
247
+ ...(failed
248
+ ? { error_json: request.errorJson, clear_output: request.clearOutput ?? true }
249
+ : outputField),
250
+ latency_seconds: request.latencySeconds ?? null,
251
+ stack_trace: request.stackTrace ?? null,
252
+ step_kind: request.stepKind ?? null,
253
+ suffix_keys_json: request.suffixKeysJson ?? "[]",
254
+ prompt_bearing_suffix_json: request.promptBearingSuffixJson ?? "[]",
255
+ lesson_metadata: request.lessonMetadata ?? null,
256
+ }),
257
+ }, request.credentials);
258
+ this.inputRefsByStep.delete(request.stepUuid);
259
+ }
260
+ async request(path, init, credentials) {
261
+ const agentToken = credentials
262
+ ? ""
263
+ : (this.agentToken
264
+ ?? (typeof process !== "undefined" ? process.env.SOVARA_AGENT_TOKEN?.trim() : ""));
265
+ const platformSession = credentials || agentToken ? "" : readDesktopPlatformSessionToken();
266
+ const response = await this.fetchFn(`${this.baseUrl}${path}`, {
267
+ ...init,
268
+ headers: {
269
+ ...compatibilityHeaders(this.baseUrl),
270
+ "content-type": "application/json",
271
+ ...(agentToken ? { "x-sovara-agent-token": agentToken } : {}),
272
+ ...(platformSession ? { "x-sovara-platform-session": platformSession } : {}),
273
+ ...(credentials ? credentials.authorizationHeaders() : {}),
274
+ ...(init.headers ?? {}),
275
+ },
276
+ });
277
+ const contentType = response.headers.get("content-type") ?? "";
278
+ const isJson = contentType.toLowerCase().includes("application/json");
279
+ const body = isJson ? await response.json() : await response.text();
280
+ if (!response.ok) {
281
+ raiseForCompatibilityResponse(response.status, body);
282
+ throw new RuntimeClientError(response.status, body);
283
+ }
284
+ return body;
285
+ }
286
+ }
287
+ //# sourceMappingURL=runtimeClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeClient.js","sourceRoot":"","sources":["../src/runtimeClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ type Deps = {
2
+ fetchFn?: typeof fetch;
3
+ which?: (name: string) => string | null;
4
+ spawn?: (bin: string, args: string[], options?: {
5
+ env?: NodeJS.ProcessEnv;
6
+ }) => {
7
+ status: number | null;
8
+ };
9
+ };
10
+ export declare function ensureServerRunning(url: string, deps?: Deps): Promise<boolean>;
11
+ export {};
12
+ //# sourceMappingURL=serverLifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverLifecycle.d.ts","sourceRoot":"","sources":["../src/serverLifecycle.ts"],"names":[],"mappings":"AAQA,KAAK,IAAI,GAAG;IACV,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,CACN,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;KAAE,KAClC;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAChC,CAAC;AAyEF,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,IAAS,GACd,OAAO,CAAC,OAAO,CAAC,CAalB"}
@@ -0,0 +1,77 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { warnOnce } from "./util/logger.js";
3
+ import { checkCompatibility, CompatibilityError, raiseForCompatibilityResponse, } from "./compatibility.js";
4
+ const CLI_UNREACHABLE_WARNING = "Sovara exec server is unreachable and could not be started. Install the " +
5
+ "Sovara CLI (https://docs.sovara-labs.com) so it can manage the local exec " +
6
+ "server, or set SOVARA_EXEC_SERVER_URL to a reachable server. Continuing " +
7
+ "without Sovara recording.";
8
+ function defaultFetch() {
9
+ const maybeOriginal = globalThis[Symbol.for("sovara.originalFetch")];
10
+ return typeof maybeOriginal === "function"
11
+ ? maybeOriginal
12
+ : fetch;
13
+ }
14
+ function defaultWhich(name) {
15
+ const res = spawnSync(process.platform === "win32" ? "where" : "which", [name], {
16
+ encoding: "utf8",
17
+ });
18
+ if (res.status !== 0)
19
+ return null;
20
+ return res.stdout.split(/\r?\n/)[0]?.trim() || null;
21
+ }
22
+ async function isHealthy(url, fetchFn) {
23
+ try {
24
+ let response = await fetchFn(`${url}/runner/health`);
25
+ if (response.status === 404)
26
+ response = await fetchFn(`${url}/health`);
27
+ if (!response.ok) {
28
+ if (response.status === 400 || response.status === 409) {
29
+ raiseForCompatibilityResponse(response.status, await response.json());
30
+ }
31
+ return false;
32
+ }
33
+ const payload = (await response.json());
34
+ if (payload.status !== "ok" || payload.service !== "sovara-exec-server")
35
+ return false;
36
+ checkCompatibility(url, payload);
37
+ return true;
38
+ }
39
+ catch (error) {
40
+ if (error instanceof CompatibilityError)
41
+ throw error;
42
+ return false;
43
+ }
44
+ }
45
+ async function restartViaCli(url, deps) {
46
+ const bin = deps.which("sovara");
47
+ if (!bin)
48
+ return false;
49
+ try {
50
+ deps.spawn(bin, ["exec-server", "start"], {
51
+ env: { ...process.env, SOVARA_EXEC_SERVER_URL: url },
52
+ });
53
+ }
54
+ catch {
55
+ return false;
56
+ }
57
+ const deadline = Date.now() + 10_000;
58
+ while (Date.now() < deadline) {
59
+ if (await isHealthy(url, deps.fetchFn))
60
+ return true;
61
+ await new Promise((r) => setTimeout(r, 250));
62
+ }
63
+ return isHealthy(url, deps.fetchFn);
64
+ }
65
+ export async function ensureServerRunning(url, deps = {}) {
66
+ const fetchFn = deps.fetchFn ?? defaultFetch();
67
+ const which = deps.which ?? defaultWhich;
68
+ const spawn = deps.spawn ??
69
+ ((bin, args, options) => spawnSync(bin, args, { timeout: 25_000, env: options?.env }));
70
+ if (await isHealthy(url, fetchFn))
71
+ return true;
72
+ if (await restartViaCli(url, { fetchFn, which, spawn }))
73
+ return true;
74
+ warnOnce("exec-server-unreachable", CLI_UNREACHABLE_WARNING);
75
+ return false;
76
+ }
77
+ //# sourceMappingURL=serverLifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverLifecycle.js","sourceRoot":"","sources":["../src/serverLifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { type TraceScopeClient } from "./context.js";
2
+ import type { PrepareCallResponse, TraceWriteCredentials } from "./runtimeClient.js";
3
+ export type PreparedToolTrace = {
4
+ preparedCall: PrepareCallResponse;
5
+ credentials: TraceWriteCredentials;
6
+ turnId: string | null;
7
+ inputJson: string;
8
+ startedAt: number;
9
+ client: TraceScopeClient;
10
+ };
11
+ export declare function normalizeJsonable(value: unknown): unknown;
12
+ export declare function buildToolInputDict(args: {
13
+ toolName: string;
14
+ toolInput: unknown;
15
+ toolCallId: string;
16
+ meta?: Record<string, unknown>;
17
+ }): Record<string, unknown>;
18
+ export declare function buildToolSuccessOutput(args: {
19
+ toolName: string;
20
+ toolCallId: string;
21
+ result: unknown;
22
+ meta?: Record<string, unknown>;
23
+ }): Record<string, unknown>;
24
+ export declare function buildToolErrorOutput(args: {
25
+ toolName: string;
26
+ toolCallId: string;
27
+ error: unknown;
28
+ }): Record<string, unknown>;
29
+ export declare function shouldTraceTool(toolCallId: string | undefined): boolean;
30
+ export declare function prepareToolTrace(args: {
31
+ toolName: string;
32
+ toolInput: unknown;
33
+ toolCallId: string;
34
+ apiType: string;
35
+ meta?: Record<string, unknown>;
36
+ }): Promise<PreparedToolTrace>;
37
+ export declare function recordPreparedToolOutput(trace: PreparedToolTrace, output: Record<string, unknown>, apiType: string): Promise<void>;
38
+ //# sourceMappingURL=toolTraceUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolTraceUtils.d.ts","sourceRoot":"","sources":["../src/toolTraceUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAIrF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,EAAE,qBAAqB,CAAC;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAuEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEzD;AA4BD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqB1B;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmB1B;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAY1B;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEvE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmC7B;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAcf"}
@@ -0,0 +1,189 @@
1
+ import { performance } from "node:perf_hooks";
2
+ import { serialize } from "superjson";
3
+ import { getCurrentTraceScope } from "./context.js";
4
+ import { wrapForStorage } from "./payload/wrap.js";
5
+ import { stableJsonStringify } from "./util/stableJson.js";
6
+ import { sanitizeStackTrace } from "./util/stackTrace.js";
7
+ function isPlainRecord(value) {
8
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
9
+ }
10
+ function fallbackString(value) {
11
+ try {
12
+ return String(value);
13
+ }
14
+ catch {
15
+ return "[Unserializable]";
16
+ }
17
+ }
18
+ function unserializableMarker(error) {
19
+ const errorType = error instanceof Error ? error.name : "Error";
20
+ return { _sovara_unserializable: errorType };
21
+ }
22
+ function sanitizeJsonValue(value, seen = new WeakSet()) {
23
+ if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
24
+ if (typeof value === "number" && !Number.isFinite(value)) {
25
+ return String(value);
26
+ }
27
+ return value;
28
+ }
29
+ if (value === undefined) {
30
+ return null;
31
+ }
32
+ if (typeof value === "bigint" || typeof value === "symbol" || typeof value === "function") {
33
+ return fallbackString(value);
34
+ }
35
+ if (Array.isArray(value)) {
36
+ return value.map((item) => sanitizeJsonValue(item, seen));
37
+ }
38
+ const objectValue = value;
39
+ if (seen.has(objectValue)) {
40
+ return "[Circular]";
41
+ }
42
+ seen.add(objectValue);
43
+ try {
44
+ return Object.fromEntries(Object.entries(objectValue).map(([key, item]) => [key, sanitizeJsonValue(item, seen)]));
45
+ }
46
+ catch (error) {
47
+ return unserializableMarker(error);
48
+ }
49
+ }
50
+ function normalizeTraceValue(value) {
51
+ try {
52
+ const serialized = serialize(value);
53
+ const normalized = {
54
+ json: sanitizeJsonValue(serialized.json),
55
+ };
56
+ if (serialized.meta !== undefined) {
57
+ normalized.superjsonMeta = sanitizeJsonValue(serialized.meta);
58
+ }
59
+ return normalized;
60
+ }
61
+ catch (error) {
62
+ return { json: unserializableMarker(error) };
63
+ }
64
+ }
65
+ export function normalizeJsonable(value) {
66
+ return normalizeTraceValue(value).json;
67
+ }
68
+ function normalizedMetaRecord(meta) {
69
+ const normalized = normalizeTraceValue(meta ?? {});
70
+ return {
71
+ meta: isPlainRecord(normalized.json) ? normalized.json : {},
72
+ superjsonMeta: normalized.superjsonMeta,
73
+ };
74
+ }
75
+ function valueTypeName(value) {
76
+ if (value === null) {
77
+ return "null";
78
+ }
79
+ if (value === undefined) {
80
+ return "undefined";
81
+ }
82
+ if (typeof value !== "object" && typeof value !== "function") {
83
+ return typeof value;
84
+ }
85
+ const constructorName = value.constructor?.name;
86
+ return typeof constructorName === "string" && constructorName ? constructorName : typeof value;
87
+ }
88
+ export function buildToolInputDict(args) {
89
+ const normalizedInput = normalizeTraceValue(args.toolInput);
90
+ const payload = {
91
+ tool_name: args.toolName,
92
+ tool_call_id: args.toolCallId,
93
+ tool_input: normalizedInput.json,
94
+ };
95
+ const { meta, superjsonMeta } = normalizedMetaRecord(args.meta);
96
+ if (normalizedInput.superjsonMeta !== undefined) {
97
+ meta.tool_input_superjson_meta = normalizedInput.superjsonMeta;
98
+ }
99
+ if (superjsonMeta !== undefined) {
100
+ meta.meta_superjson_meta = superjsonMeta;
101
+ }
102
+ if (Object.keys(meta).length > 0) {
103
+ payload._meta = meta;
104
+ }
105
+ if (Array.isArray(normalizedInput.json) || isPlainRecord(normalizedInput.json)) {
106
+ payload.tool_input_json = stableJsonStringify(normalizedInput.json);
107
+ }
108
+ return payload;
109
+ }
110
+ export function buildToolSuccessOutput(args) {
111
+ const normalizedOutput = normalizeTraceValue(args.result);
112
+ const { meta, superjsonMeta } = normalizedMetaRecord(args.meta);
113
+ if (superjsonMeta !== undefined) {
114
+ meta.meta_superjson_meta = superjsonMeta;
115
+ }
116
+ if (normalizedOutput.superjsonMeta !== undefined) {
117
+ meta.tool_output_superjson_meta = normalizedOutput.superjsonMeta;
118
+ }
119
+ if (!("output_type" in meta)) {
120
+ meta.output_type = valueTypeName(args.result);
121
+ }
122
+ return {
123
+ tool_name: args.toolName,
124
+ tool_call_id: args.toolCallId,
125
+ status: "success",
126
+ tool_output: normalizedOutput.json,
127
+ _meta: meta,
128
+ };
129
+ }
130
+ export function buildToolErrorOutput(args) {
131
+ const error = args.error;
132
+ const errorType = error instanceof Error ? error.name : "Error";
133
+ const errorMessage = error instanceof Error ? error.message || error.name : fallbackString(error) || errorType;
134
+ return {
135
+ tool_name: args.toolName,
136
+ tool_call_id: args.toolCallId,
137
+ status: "error",
138
+ error_type: errorType,
139
+ error_message: errorMessage,
140
+ };
141
+ }
142
+ export function shouldTraceTool(toolCallId) {
143
+ return Boolean(toolCallId) && getCurrentTraceScope() !== undefined;
144
+ }
145
+ export async function prepareToolTrace(args) {
146
+ const scope = getCurrentTraceScope();
147
+ if (!scope) {
148
+ throw new Error("No active Sovara trace");
149
+ }
150
+ const inputJson = stableJsonStringify(wrapForStorage(buildToolInputDict({
151
+ toolName: args.toolName,
152
+ toolInput: args.toolInput,
153
+ toolCallId: args.toolCallId,
154
+ meta: args.meta,
155
+ }), { apiType: args.apiType, direction: "input" }));
156
+ const preparedCall = await scope.client.prepareCall({
157
+ credentials: scope.credentials,
158
+ turnId: scope.turnId,
159
+ inputJson,
160
+ apiType: args.apiType,
161
+ stackTrace: sanitizeStackTrace(new Error().stack),
162
+ promptBearingSuffixJson: "[]",
163
+ lessonScopePaths: scope.lessonScopePaths,
164
+ });
165
+ return {
166
+ preparedCall,
167
+ credentials: scope.credentials,
168
+ turnId: scope.turnId,
169
+ inputJson: preparedCall.preparedInputJson ?? inputJson,
170
+ startedAt: performance.now(),
171
+ client: scope.client,
172
+ };
173
+ }
174
+ export async function recordPreparedToolOutput(trace, output, apiType) {
175
+ await trace.client.recordOutput({
176
+ credentials: trace.credentials,
177
+ turnId: trace.turnId,
178
+ stepUuid: trace.preparedCall.stepUuid,
179
+ apiType,
180
+ inputJson: trace.inputJson,
181
+ outputJson: stableJsonStringify(wrapForStorage(output, { apiType, direction: "output" })),
182
+ latencySeconds: Math.max(0, (performance.now() - trace.startedAt) / 1000),
183
+ stackTrace: null,
184
+ stepKind: trace.preparedCall.stepKind,
185
+ suffixKeysJson: trace.preparedCall.suffixKeysJson ?? "[]",
186
+ promptBearingSuffixJson: trace.preparedCall.promptBearingSuffixJson ?? "[]",
187
+ });
188
+ }
189
+ //# sourceMappingURL=toolTraceUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolTraceUtils.js","sourceRoot":"","sources":["../src/toolTraceUtils.ts"],"names":[],"mappings":"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"}