@sovara/runner 0.1.0 → 0.1.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.
- package/README.md +2 -17
- package/dist/context.d.ts +0 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +0 -7
- package/dist/context.js.map +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -95,7 +95,6 @@ export type WithSovaraRunOptions = {
|
|
|
95
95
|
name: string; // required run name
|
|
96
96
|
url?: string; // server URL (default: SOVARA_SERVER_URL or http://127.0.0.1:5959)
|
|
97
97
|
captureLogs?: boolean; // default: true
|
|
98
|
-
seedRandom?: boolean; // default: false
|
|
99
98
|
user?: { fullName?: string; email?: string }; // overrides only
|
|
100
99
|
project?: { name?: string; description?: string };
|
|
101
100
|
};
|
|
@@ -123,8 +122,8 @@ whatever `fn` returns.
|
|
|
123
122
|
**Nested call** (called from inside another `withSovaraRun`):
|
|
124
123
|
|
|
125
124
|
The nested call is registered as a subrun via `/runner/subrun`, inheriting
|
|
126
|
-
the parent's `client
|
|
127
|
-
|
|
125
|
+
the parent's `client` and `url` settings. It deregisters its own subrun
|
|
126
|
+
when `fn` returns.
|
|
128
127
|
|
|
129
128
|
`fn` exceptions propagate untouched. The run is deregistered in either
|
|
130
129
|
case.
|
|
@@ -154,19 +153,6 @@ await withSovaraRun({ name: "noisy", captureLogs: false }, async () => {
|
|
|
154
153
|
});
|
|
155
154
|
```
|
|
156
155
|
|
|
157
|
-
### Deterministic seed
|
|
158
|
-
|
|
159
|
-
Set `seedRandom: true` to populate `process.env.SOVARA_SEED` with a
|
|
160
|
-
random integer at the start of the run (only if `SOVARA_SEED` isn't
|
|
161
|
-
already set). Useful when you want the run's UUIDs and stochastic
|
|
162
|
-
choices to be reproducible across replays.
|
|
163
|
-
|
|
164
|
-
```ts
|
|
165
|
-
await withSovaraRun({ name: "experiment", seedRandom: true }, async () => {
|
|
166
|
-
// process.env.SOVARA_SEED is now a stable string for this run.
|
|
167
|
-
});
|
|
168
|
-
```
|
|
169
|
-
|
|
170
156
|
### User and project overrides
|
|
171
157
|
|
|
172
158
|
```ts
|
|
@@ -255,7 +241,6 @@ for await (const message of handle.query("What did I install last?")) {
|
|
|
255
241
|
| `SOVARA_SERVER_URL` | Override the Sovara server URL | `http://127.0.0.1:5959` |
|
|
256
242
|
| `HOST` | Server host (used to compute the default URL) | `127.0.0.1` |
|
|
257
243
|
| `PYTHON_PORT` | Server port (used to compute the default URL) | `5959` |
|
|
258
|
-
| `SOVARA_SEED` | Random seed exposed to user code when `seedRandom: true` | unset |
|
|
259
244
|
| `SOVARA_CLAUDE_PROXY_ACTIVE` | Set automatically by `@sovara/runner/claude` to prevent nested proxy loops | unset |
|
|
260
245
|
|
|
261
246
|
### Server URL
|
package/dist/context.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export type WithSovaraRunOptions = {
|
|
|
3
3
|
name: string;
|
|
4
4
|
url?: string;
|
|
5
5
|
captureLogs?: boolean;
|
|
6
|
-
seedRandom?: boolean;
|
|
7
6
|
user?: {
|
|
8
7
|
fullName?: string;
|
|
9
8
|
email?: string;
|
|
@@ -25,7 +24,6 @@ export type RunScope = {
|
|
|
25
24
|
runId: string;
|
|
26
25
|
name: string;
|
|
27
26
|
url: string;
|
|
28
|
-
seedRandom: boolean;
|
|
29
27
|
client: RunScopeClient;
|
|
30
28
|
};
|
|
31
29
|
export declare function getCurrentRunScope(): RunScope | undefined;
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,KAAK,yBAAyB,GAC1B,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,wBAAwB,GACxB,aAAa,GACb,aAAa,GACb,cAAc,GACd,iBAAiB,CAAC;AAEtB,KAAK,2BAA2B,GAC5B,2BAA2B,GAC3B,0BAA0B,GAC1B,6BAA6B,CAAC;AAElC,KAAK,2BAA2B,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,yBAAyB,CAAC,GACzE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,GAAG,2BAA2B,CAAC,CAAC,CAAC;AAE1F,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAWF,wBAAgB,kBAAkB,IAAI,QAAQ,GAAG,SAAS,CAEzD;AAED,wBAAsB,aAAa,CAAC,CAAC,EACnC,KAAK,EAAE,MAAM,GAAG,oBAAoB,EACpC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CA0FZ"}
|
package/dist/context.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
-
import { randomInt } from "node:crypto";
|
|
3
2
|
import { readRunnerConfig } from "./env.js";
|
|
4
3
|
import { resolveProjectContext } from "./projectContext.js";
|
|
5
4
|
import { installRunLogCapture } from "./runLogCapture.js";
|
|
@@ -31,7 +30,6 @@ export async function withSovaraRun(input, fn) {
|
|
|
31
30
|
runId: subrun.runId,
|
|
32
31
|
name: options.name,
|
|
33
32
|
url: parent.url,
|
|
34
|
-
seedRandom: parent.seedRandom,
|
|
35
33
|
client: parent.client,
|
|
36
34
|
};
|
|
37
35
|
try {
|
|
@@ -50,10 +48,6 @@ export async function withSovaraRun(input, fn) {
|
|
|
50
48
|
const client = options.__testing?.client ?? new RuntimeClient(url);
|
|
51
49
|
const user = await resolveActiveUser(client, options.user);
|
|
52
50
|
const project = await resolveProjectContext(client, config.cwd, options.project);
|
|
53
|
-
const seedRandom = options.seedRandom ?? false;
|
|
54
|
-
if (seedRandom && !process.env.SOVARA_SEED) {
|
|
55
|
-
process.env.SOVARA_SEED = String(randomInt(0, 2 ** 31));
|
|
56
|
-
}
|
|
57
51
|
const registration = await client.registerRun({
|
|
58
52
|
name: options.name,
|
|
59
53
|
cwd: config.cwd,
|
|
@@ -71,7 +65,6 @@ export async function withSovaraRun(input, fn) {
|
|
|
71
65
|
runId: registration.runId,
|
|
72
66
|
name: options.name,
|
|
73
67
|
url,
|
|
74
|
-
seedRandom,
|
|
75
68
|
client,
|
|
76
69
|
};
|
|
77
70
|
const stopLogCapture = options.captureLogs === false
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sovara/runner",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "TypeScript runner for Sovara — wrap a script in a single function to record every LLM call, tool invocation, and log line into a structured run graph.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "SovaraLabs",
|
|
@@ -44,8 +44,7 @@
|
|
|
44
44
|
"node": ">=18"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
|
-
"access": "public"
|
|
48
|
-
"provenance": true
|
|
47
|
+
"access": "public"
|
|
49
48
|
},
|
|
50
49
|
"scripts": {
|
|
51
50
|
"build": "node scripts/copy-patterns.mjs && tsc -p tsconfig.build.json && node scripts/copy-dist-patterns.mjs",
|