@sovara/runner 0.1.1 → 0.3.3

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 (47) hide show
  1. package/README.md +64 -18
  2. package/dist/annotation.d.ts +3 -0
  3. package/dist/annotation.d.ts.map +1 -0
  4. package/dist/annotation.js +27 -0
  5. package/dist/annotation.js.map +1 -0
  6. package/dist/codeVersion.d.ts +19 -0
  7. package/dist/codeVersion.d.ts.map +1 -0
  8. package/dist/codeVersion.js +125 -0
  9. package/dist/codeVersion.js.map +1 -0
  10. package/dist/context.d.ts +4 -2
  11. package/dist/context.d.ts.map +1 -1
  12. package/dist/context.js +8 -1
  13. package/dist/context.js.map +1 -1
  14. package/dist/env.d.ts +1 -0
  15. package/dist/env.d.ts.map +1 -1
  16. package/dist/env.js +75 -1
  17. package/dist/env.js.map +1 -1
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +2 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/payload/editIoExcludePatterns.json +3 -0
  23. package/dist/payload/wrap.d.ts +5 -1
  24. package/dist/payload/wrap.d.ts.map +1 -1
  25. package/dist/payload/wrap.js +75 -3
  26. package/dist/payload/wrap.js.map +1 -1
  27. package/dist/projectContext.d.ts +3 -1
  28. package/dist/projectContext.d.ts.map +1 -1
  29. package/dist/projectContext.js +23 -17
  30. package/dist/projectContext.js.map +1 -1
  31. package/dist/runtimeClient.d.ts +6 -0
  32. package/dist/runtimeClient.d.ts.map +1 -1
  33. package/dist/runtimeClient.js +16 -0
  34. package/dist/runtimeClient.js.map +1 -1
  35. package/dist/serverLifecycle.d.ts.map +1 -1
  36. package/dist/serverLifecycle.js +1 -33
  37. package/dist/serverLifecycle.js.map +1 -1
  38. package/dist/toolTraceUtils.d.ts +37 -0
  39. package/dist/toolTraceUtils.d.ts.map +1 -0
  40. package/dist/toolTraceUtils.js +184 -0
  41. package/dist/toolTraceUtils.js.map +1 -0
  42. package/dist/trace.d.ts +13 -0
  43. package/dist/trace.d.ts.map +1 -0
  44. package/dist/trace.js +133 -0
  45. package/dist/trace.js.map +1 -0
  46. package/dist/user.js +1 -1
  47. package/package.json +3 -2
package/README.md CHANGED
@@ -11,9 +11,9 @@ with Python runs in the same project.
11
11
  ## Requirements
12
12
 
13
13
  - Node 18 or newer (built-in `fetch`).
14
- - A running Sovara server on the same machine. The runner will auto-launch
15
- it via `so-cli server start` if it's installed and not already running.
16
- - A Sovara user and project, configured once with `so-cli init`.
14
+ - A reachable Sovara backend. For local use, open the Sovara desktop app;
15
+ for enterprise use, point `SOVARA_SERVER_URL` at the remote endpoint.
16
+ - A Sovara user and project, configured once with `sovara init`.
17
17
 
18
18
  ## Install
19
19
 
@@ -110,11 +110,10 @@ whatever `fn` returns.
110
110
 
111
111
  **Top-level call** (no parent run on the stack):
112
112
 
113
- 1. Health-checks the server, auto-launching it via `so-cli server start`
114
- if it's unreachable.
115
- 2. Resolves the active user. Fails hard with a `so-cli init` hint if
113
+ 1. Health-checks the configured server and fails fast if it is unreachable.
114
+ 2. Resolves the active user. Fails hard with a `sovara init` hint if
116
115
  user setup is missing.
117
- 3. Resolves the project for `process.cwd()`. Fails hard with a `so-cli init`
116
+ 3. Resolves the project for `process.cwd()`. Fails hard with a `sovara init`
118
117
  hint if the cwd isn't part of a known Sovara project.
119
118
  4. Registers the run, opens an SSE shutdown listener, runs `fn` inside
120
119
  an `AsyncLocalStorage` scope, and deregisters in `finally`.
@@ -167,7 +166,54 @@ await withSovaraRun(
167
166
  ```
168
167
 
169
168
  Overrides are only applied if user/project are present. They don't bypass
170
- the `so-cli init` requirement — they just refine the values.
169
+ the `sovara init` requirement — they just refine the values.
170
+
171
+ ### `trace(fn, options?)`
172
+
173
+ Use `trace` when an important custom function or tool does not make an LLM
174
+ HTTP call on its own, but should still appear as a tool node in the Sovara
175
+ run graph.
176
+
177
+ ```ts
178
+ import { trace, withSovaraRun } from "@sovara/runner";
179
+
180
+ const lookupCustomer = trace(
181
+ async function lookupCustomer(customerId: string) {
182
+ return { customerId, tier: "enterprise" };
183
+ },
184
+ { meta: { system: "crm" } },
185
+ );
186
+
187
+ await withSovaraRun("support-agent", async () => {
188
+ const customer = await lookupCustomer("cust_123");
189
+ // Continue your agent flow with customer.
190
+ });
191
+ ```
192
+
193
+ `trace` records function arguments as the node input and the return value as
194
+ the node output. If the wrapped function throws, the error type and message
195
+ are recorded and the original exception is re-thrown. Outside an active
196
+ `withSovaraRun(...)` scope, the wrapper calls the function normally without
197
+ recording anything.
198
+
199
+ ```ts
200
+ export type TraceOptions = {
201
+ name?: string; // display name for the tool node, default: function/method name
202
+ meta?: Record<string, unknown>; // optional metadata stored with input/output
203
+ };
204
+ ```
205
+
206
+ The same helper can be used as a standard Stage 3 method decorator when your
207
+ TypeScript configuration supports decorators:
208
+
209
+ ```ts
210
+ class WeatherService {
211
+ @trace({ name: "weather_lookup" })
212
+ async lookup(city: string) {
213
+ return { city, forecast: "sunny" };
214
+ }
215
+ }
216
+ ```
171
217
 
172
218
  ## Claude Agent SDK integration
173
219
 
@@ -257,14 +303,14 @@ Or set `SOVARA_SERVER_URL` once for the process.
257
303
 
258
304
  The runner fails fast for misconfiguration. Common ones:
259
305
 
260
- - **`Sovara server is not running and 'so-cli' was not found. Start it manually with 'so-cli server start' or install Sovara.`**
261
- Install the Sovara CLI or start the server yourself.
306
+ - **`Sovara backend is not reachable at <url>. Open the Sovara desktop app or configure SOVARA_SERVER_URL to a reachable enterprise Sovara backend endpoint.`**
307
+ Open the desktop app for local runs, or point `SOVARA_SERVER_URL` at the enterprise backend.
262
308
 
263
- - **``Sovara user setup is missing. Run `so-cli init --user-name <full-name> --user-email <email>` and retry.``**
264
- Run the suggested `so-cli init` command.
309
+ - **``Sovara user setup is missing. Run `sovara init --user-name <full-name> --user-email <email>` and retry.``**
310
+ Run the suggested `sovara init` command.
265
311
 
266
- - **``Sovara project setup is missing for <cwd>. Run `so-cli init --project-root "<cwd>" --project-name <project-name>` and retry.``**
267
- Run the suggested `so-cli init` command.
312
+ - **``Sovara project setup is missing for <cwd>. Run `sovara init --project-root "<cwd>" --project-name <project-name>` and retry.``**
313
+ Run the suggested `sovara init` command.
268
314
 
269
315
  - **`Custom Claude Agent SDK transports are not supported yet under sovara.`**
270
316
  Remove `options.transport` from your `query()` / `startup()` call.
@@ -296,9 +342,9 @@ npm run build # emit dist/ via tsc -p tsconfig.build.json
296
342
 
297
343
  ## Releasing
298
344
 
299
- Publishing is automated via GitHub Actions using npm trusted publishing (OIDC)
300
- with provenance attestations. There is no `NPM_TOKEN` secret — the
301
- `runner-ts-release.yaml` workflow authenticates to npm via OIDC.
345
+ Publishing is automated via GitHub Actions using npm trusted publishing (OIDC).
346
+ There is no `NPM_TOKEN` secret — the `runner-ts-release.yaml` workflow
347
+ authenticates to npm via OIDC.
302
348
 
303
349
  To cut a release:
304
350
 
@@ -311,6 +357,6 @@ To cut a release:
311
357
  ```
312
358
  3. The `Runner (TypeScript) — Release` workflow verifies the tag matches
313
359
  `package.json`, runs typecheck + tests + build, then publishes with
314
- `npm publish --provenance --access public`.
360
+ `npm publish --access public`.
315
361
 
316
362
  The tag must match the package version exactly; mismatches fail the workflow.
@@ -0,0 +1,3 @@
1
+ export declare function evaluateAnnotation(): void;
2
+ export declare function evaluateAnnotationAsync(): Promise<void>;
3
+ //# sourceMappingURL=annotation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation.d.ts","sourceRoot":"","sources":["../src/annotation.ts"],"names":[],"mappings":"AAYA,wBAAgB,kBAAkB,IAAI,IAAI,CASzC;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAW7D"}
@@ -0,0 +1,27 @@
1
+ import { getCurrentRunScope } from "./context.js";
2
+ import { warnOnce } from "./util/logger.js";
3
+ function warnAnnotationRequestFailed(error) {
4
+ warnOnce("evaluateAnnotation:request-failed", `[sovara] evaluateAnnotation() failed: ${error instanceof Error ? error.message : String(error)}`);
5
+ }
6
+ export function evaluateAnnotation() {
7
+ const scope = getCurrentRunScope();
8
+ if (!scope?.client.requestAnnotationEvaluation) {
9
+ return;
10
+ }
11
+ void scope.client
12
+ .requestAnnotationEvaluation({ runId: scope.runId })
13
+ .catch(warnAnnotationRequestFailed);
14
+ }
15
+ export async function evaluateAnnotationAsync() {
16
+ const scope = getCurrentRunScope();
17
+ if (!scope?.client.requestAnnotationEvaluation) {
18
+ return;
19
+ }
20
+ try {
21
+ await scope.client.requestAnnotationEvaluation({ runId: scope.runId });
22
+ }
23
+ catch (error) {
24
+ warnAnnotationRequestFailed(error);
25
+ }
26
+ }
27
+ //# sourceMappingURL=annotation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation.js","sourceRoot":"","sources":["../src/annotation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,SAAS,2BAA2B,CAAC,KAAc;IACjD,QAAQ,CACN,mCAAmC,EACnC,yCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,2BAA2B,EAAE,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,KAAK,KAAK,CAAC,MAAM;SACd,2BAA2B,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;SACnD,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,2BAA2B,EAAE,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ export type CodeVersion = {
2
+ type: "git";
3
+ available: boolean;
4
+ status: "clean" | "dirty" | "missing_project_root" | "missing_project_config" | "git_unavailable" | "not_git_repo" | "no_commit";
5
+ repo_root: string | null;
6
+ commit_sha: string | null;
7
+ short_commit_sha: string | null;
8
+ branch: string | null;
9
+ dirty: boolean | null;
10
+ remote_url: string | null;
11
+ web_url: string | null;
12
+ commit_url: string | null;
13
+ };
14
+ export declare function normalizeGitRemoteURL(remoteURL: string | null | undefined): string | null;
15
+ export declare function buildCommitURL(webURL: string | null, commitSHA: string | null): string | null;
16
+ export declare function collectCodeVersion(projectRoot: string | null | undefined): CodeVersion;
17
+ export declare function findProjectRoot(startPath: string): string | null;
18
+ export declare function readProjectId(projectRoot: string): string;
19
+ //# sourceMappingURL=codeVersion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeVersion.d.ts","sourceRoot":"","sources":["../src/codeVersion.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EACF,OAAO,GACP,OAAO,GACP,sBAAsB,GACtB,wBAAwB,GACxB,iBAAiB,GACjB,cAAc,GACd,WAAW,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AA4BF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CA6BzF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAiB7F;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,CAqCtF;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYhE;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzD"}
@@ -0,0 +1,125 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { existsSync, readFileSync } from "node:fs";
3
+ import { dirname, join, resolve } from "node:path";
4
+ const GIT_TIMEOUT_MS = 2000;
5
+ const emptyCodeVersion = (status) => ({
6
+ type: "git",
7
+ available: false,
8
+ status,
9
+ repo_root: null,
10
+ commit_sha: null,
11
+ short_commit_sha: null,
12
+ branch: null,
13
+ dirty: null,
14
+ remote_url: null,
15
+ web_url: null,
16
+ commit_url: null,
17
+ });
18
+ function runGit(cwd, args) {
19
+ const result = spawnSync("git", ["-C", cwd, ...args], {
20
+ encoding: "utf8",
21
+ timeout: GIT_TIMEOUT_MS,
22
+ });
23
+ if (result.error || result.status !== 0) {
24
+ return { ok: false, stdout: "" };
25
+ }
26
+ return { ok: true, stdout: result.stdout.trim() };
27
+ }
28
+ export function normalizeGitRemoteURL(remoteURL) {
29
+ const remote = remoteURL?.trim();
30
+ if (!remote) {
31
+ return null;
32
+ }
33
+ const ssh = /^(?:ssh:\/\/)?git@([^/:]+)(?::|\/)(.+)$/.exec(remote);
34
+ if (ssh) {
35
+ const host = ssh[1];
36
+ const path = ssh[2].replace(/\/+$/, "").replace(/\.git$/, "");
37
+ return path ? `https://${host}/${path}` : null;
38
+ }
39
+ let parsed;
40
+ try {
41
+ parsed = new URL(remote);
42
+ }
43
+ catch {
44
+ return null;
45
+ }
46
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
47
+ return null;
48
+ }
49
+ const path = parsed.pathname.replace(/\/+$/, "").replace(/\.git$/, "");
50
+ if (!parsed.hostname || !path || path === "/") {
51
+ return null;
52
+ }
53
+ const port = parsed.port ? `:${parsed.port}` : "";
54
+ return `https://${parsed.hostname}${port}${path}`;
55
+ }
56
+ export function buildCommitURL(webURL, commitSHA) {
57
+ if (!webURL || !commitSHA) {
58
+ return null;
59
+ }
60
+ let hostname = "";
61
+ try {
62
+ hostname = new URL(webURL).hostname;
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ if (hostname === "github.com" || hostname.endsWith(".github.com")) {
68
+ return `${webURL}/commit/${commitSHA}`;
69
+ }
70
+ if (hostname === "gitlab.com" || hostname.endsWith(".gitlab.com")) {
71
+ return `${webURL}/-/commit/${commitSHA}`;
72
+ }
73
+ return null;
74
+ }
75
+ export function collectCodeVersion(projectRoot) {
76
+ if (!projectRoot) {
77
+ return emptyCodeVersion("missing_project_root");
78
+ }
79
+ const repo = runGit(projectRoot, ["rev-parse", "--show-toplevel"]);
80
+ if (!repo.ok || !repo.stdout) {
81
+ return emptyCodeVersion("not_git_repo");
82
+ }
83
+ const commit = runGit(repo.stdout, ["rev-parse", "HEAD"]);
84
+ if (!commit.ok || !commit.stdout) {
85
+ return {
86
+ ...emptyCodeVersion("no_commit"),
87
+ repo_root: repo.stdout,
88
+ };
89
+ }
90
+ const branch = runGit(repo.stdout, ["branch", "--show-current"]);
91
+ const status = runGit(repo.stdout, ["status", "--porcelain", "--untracked-files=all"]);
92
+ const remote = runGit(repo.stdout, ["remote", "get-url", "origin"]);
93
+ const dirty = status.ok ? status.stdout.length > 0 : null;
94
+ const webURL = normalizeGitRemoteURL(remote.ok ? remote.stdout : null);
95
+ return {
96
+ type: "git",
97
+ available: true,
98
+ status: dirty ? "dirty" : "clean",
99
+ repo_root: repo.stdout,
100
+ commit_sha: commit.stdout,
101
+ short_commit_sha: commit.stdout.slice(0, 7),
102
+ branch: branch.ok && branch.stdout ? branch.stdout : null,
103
+ dirty,
104
+ remote_url: webURL,
105
+ web_url: webURL,
106
+ commit_url: buildCommitURL(webURL, commit.stdout),
107
+ };
108
+ }
109
+ export function findProjectRoot(startPath) {
110
+ let current = resolve(startPath);
111
+ while (true) {
112
+ if (existsSync(join(current, ".sovara", ".project_id"))) {
113
+ return current;
114
+ }
115
+ const parent = dirname(current);
116
+ if (parent === current) {
117
+ return null;
118
+ }
119
+ current = parent;
120
+ }
121
+ }
122
+ export function readProjectId(projectRoot) {
123
+ return readFileSync(join(projectRoot, ".sovara", ".project_id"), "utf8").trim();
124
+ }
125
+ //# sourceMappingURL=codeVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeVersion.js","sourceRoot":"","sources":["../src/codeVersion.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -14,12 +14,14 @@ export type WithSovaraRunOptions = {
14
14
  __testing?: {
15
15
  client?: RunScopeClient;
16
16
  skipLifecycle?: boolean;
17
+ requireProjectConfig?: boolean;
17
18
  };
18
19
  };
19
- type CoreRunScopeClientMethods = "registerSubrun" | "deregisterRun" | "updateRunLog" | "getActiveUser" | "resolveProjectLocation" | "registerRun" | "prepareCall" | "recordOutput" | "recordException";
20
+ type CoreRunScopeClientMethods = "registerSubrun" | "deregisterRun" | "updateRunLog" | "getActiveUser" | "getProject" | "registerRun" | "prepareCall" | "recordOutput" | "recordException";
20
21
  type ClaudeRunScopeClientMethods = "registerClaudeProxyClient" | "registerClaudeSdkToolUse" | "finalizeClaudeSdkToolResult";
21
22
  type PriorsRunScopeClientMethods = "queryPriors" | "retrievePriors";
22
- export type RunScopeClient = Pick<RuntimeClient, CoreRunScopeClientMethods> & Partial<Pick<RuntimeClient, ClaudeRunScopeClientMethods | PriorsRunScopeClientMethods>>;
23
+ type AnnotationRunScopeClientMethods = "requestAnnotationEvaluation";
24
+ export type RunScopeClient = Pick<RuntimeClient, CoreRunScopeClientMethods> & Partial<Pick<RuntimeClient, ClaudeRunScopeClientMethods | PriorsRunScopeClientMethods | AnnotationRunScopeClientMethods>>;
23
25
  export type RunScope = {
24
26
  runId: string;
25
27
  name: string;
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAKA,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;QACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,KAAK,yBAAyB,GAC1B,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,YAAY,GACZ,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,KAAK,+BAA+B,GAAG,6BAA6B,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,yBAAyB,CAAC,GACzE,OAAO,CACL,IAAI,CACF,aAAa,EACb,2BAA2B,GAAG,2BAA2B,GAAG,+BAA+B,CAC5F,CACF,CAAC;AAEJ,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,CAkGZ"}
package/dist/context.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { AsyncLocalStorage } from "node:async_hooks";
2
+ import { collectCodeVersion } from "./codeVersion.js";
2
3
  import { readRunnerConfig } from "./env.js";
3
4
  import { resolveProjectContext } from "./projectContext.js";
4
5
  import { installRunLogCapture } from "./runLogCapture.js";
@@ -47,7 +48,12 @@ export async function withSovaraRun(input, fn) {
47
48
  }
48
49
  const client = options.__testing?.client ?? new RuntimeClient(url);
49
50
  const user = await resolveActiveUser(client, options.user);
50
- const project = await resolveProjectContext(client, config.cwd, options.project);
51
+ const project = await resolveProjectContext(client, config.cwd, options.project, {
52
+ allowMissingProjectConfig: Boolean(options.__testing?.client
53
+ && skipLifecycle
54
+ && !options.__testing.requireProjectConfig),
55
+ });
56
+ const codeVersion = collectCodeVersion(project.projectRoot);
51
57
  const registration = await client.registerRun({
52
58
  name: options.name,
53
59
  cwd: config.cwd,
@@ -60,6 +66,7 @@ export async function withSovaraRun(input, fn) {
60
66
  userId: user.userId,
61
67
  userFullName: user.fullName,
62
68
  userEmail: user.email,
69
+ codeVersion,
63
70
  });
64
71
  const scope = {
65
72
  runId: registration.runId,
@@ -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":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAkDxD,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAY,CAAC;AAEvD,SAAS,gBAAgB,CAAC,KAAoC;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAoC,EACpC,EAAwB;IAExB,MAAM,uBAAuB,EAAE,CAAC;IAEhC,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;YAChD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,MAAM,CAAC,KAAK;SAC1B,CAAC,CAAC;QAEH,MAAM,KAAK,GAAa;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,IAAI,CAAC;YACH,OAAO,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC;IACtC,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE,aAAa,IAAI,KAAK,CAAC;IAEhE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IAEnE,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;QAC/E,yBAAyB,EAAE,OAAO,CAChC,OAAO,CAAC,SAAS,EAAE,MAAM;eACpB,aAAa;eACb,CAAC,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAC7C;KACF,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE5D,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;QAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,YAAY,EAAE,IAAI,CAAC,QAAQ;QAC3B,SAAS,EAAE,IAAI,CAAC,KAAK;QACrB,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,KAAK,GAAa;QACtB,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG;QACH,MAAM;KACP,CAAC;IAEF,MAAM,cAAc,GAClB,OAAO,CAAC,WAAW,KAAK,KAAK;QAC3B,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC;QACV,CAAC,CAAC,oBAAoB,CAAC;YACnB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE,EAAE,KAAK;YAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACzB,KAAK,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACtE,CAAC;SACF,CAAC,CAAC;IAET,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,MAAM,GAAG,GAAG,mBAAmB,CAAC;QAC9B,GAAG;QACH,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,UAAU,EAAE,GAAG,EAAE;YACf,iBAAiB,GAAG,IAAI,CAAC;QAC3B,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1D,IAAI,iBAAiB,EAAE,CAAC;YACtB,wEAAwE;QAC1E,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/env.d.ts CHANGED
@@ -3,5 +3,6 @@ export type RunnerConfig = {
3
3
  environment: Record<string, string>;
4
4
  url: string;
5
5
  };
6
+ export declare function resolveServerURL(environment: Record<string, string>): string;
6
7
  export declare function readRunnerConfig(): RunnerConfig;
7
8
  //# sourceMappingURL=env.d.ts.map
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,YAAY,CAU/C"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAMA,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,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAY5E;AAED,wBAAgB,gBAAgB,IAAI,YAAY,CAU/C"}
package/dist/env.js CHANGED
@@ -1,10 +1,84 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
1
4
  import { DEFAULT_SERVER_URL } from "./constants.js";
5
+ export function resolveServerURL(environment) {
6
+ const envURL = normalizeServerURL(environment.SOVARA_SERVER_URL);
7
+ if (envURL) {
8
+ return envURL;
9
+ }
10
+ const configuredURL = readConfiguredServerURL(environment);
11
+ if (configuredURL) {
12
+ return configuredURL;
13
+ }
14
+ return DEFAULT_SERVER_URL;
15
+ }
2
16
  export function readRunnerConfig() {
3
17
  const environment = Object.fromEntries(Object.entries(process.env).filter(([, value]) => typeof value === "string"));
4
18
  return {
5
19
  cwd: process.cwd(),
6
20
  environment,
7
- url: process.env.SOVARA_SERVER_URL ?? DEFAULT_SERVER_URL,
21
+ url: resolveServerURL(environment),
8
22
  };
9
23
  }
24
+ function readConfiguredServerURL(environment) {
25
+ const home = environment.HOME || homedir();
26
+ if (!home) {
27
+ return null;
28
+ }
29
+ const configPath = join(home, ".sovara", "config.yaml");
30
+ if (!existsSync(configPath)) {
31
+ return null;
32
+ }
33
+ const content = readFileSync(configPath, "utf8");
34
+ for (const rawLine of content.split(/\r?\n/)) {
35
+ const parsed = parseConfigLine(rawLine);
36
+ if (!parsed) {
37
+ continue;
38
+ }
39
+ const [key, value] = parsed;
40
+ if (key !== "server_url" && key !== "sovara_server_url") {
41
+ continue;
42
+ }
43
+ return normalizeServerURL(value);
44
+ }
45
+ return null;
46
+ }
47
+ function parseConfigLine(line) {
48
+ const trimmed = line.trim();
49
+ if (!trimmed || trimmed.startsWith("#")) {
50
+ return null;
51
+ }
52
+ const separator = trimmed.indexOf(":");
53
+ if (separator === -1) {
54
+ return null;
55
+ }
56
+ const key = trimmed.slice(0, separator).trim();
57
+ const value = stripInlineComment(trimmed.slice(separator + 1)).trim().replace(/^['"]|['"]$/g, "");
58
+ if (!key || !value) {
59
+ return null;
60
+ }
61
+ return [key, value];
62
+ }
63
+ function stripInlineComment(value) {
64
+ let inSingle = false;
65
+ let inDouble = false;
66
+ for (let i = 0; i < value.length; i += 1) {
67
+ const char = value[i];
68
+ if (char === "'" && !inDouble) {
69
+ inSingle = !inSingle;
70
+ }
71
+ else if (char === '"' && !inSingle) {
72
+ inDouble = !inDouble;
73
+ }
74
+ else if (char === "#" && !inSingle && !inDouble) {
75
+ return value.slice(0, i);
76
+ }
77
+ }
78
+ return value;
79
+ }
80
+ function normalizeServerURL(value) {
81
+ const trimmed = value?.trim().replace(/\/+$/, "");
82
+ return trimmed || null;
83
+ }
10
84
  //# sourceMappingURL=env.js.map
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,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,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,kBAAkB;KACzD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  export { withSovaraRun } from "./context.js";
2
2
  export type { WithSovaraRunOptions } from "./context.js";
3
+ export { evaluateAnnotation, evaluateAnnotationAsync } from "./annotation.js";
3
4
  export { injectPriors, renderPriorsBlock } from "./priors.js";
4
5
  export type { InjectPriorsMethod } from "./priors.js";
6
+ export { trace } from "./trace.js";
7
+ export type { TraceOptions } from "./trace.js";
5
8
  //# 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,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
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"}
package/dist/index.js CHANGED
@@ -5,5 +5,7 @@ installFetchPatch();
5
5
  installNodeHttpPatch();
6
6
  installAwsSdkHttp2Patch();
7
7
  export { withSovaraRun } from "./context.js";
8
+ export { evaluateAnnotation, evaluateAnnotationAsync } from "./annotation.js";
8
9
  export { injectPriors, renderPriorsBlock } from "./priors.js";
10
+ export { trace } from "./trace.js";
9
11
  //# 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,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,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;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"}
@@ -283,6 +283,9 @@
283
283
  {
284
284
  "pattern": "^uri$"
285
285
  },
286
+ {
287
+ "pattern": "^request_headers(\\.|$)"
288
+ },
286
289
  {
287
290
  "pattern": "^(method|path|pool_(host|port|scheme))$"
288
291
  },
@@ -2,5 +2,9 @@ export type StorageEnvelope<T = unknown> = {
2
2
  raw: T;
3
3
  to_show: Record<string, unknown>;
4
4
  };
5
- export declare function wrapForStorage<T>(raw: T): StorageEnvelope<T>;
5
+ export type StorageEnvelopeOptions = {
6
+ apiType?: string;
7
+ direction?: "input" | "output";
8
+ };
9
+ export declare function wrapForStorage<T>(raw: T, options?: StorageEnvelopeOptions): StorageEnvelope<T>;
6
10
  //# sourceMappingURL=wrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/payload/wrap.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI;IACzC,GAAG,EAAE,CAAC,CAAC;IACP,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAK5D"}
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/payload/wrap.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI;IACzC,GAAG,EAAE,CAAC,CAAC;IACP,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAChC,CAAC;AA+FF,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,eAAe,CAAC,CAAC,CAAC,CAK9F"}