@sovara/runner 0.3.4 → 0.4.0

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 (92) hide show
  1. package/README.md +24 -24
  2. package/dist/agentCredentials.d.ts +13 -0
  3. package/dist/agentCredentials.d.ts.map +1 -0
  4. package/dist/agentCredentials.js +90 -0
  5. package/dist/agentCredentials.js.map +1 -0
  6. package/dist/capture/responseEnvelope.d.ts +6 -1
  7. package/dist/capture/responseEnvelope.d.ts.map +1 -1
  8. package/dist/capture/responseEnvelope.js +24 -3
  9. package/dist/capture/responseEnvelope.js.map +1 -1
  10. package/dist/capture/sensitiveHeaders.d.ts +7 -0
  11. package/dist/capture/sensitiveHeaders.d.ts.map +1 -0
  12. package/dist/capture/sensitiveHeaders.js +41 -0
  13. package/dist/capture/sensitiveHeaders.js.map +1 -0
  14. package/dist/capture/streamNormalizers.d.ts +6 -0
  15. package/dist/capture/streamNormalizers.d.ts.map +1 -0
  16. package/dist/capture/streamNormalizers.js +301 -0
  17. package/dist/capture/streamNormalizers.js.map +1 -0
  18. package/dist/codeVersion.d.ts +0 -2
  19. package/dist/codeVersion.d.ts.map +1 -1
  20. package/dist/codeVersion.js +0 -18
  21. package/dist/codeVersion.js.map +1 -1
  22. package/dist/constants.d.ts +0 -1
  23. package/dist/constants.d.ts.map +1 -1
  24. package/dist/constants.js +3 -4
  25. package/dist/constants.js.map +1 -1
  26. package/dist/context.d.ts +23 -10
  27. package/dist/context.d.ts.map +1 -1
  28. package/dist/context.js +230 -56
  29. package/dist/context.js.map +1 -1
  30. package/dist/env.d.ts +0 -1
  31. package/dist/env.d.ts.map +1 -1
  32. package/dist/env.js +0 -2
  33. package/dist/env.js.map +1 -1
  34. package/dist/failsafe.d.ts +8 -0
  35. package/dist/failsafe.d.ts.map +1 -0
  36. package/dist/failsafe.js +28 -0
  37. package/dist/failsafe.js.map +1 -0
  38. package/dist/index.d.ts +3 -5
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +11 -6
  41. package/dist/index.js.map +1 -1
  42. package/dist/lessons.d.ts +6 -0
  43. package/dist/lessons.d.ts.map +1 -0
  44. package/dist/lessons.js +68 -0
  45. package/dist/lessons.js.map +1 -0
  46. package/dist/lessonsBlockGuidance.json +3 -0
  47. package/dist/mcpPatch.d.ts.map +1 -1
  48. package/dist/mcpPatch.js +17 -13
  49. package/dist/mcpPatch.js.map +1 -1
  50. package/dist/payload/editIoExcludePatterns.json +3 -0
  51. package/dist/platformSession.d.ts +3 -0
  52. package/dist/platformSession.d.ts.map +1 -0
  53. package/dist/platformSession.js +15 -0
  54. package/dist/platformSession.js.map +1 -0
  55. package/dist/runtimeClient.d.ts +46 -30
  56. package/dist/runtimeClient.d.ts.map +1 -1
  57. package/dist/runtimeClient.js +105 -68
  58. package/dist/runtimeClient.js.map +1 -1
  59. package/dist/serverLifecycle.d.ts +11 -1
  60. package/dist/serverLifecycle.d.ts.map +1 -1
  61. package/dist/serverLifecycle.js +54 -14
  62. package/dist/serverLifecycle.js.map +1 -1
  63. package/dist/toolTraceUtils.d.ts.map +1 -1
  64. package/dist/toolTraceUtils.js +6 -4
  65. package/dist/toolTraceUtils.js.map +1 -1
  66. package/dist/transport/awsSdkHttp2Patch.d.ts.map +1 -1
  67. package/dist/transport/awsSdkHttp2Patch.js +34 -25
  68. package/dist/transport/awsSdkHttp2Patch.js.map +1 -1
  69. package/dist/transport/fetchPatch.d.ts.map +1 -1
  70. package/dist/transport/fetchPatch.js +33 -17
  71. package/dist/transport/fetchPatch.js.map +1 -1
  72. package/dist/transport/nodeHttpPatch.d.ts.map +1 -1
  73. package/dist/transport/nodeHttpPatch.js +19 -12
  74. package/dist/transport/nodeHttpPatch.js.map +1 -1
  75. package/package.json +2 -2
  76. package/dist/annotation.d.ts +0 -3
  77. package/dist/annotation.d.ts.map +0 -1
  78. package/dist/annotation.js +0 -27
  79. package/dist/annotation.js.map +0 -1
  80. package/dist/priors.d.ts +0 -7
  81. package/dist/priors.d.ts.map +0 -1
  82. package/dist/priors.js +0 -87
  83. package/dist/priors.js.map +0 -1
  84. package/dist/priorsBlockGuidance.json +0 -3
  85. package/dist/projectContext.d.ts +0 -14
  86. package/dist/projectContext.d.ts.map +0 -1
  87. package/dist/projectContext.js +0 -32
  88. package/dist/projectContext.js.map +0 -1
  89. package/dist/sseListener.d.ts +0 -9
  90. package/dist/sseListener.d.ts.map +0 -1
  91. package/dist/sseListener.js +0 -56
  92. 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 specifiers:", out);
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
- promptSuffixJson: "[]",
99
- prepareRuntimePriors: true,
98
+ promptBearingSuffixJson: "[]",
99
+ prepareRuntimeLessons: true,
100
+ lessonScopePaths: scope.lessonScopePaths,
100
101
  });
101
102
  preparedCall = {
102
- nodeUuid: prepared.nodeUuid,
103
- nodeKind: prepared.nodeKind ?? null,
103
+ stepUuid: prepared.stepUuid,
104
+ stepKind: prepared.stepKind ?? null,
104
105
  preparedInputJson: prepared.preparedInputJson ?? inputJson,
105
- promptSuffixJson: prepared.promptSuffixJson ?? "[]",
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
- nodeUuid: preparedCall.nodeUuid,
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
- nodeKind: preparedCall.nodeKind,
124
- promptSuffixJson: preparedCall.promptSuffixJson,
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
- nodeUuid: preparedCall.nodeUuid,
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
- nodeKind: preparedCall.nodeKind,
139
- promptSuffixJson: preparedCall.promptSuffixJson,
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:", specifier);
181
+ console.error("[sovara:mcp] failed to import candidate");
178
182
  }
179
183
  }
180
184
  }
@@ -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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"}
@@ -5,6 +5,9 @@
5
5
  {
6
6
  "pattern": "^sse(\\.|$)"
7
7
  },
8
+ {
9
+ "pattern": "^ndjson(\\.|$)"
10
+ },
8
11
  {
9
12
  "pattern": "(^|.*\\.)[^.]*encrypted[^.]*($|\\.)",
10
13
  "flags": "i"
@@ -0,0 +1,3 @@
1
+ export declare function platformSessionPath(home?: string): string;
2
+ export declare function readPlatformSessionToken(home?: string): string | null;
3
+ //# sourceMappingURL=platformSession.d.ts.map
@@ -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"}
@@ -6,13 +6,10 @@ export declare class RuntimeClientError extends Error {
6
6
  }
7
7
  export type RegisterRunRequest = {
8
8
  name: string;
9
- cwd: string;
10
- command: string;
11
- environment: Record<string, string>;
12
- projectId: string;
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
- promptSuffixJson: string;
34
- prepareRuntimePriors?: boolean;
31
+ promptBearingSuffixJson: string;
32
+ prepareRuntimeLessons?: boolean;
33
+ lessonScopePaths?: string[] | null;
35
34
  };
36
35
  export type PrepareCallResponse = {
37
- nodeUuid: string;
38
- nodeKind: string | null;
36
+ stepUuid: string;
37
+ stepKind: string | null;
39
38
  preparedInputJson?: string;
40
- promptSuffixJson?: string;
39
+ suffixKeysJson?: string;
40
+ promptBearingSuffixJson?: string;
41
41
  preparedRawInput?: unknown | null;
42
42
  };
43
- export type PriorRecord = {
44
- prior_id?: string;
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
- nodeUuid: string;
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
- nodeKind?: string | null;
61
- promptSuffixJson?: string;
62
- priorMetadata?: Record<string, unknown> | null;
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
- constructor(baseUrl: string, fetchFn?: typeof fetch);
68
- getProject(projectId: string): Promise<Record<string, unknown> | null>;
69
- resolveProjectLocation(location: string): Promise<Record<string, unknown>>;
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
- queryPriors({ runId, path, }: {
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
- path: string | null;
100
+ scopePaths: string[] | null;
86
101
  }): Promise<{
87
- priors: PriorRecord[];
102
+ lessons: LessonRecord[];
88
103
  injectedContext: string;
89
104
  }>;
90
- retrievePriors({ runId, path, context, }: {
105
+ retrieveLessons({ runId, scopePaths, context, }: {
91
106
  runId: string;
92
- path: string | null;
107
+ scopePaths: string[] | null;
93
108
  context: string;
94
109
  }): Promise<{
95
- priors: PriorRecord[];
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":"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"}
1
+ {"version":3,"file":"runtimeClient.d.ts","sourceRoot":"","sources":["../src/runtimeClient.ts"],"names":[],"mappings":"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"}
@@ -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
- constructor(baseUrl, fetchFn) {
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
- cwd: request.cwd,
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
- return { runId: payload.run_id };
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({ name: request.name, parent_run_id: request.parentRunId }),
69
- });
70
- return { runId: payload.run_id };
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 updateRunLog({ runId, logText, replace, }) {
85
- await this.request("/runner/update-log", {
101
+ async logRunIo({ runId, kind, value, }) {
102
+ await this.request("/runner/run-io", {
86
103
  method: "POST",
87
- body: toJsonBody({ run_id: runId, log_text: logText, replace }),
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 queryPriors({ runId, path, }) {
91
- const payload = await this.request("/internal/priors/query", { method: "POST", body: toJsonBody({ run_id: runId, path }) });
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
- priors: payload.priors ?? [],
114
+ lessons: payload.lessons ?? [],
94
115
  injectedContext: payload.injected_context ?? "",
95
116
  };
96
117
  }
97
- async retrievePriors({ runId, path, context, }) {
98
- const payload = await this.request("/internal/priors/retrieve", {
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
- path,
123
+ scope_paths: scopePaths,
103
124
  context,
104
- ignore_prior_ids: [],
125
+ ignore_lesson_ids: [],
105
126
  }),
106
- });
107
- return { priors: payload.priors ?? [] };
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
- prompt_suffix_json: request.promptSuffixJson,
118
- prepare_runtime_priors: request.prepareRuntimePriors ?? false,
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
- nodeUuid: payload.node_uuid,
123
- nodeKind: payload.node_kind ?? null,
144
+ stepUuid: requireStringField(payload, "step_uuid"),
145
+ stepKind: payload.step_kind ?? null,
124
146
  preparedInputJson: payload.prepared_input_json ?? request.inputJson,
125
- promptSuffixJson: payload.prompt_suffix_json ?? request.promptSuffixJson,
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
- node_uuid: request.nodeUuid,
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
- node_kind: request.nodeKind ?? null,
141
- prompt_suffix_json: request.promptSuffixJson ?? "[]",
142
- prior_metadata: request.priorMetadata ?? null,
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
- node_uuid: request.nodeUuid,
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
- node_kind: request.nodeKind ?? null,
159
- prompt_suffix_json: request.promptSuffixJson ?? "[]",
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
- prior_metadata: request.priorMetadata ?? null,
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
- async request(path, init) {
177
- const agentToken = typeof process !== "undefined" ? process.env.SOVARA_AGENT_TOKEN?.trim() : "";
178
- const accessToken = typeof process !== "undefined" ? process.env.SOVARA_ACCESS_TOKEN?.trim() : "";
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
- ...(accessToken ? { authorization: `Bearer ${accessToken}` } : {}),
220
+ ...(platformSession ? { "x-sovara-platform-session": platformSession } : {}),
221
+ ...(runWriteToken ? { [RUN_WRITE_TOKEN_HEADER]: runWriteToken } : {}),
185
222
  ...(init.headers ?? {}),
186
223
  },
187
224
  });