@sovara/runner 0.3.4 → 0.4.4
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 +24 -24
- package/dist/agentCredentials.d.ts +13 -0
- package/dist/agentCredentials.d.ts.map +1 -0
- package/dist/agentCredentials.js +90 -0
- package/dist/agentCredentials.js.map +1 -0
- package/dist/capture/responseEnvelope.d.ts +6 -1
- package/dist/capture/responseEnvelope.d.ts.map +1 -1
- package/dist/capture/responseEnvelope.js +24 -3
- package/dist/capture/responseEnvelope.js.map +1 -1
- package/dist/capture/sensitiveHeaders.d.ts +7 -0
- package/dist/capture/sensitiveHeaders.d.ts.map +1 -0
- package/dist/capture/sensitiveHeaders.js +41 -0
- package/dist/capture/sensitiveHeaders.js.map +1 -0
- package/dist/capture/streamNormalizers.d.ts +6 -0
- package/dist/capture/streamNormalizers.d.ts.map +1 -0
- package/dist/capture/streamNormalizers.js +301 -0
- package/dist/capture/streamNormalizers.js.map +1 -0
- package/dist/codeVersion.d.ts +0 -2
- package/dist/codeVersion.d.ts.map +1 -1
- package/dist/codeVersion.js +0 -18
- package/dist/codeVersion.js.map +1 -1
- package/dist/constants.d.ts +0 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -4
- package/dist/constants.js.map +1 -1
- package/dist/context.d.ts +23 -10
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +230 -56
- package/dist/context.js.map +1 -1
- package/dist/env.d.ts +0 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +0 -2
- package/dist/env.js.map +1 -1
- package/dist/failsafe.d.ts +8 -0
- package/dist/failsafe.d.ts.map +1 -0
- package/dist/failsafe.js +28 -0
- package/dist/failsafe.js.map +1 -0
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -6
- package/dist/index.js.map +1 -1
- package/dist/lessons.d.ts +6 -0
- package/dist/lessons.d.ts.map +1 -0
- package/dist/lessons.js +68 -0
- package/dist/lessons.js.map +1 -0
- package/dist/lessonsBlockGuidance.json +3 -0
- package/dist/mcpPatch.d.ts.map +1 -1
- package/dist/mcpPatch.js +17 -13
- package/dist/mcpPatch.js.map +1 -1
- package/dist/payload/editIoExcludePatterns.json +3 -0
- package/dist/platformSession.d.ts +3 -0
- package/dist/platformSession.d.ts.map +1 -0
- package/dist/platformSession.js +15 -0
- package/dist/platformSession.js.map +1 -0
- package/dist/runtimeClient.d.ts +46 -30
- package/dist/runtimeClient.d.ts.map +1 -1
- package/dist/runtimeClient.js +105 -68
- package/dist/runtimeClient.js.map +1 -1
- package/dist/serverLifecycle.d.ts +11 -1
- package/dist/serverLifecycle.d.ts.map +1 -1
- package/dist/serverLifecycle.js +54 -14
- package/dist/serverLifecycle.js.map +1 -1
- package/dist/toolTraceUtils.d.ts.map +1 -1
- package/dist/toolTraceUtils.js +6 -4
- package/dist/toolTraceUtils.js.map +1 -1
- package/dist/transport/awsSdkHttp2Patch.d.ts.map +1 -1
- package/dist/transport/awsSdkHttp2Patch.js +34 -25
- package/dist/transport/awsSdkHttp2Patch.js.map +1 -1
- package/dist/transport/fetchPatch.d.ts.map +1 -1
- package/dist/transport/fetchPatch.js +33 -17
- package/dist/transport/fetchPatch.js.map +1 -1
- package/dist/transport/nodeHttpPatch.d.ts.map +1 -1
- package/dist/transport/nodeHttpPatch.js +19 -12
- package/dist/transport/nodeHttpPatch.js.map +1 -1
- package/package.json +2 -2
- package/dist/annotation.d.ts +0 -3
- package/dist/annotation.d.ts.map +0 -1
- package/dist/annotation.js +0 -27
- package/dist/annotation.js.map +0 -1
- package/dist/priors.d.ts +0 -7
- package/dist/priors.d.ts.map +0 -1
- package/dist/priors.js +0 -87
- package/dist/priors.js.map +0 -1
- package/dist/priorsBlockGuidance.json +0 -3
- package/dist/projectContext.d.ts +0 -14
- package/dist/projectContext.d.ts.map +0 -1
- package/dist/projectContext.js +0 -32
- package/dist/projectContext.js.map +0 -1
- package/dist/sseListener.d.ts +0 -9
- package/dist/sseListener.d.ts.map +0 -1
- package/dist/sseListener.js +0 -56
- package/dist/sseListener.js.map +0 -1
package/dist/mcpPatch.js
CHANGED
|
@@ -58,7 +58,7 @@ function buildModuleCandidateSpecifiers() {
|
|
|
58
58
|
candidates.add(MCP_CLIENT_SPECIFIER);
|
|
59
59
|
const out = Array.from(candidates);
|
|
60
60
|
if (DEBUG_MCP_PATCH) {
|
|
61
|
-
console.error("[sovara:mcp] candidate module
|
|
61
|
+
console.error("[sovara:mcp] candidate module specifier count:", out.length);
|
|
62
62
|
}
|
|
63
63
|
return out;
|
|
64
64
|
}
|
|
@@ -95,14 +95,16 @@ function patchClientPrototype(clientPrototype) {
|
|
|
95
95
|
inputJson,
|
|
96
96
|
apiType: MCP_API_TYPE,
|
|
97
97
|
stackTrace,
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
promptBearingSuffixJson: "[]",
|
|
99
|
+
prepareRuntimeLessons: true,
|
|
100
|
+
lessonScopePaths: scope.lessonScopePaths,
|
|
100
101
|
});
|
|
101
102
|
preparedCall = {
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
stepUuid: prepared.stepUuid,
|
|
104
|
+
stepKind: prepared.stepKind ?? null,
|
|
104
105
|
preparedInputJson: prepared.preparedInputJson ?? inputJson,
|
|
105
|
-
|
|
106
|
+
suffixKeysJson: prepared.suffixKeysJson ?? "[]",
|
|
107
|
+
promptBearingSuffixJson: prepared.promptBearingSuffixJson ?? "[]",
|
|
106
108
|
};
|
|
107
109
|
}
|
|
108
110
|
catch {
|
|
@@ -114,14 +116,15 @@ function patchClientPrototype(clientPrototype) {
|
|
|
114
116
|
const outputJson = stableJsonStringify(wrapForStorage(result));
|
|
115
117
|
await scope.client.recordOutput({
|
|
116
118
|
runId: scope.runId,
|
|
117
|
-
|
|
119
|
+
stepUuid: preparedCall.stepUuid,
|
|
118
120
|
apiType: MCP_API_TYPE,
|
|
119
121
|
inputJson: preparedCall.preparedInputJson,
|
|
120
122
|
outputJson,
|
|
121
123
|
latencySeconds: Math.max(0, (performance.now() - startedAt) / 1000),
|
|
122
124
|
stackTrace,
|
|
123
|
-
|
|
124
|
-
|
|
125
|
+
stepKind: preparedCall.stepKind,
|
|
126
|
+
suffixKeysJson: preparedCall.suffixKeysJson,
|
|
127
|
+
promptBearingSuffixJson: preparedCall.promptBearingSuffixJson,
|
|
125
128
|
});
|
|
126
129
|
return result;
|
|
127
130
|
}
|
|
@@ -129,14 +132,15 @@ function patchClientPrototype(clientPrototype) {
|
|
|
129
132
|
await scope.client
|
|
130
133
|
.recordException({
|
|
131
134
|
runId: scope.runId,
|
|
132
|
-
|
|
135
|
+
stepUuid: preparedCall.stepUuid,
|
|
133
136
|
apiType: MCP_API_TYPE,
|
|
134
137
|
inputJson: preparedCall.preparedInputJson,
|
|
135
138
|
errorJson: buildErrorPayload(error),
|
|
136
139
|
latencySeconds: Math.max(0, (performance.now() - startedAt) / 1000),
|
|
137
140
|
stackTrace,
|
|
138
|
-
|
|
139
|
-
|
|
141
|
+
stepKind: preparedCall.stepKind,
|
|
142
|
+
suffixKeysJson: preparedCall.suffixKeysJson,
|
|
143
|
+
promptBearingSuffixJson: preparedCall.promptBearingSuffixJson,
|
|
140
144
|
clearOutput: true,
|
|
141
145
|
})
|
|
142
146
|
.catch(() => {
|
|
@@ -174,7 +178,7 @@ export async function ensureMcpPatchInstalled() {
|
|
|
174
178
|
catch {
|
|
175
179
|
// keep trying other candidate module copies
|
|
176
180
|
if (DEBUG_MCP_PATCH) {
|
|
177
|
-
console.error("[sovara:mcp] failed to import candidate
|
|
181
|
+
console.error("[sovara:mcp] failed to import candidate");
|
|
178
182
|
}
|
|
179
183
|
}
|
|
180
184
|
}
|
package/dist/mcpPatch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpPatch.js","sourceRoot":"","sources":["../src/mcpPatch.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mcpPatch.js","sourceRoot":"","sources":["../src/mcpPatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformSession.d.ts","sourceRoot":"","sources":["../src/platformSession.ts"],"names":[],"mappings":"AAIA,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAEpE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMrE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
export function platformSessionPath(home = homedir()) {
|
|
5
|
+
return join(home, ".sovara", "session_token");
|
|
6
|
+
}
|
|
7
|
+
export function readPlatformSessionToken(home) {
|
|
8
|
+
try {
|
|
9
|
+
return readFileSync(platformSessionPath(home), "utf8").trim() || null;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=platformSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformSession.js","sourceRoot":"","sources":["../src/platformSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,mBAAmB,CAAC,OAAe,OAAO,EAAE;IAC1D,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAa;IACpD,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/runtimeClient.d.ts
CHANGED
|
@@ -6,13 +6,10 @@ export declare class RuntimeClientError extends Error {
|
|
|
6
6
|
}
|
|
7
7
|
export type RegisterRunRequest = {
|
|
8
8
|
name: string;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
projectName: string;
|
|
14
|
-
projectDescription: string;
|
|
15
|
-
projectRoot: string;
|
|
9
|
+
clientRunId?: string;
|
|
10
|
+
projectId?: string;
|
|
11
|
+
projectName?: string;
|
|
12
|
+
projectRoot?: string;
|
|
16
13
|
codeVersion: CodeVersion;
|
|
17
14
|
};
|
|
18
15
|
export type RegisterRunResponse = {
|
|
@@ -21,6 +18,7 @@ export type RegisterRunResponse = {
|
|
|
21
18
|
export type RegisterSubrunRequest = {
|
|
22
19
|
name: string;
|
|
23
20
|
parentRunId: string;
|
|
21
|
+
lessonScopePaths?: string[] | null;
|
|
24
22
|
};
|
|
25
23
|
export type RegisterSubrunResponse = {
|
|
26
24
|
runId: string;
|
|
@@ -30,25 +28,27 @@ export type PrepareCallRequest = {
|
|
|
30
28
|
inputJson: string;
|
|
31
29
|
apiType: string;
|
|
32
30
|
stackTrace: string | null;
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
promptBearingSuffixJson: string;
|
|
32
|
+
prepareRuntimeLessons?: boolean;
|
|
33
|
+
lessonScopePaths?: string[] | null;
|
|
35
34
|
};
|
|
36
35
|
export type PrepareCallResponse = {
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
stepUuid: string;
|
|
37
|
+
stepKind: string | null;
|
|
39
38
|
preparedInputJson?: string;
|
|
40
|
-
|
|
39
|
+
suffixKeysJson?: string;
|
|
40
|
+
promptBearingSuffixJson?: string;
|
|
41
41
|
preparedRawInput?: unknown | null;
|
|
42
42
|
};
|
|
43
|
-
export type
|
|
44
|
-
|
|
43
|
+
export type LessonRecord = {
|
|
44
|
+
lesson_id?: string;
|
|
45
45
|
name?: string;
|
|
46
46
|
title?: string;
|
|
47
47
|
content?: string;
|
|
48
48
|
};
|
|
49
49
|
export type FinalizeCallRequest = {
|
|
50
50
|
runId: string;
|
|
51
|
-
|
|
51
|
+
stepUuid: string;
|
|
52
52
|
apiType: string;
|
|
53
53
|
inputJson: string;
|
|
54
54
|
outputJson?: string;
|
|
@@ -57,47 +57,63 @@ export type FinalizeCallRequest = {
|
|
|
57
57
|
clearOutput?: boolean;
|
|
58
58
|
latencySeconds?: number | null;
|
|
59
59
|
stackTrace?: string | null;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
stepKind?: string | null;
|
|
61
|
+
suffixKeysJson?: string;
|
|
62
|
+
promptBearingSuffixJson?: string;
|
|
63
|
+
lessonMetadata?: Record<string, unknown> | null;
|
|
63
64
|
};
|
|
65
|
+
export type MetricValue = boolean | number;
|
|
64
66
|
export declare class RuntimeClient {
|
|
65
67
|
private readonly baseUrl;
|
|
66
68
|
private readonly fetchFn;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
private readonly agentToken?;
|
|
70
|
+
private readonly runWriteTokens;
|
|
71
|
+
constructor(baseUrl: string, fetchFn?: typeof fetch, agentToken?: string);
|
|
70
72
|
registerRun(request: RegisterRunRequest): Promise<RegisterRunResponse>;
|
|
71
73
|
registerSubrun(request: RegisterSubrunRequest): Promise<RegisterSubrunResponse>;
|
|
72
74
|
deregisterRun({ runId }: {
|
|
73
75
|
runId: string;
|
|
74
76
|
}): Promise<void>;
|
|
75
|
-
requestAnnotationEvaluation({ runId }: {
|
|
76
|
-
runId: string;
|
|
77
|
-
}): Promise<void>;
|
|
78
77
|
updateRunLog({ runId, logText, replace, }: {
|
|
79
78
|
runId: string;
|
|
80
79
|
logText: string;
|
|
81
80
|
replace: boolean;
|
|
82
81
|
}): Promise<void>;
|
|
83
|
-
|
|
82
|
+
logMetrics({ runId, metrics, }: {
|
|
83
|
+
runId: string;
|
|
84
|
+
metrics: Record<string, MetricValue>;
|
|
85
|
+
}): Promise<void>;
|
|
86
|
+
logInput({ runId, value }: {
|
|
87
|
+
runId: string;
|
|
88
|
+
value: unknown;
|
|
89
|
+
}): Promise<void>;
|
|
90
|
+
logOutput({ runId, value }: {
|
|
91
|
+
runId: string;
|
|
92
|
+
value: unknown;
|
|
93
|
+
}): Promise<void>;
|
|
94
|
+
requestAnnotationEvaluation({ runId }: {
|
|
95
|
+
runId: string;
|
|
96
|
+
}): Promise<void>;
|
|
97
|
+
private logRunIo;
|
|
98
|
+
queryLessons({ runId, scopePaths, }: {
|
|
84
99
|
runId: string;
|
|
85
|
-
|
|
100
|
+
scopePaths: string[] | null;
|
|
86
101
|
}): Promise<{
|
|
87
|
-
|
|
102
|
+
lessons: LessonRecord[];
|
|
88
103
|
injectedContext: string;
|
|
89
104
|
}>;
|
|
90
|
-
|
|
105
|
+
retrieveLessons({ runId, scopePaths, context, }: {
|
|
91
106
|
runId: string;
|
|
92
|
-
|
|
107
|
+
scopePaths: string[] | null;
|
|
93
108
|
context: string;
|
|
94
109
|
}): Promise<{
|
|
95
|
-
|
|
110
|
+
lessons: LessonRecord[];
|
|
96
111
|
}>;
|
|
97
112
|
prepareCall(request: PrepareCallRequest): Promise<PrepareCallResponse>;
|
|
98
113
|
recordOutput(request: FinalizeCallRequest): Promise<void>;
|
|
99
114
|
recordException(request: FinalizeCallRequest): Promise<void>;
|
|
100
115
|
registerClaudeProxyClient(runId: string, clientId: string, upstreamBaseUrl: string, stackTrace: string | null): Promise<void>;
|
|
116
|
+
private rememberRunWriteToken;
|
|
101
117
|
private request;
|
|
102
118
|
}
|
|
103
119
|
//# sourceMappingURL=runtimeClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeClient.d.ts","sourceRoot":"","sources":["../src/runtimeClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtimeClient.d.ts","sourceRoot":"","sources":["../src/runtimeClient.ts"],"names":[],"mappings":"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"}
|
package/dist/runtimeClient.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { stableJsonStringify } from "./util/stableJson.js";
|
|
2
|
+
import { readPlatformSessionToken } from "./platformSession.js";
|
|
3
|
+
const RUN_WRITE_TOKEN_HEADER = "x-sovara-run-token";
|
|
2
4
|
export class RuntimeClientError extends Error {
|
|
3
5
|
status;
|
|
4
6
|
body;
|
|
@@ -11,11 +13,24 @@ export class RuntimeClientError extends Error {
|
|
|
11
13
|
function toJsonBody(payload) {
|
|
12
14
|
return stableJsonStringify(payload);
|
|
13
15
|
}
|
|
16
|
+
function requireStringField(payload, field) {
|
|
17
|
+
const value = payload && typeof payload === "object" ? payload[field] : undefined;
|
|
18
|
+
if (typeof value !== "string" || value.trim() === "") {
|
|
19
|
+
throw new RuntimeClientError(200, {
|
|
20
|
+
error: "invalid_runtime_response",
|
|
21
|
+
field,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
14
26
|
export class RuntimeClient {
|
|
15
27
|
baseUrl;
|
|
16
28
|
fetchFn;
|
|
17
|
-
|
|
29
|
+
agentToken;
|
|
30
|
+
runWriteTokens = new Map();
|
|
31
|
+
constructor(baseUrl, fetchFn, agentToken) {
|
|
18
32
|
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
33
|
+
this.agentToken = agentToken?.trim() || undefined;
|
|
19
34
|
if (fetchFn) {
|
|
20
35
|
this.fetchFn = fetchFn;
|
|
21
36
|
return;
|
|
@@ -23,88 +38,94 @@ export class RuntimeClient {
|
|
|
23
38
|
const maybeOriginal = globalThis[Symbol.for("sovara.originalFetch")];
|
|
24
39
|
this.fetchFn = typeof maybeOriginal === "function" ? maybeOriginal : fetch;
|
|
25
40
|
}
|
|
26
|
-
async getProject(projectId) {
|
|
27
|
-
try {
|
|
28
|
-
const payload = await this.request(`/ui/projects/${encodeURIComponent(projectId)}`, { method: "GET" });
|
|
29
|
-
if (!payload || typeof payload !== "object") {
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
const data = payload;
|
|
33
|
-
if (data.project && typeof data.project === "object") {
|
|
34
|
-
return data.project;
|
|
35
|
-
}
|
|
36
|
-
return typeof data.project_id === "string" ? data : null;
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
resolveProjectLocation(location) {
|
|
43
|
-
return this.request("/ui/projects/resolve-location", {
|
|
44
|
-
method: "POST",
|
|
45
|
-
body: toJsonBody({ location }),
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
41
|
async registerRun(request) {
|
|
49
42
|
const payload = await this.request("/runner/register", {
|
|
50
43
|
method: "POST",
|
|
51
44
|
body: toJsonBody({
|
|
52
45
|
name: request.name,
|
|
53
|
-
|
|
54
|
-
command: request.command,
|
|
55
|
-
environment: request.environment,
|
|
46
|
+
client_run_id: request.clientRunId,
|
|
56
47
|
project_id: request.projectId,
|
|
57
48
|
project_name: request.projectName,
|
|
58
|
-
project_description: request.projectDescription,
|
|
59
49
|
project_root: request.projectRoot,
|
|
60
50
|
code_version: request.codeVersion,
|
|
61
51
|
}),
|
|
62
52
|
});
|
|
63
|
-
|
|
53
|
+
const runId = requireStringField(payload, "run_id");
|
|
54
|
+
this.rememberRunWriteToken(payload, runId);
|
|
55
|
+
return { runId };
|
|
64
56
|
}
|
|
65
57
|
async registerSubrun(request) {
|
|
66
58
|
const payload = await this.request("/runner/subrun", {
|
|
67
59
|
method: "POST",
|
|
68
|
-
body: toJsonBody({
|
|
69
|
-
|
|
70
|
-
|
|
60
|
+
body: toJsonBody({
|
|
61
|
+
name: request.name,
|
|
62
|
+
parent_run_id: request.parentRunId,
|
|
63
|
+
lesson_scope_paths: request.lessonScopePaths ?? null,
|
|
64
|
+
}),
|
|
65
|
+
}, request.parentRunId);
|
|
66
|
+
const runId = requireStringField(payload, "run_id");
|
|
67
|
+
this.rememberRunWriteToken(payload, runId);
|
|
68
|
+
return { runId };
|
|
71
69
|
}
|
|
72
70
|
async deregisterRun({ runId }) {
|
|
73
71
|
await this.request("/runner/deregister", {
|
|
74
72
|
method: "POST",
|
|
75
73
|
body: toJsonBody({ run_id: runId }),
|
|
76
|
-
});
|
|
74
|
+
}, runId);
|
|
75
|
+
this.runWriteTokens.delete(runId);
|
|
76
|
+
}
|
|
77
|
+
async updateRunLog({ runId, logText, replace, }) {
|
|
78
|
+
await this.request("/runner/update-log", {
|
|
79
|
+
method: "POST",
|
|
80
|
+
body: toJsonBody({ run_id: runId, log_text: logText, replace }),
|
|
81
|
+
}, runId);
|
|
82
|
+
}
|
|
83
|
+
async logMetrics({ runId, metrics, }) {
|
|
84
|
+
await this.request("/runner/log", {
|
|
85
|
+
method: "POST",
|
|
86
|
+
body: toJsonBody({ run_id: runId, metrics }),
|
|
87
|
+
}, runId);
|
|
88
|
+
}
|
|
89
|
+
async logInput({ runId, value }) {
|
|
90
|
+
await this.logRunIo({ runId, kind: "input", value });
|
|
91
|
+
}
|
|
92
|
+
async logOutput({ runId, value }) {
|
|
93
|
+
await this.logRunIo({ runId, kind: "output", value });
|
|
77
94
|
}
|
|
78
95
|
async requestAnnotationEvaluation({ runId }) {
|
|
79
96
|
await this.request("/internal/runner/annotation/evaluate", {
|
|
80
97
|
method: "POST",
|
|
81
98
|
body: toJsonBody({ run_id: runId }),
|
|
82
|
-
});
|
|
99
|
+
}, runId);
|
|
83
100
|
}
|
|
84
|
-
async
|
|
85
|
-
await this.request("/runner/
|
|
101
|
+
async logRunIo({ runId, kind, value, }) {
|
|
102
|
+
await this.request("/runner/run-io", {
|
|
86
103
|
method: "POST",
|
|
87
|
-
body: toJsonBody({
|
|
88
|
-
|
|
104
|
+
body: toJsonBody({
|
|
105
|
+
run_id: runId,
|
|
106
|
+
kind,
|
|
107
|
+
value: typeof value === "string" ? value : stableJsonStringify(value),
|
|
108
|
+
}),
|
|
109
|
+
}, runId);
|
|
89
110
|
}
|
|
90
|
-
async
|
|
91
|
-
const payload = await this.request("/internal/
|
|
111
|
+
async queryLessons({ runId, scopePaths, }) {
|
|
112
|
+
const payload = await this.request("/internal/lessons/query", { method: "POST", body: toJsonBody({ run_id: runId, scope_paths: scopePaths }) }, runId);
|
|
92
113
|
return {
|
|
93
|
-
|
|
114
|
+
lessons: payload.lessons ?? [],
|
|
94
115
|
injectedContext: payload.injected_context ?? "",
|
|
95
116
|
};
|
|
96
117
|
}
|
|
97
|
-
async
|
|
98
|
-
const payload = await this.request("/internal/
|
|
118
|
+
async retrieveLessons({ runId, scopePaths, context, }) {
|
|
119
|
+
const payload = await this.request("/internal/lessons/retrieve", {
|
|
99
120
|
method: "POST",
|
|
100
121
|
body: toJsonBody({
|
|
101
122
|
run_id: runId,
|
|
102
|
-
|
|
123
|
+
scope_paths: scopePaths,
|
|
103
124
|
context,
|
|
104
|
-
|
|
125
|
+
ignore_lesson_ids: [],
|
|
105
126
|
}),
|
|
106
|
-
});
|
|
107
|
-
return {
|
|
127
|
+
}, runId);
|
|
128
|
+
return { lessons: payload.lessons ?? [] };
|
|
108
129
|
}
|
|
109
130
|
async prepareCall(request) {
|
|
110
131
|
const payload = await this.request("/internal/runner/llm/prepare", {
|
|
@@ -114,15 +135,17 @@ export class RuntimeClient {
|
|
|
114
135
|
input_json: request.inputJson,
|
|
115
136
|
api_type: request.apiType,
|
|
116
137
|
stack_trace: request.stackTrace,
|
|
117
|
-
|
|
118
|
-
|
|
138
|
+
prompt_bearing_suffix_json: request.promptBearingSuffixJson,
|
|
139
|
+
prepare_runtime_lessons: request.prepareRuntimeLessons ?? false,
|
|
140
|
+
lesson_scope_paths: request.lessonScopePaths ?? null,
|
|
119
141
|
}),
|
|
120
|
-
});
|
|
142
|
+
}, request.runId);
|
|
121
143
|
return {
|
|
122
|
-
|
|
123
|
-
|
|
144
|
+
stepUuid: requireStringField(payload, "step_uuid"),
|
|
145
|
+
stepKind: payload.step_kind ?? null,
|
|
124
146
|
preparedInputJson: payload.prepared_input_json ?? request.inputJson,
|
|
125
|
-
|
|
147
|
+
suffixKeysJson: payload.suffix_keys_json ?? "[]",
|
|
148
|
+
promptBearingSuffixJson: payload.prompt_bearing_suffix_json ?? request.promptBearingSuffixJson,
|
|
126
149
|
preparedRawInput: payload.prepared_raw_input ?? null,
|
|
127
150
|
};
|
|
128
151
|
}
|
|
@@ -131,36 +154,38 @@ export class RuntimeClient {
|
|
|
131
154
|
method: "POST",
|
|
132
155
|
body: toJsonBody({
|
|
133
156
|
run_id: request.runId,
|
|
134
|
-
|
|
157
|
+
step_uuid: request.stepUuid,
|
|
135
158
|
api_type: request.apiType,
|
|
136
159
|
input_json: request.inputJson,
|
|
137
160
|
output_json: request.outputJson,
|
|
138
161
|
latency_seconds: request.latencySeconds ?? null,
|
|
139
162
|
stack_trace: request.stackTrace ?? null,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
163
|
+
step_kind: request.stepKind ?? null,
|
|
164
|
+
suffix_keys_json: request.suffixKeysJson ?? "[]",
|
|
165
|
+
prompt_bearing_suffix_json: request.promptBearingSuffixJson ?? "[]",
|
|
166
|
+
lesson_metadata: request.lessonMetadata ?? null,
|
|
143
167
|
}),
|
|
144
|
-
});
|
|
168
|
+
}, request.runId);
|
|
145
169
|
}
|
|
146
170
|
async recordException(request) {
|
|
147
171
|
await this.request("/internal/runner/llm/finalize", {
|
|
148
172
|
method: "POST",
|
|
149
173
|
body: toJsonBody({
|
|
150
174
|
run_id: request.runId,
|
|
151
|
-
|
|
175
|
+
step_uuid: request.stepUuid,
|
|
152
176
|
api_type: request.apiType,
|
|
153
177
|
status: request.status ?? "error",
|
|
154
178
|
input_json: request.inputJson,
|
|
155
179
|
error_json: request.errorJson,
|
|
156
180
|
latency_seconds: request.latencySeconds ?? null,
|
|
157
181
|
stack_trace: request.stackTrace ?? null,
|
|
158
|
-
|
|
159
|
-
|
|
182
|
+
step_kind: request.stepKind ?? null,
|
|
183
|
+
suffix_keys_json: request.suffixKeysJson ?? "[]",
|
|
184
|
+
prompt_bearing_suffix_json: request.promptBearingSuffixJson ?? "[]",
|
|
160
185
|
clear_output: request.clearOutput ?? true,
|
|
161
|
-
|
|
186
|
+
lesson_metadata: request.lessonMetadata ?? null,
|
|
162
187
|
}),
|
|
163
|
-
});
|
|
188
|
+
}, request.runId);
|
|
164
189
|
}
|
|
165
190
|
async registerClaudeProxyClient(runId, clientId, upstreamBaseUrl, stackTrace) {
|
|
166
191
|
await this.request("/internal/runner/claude-proxy/register-client", {
|
|
@@ -171,17 +196,29 @@ export class RuntimeClient {
|
|
|
171
196
|
upstream_base_url: upstreamBaseUrl,
|
|
172
197
|
stack_trace: stackTrace,
|
|
173
198
|
}),
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
const
|
|
178
|
-
|
|
199
|
+
}, runId);
|
|
200
|
+
}
|
|
201
|
+
rememberRunWriteToken(payload, runId) {
|
|
202
|
+
const token = requireStringField(payload, "run_write_token");
|
|
203
|
+
this.runWriteTokens.set(runId, token);
|
|
204
|
+
}
|
|
205
|
+
async request(path, init, runId) {
|
|
206
|
+
const agentToken = runId
|
|
207
|
+
? ""
|
|
208
|
+
: (this.agentToken ??
|
|
209
|
+
(typeof process !== "undefined" ? process.env.SOVARA_AGENT_TOKEN?.trim() : ""));
|
|
210
|
+
const platformSession = runId || agentToken ? "" : readPlatformSessionToken();
|
|
211
|
+
const runWriteToken = runId ? this.runWriteTokens.get(runId) : undefined;
|
|
212
|
+
if (runId && !runWriteToken) {
|
|
213
|
+
throw new RuntimeClientError(0, { error: "missing_run_write_token", run_id: runId });
|
|
214
|
+
}
|
|
179
215
|
const response = await this.fetchFn(`${this.baseUrl}${path}`, {
|
|
180
216
|
...init,
|
|
181
217
|
headers: {
|
|
182
218
|
"content-type": "application/json",
|
|
183
219
|
...(agentToken ? { "x-sovara-agent-token": agentToken } : {}),
|
|
184
|
-
...(
|
|
220
|
+
...(platformSession ? { "x-sovara-platform-session": platformSession } : {}),
|
|
221
|
+
...(runWriteToken ? { [RUN_WRITE_TOKEN_HEADER]: runWriteToken } : {}),
|
|
185
222
|
...(init.headers ?? {}),
|
|
186
223
|
},
|
|
187
224
|
});
|