@sovara/runner 0.1.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @sovara/runner
2
2
 
3
- TypeScript runner for [Sovara](https://sovaralabs.github.io/sovara/) — wrap your script in a
3
+ TypeScript runner for [Sovara](https://docs.sovara-labs.com) — wrap your script in a
4
4
  single function and Sovara records every LLM call, tool invocation, and log
5
5
  line into a structured run graph.
6
6
 
@@ -8,12 +8,14 @@ The runner is the TS counterpart to the Python `sovara` runner. It targets
8
8
  the same Sovara server, produces the same node shapes, and is safe to mix
9
9
  with Python runs in the same project.
10
10
 
11
+ Documentation: https://docs.sovara-labs.com
12
+
11
13
  ## Requirements
12
14
 
13
15
  - 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`.
16
+ - A reachable Sovara backend. For local use, open the Sovara desktop app.
17
+ Enterprise agent projects should use their project-specific connection flow.
18
+ - A Sovara user and project, configured once with `sovara init`.
17
19
 
18
20
  ## Install
19
21
 
@@ -93,9 +95,8 @@ completes.
93
95
  ```ts
94
96
  export type WithSovaraRunOptions = {
95
97
  name: string; // required run name
96
- url?: string; // server URL (default: SOVARA_SERVER_URL or http://127.0.0.1:5959)
98
+ url?: string; // server URL (default: http://127.0.0.1:5959)
97
99
  captureLogs?: boolean; // default: true
98
- user?: { fullName?: string; email?: string }; // overrides only
99
100
  project?: { name?: string; description?: string };
100
101
  };
101
102
 
@@ -110,11 +111,10 @@ whatever `fn` returns.
110
111
 
111
112
  **Top-level call** (no parent run on the stack):
112
113
 
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
114
+ 1. Health-checks the configured server and fails fast if it is unreachable.
115
+ 2. Resolves the active user. Fails hard with a `sovara init` hint if
116
116
  user setup is missing.
117
- 3. Resolves the project for `process.cwd()`. Fails hard with a `so-cli init`
117
+ 3. Resolves the project for `process.cwd()`. Fails hard with a `sovara init`
118
118
  hint if the cwd isn't part of a known Sovara project.
119
119
  4. Registers the run, opens an SSE shutdown listener, runs `fn` inside
120
120
  an `AsyncLocalStorage` scope, and deregisters in `finally`.
@@ -167,7 +167,7 @@ await withSovaraRun(
167
167
  ```
168
168
 
169
169
  Overrides are only applied if user/project are present. They don't bypass
170
- the `so-cli init` requirement — they just refine the values.
170
+ the `sovara init` requirement — they just refine the values.
171
171
 
172
172
  ### `trace(fn, options?)`
173
173
 
@@ -285,33 +285,27 @@ for await (const message of handle.query("What did I install last?")) {
285
285
 
286
286
  | Variable | Purpose | Default |
287
287
  | ---------------------------- | -------------------------------------------------------------------------- | ----------------------- |
288
- | `SOVARA_SERVER_URL` | Override the Sovara server URL | `http://127.0.0.1:5959` |
289
288
  | `HOST` | Server host (used to compute the default URL) | `127.0.0.1` |
290
289
  | `PYTHON_PORT` | Server port (used to compute the default URL) | `5959` |
291
290
  | `SOVARA_CLAUDE_PROXY_ACTIVE` | Set automatically by `@sovara/runner/claude` to prevent nested proxy loops | unset |
292
291
 
293
292
  ### Server URL
294
293
 
295
- Either pass `url` per call:
294
+ The TypeScript runner uses the local backend by default. Pass `url` per call only when the caller explicitly manages a remote backend connection:
296
295
 
297
296
  ```ts
298
297
  await withSovaraRun({ name: "demo", url: "http://localhost:6000" }, fn);
299
298
  ```
300
299
 
301
- Or set `SOVARA_SERVER_URL` once for the process.
302
-
303
300
  ## Error messages
304
301
 
305
302
  The runner fails fast for misconfiguration. Common ones:
306
303
 
307
- - **`Sovara server is not running and 'so-cli' was not found. Start it manually with 'so-cli server start' or install Sovara.`**
308
- Install the Sovara CLI or start the server yourself.
309
-
310
- - **``Sovara user setup is missing. Run `so-cli init --user-name <full-name> --user-email <email>` and retry.``**
311
- Run the suggested `so-cli init` command.
304
+ - **`Sovara backend is not reachable at <url>. Open the Sovara desktop app or pass an explicit url to withSovaraRun for a managed remote run.`**
305
+ Open the desktop app for local runs, or pass `url` when the caller owns remote backend setup.
312
306
 
313
- - **``Sovara project setup is missing for <cwd>. Run `so-cli init --project-root "<cwd>" --project-name <project-name>` and retry.``**
314
- Run the suggested `so-cli init` command.
307
+ - **``Sovara project setup is missing for <cwd>. Run `sovara init --project-root "<cwd>" --project-name <project-name>` and retry.``**
308
+ Run the suggested `sovara init` command.
315
309
 
316
310
  - **`Custom Claude Agent SDK transports are not supported yet under sovara.`**
317
311
  Remove `options.transport` from your `query()` / `startup()` call.
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/claudeAgentSdk/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,WAAW,EAErB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAa9E,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,KAAK,SAAS,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AAC5F,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAElD,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AA2PF,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CAMnD;AAED,wBAAsB,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBpE"}
1
+ {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/claudeAgentSdk/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,WAAW,EAErB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAY9E,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,KAAK,SAAS,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AAC5F,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAElD,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAgPF,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CAMnD;AAED,wBAAsB,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBpE"}
@@ -3,7 +3,6 @@ import { randomUUID } from "node:crypto";
3
3
  import { getCurrentRunScope } from "../context.js";
4
4
  import { warnOnce } from "../util/logger.js";
5
5
  import { sanitizeStackTrace } from "../util/stackTrace.js";
6
- import { publishClaudeSdkMessage } from "./parseHook.js";
7
6
  const DEFAULT_ANTHROPIC_BASE_URL = "https://api.anthropic.com";
8
7
  const UNSUPPORTED_CUSTOM_TRANSPORT_MESSAGE = "Custom Claude Agent SDK transports are not supported yet under sovara.";
9
8
  const PROXY_LOOP_MESSAGE = "Claude Agent SDK ANTHROPIC_BASE_URL points at the Sovara Claude proxy itself. Nested Claude proxy configuration is not supported.";
@@ -54,7 +53,7 @@ function isDuplicateSdkTerminalError(error) {
54
53
  return (error instanceof Error &&
55
54
  error.message.startsWith("Claude Code returned an error result:"));
56
55
  }
57
- function wrapQueryResult(createSource, beforeRead, onMessage) {
56
+ function wrapQueryResult(createSource, beforeRead) {
58
57
  let source;
59
58
  async function getSource() {
60
59
  await beforeRead;
@@ -66,7 +65,7 @@ function wrapQueryResult(createSource, beforeRead, onMessage) {
66
65
  const iterator = (async function* () {
67
66
  const resolvedSource = await getSource();
68
67
  if (!isAsyncIterable(resolvedSource)) {
69
- warnOnce("claude-sdk-non-iterable-query", "[sovara] Claude SDK query() returned a non-iterable result; skipping message instrumentation.");
68
+ warnOnce("claude-sdk-non-iterable-query", "[sovara] Claude SDK query() returned a non-iterable result; skipping query wrapper instrumentation.");
70
69
  return;
71
70
  }
72
71
  let yieldedSdkErrorResult = false;
@@ -75,7 +74,6 @@ function wrapQueryResult(createSource, beforeRead, onMessage) {
75
74
  if (isSdkErrorResult(message)) {
76
75
  yieldedSdkErrorResult = true;
77
76
  }
78
- await onMessage(message);
79
77
  yield message;
80
78
  }
81
79
  }
@@ -152,32 +150,22 @@ function instrumentQuery(input, scope) {
152
150
  return wrapQueryResult(() => claudeQuery({
153
151
  ...input,
154
152
  options: nextOptions,
155
- }), registrationPromise, async (message) => {
156
- await publishClaudeSdkMessage(message, {
157
- scope,
158
- stackTrace: sanitizeStackTrace(new Error().stack),
159
- });
160
- });
153
+ }), registrationPromise);
161
154
  }
162
- function wrapWarmQueryResult(source, scope) {
155
+ function wrapWarmQueryResult(source) {
163
156
  if (!isAsyncIterable(source)) {
164
157
  return source;
165
158
  }
166
- return wrapQueryResult(() => source, Promise.resolve(), async (message) => {
167
- await publishClaudeSdkMessage(message, {
168
- scope,
169
- stackTrace: sanitizeStackTrace(new Error().stack),
170
- });
171
- });
159
+ return wrapQueryResult(() => source, Promise.resolve());
172
160
  }
173
- function patchWarmQueryHandle(warmQueryHandle, scope) {
161
+ function patchWarmQueryHandle(warmQueryHandle) {
174
162
  if (!isObject(warmQueryHandle) || typeof warmQueryHandle.query !== "function") {
175
163
  return warmQueryHandle;
176
164
  }
177
165
  const originalQuery = warmQueryHandle.query.bind(warmQueryHandle);
178
166
  const patchedWarmQuery = (prompt) => {
179
167
  const rawResult = originalQuery(prompt);
180
- return wrapWarmQueryResult(rawResult, scope);
168
+ return wrapWarmQueryResult(rawResult);
181
169
  };
182
170
  try {
183
171
  warmQueryHandle.query = patchedWarmQuery;
@@ -214,6 +202,6 @@ export async function startup(params) {
214
202
  options: nextOptions,
215
203
  });
216
204
  await registrationPromise;
217
- return patchWarmQueryHandle(warm, scope);
205
+ return patchWarmQueryHandle(warm);
218
206
  }
219
207
  //# sourceMappingURL=wrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/claudeAgentSdk/wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/claudeAgentSdk/wrapper.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -3,10 +3,6 @@ export type WithSovaraRunOptions = {
3
3
  name: string;
4
4
  url?: string;
5
5
  captureLogs?: boolean;
6
- user?: {
7
- fullName?: string;
8
- email?: string;
9
- };
10
6
  project?: {
11
7
  name?: string;
12
8
  description?: string;
@@ -14,10 +10,11 @@ export type WithSovaraRunOptions = {
14
10
  __testing?: {
15
11
  client?: RunScopeClient;
16
12
  skipLifecycle?: boolean;
13
+ requireProjectConfig?: boolean;
17
14
  };
18
15
  };
19
- type CoreRunScopeClientMethods = "registerSubrun" | "deregisterRun" | "updateRunLog" | "getActiveUser" | "resolveProjectLocation" | "registerRun" | "prepareCall" | "recordOutput" | "recordException";
20
- type ClaudeRunScopeClientMethods = "registerClaudeProxyClient" | "registerClaudeSdkToolUse" | "finalizeClaudeSdkToolResult";
16
+ type CoreRunScopeClientMethods = "registerSubrun" | "deregisterRun" | "updateRunLog" | "getProject" | "registerRun" | "prepareCall" | "recordOutput" | "recordException";
17
+ type ClaudeRunScopeClientMethods = "registerClaudeProxyClient";
21
18
  type PriorsRunScopeClientMethods = "queryPriors" | "retrievePriors";
22
19
  type AnnotationRunScopeClientMethods = "requestAnnotationEvaluation";
23
20
  export type RunScopeClient = Pick<RuntimeClient, CoreRunScopeClientMethods> & Partial<Pick<RuntimeClient, ClaudeRunScopeClientMethods | PriorsRunScopeClientMethods | AnnotationRunScopeClientMethods>>;
@@ -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,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,CA0FZ"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,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,YAAY,GACZ,aAAa,GACb,aAAa,GACb,cAAc,GACd,iBAAiB,CAAC;AAEtB,KAAK,2BAA2B,GAAG,2BAA2B,CAAC;AAE/D,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,CA8FZ"}
package/dist/context.js CHANGED
@@ -1,11 +1,11 @@
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";
5
6
  import { RuntimeClient } from "./runtimeClient.js";
6
7
  import { ensureServerRunning } from "./serverLifecycle.js";
7
8
  import { startRunSseListener } from "./sseListener.js";
8
- import { resolveActiveUser } from "./user.js";
9
9
  import { ensureMcpPatchInstalled } from "./mcpPatch.js";
10
10
  const scopeStorage = new AsyncLocalStorage();
11
11
  function normalizeOptions(input) {
@@ -46,8 +46,12 @@ export async function withSovaraRun(input, fn) {
46
46
  await ensureServerRunning(url);
47
47
  }
48
48
  const client = options.__testing?.client ?? new RuntimeClient(url);
49
- const user = await resolveActiveUser(client, options.user);
50
- const project = await resolveProjectContext(client, config.cwd, options.project);
49
+ const project = await resolveProjectContext(client, config.cwd, options.project, {
50
+ allowMissingProjectConfig: Boolean(options.__testing?.client
51
+ && skipLifecycle
52
+ && !options.__testing.requireProjectConfig),
53
+ });
54
+ const codeVersion = collectCodeVersion(project.projectRoot);
51
55
  const registration = await client.registerRun({
52
56
  name: options.name,
53
57
  cwd: config.cwd,
@@ -57,9 +61,7 @@ export async function withSovaraRun(input, fn) {
57
61
  projectName: project.projectName,
58
62
  projectDescription: project.projectDescription,
59
63
  projectRoot: project.projectRoot,
60
- userId: user.userId,
61
- userFullName: user.fullName,
62
- userEmail: user.email,
64
+ codeVersion,
63
65
  });
64
66
  const scope = {
65
67
  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":"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"}
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(): 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":"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"}
package/dist/env.js CHANGED
@@ -1,10 +1,13 @@
1
1
  import { DEFAULT_SERVER_URL } from "./constants.js";
2
+ export function resolveServerURL() {
3
+ return DEFAULT_SERVER_URL;
4
+ }
2
5
  export function readRunnerConfig() {
3
6
  const environment = Object.fromEntries(Object.entries(process.env).filter(([, value]) => typeof value === "string"));
4
7
  return {
5
8
  cwd: process.cwd(),
6
9
  environment,
7
- url: process.env.SOVARA_SERVER_URL ?? DEFAULT_SERVER_URL,
10
+ url: resolveServerURL(),
8
11
  };
9
12
  }
10
13
  //# 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":"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"}
@@ -5,8 +5,10 @@ export type ProjectContext = {
5
5
  projectDescription: string;
6
6
  projectRoot: string;
7
7
  };
8
- export declare function resolveProjectContext(client: Pick<RuntimeClient, "resolveProjectLocation">, cwd: string, overrides?: {
8
+ export declare function resolveProjectContext(client: Pick<RuntimeClient, "getProject">, cwd: string, overrides?: {
9
9
  name?: string;
10
10
  description?: string;
11
+ }, options?: {
12
+ allowMissingProjectConfig?: boolean;
11
13
  }): Promise<ProjectContext>;
12
14
  //# sourceMappingURL=projectContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectContext.d.ts","sourceRoot":"","sources":["../src/projectContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAMF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,wBAAwB,CAAC,EACrD,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC,cAAc,CAAC,CA6BzB"}
1
+ {"version":3,"file":"projectContext.d.ts","sourceRoot":"","sources":["../src/projectContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAMF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,EACzC,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACnD,OAAO,CAAC,EAAE;IAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;CAAE,GAChD,OAAO,CAAC,cAAc,CAAC,CA+BzB"}
@@ -1,25 +1,31 @@
1
+ import { basename } from "node:path";
2
+ import { findProjectRoot, readProjectId } from "./codeVersion.js";
1
3
  function suggestedInitCommand(projectRoot) {
2
- return `so-cli init --project-root ${JSON.stringify(projectRoot)} --project-name <project-name>`;
4
+ return `sovara init --project-root ${JSON.stringify(projectRoot)} --project-name <project-name>`;
3
5
  }
4
- export async function resolveProjectContext(client, cwd, overrides) {
5
- const payload = await client.resolveProjectLocation(cwd);
6
- const status = payload.status;
7
- if (status === "missing") {
6
+ export async function resolveProjectContext(client, cwd, overrides, options) {
7
+ const projectRoot = findProjectRoot(cwd);
8
+ if (!projectRoot) {
9
+ if (options?.allowMissingProjectConfig) {
10
+ return {
11
+ projectId: "project-1",
12
+ projectName: overrides?.name ?? "Project",
13
+ projectDescription: overrides?.description ?? "",
14
+ projectRoot: cwd,
15
+ };
16
+ }
8
17
  throw new Error(`Sovara project setup is missing for ${cwd}. Run \`${suggestedInitCommand(cwd)}\` and retry.`);
9
18
  }
10
- const project = payload.project;
11
- const projectRoot = payload.project_root;
12
- if (!project ||
13
- typeof project.project_id !== "string" ||
14
- typeof project.name !== "string" ||
15
- typeof projectRoot !== "string") {
16
- throw new Error("Invalid project payload from server.");
17
- }
19
+ const projectId = readProjectId(projectRoot);
20
+ const existingProject = await client.getProject(projectId);
21
+ const existingName = typeof existingProject?.name === "string" && existingProject.name
22
+ ? existingProject.name
23
+ : null;
24
+ const existingDescription = typeof existingProject?.description === "string" ? existingProject.description : "";
18
25
  return {
19
- projectId: project.project_id,
20
- projectName: overrides?.name ?? project.name,
21
- projectDescription: overrides?.description ??
22
- (typeof project.description === "string" ? project.description : ""),
26
+ projectId,
27
+ projectName: overrides?.name ?? existingName ?? (basename(projectRoot) || "Project"),
28
+ projectDescription: overrides?.description ?? existingDescription,
23
29
  projectRoot,
24
30
  };
25
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"projectContext.js","sourceRoot":"","sources":["../src/projectContext.ts"],"names":[],"mappings":"AASA,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,OAAO,8BAA8B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,gCAAgC,CAAC;AACnG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAqD,EACrD,GAAW,EACX,SAAmD;IAEnD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,uCAAuC,GAAG,WAAW,oBAAoB,CAAC,GAAG,CAAC,eAAe,CAC9F,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAA8C,CAAC;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IACzC,IACE,CAAC,OAAO;QACR,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;QACtC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAChC,OAAO,WAAW,KAAK,QAAQ,EAC/B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI;QAC5C,kBAAkB,EAChB,SAAS,EAAE,WAAW;YACtB,CAAC,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,WAAW;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"projectContext.js","sourceRoot":"","sources":["../src/projectContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUlE,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,OAAO,8BAA8B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,gCAAgC,CAAC;AACnG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAyC,EACzC,GAAW,EACX,SAAmD,EACnD,OAAiD;IAEjD,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,IAAI,OAAO,EAAE,yBAAyB,EAAE,CAAC;YACvC,OAAO;gBACL,SAAS,EAAE,WAAW;gBACtB,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,SAAS;gBACzC,kBAAkB,EAAE,SAAS,EAAE,WAAW,IAAI,EAAE;gBAChD,WAAW,EAAE,GAAG;aACjB,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CACb,uCAAuC,GAAG,WAAW,oBAAoB,CAAC,GAAG,CAAC,eAAe,CAC9F,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,YAAY,GAChB,OAAO,eAAe,EAAE,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI;QAC/D,CAAC,CAAC,eAAe,CAAC,IAAI;QACtB,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,mBAAmB,GACvB,OAAO,eAAe,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtF,OAAO;QACL,SAAS;QACT,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,YAAY,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;QACpF,kBAAkB,EAAE,SAAS,EAAE,WAAW,IAAI,mBAAmB;QACjE,WAAW;KACZ,CAAC;AACJ,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { CodeVersion } from "./codeVersion.js";
1
2
  export declare class RuntimeClientError extends Error {
2
3
  readonly status: number;
3
4
  readonly body: unknown;
@@ -12,9 +13,7 @@ export type RegisterRunRequest = {
12
13
  projectName: string;
13
14
  projectDescription: string;
14
15
  projectRoot: string;
15
- userId: string;
16
- userFullName: string;
17
- userEmail: string;
16
+ codeVersion: CodeVersion;
18
17
  };
19
18
  export type RegisterRunResponse = {
20
19
  runId: string;
@@ -66,7 +65,7 @@ export declare class RuntimeClient {
66
65
  private readonly baseUrl;
67
66
  private readonly fetchFn;
68
67
  constructor(baseUrl: string, fetchFn?: typeof fetch);
69
- getActiveUser(): Promise<Record<string, unknown> | null>;
68
+ getProject(projectId: string): Promise<Record<string, unknown> | null>;
70
69
  resolveProjectLocation(location: string): Promise<Record<string, unknown>>;
71
70
  registerRun(request: RegisterRunRequest): Promise<RegisterRunResponse>;
72
71
  registerSubrun(request: RegisterSubrunRequest): Promise<RegisterSubrunResponse>;
@@ -99,8 +98,6 @@ export declare class RuntimeClient {
99
98
  recordOutput(request: FinalizeCallRequest): Promise<void>;
100
99
  recordException(request: FinalizeCallRequest): Promise<void>;
101
100
  registerClaudeProxyClient(runId: string, clientId: string, upstreamBaseUrl: string, stackTrace: string | null): Promise<void>;
102
- registerClaudeSdkToolUse(runId: string, toolUseId: string, toolName: string, toolInput: unknown, stackTrace: string | null): Promise<void>;
103
- finalizeClaudeSdkToolResult(runId: string, toolUseId: string, toolResult: unknown, isError: boolean): Promise<void>;
104
101
  private request;
105
102
  }
106
103
  //# 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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"}
@@ -23,11 +23,21 @@ export class RuntimeClient {
23
23
  const maybeOriginal = globalThis[Symbol.for("sovara.originalFetch")];
24
24
  this.fetchFn = typeof maybeOriginal === "function" ? maybeOriginal : fetch;
25
25
  }
26
- async getActiveUser() {
27
- const payload = await this.request("/ui/user", {
28
- method: "GET",
29
- });
30
- return payload.user ?? null;
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
+ }
31
41
  }
32
42
  resolveProjectLocation(location) {
33
43
  return this.request("/ui/projects/resolve-location", {
@@ -47,9 +57,7 @@ export class RuntimeClient {
47
57
  project_name: request.projectName,
48
58
  project_description: request.projectDescription,
49
59
  project_root: request.projectRoot,
50
- user_id: request.userId,
51
- user_full_name: request.userFullName,
52
- user_email: request.userEmail,
60
+ code_version: request.codeVersion,
53
61
  }),
54
62
  });
55
63
  return { runId: payload.run_id };
@@ -165,34 +173,15 @@ export class RuntimeClient {
165
173
  }),
166
174
  });
167
175
  }
168
- async registerClaudeSdkToolUse(runId, toolUseId, toolName, toolInput, stackTrace) {
169
- await this.request("/internal/runner/claude-sdk/tool-use", {
170
- method: "POST",
171
- body: toJsonBody({
172
- run_id: runId,
173
- tool_use_id: toolUseId,
174
- tool_name: toolName,
175
- tool_input: toolInput,
176
- stack_trace: stackTrace,
177
- }),
178
- });
179
- }
180
- async finalizeClaudeSdkToolResult(runId, toolUseId, toolResult, isError) {
181
- await this.request("/internal/runner/claude-sdk/tool-result", {
182
- method: "POST",
183
- body: toJsonBody({
184
- run_id: runId,
185
- tool_use_id: toolUseId,
186
- tool_result: toolResult,
187
- is_error: isError,
188
- }),
189
- });
190
- }
191
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() : "";
192
179
  const response = await this.fetchFn(`${this.baseUrl}${path}`, {
193
180
  ...init,
194
181
  headers: {
195
182
  "content-type": "application/json",
183
+ ...(agentToken ? { "x-sovara-agent-token": agentToken } : {}),
184
+ ...(accessToken ? { authorization: `Bearer ${accessToken}` } : {}),
196
185
  ...(init.headers ?? {}),
197
186
  },
198
187
  });
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeClient.js","sourceRoot":"","sources":["../src/runtimeClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,MAAM,CAAS;IACf,IAAI,CAAU;IAEvB,YAAY,MAAc,EAAE,IAAa;QACvC,KAAK,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAmED,SAAS,UAAU,CAAC,OAAgB;IAClC,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,OAAO,aAAa;IACP,OAAO,CAAS;IAChB,OAAO,CAAe;IAEvC,YAAY,OAAe,EAAE,OAAsB;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,OAAO;QACT,CAAC;QACD,MAAM,aAAa,GAAI,UAAyC,CAC9D,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CACnC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAE,aAA8B,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAA4C,UAAU,EAAE;YACxF,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;IAC9B,CAAC;IAED,sBAAsB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAqB,kBAAkB,EAAE;YACzE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,YAAY,EAAE,OAAO,CAAC,WAAW;gBACjC,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;gBAC/C,YAAY,EAAE,OAAO,CAAC,WAAW;gBACjC,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,cAAc,EAAE,OAAO,CAAC,YAAY;gBACpC,UAAU,EAAE,OAAO,CAAC,SAAS;aAC9B,CAAC;SACH,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAA8B;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAqB,gBAAgB,EAAE;YACvE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;SAC7E,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,EAAqB;QAC9C,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAqB;QAC5D,MAAM,IAAI,CAAC,OAAO,CAAC,sCAAsC,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EACjB,KAAK,EACL,OAAO,EACP,OAAO,GAKR;QACC,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAChB,KAAK,EACL,IAAI,GAIL;QACC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,wBAAwB,EACxB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAC9D,CAAC;QACF,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;YAC5B,eAAe,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;SAChD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EACnB,KAAK,EACL,IAAI,EACJ,OAAO,GAKR;QACC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,2BAA2B,EAC3B;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,KAAK;gBACb,IAAI;gBACJ,OAAO;gBACP,gBAAgB,EAAE,EAAE;aACrB,CAAC;SACH,CACF,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAOhC,8BAA8B,EAC9B;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,QAAQ,EAAE,OAAO,CAAC,OAAO;gBACzB,WAAW,EAAE,OAAO,CAAC,UAAU;gBAC/B,kBAAkB,EAAE,OAAO,CAAC,gBAAgB;gBAC5C,sBAAsB,EAAE,OAAO,CAAC,oBAAoB,IAAI,KAAK;aAC9D,CAAC;SACH,CACF,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,SAAS;YAC3B,QAAQ,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACnC,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,SAAS;YACnE,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,gBAAgB;YACxE,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,IAAI,IAAI;SACrD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,SAAS,EAAE,OAAO,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,OAAO,CAAC,OAAO;gBACzB,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,WAAW,EAAE,OAAO,CAAC,UAAU;gBAC/B,eAAe,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;gBAC/C,WAAW,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;gBACvC,SAAS,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;gBACnC,kBAAkB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;gBACpD,cAAc,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;aAC9C,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA4B;QAChD,MAAM,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,SAAS,EAAE,OAAO,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,OAAO,CAAC,OAAO;gBACzB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO;gBACjC,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,eAAe,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;gBAC/C,WAAW,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;gBACvC,SAAS,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;gBACnC,kBAAkB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;gBACpD,YAAY,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;gBACzC,cAAc,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;aAC9C,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,KAAa,EACb,QAAgB,EAChB,eAAuB,EACvB,UAAyB;QAEzB,MAAM,IAAI,CAAC,OAAO,CAAC,+CAA+C,EAAE;YAClE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,QAAQ;gBACnB,iBAAiB,EAAE,eAAe;gBAClC,WAAW,EAAE,UAAU;aACxB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,KAAa,EACb,SAAiB,EACjB,QAAgB,EAChB,SAAkB,EAClB,UAAyB;QAEzB,MAAM,IAAI,CAAC,OAAO,CAAC,sCAAsC,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,SAAS;gBACtB,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,UAAU;aACxB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,KAAa,EACb,SAAiB,EACjB,UAAmB,EACnB,OAAgB;QAEhB,MAAM,IAAI,CAAC,OAAO,CAAC,yCAAyC,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,SAAS;gBACtB,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,OAAO;aAClB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,IAAiB;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YAC5D,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;aACxB;SACF,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEpE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,IAAS,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"runtimeClient.js","sourceRoot":"","sources":["../src/runtimeClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,MAAM,CAAS;IACf,IAAI,CAAU;IAEvB,YAAY,MAAc,EAAE,IAAa;QACvC,KAAK,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAiED,SAAS,UAAU,CAAC,OAAgB;IAClC,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,OAAO,aAAa;IACP,OAAO,CAAS;IAChB,OAAO,CAAe;IAEvC,YAAY,OAAe,EAAE,OAAsB;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,OAAO;QACT,CAAC;QACD,MAAM,aAAa,GAAI,UAAyC,CAC9D,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CACnC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAE,aAA8B,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAC/C,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;YACF,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,IAAI,GAAG,OAAkC,CAAC;YAChD,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC,OAAkC,CAAC;YACjD,CAAC;YACD,OAAO,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,sBAAsB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAqB,kBAAkB,EAAE;YACzE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,YAAY,EAAE,OAAO,CAAC,WAAW;gBACjC,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;gBAC/C,YAAY,EAAE,OAAO,CAAC,WAAW;gBACjC,YAAY,EAAE,OAAO,CAAC,WAAW;aAClC,CAAC;SACH,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAA8B;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAqB,gBAAgB,EAAE;YACvE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;SAC7E,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,EAAqB;QAC9C,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAqB;QAC5D,MAAM,IAAI,CAAC,OAAO,CAAC,sCAAsC,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EACjB,KAAK,EACL,OAAO,EACP,OAAO,GAKR;QACC,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAChB,KAAK,EACL,IAAI,GAIL;QACC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,wBAAwB,EACxB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAC9D,CAAC;QACF,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;YAC5B,eAAe,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;SAChD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EACnB,KAAK,EACL,IAAI,EACJ,OAAO,GAKR;QACC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,2BAA2B,EAC3B;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,KAAK;gBACb,IAAI;gBACJ,OAAO;gBACP,gBAAgB,EAAE,EAAE;aACrB,CAAC;SACH,CACF,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAOhC,8BAA8B,EAC9B;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,QAAQ,EAAE,OAAO,CAAC,OAAO;gBACzB,WAAW,EAAE,OAAO,CAAC,UAAU;gBAC/B,kBAAkB,EAAE,OAAO,CAAC,gBAAgB;gBAC5C,sBAAsB,EAAE,OAAO,CAAC,oBAAoB,IAAI,KAAK;aAC9D,CAAC;SACH,CACF,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,SAAS;YAC3B,QAAQ,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACnC,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,SAAS;YACnE,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,gBAAgB;YACxE,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,IAAI,IAAI;SACrD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,SAAS,EAAE,OAAO,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,OAAO,CAAC,OAAO;gBACzB,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,WAAW,EAAE,OAAO,CAAC,UAAU;gBAC/B,eAAe,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;gBAC/C,WAAW,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;gBACvC,SAAS,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;gBACnC,kBAAkB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;gBACpD,cAAc,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;aAC9C,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA4B;QAChD,MAAM,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,SAAS,EAAE,OAAO,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,OAAO,CAAC,OAAO;gBACzB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO;gBACjC,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,eAAe,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;gBAC/C,WAAW,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;gBACvC,SAAS,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;gBACnC,kBAAkB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;gBACpD,YAAY,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;gBACzC,cAAc,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;aAC9C,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,KAAa,EACb,QAAgB,EAChB,eAAuB,EACvB,UAAyB;QAEzB,MAAM,IAAI,CAAC,OAAO,CAAC,+CAA+C,EAAE;YAClE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,QAAQ;gBACnB,iBAAiB,EAAE,eAAe;gBAClC,WAAW,EAAE,UAAU;aACxB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,IAAiB;QACtD,MAAM,UAAU,GACd,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,WAAW,GACf,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YAC5D,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;aACxB;SACF,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEpE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,IAAS,CAAC;IACnB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"serverLifecycle.d.ts","sourceRoot":"","sources":["../src/serverLifecycle.ts"],"names":[],"mappings":"AAyDA,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBpE"}
1
+ {"version":3,"file":"serverLifecycle.d.ts","sourceRoot":"","sources":["../src/serverLifecycle.ts"],"names":[],"mappings":"AAuBA,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpE"}
@@ -1,8 +1,3 @@
1
- import { spawn } from "node:child_process";
2
- import { SERVER_BOOT_POLL_INTERVAL_MS, SERVER_BOOT_TIMEOUT_MS, } from "./constants.js";
3
- async function wait(ms) {
4
- await new Promise((resolve) => setTimeout(resolve, ms));
5
- }
6
1
  function getFetch() {
7
2
  const maybeOriginal = globalThis[Symbol.for("sovara.originalFetch")];
8
3
  if (typeof maybeOriginal === "function") {
@@ -23,37 +18,10 @@ async function isHealthy(url) {
23
18
  return false;
24
19
  }
25
20
  }
26
- async function spawnServer() {
27
- await new Promise((resolve, reject) => {
28
- const child = spawn("so-cli", ["server", "start"], {
29
- detached: true,
30
- stdio: "ignore",
31
- });
32
- child.once("error", (error) => reject(error));
33
- child.once("spawn", () => resolve());
34
- child.unref();
35
- }).catch((error) => {
36
- const code = typeof error === "object" && error !== null && "code" in error
37
- ? String(error.code)
38
- : "";
39
- if (code === "ENOENT") {
40
- throw new Error("Sovara server is not running and 'so-cli' was not found. Start it manually with 'so-cli server start' or install Sovara.");
41
- }
42
- throw error;
43
- });
44
- }
45
21
  export async function ensureServerRunning(url) {
46
22
  if (await isHealthy(url)) {
47
23
  return;
48
24
  }
49
- await spawnServer();
50
- const started = Date.now();
51
- while (Date.now() - started <= SERVER_BOOT_TIMEOUT_MS) {
52
- if (await isHealthy(url)) {
53
- return;
54
- }
55
- await wait(SERVER_BOOT_POLL_INTERVAL_MS);
56
- }
57
- throw new Error("Server not ready");
25
+ throw new Error(`Sovara backend is not reachable at ${url}. Open the Sovara desktop app or pass an explicit url to withSovaraRun for a managed remote run.`);
58
26
  }
59
27
  //# sourceMappingURL=serverLifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverLifecycle.js","sourceRoot":"","sources":["../src/serverLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,KAAK,UAAU,IAAI,CAAC,EAAU;IAC5B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,aAAa,GAAI,UAAyC,CAC9D,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CACnC,CAAC;IACF,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,aAA6B,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0C,CAAC;QACjF,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;YACjD,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACrC,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC1B,MAAM,IAAI,GACR,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK;YAC5D,CAAC,CAAC,MAAM,CAAE,KAA2B,CAAC,IAAI,CAAC;YAC3C,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,0HAA0H,CAC3H,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW;IACnD,IAAI,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,WAAW,EAAE,CAAC;IAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,IAAI,sBAAsB,EAAE,CAAC;QACtD,IAAI,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"serverLifecycle.js","sourceRoot":"","sources":["../src/serverLifecycle.ts"],"names":[],"mappings":"AAAA,SAAS,QAAQ;IACf,MAAM,aAAa,GAAI,UAAyC,CAC9D,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CACnC,CAAC;IACF,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,aAA6B,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0C,CAAC;QACjF,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW;IACnD,IAAI,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,KAAK,CACb,sCAAsC,GAAG,kGAAkG,CAC5I,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@sovara/runner",
3
- "version": "0.1.2",
3
+ "version": "0.3.4",
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",
7
- "homepage": "https://github.com/SovaraLabs/sovara/tree/main/runner_ts#readme",
7
+ "homepage": "https://docs.sovara-labs.com",
8
8
  "bugs": "https://github.com/SovaraLabs/sovara/issues",
9
9
  "repository": {
10
10
  "type": "git",
@@ -65,7 +65,8 @@
65
65
  "@anthropic-ai/claude-agent-sdk": "^0.2.132",
66
66
  "@types/node": "^22.10.2",
67
67
  "typescript": "^5.6.3",
68
- "vitest": "^2.1.8"
68
+ "vite": "^7.3.1",
69
+ "vitest": "^4.1.1"
69
70
  },
70
71
  "dependencies": {
71
72
  "flat": "^6.0.1",
@@ -1,20 +0,0 @@
1
- import { type RunScope } from "../context.js";
2
- type ToolUseBlock = {
3
- id: string;
4
- name: string;
5
- input: unknown;
6
- };
7
- type ToolResultBlock = {
8
- toolUseId: string;
9
- content: unknown;
10
- isError: boolean;
11
- };
12
- export declare function extractClaudeSdkToolUseBlocks(message: unknown): ToolUseBlock[];
13
- export declare function extractClaudeSdkToolResultBlocks(message: unknown): ToolResultBlock[];
14
- export declare function normalizeToolResultContent(content: unknown): unknown;
15
- export declare function publishClaudeSdkMessage(message: unknown, options?: {
16
- scope?: RunScope;
17
- stackTrace?: string | null;
18
- }): Promise<void>;
19
- export {};
20
- //# sourceMappingURL=parseHook.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseHook.d.ts","sourceRoot":"","sources":["../../src/claudeAgentSdk/parseHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIlE,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AA0DF,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,EAAE,CAoB9E;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,EAAE,CAyDpF;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEpE;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,QAAQ,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACzD,OAAO,CAAC,IAAI,CAAC,CA8Cf"}
@@ -1,160 +0,0 @@
1
- import { getCurrentRunScope } from "../context.js";
2
- import { warnOnce } from "../util/logger.js";
3
- import { sanitizeStackTrace } from "../util/stackTrace.js";
4
- function isObject(value) {
5
- return !!value && typeof value === "object";
6
- }
7
- function toContentBlocks(message) {
8
- if (!isObject(message)) {
9
- return [];
10
- }
11
- const outerContent = message.content;
12
- if (Array.isArray(outerContent)) {
13
- return outerContent;
14
- }
15
- const wrappedMessage = message.message;
16
- if (isObject(wrappedMessage) && Array.isArray(wrappedMessage.content)) {
17
- return wrappedMessage.content;
18
- }
19
- return [];
20
- }
21
- function extractTopLevelToolUse(message) {
22
- if (!isObject(message) || message.type !== "tool_use") {
23
- return [];
24
- }
25
- const id = typeof message.id === "string" ? message.id : "";
26
- const name = typeof message.name === "string" ? message.name : "";
27
- if (!id || !name) {
28
- return [];
29
- }
30
- return [{ id, name, input: message.input }];
31
- }
32
- function extractTopLevelToolResult(message) {
33
- if (!isObject(message) || message.type !== "tool_result") {
34
- return [];
35
- }
36
- const toolUseId = typeof message.tool_use_id === "string"
37
- ? message.tool_use_id
38
- : typeof message.toolUseId === "string"
39
- ? message.toolUseId
40
- : "";
41
- if (!toolUseId) {
42
- return [];
43
- }
44
- return [
45
- {
46
- toolUseId,
47
- content: message.content,
48
- isError: Boolean(message.is_error ?? message.isError),
49
- },
50
- ];
51
- }
52
- export function extractClaudeSdkToolUseBlocks(message) {
53
- const topLevel = extractTopLevelToolUse(message);
54
- if (topLevel.length > 0) {
55
- return topLevel;
56
- }
57
- const blocks = toContentBlocks(message);
58
- const toolUses = [];
59
- for (const block of blocks) {
60
- if (!isObject(block) || block.type !== "tool_use") {
61
- continue;
62
- }
63
- const id = typeof block.id === "string" ? block.id : "";
64
- const name = typeof block.name === "string" ? block.name : "";
65
- if (!id || !name) {
66
- continue;
67
- }
68
- toolUses.push({ id, name, input: block.input });
69
- }
70
- return toolUses;
71
- }
72
- export function extractClaudeSdkToolResultBlocks(message) {
73
- const topLevel = extractTopLevelToolResult(message);
74
- if (topLevel.length > 0) {
75
- return topLevel;
76
- }
77
- const blocks = toContentBlocks(message);
78
- const toolResults = [];
79
- for (const block of blocks) {
80
- if (!isObject(block) || block.type !== "tool_result") {
81
- continue;
82
- }
83
- const toolUseId = typeof block.tool_use_id === "string"
84
- ? block.tool_use_id
85
- : typeof block.toolUseId === "string"
86
- ? block.toolUseId
87
- : "";
88
- if (!toolUseId) {
89
- continue;
90
- }
91
- toolResults.push({
92
- toolUseId,
93
- content: block.content,
94
- isError: Boolean(block.is_error ?? block.isError),
95
- });
96
- }
97
- if (toolResults.length > 0) {
98
- return toolResults;
99
- }
100
- if (!isObject(message)) {
101
- return [];
102
- }
103
- const maybeToolUseResult = message.tool_use_result;
104
- if (!isObject(maybeToolUseResult)) {
105
- return [];
106
- }
107
- const toolUseId = typeof maybeToolUseResult.tool_use_id === "string"
108
- ? maybeToolUseResult.tool_use_id
109
- : typeof maybeToolUseResult.toolUseId === "string"
110
- ? maybeToolUseResult.toolUseId
111
- : "";
112
- if (!toolUseId) {
113
- return [];
114
- }
115
- return [
116
- {
117
- toolUseId,
118
- content: maybeToolUseResult.content,
119
- isError: Boolean(maybeToolUseResult.is_error ?? maybeToolUseResult.isError),
120
- },
121
- ];
122
- }
123
- export function normalizeToolResultContent(content) {
124
- return content == null ? "" : content;
125
- }
126
- export async function publishClaudeSdkMessage(message, options) {
127
- const scope = options?.scope ?? getCurrentRunScope();
128
- if (!scope) {
129
- return;
130
- }
131
- const registerToolUse = scope.client.registerClaudeSdkToolUse;
132
- const finalizeToolResult = scope.client.finalizeClaudeSdkToolResult;
133
- if (typeof registerToolUse !== "function" && typeof finalizeToolResult !== "function") {
134
- return;
135
- }
136
- const stackTrace = options?.stackTrace ?? sanitizeStackTrace(new Error().stack);
137
- if (typeof registerToolUse === "function") {
138
- const toolUses = extractClaudeSdkToolUseBlocks(message);
139
- for (const block of toolUses) {
140
- try {
141
- await registerToolUse(scope.runId, block.id, block.name, block.input, stackTrace);
142
- }
143
- catch {
144
- warnOnce("claude-sdk-tool-use", "[sovara] Failed to register Claude SDK tool-use event.");
145
- }
146
- }
147
- }
148
- if (typeof finalizeToolResult === "function") {
149
- const toolResults = extractClaudeSdkToolResultBlocks(message);
150
- for (const block of toolResults) {
151
- try {
152
- await finalizeToolResult(scope.runId, block.toolUseId, normalizeToolResultContent(block.content), block.isError);
153
- }
154
- catch {
155
- warnOnce("claude-sdk-tool-result", "[sovara] Failed to finalize Claude SDK tool-result event.");
156
- }
157
- }
158
- }
159
- }
160
- //# sourceMappingURL=parseHook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseHook.js","sourceRoot":"","sources":["../../src/claudeAgentSdk/parseHook.ts"],"names":[],"mappings":"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"}
package/dist/user.d.ts DELETED
@@ -1,11 +0,0 @@
1
- import type { RuntimeClient } from "./runtimeClient.js";
2
- export type ActiveUser = {
3
- userId: string;
4
- fullName: string;
5
- email: string;
6
- };
7
- export declare function resolveActiveUser(client: Pick<RuntimeClient, "getActiveUser">, overrides?: {
8
- fullName?: string;
9
- email?: string;
10
- }): Promise<ActiveUser>;
11
- //# sourceMappingURL=user.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAqBF,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,EAC5C,SAAS,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,UAAU,CAAC,CAoBrB"}
package/dist/user.js DELETED
@@ -1,31 +0,0 @@
1
- function parseUser(payload) {
2
- if (!payload) {
3
- return null;
4
- }
5
- const userId = payload.user_id;
6
- const fullName = payload.full_name;
7
- const email = payload.email;
8
- if (typeof userId !== "string" ||
9
- typeof fullName !== "string" ||
10
- typeof email !== "string") {
11
- return null;
12
- }
13
- return { userId, fullName, email };
14
- }
15
- export async function resolveActiveUser(client, overrides) {
16
- const current = parseUser(await client.getActiveUser());
17
- const fullName = overrides?.fullName ?? current?.fullName;
18
- const email = overrides?.email ?? current?.email;
19
- if (current && overrides?.fullName === undefined && overrides?.email === undefined) {
20
- return current;
21
- }
22
- if (current?.userId && fullName && email) {
23
- return {
24
- userId: current.userId,
25
- fullName,
26
- email,
27
- };
28
- }
29
- throw new Error("Sovara user setup is missing. Run `so-cli init --user-name <full-name> --user-email <email>` and retry.");
30
- }
31
- //# sourceMappingURL=user.js.map
package/dist/user.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"AAQA,SAAS,SAAS,CAAC,OAAuC;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,OAAO,QAAQ,KAAK,QAAQ;QAC5B,OAAO,KAAK,KAAK,QAAQ,EACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAA4C,EAC5C,SAAiD;IAEjD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,SAAS,EAAE,QAAQ,IAAI,OAAO,EAAE,QAAQ,CAAC;IAC1D,MAAM,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,CAAC;IACjD,IAAI,OAAO,IAAI,SAAS,EAAE,QAAQ,KAAK,SAAS,IAAI,SAAS,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QACnF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,EAAE,MAAM,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACzC,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ;YACR,KAAK;SACN,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;AACJ,CAAC"}