@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/context.js CHANGED
@@ -1,73 +1,210 @@
1
1
  import { AsyncLocalStorage } from "node:async_hooks";
2
+ import { loadAgentConnection, resolveProjectConfig } from "./agentCredentials.js";
2
3
  import { collectCodeVersion } from "./codeVersion.js";
3
4
  import { readRunnerConfig } from "./env.js";
4
- import { resolveProjectContext } from "./projectContext.js";
5
5
  import { installRunLogCapture } from "./runLogCapture.js";
6
- import { RuntimeClient } from "./runtimeClient.js";
6
+ import { RuntimeClient, RuntimeClientError } from "./runtimeClient.js";
7
7
  import { ensureServerRunning } from "./serverLifecycle.js";
8
- import { startRunSseListener } from "./sseListener.js";
8
+ import { isDegraded, markDegraded, raiseIfConfigError, SovaraConfigError } from "./failsafe.js";
9
9
  import { ensureMcpPatchInstalled } from "./mcpPatch.js";
10
+ import { warnOnce } from "./util/logger.js";
10
11
  const scopeStorage = new AsyncLocalStorage();
11
- function normalizeOptions(input) {
12
- if (typeof input === "string") {
13
- return { name: input };
12
+ const lessonScopeStorage = new AsyncLocalStorage();
13
+ export const client = new RuntimeClient(readRunnerConfig().url);
14
+ const ROOT_SCOPE_MARKERS = new Set(["", ".", "/"]);
15
+ function normalizeRunOptions(input) {
16
+ const options = typeof input === "string" ? { name: input } : input;
17
+ const name = options.name.trim();
18
+ if (!name) {
19
+ throw new Error("withSovaraRun() name must be a non-empty string.");
20
+ }
21
+ return { ...options, name };
22
+ }
23
+ function normalizeSubrunOptions(input) {
24
+ const options = typeof input === "string" ? { name: input } : input;
25
+ const name = options.name.trim();
26
+ if (!name) {
27
+ throw new Error("withSovaraSubrun() name must be a non-empty string.");
28
+ }
29
+ return { ...options, name };
30
+ }
31
+ function normalizeLessonScopePath(path) {
32
+ if (typeof path !== "string") {
33
+ throw new Error("lessonScope paths must be strings.");
34
+ }
35
+ const raw = path.trim();
36
+ if (ROOT_SCOPE_MARKERS.has(raw))
37
+ return "";
38
+ if (raw.includes("//")) {
39
+ throw new Error("lessonScope paths must not contain '//'.");
40
+ }
41
+ const cleaned = raw.replace(/^\/+|\/+$/g, "");
42
+ if (!cleaned)
43
+ return "";
44
+ for (const segment of cleaned.split("/")) {
45
+ if (!segment || segment === "." || segment === ".." || segment.startsWith(".")) {
46
+ throw new Error(`Invalid lessonScope path segment: ${segment}`);
47
+ }
48
+ }
49
+ return `${cleaned}/`;
50
+ }
51
+ export function normalizeLessonScope(scope) {
52
+ if (scope === null || scope === undefined)
53
+ return null;
54
+ if (typeof scope === "string") {
55
+ const normalized = normalizeLessonScopePath(scope);
56
+ return normalized ? [normalized] : null;
57
+ }
58
+ if (!Array.isArray(scope)) {
59
+ throw new Error("lessonScope must be a string, string array, null, or undefined.");
60
+ }
61
+ const paths = [];
62
+ for (const item of scope) {
63
+ const normalized = normalizeLessonScopePath(item);
64
+ if (!normalized)
65
+ return null;
66
+ if (!paths.includes(normalized))
67
+ paths.push(normalized);
68
+ }
69
+ return paths;
70
+ }
71
+ function cloneLessonScopePaths(scopePaths) {
72
+ return scopePaths === null ? null : [...scopePaths];
73
+ }
74
+ function ambientLessonScopePaths() {
75
+ const scopePaths = lessonScopeStorage.getStore();
76
+ return scopePaths === undefined ? undefined : cloneLessonScopePaths(scopePaths);
77
+ }
78
+ function resolveLessonScope(lessonScope, fallback) {
79
+ return lessonScope === undefined
80
+ ? cloneLessonScopePaths(fallback)
81
+ : normalizeLessonScope(lessonScope);
82
+ }
83
+ function scopeWithLessonScope(parent, lessonScopePaths) {
84
+ return {
85
+ ...parent,
86
+ lessonScopePaths: cloneLessonScopePaths(lessonScopePaths),
87
+ };
88
+ }
89
+ function resolveRunProjectConfig(cwd, options) {
90
+ try {
91
+ return resolveProjectConfig(cwd, options.projectName);
92
+ }
93
+ catch (error) {
94
+ if (options.__testing?.client && options.__testing.skipLifecycle) {
95
+ return { projectName: "Project", projectRoot: cwd };
96
+ }
97
+ throw new SovaraConfigError(error instanceof Error ? error.message : String(error));
14
98
  }
15
- return input;
16
99
  }
17
100
  export function getCurrentRunScope() {
18
101
  return scopeStorage.getStore();
19
102
  }
103
+ function currentScopeFor(apiName) {
104
+ const scope = getCurrentRunScope();
105
+ if (!scope) {
106
+ warnOnce(apiName, `[sovara] ${apiName}() only works inside an active Sovara run.`);
107
+ }
108
+ return scope;
109
+ }
110
+ export function getRunId() {
111
+ return getCurrentRunScope()?.runId;
112
+ }
113
+ export async function logMetrics(metrics) {
114
+ const scope = currentScopeFor("logMetrics");
115
+ if (!scope)
116
+ return;
117
+ if (!scope.client.logMetrics)
118
+ return;
119
+ await scope.client.logMetrics({ runId: scope.runId, metrics });
120
+ }
121
+ export async function logInput(input) {
122
+ const scope = currentScopeFor("logInput");
123
+ if (!scope)
124
+ return;
125
+ if (!scope.client.logInput)
126
+ return;
127
+ await scope.client.logInput({ runId: scope.runId, value: input });
128
+ }
129
+ export async function logOutput(output) {
130
+ const scope = currentScopeFor("logOutput");
131
+ if (!scope)
132
+ return;
133
+ if (!scope.client.logOutput)
134
+ return;
135
+ await scope.client.logOutput({ runId: scope.runId, value: output });
136
+ }
137
+ export async function queueForAnnotation() {
138
+ const scope = currentScopeFor("queueForAnnotation");
139
+ if (!scope)
140
+ return;
141
+ if (!scope.client.requestAnnotationEvaluation)
142
+ return;
143
+ await scope.client.requestAnnotationEvaluation({ runId: scope.runId });
144
+ }
20
145
  export async function withSovaraRun(input, fn) {
21
146
  await ensureMcpPatchInstalled();
22
- const options = normalizeOptions(input);
147
+ const options = normalizeRunOptions(input);
23
148
  const parent = getCurrentRunScope();
149
+ if (!parent && isDegraded()) {
150
+ return await fn();
151
+ }
24
152
  if (parent) {
25
- const subrun = await parent.client.registerSubrun({
26
- name: options.name,
27
- parentRunId: parent.runId,
28
- });
29
- const scope = {
30
- runId: subrun.runId,
31
- name: options.name,
32
- url: parent.url,
33
- client: parent.client,
34
- };
35
- try {
36
- return await scopeStorage.run(scope, fn);
37
- }
38
- finally {
39
- await parent.client.deregisterRun({ runId: scope.runId });
40
- }
153
+ console.warn("withSovaraRun() was called inside an active run; ignoring nested run. Use withSovaraSubrun() for child agent execution.");
154
+ return await fn();
41
155
  }
42
156
  const config = readRunnerConfig();
43
- const url = options.url ?? config.url;
157
+ const project = resolveRunProjectConfig(config.cwd, options);
158
+ const connection = loadAgentConnection(project.projectName);
159
+ const url = options.url ?? connection?.serverUrl ?? config.url;
44
160
  const skipLifecycle = options.__testing?.skipLifecycle ?? false;
45
161
  if (!skipLifecycle) {
46
- await ensureServerRunning(url);
162
+ const reachable = await ensureServerRunning(url);
163
+ if (!reachable) {
164
+ return await fn(); // no-op: run user code without a scope
165
+ }
47
166
  }
48
- const client = options.__testing?.client ?? new RuntimeClient(url);
49
- const project = await resolveProjectContext(client, config.cwd, options.project, {
50
- allowMissingProjectConfig: Boolean(options.__testing?.client
51
- && skipLifecycle
52
- && !options.__testing.requireProjectConfig),
53
- });
167
+ const client = options.__testing?.client ?? new RuntimeClient(url, undefined, connection?.agentToken);
54
168
  const codeVersion = collectCodeVersion(project.projectRoot);
55
- const registration = await client.registerRun({
56
- name: options.name,
57
- cwd: config.cwd,
58
- command: process.argv.join(" "),
59
- environment: config.environment,
60
- projectId: project.projectId,
61
- projectName: project.projectName,
62
- projectDescription: project.projectDescription,
63
- projectRoot: project.projectRoot,
64
- codeVersion,
65
- });
169
+ let registration;
170
+ try {
171
+ registration = await client.registerRun({
172
+ name: options.name,
173
+ clientRunId: options.clientRunId,
174
+ projectId: connection?.projectId,
175
+ projectName: project.projectName,
176
+ projectRoot: project.projectRoot,
177
+ codeVersion,
178
+ });
179
+ }
180
+ catch (error) {
181
+ raiseIfConfigError(error); // auth -> throw SovaraConfigError
182
+ warnOnce("register", "[sovara] Run registration failed; continuing without recording.");
183
+ markDegraded();
184
+ return await fn();
185
+ }
66
186
  const scope = {
67
187
  runId: registration.runId,
68
188
  name: options.name,
69
189
  url,
70
190
  client,
191
+ lessonScopePaths: resolveLessonScope(options.lessonScope, ambientLessonScopePaths() ?? null),
192
+ };
193
+ const pendingLogUpdates = new Set();
194
+ const trackLogUpdate = (update) => {
195
+ const tracked = update.catch((error) => {
196
+ // A buffered log chunk can reach the server after the run has been
197
+ // deregistered, which answers 409 "Run is not active". That race is
198
+ // benign — swallow it. Anything else is worth a one-time warning.
199
+ if (error instanceof RuntimeClientError && error.status === 409) {
200
+ return;
201
+ }
202
+ warnOnce("update-run-log-failed", "[sovara] Failed to update run log.");
203
+ });
204
+ pendingLogUpdates.add(tracked);
205
+ void tracked.finally(() => {
206
+ pendingLogUpdates.delete(tracked);
207
+ });
71
208
  };
72
209
  const stopLogCapture = options.captureLogs === false
73
210
  ? () => { }
@@ -75,27 +212,64 @@ export async function withSovaraRun(input, fn) {
75
212
  runId: registration.runId,
76
213
  resolveRunId: () => getCurrentRunScope()?.runId,
77
214
  onAppend: (runId, chunk) => {
78
- void client.updateRunLog({ runId, logText: chunk, replace: false });
215
+ trackLogUpdate(client.updateRunLog({ runId, logText: chunk, replace: false }));
79
216
  },
80
217
  });
81
- let shutdownRequested = false;
82
- const sse = startRunSseListener({
83
- url,
84
- runId: registration.runId,
85
- onShutdown: () => {
86
- shutdownRequested = true;
87
- },
88
- });
89
218
  try {
90
219
  return await scopeStorage.run(scope, fn);
91
220
  }
92
221
  finally {
93
222
  stopLogCapture();
94
- sse.close();
95
- await client.deregisterRun({ runId: registration.runId });
96
- if (shutdownRequested) {
97
- // Deliberately do nothing in library mode: user code decides lifecycle.
223
+ // Flush in-flight log updates before finalizing the run, otherwise a late
224
+ // update lands after deregister and the server rejects it with 409.
225
+ await Promise.allSettled(pendingLogUpdates);
226
+ try {
227
+ await client.deregisterRun({ runId: registration.runId });
228
+ }
229
+ catch (error) {
230
+ // If the run was already finalized server-side (e.g. the connection
231
+ // dropped early and the server's disconnect handler finished it), the
232
+ // deregister answers 409 "Run is not active". That is benign.
233
+ if (!(error instanceof RuntimeClientError && error.status === 409)) {
234
+ throw error;
235
+ }
98
236
  }
99
237
  }
100
238
  }
239
+ export async function withSovaraSubrun(input, fn) {
240
+ const options = normalizeSubrunOptions(input);
241
+ const parent = getCurrentRunScope();
242
+ if (!parent) {
243
+ throw new Error("withSovaraSubrun() requires an active Sovara run.");
244
+ }
245
+ const lessonScopePaths = resolveLessonScope(options.lessonScope, parent.lessonScopePaths);
246
+ const subrun = await parent.client.registerSubrun({
247
+ name: options.name,
248
+ parentRunId: parent.runId,
249
+ lessonScopePaths,
250
+ });
251
+ const scope = {
252
+ runId: subrun.runId,
253
+ name: options.name,
254
+ url: parent.url,
255
+ client: parent.client,
256
+ lessonScopePaths,
257
+ };
258
+ try {
259
+ return await scopeStorage.run(scope, fn);
260
+ }
261
+ finally {
262
+ await parent.client.deregisterRun({ runId: scope.runId });
263
+ }
264
+ }
265
+ export async function withLessonScope(lessonScope, fn) {
266
+ const lessonScopePaths = normalizeLessonScope(lessonScope);
267
+ const parent = getCurrentRunScope();
268
+ return await lessonScopeStorage.run(lessonScopePaths, async () => {
269
+ if (!parent) {
270
+ return await fn();
271
+ }
272
+ return await scopeStorage.run(scopeWithLessonScope(parent, lessonScopePaths), fn);
273
+ });
274
+ }
101
275
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
package/dist/env.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export type RunnerConfig = {
2
2
  cwd: string;
3
- environment: Record<string, string>;
4
3
  url: string;
5
4
  };
6
5
  export declare function resolveServerURL(): string;
package/dist/env.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,gBAAgB,IAAI,YAAY,CAU/C"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,gBAAgB,IAAI,YAAY,CAK/C"}
package/dist/env.js CHANGED
@@ -3,10 +3,8 @@ export function resolveServerURL() {
3
3
  return DEFAULT_SERVER_URL;
4
4
  }
5
5
  export function readRunnerConfig() {
6
- const environment = Object.fromEntries(Object.entries(process.env).filter(([, value]) => typeof value === "string"));
7
6
  return {
8
7
  cwd: process.cwd(),
9
- environment,
10
8
  url: resolveServerURL(),
11
9
  };
12
10
  }
package/dist/env.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAQpD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CACpC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CACnD,CAAC;IAE5B,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,WAAW;QACX,GAAG,EAAE,gBAAgB,EAAE;KACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAOpD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,GAAG,EAAE,gBAAgB,EAAE;KACxB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare class SovaraConfigError extends Error {
2
+ }
3
+ export declare function markDegraded(): void;
4
+ export declare function isDegraded(): boolean;
5
+ export declare function resetDegraded(): void;
6
+ export declare function isAuthError(err: unknown): boolean;
7
+ export declare function raiseIfConfigError(err: unknown): void;
8
+ //# sourceMappingURL=failsafe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failsafe.d.ts","sourceRoot":"","sources":["../src/failsafe.ts"],"names":[],"mappings":"AAEA,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAI/C,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAKjD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAWrD"}
@@ -0,0 +1,28 @@
1
+ import { RuntimeClientError } from "./runtimeClient.js";
2
+ export class SovaraConfigError extends Error {
3
+ }
4
+ let degraded = false;
5
+ export function markDegraded() {
6
+ degraded = true;
7
+ }
8
+ export function isDegraded() {
9
+ return degraded;
10
+ }
11
+ export function resetDegraded() {
12
+ degraded = false;
13
+ }
14
+ export function isAuthError(err) {
15
+ return (err instanceof RuntimeClientError &&
16
+ (err.status === 401 || err.status === 403));
17
+ }
18
+ export function raiseIfConfigError(err) {
19
+ if (err instanceof SovaraConfigError) {
20
+ throw err;
21
+ }
22
+ if (isAuthError(err)) {
23
+ const status = err.status;
24
+ throw new SovaraConfigError(`Sovara rejected the agent token (HTTP ${status}). ` +
25
+ "Reconnect this project with `sovara connect-agent` or set SOVARA_AGENT_TOKEN.");
26
+ }
27
+ }
28
+ //# sourceMappingURL=failsafe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failsafe.js","sourceRoot":"","sources":["../src/failsafe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;CAAG;AAE/C,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,MAAM,UAAU,YAAY;IAC1B,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,OAAO,CACL,GAAG,YAAY,kBAAkB;QACjC,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;QACrC,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,MAAM,GAAI,GAA0B,CAAC,MAAM,CAAC;QAClD,MAAM,IAAI,iBAAiB,CACzB,yCAAyC,MAAM,KAAK;YAClD,+EAA+E,CAClF,CAAC;IACJ,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,6 @@
1
- export { withSovaraRun } from "./context.js";
2
- export type { WithSovaraRunOptions } from "./context.js";
3
- export { evaluateAnnotation, evaluateAnnotationAsync } from "./annotation.js";
4
- export { injectPriors, renderPriorsBlock } from "./priors.js";
5
- export type { InjectPriorsMethod } from "./priors.js";
1
+ export { client, getRunId, logInput, logMetrics, logOutput, queueForAnnotation, withLessonScope, withSovaraRun, withSovaraSubrun, } from "./context.js";
2
+ export type { LessonScopeInput, WithSovaraRunOptions, WithSovaraSubrunOptions } from "./context.js";
3
+ export { injectLessons, renderLessonsBlock } from "./lessons.js";
6
4
  export { trace } from "./trace.js";
7
5
  export type { TraceOptions } from "./trace.js";
8
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,11 +1,16 @@
1
1
  import { installFetchPatch } from "./transport/fetchPatch.js";
2
2
  import { installNodeHttpPatch } from "./transport/nodeHttpPatch.js";
3
3
  import { installAwsSdkHttp2Patch } from "./transport/awsSdkHttp2Patch.js";
4
- installFetchPatch();
5
- installNodeHttpPatch();
6
- installAwsSdkHttp2Patch();
7
- export { withSovaraRun } from "./context.js";
8
- export { evaluateAnnotation, evaluateAnnotationAsync } from "./annotation.js";
9
- export { injectPriors, renderPriorsBlock } from "./priors.js";
4
+ import { warnOnce } from "./util/logger.js";
5
+ try {
6
+ installFetchPatch();
7
+ installNodeHttpPatch();
8
+ installAwsSdkHttp2Patch();
9
+ }
10
+ catch {
11
+ warnOnce("install-patches", "[sovara] Failed to install transport patches; continuing.");
12
+ }
13
+ export { client, getRunId, logInput, logMetrics, logOutput, queueForAnnotation, withLessonScope, withSovaraRun, withSovaraSubrun, } from "./context.js";
14
+ export { injectLessons, renderLessonsBlock } from "./lessons.js";
10
15
  export { trace } from "./trace.js";
11
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,iBAAiB,EAAE,CAAC;AACpB,oBAAoB,EAAE,CAAC;AACvB,uBAAuB,EAAE,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,IAAI,CAAC;IACH,iBAAiB,EAAE,CAAC;IACpB,oBAAoB,EAAE,CAAC;IACvB,uBAAuB,EAAE,CAAC;AAC5B,CAAC;AAAC,MAAM,CAAC;IACP,QAAQ,CACN,iBAAiB,EACjB,2DAA2D,CAC5D,CAAC;AACJ,CAAC;AAED,OAAO,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { LessonRecord } from "./runtimeClient.js";
2
+ export declare function renderLessonsBlock(lessons: LessonRecord[], options?: {
3
+ manual?: boolean;
4
+ }): string;
5
+ export declare function injectLessons(context: unknown): Promise<string>;
6
+ //# sourceMappingURL=lessons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lessons.d.ts","sourceRoot":"","sources":["../src/lessons.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUvD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,MAAM,CA6BR;AAaD,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAgCrE"}
@@ -0,0 +1,68 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { fileURLToPath } from "node:url";
3
+ import { getCurrentRunScope } from "./context.js";
4
+ import { warnOnce } from "./util/logger.js";
5
+ const LESSONS_BLOCK_GUIDANCE = JSON.parse(readFileSync(fileURLToPath(new URL("./lessonsBlockGuidance.json", import.meta.url)), "utf8")).guidance;
6
+ export function renderLessonsBlock(lessons, options = {}) {
7
+ if (lessons.length === 0) {
8
+ return "";
9
+ }
10
+ const manifest = {
11
+ lessons: lessons
12
+ .filter((lesson) => typeof lesson.lesson_id === "string" && lesson.lesson_id.length > 0)
13
+ .map((lesson) => ({ lesson_id: lesson.lesson_id })),
14
+ };
15
+ if (options.manual) {
16
+ manifest.manual = true;
17
+ }
18
+ const blocks = lessons
19
+ .map((lesson) => {
20
+ const heading = lesson.title ?? lesson.name ?? lesson.lesson_id ?? "Untitled";
21
+ const body = lesson.content ?? "";
22
+ return `## ${heading}\n${body}`;
23
+ })
24
+ .join("\n\n");
25
+ return ("<sovara-lessons>\n" +
26
+ `<!-- ${JSON.stringify(manifest)} -->\n` +
27
+ `${LESSONS_BLOCK_GUIDANCE}\n\n` +
28
+ `${blocks}\n` +
29
+ "</sovara-lessons>");
30
+ }
31
+ function stringifyContext(context) {
32
+ if (typeof context === "string") {
33
+ return context;
34
+ }
35
+ try {
36
+ return JSON.stringify(context, null, 2);
37
+ }
38
+ catch {
39
+ return String(context);
40
+ }
41
+ }
42
+ export async function injectLessons(context) {
43
+ if (context === null || context === undefined) {
44
+ throw new Error("context is required for injectLessons()");
45
+ }
46
+ const scope = getCurrentRunScope();
47
+ if (!scope) {
48
+ warnOnce("injectLessons:no-active-run", "[sovara] injectLessons() called outside of withSovaraRun(); returning empty context.");
49
+ return "";
50
+ }
51
+ const { client } = scope;
52
+ try {
53
+ if (!client.retrieveLessons) {
54
+ return "";
55
+ }
56
+ const { lessons } = await client.retrieveLessons({
57
+ runId: scope.runId,
58
+ scopePaths: scope.lessonScopePaths,
59
+ context: stringifyContext(context),
60
+ });
61
+ return renderLessonsBlock(lessons, { manual: true });
62
+ }
63
+ catch (error) {
64
+ warnOnce("injectLessons:fetch-failed", `[sovara] injectLessons() failed: ${error instanceof Error ? error.message : String(error)}`);
65
+ return "";
66
+ }
67
+ }
68
+ //# sourceMappingURL=lessons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lessons.js","sourceRoot":"","sources":["../src/lessons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,sBAAsB,GAAW,IAAI,CAAC,KAAK,CAC/C,YAAY,CACV,aAAa,CAAC,IAAI,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACtE,MAAM,CACP,CACF,CAAC,QAAQ,CAAC;AAEX,MAAM,UAAU,kBAAkB,CAChC,OAAuB,EACvB,UAAgC,EAAE;IAElC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAA4B;QACxC,OAAO,EAAE,OAAO;aACb,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;aACvF,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;KACtD,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,OAAO;SACnB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC;QAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,OAAO,MAAM,OAAO,KAAK,IAAI,EAAE,CAAC;IAClC,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO,CACL,oBAAoB;QACpB,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ;QACxC,GAAG,sBAAsB,MAAM;QAC/B,GAAG,MAAM,IAAI;QACb,mBAAmB,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAgB;IAClD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,QAAQ,CACN,6BAA6B,EAC7B,sFAAsF,CACvF,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC;YAC/C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,KAAK,CAAC,gBAAgB;YAClC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;SACnC,CAAC,CAAC;QACH,OAAO,kBAAkB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CACN,4BAA4B,EAC5B,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC7F,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "guidance": "These retrieved lessons are mandatory operating constraints for the current task when relevant. Because they were retrieved for this prompt, assume they are relevant unless there is a clear reason they do not apply. Before answering, identify internally which lessons apply and use them to shape the response. If a relevant lesson conflicts with your default reasoning, source phrasing, or broader habits, follow the lesson unless the user explicitly asks otherwise. Do not add content or framing that weakens, bypasses, or contradicts a relevant lesson."
3
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"mcpPatch.d.ts","sourceRoot":"","sources":["../src/mcpPatch.ts"],"names":[],"mappings":"AAiMA,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0C7D"}
1
+ {"version":3,"file":"mcpPatch.d.ts","sourceRoot":"","sources":["../src/mcpPatch.ts"],"names":[],"mappings":"AAsMA,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0C7D"}