> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-drtangible-wip-test-inline-tag.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# WeaveClient

> TypeScript SDK reference

Defined in: [src/weaveClient.ts:519](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L519)

## Properties

### projectId

> **projectId**: `string`

Defined in: [src/weaveClient.ts:538](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L538)

***

### settings

> **settings**: `object`

Defined in: [src/weaveClient.ts:539](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L539)

#### attributes

> `readonly` **attributes**: `Record`\<`string`, `any`>

A map of attributes applied to every trace produced by this client.

#### genai

> `readonly` **genai**: `object`

##### genai.batchOptions

> `optional` **batchOptions**: `BufferConfig`

`BatchSpanProcessor` configuration. Ignored unless `spanProcessor === 'batch'`.

##### genai.spanProcessor

> `optional` **spanProcessor**: `"batch"` | `"simple"` | `SpanProcessor`

How GenAI spans are exported.

* `'batch'` (default): `BatchSpanProcessor`, suitable for production
  agents and long-lived processes.
* `'simple'`: `SimpleSpanProcessor`, one HTTP POST per span. Useful for
  tests and short-lived CLIs where deterministic flush matters more than
  throughput.
* `SpanProcessor` instance: a user-supplied processor. The caller owns
  its lifecycle; the Weave OTLP exporter targeting `/agents/otel/v1/traces`
  is not used.

#### printCallLink

> `readonly` **printCallLink**: `boolean`

Prints links in terminal to Weave UI for ops.

##### Default

`true`

#### useCallsComplete

> **useCallsComplete**: `boolean`

Sends finished calls to the `calls/complete` endpoint (start+end paired
client-side) instead of the legacy `call/upsert_batch` path.

##### Default

`true`

#### useOTelV2

> **useOTelV2**: `boolean`

Routes OTel-capable integrations through their OTel variant.

##### Default

`true`

***

### traceServerApi

> **traceServerApi**: `Api`\<`any`>

Defined in: [src/weaveClient.ts:537](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L537)

## Methods

### addScore()

> **addScore**(`predictCallId`, `scorerCallId`, `runnableRefUri`, `scorerOutput`): `Promise`\<`string`>

Add a scorer result (e.g., scorer output) to a call.
Used in imperative evaluation to attach scorer results to predict calls.

Defined in: [src/weaveClient.ts:2165](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L2165)

#### Parameters

##### predictCallId

`string`

ID of the predict call to attach feedback to

##### scorerCallId

`string`

ID of the scorer call that generated the feedback

##### runnableRefUri

`string`

URI of the scorer (Op or Object ref)

##### scorerOutput

`any`

Output of the scorer

#### Returns

`Promise`\<`string`>

***

### createCall()

> **createCall**(`internalCall`, `opRef`, `params`, `parameterNames`, `thisArg`, `currentCall`, `parentCall`, `startTime`, `displayName?`, `attributes?`, `eagerCallStart?`): `Promise`\<`void`>

Defined in: [src/weaveClient.ts:1994](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1994)

#### Parameters

##### internalCall

`InternalCall`

##### opRef

`any`

##### params

`any`\[]

##### parameterNames

`undefined` | `"useParam0Object"` | `string`\[]

##### thisArg

`any`

##### currentCall

###### callId

`string`

###### childSummary

`Record`\<`string`, `any`>

###### displayName?

`string`

###### opName?

`string`

###### traceId

`string`

##### parentCall

\{ `callId`: `string`; `childSummary`: `Record`\<`string`, `any`>; `displayName?`: `string`; `opName?`: `string`; `traceId`: `string`; } | `undefined`

##### startTime

`Date`

##### displayName?

`string`

##### attributes?

`Record`\<`string`, `any`>

##### eagerCallStart?

`boolean` = `false`

#### Returns

`Promise`\<`void`>

***

### finishCall()

> **finishCall**(`call`, `result`, `currentCall`, `parentCall`, `summarize`, `endTime`, `startCallPromise`): `Promise`\<`void`>

Defined in: [src/weaveClient.ts:2068](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L2068)

#### Parameters

##### call

`InternalCall`

##### result

`any`

##### currentCall

###### callId

`string`

###### childSummary

`Record`\<`string`, `any`>

###### displayName?

`string`

###### opName?

`string`

###### traceId

`string`

##### parentCall

\{ `callId`: `string`; `childSummary`: `Record`\<`string`, `any`>; `displayName?`: `string`; `opName?`: `string`; `traceId`: `string`; } | `undefined`

##### summarize

((`result`) => `Record`\<`string`, `any`>) | `undefined`

##### endTime

`Date`

##### startCallPromise

`Promise`\<`void`>

#### Returns

`Promise`\<`void`>

***

### finishCallWithException()

> **finishCallWithException**(`call`, `error`, `currentCall`, `parentCall`, `endTime`, `startCallPromise`): `Promise`\<`void`>

Defined in: [src/weaveClient.ts:2110](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L2110)

#### Parameters

##### call

`InternalCall`

##### error

`any`

##### currentCall

###### callId

`string`

###### childSummary

`Record`\<`string`, `any`>

###### displayName?

`string`

###### opName?

`string`

###### traceId

`string`

##### parentCall

\{ `callId`: `string`; `childSummary`: `Record`\<`string`, `any`>; `displayName?`: `string`; `opName?`: `string`; `traceId`: `string`; } | `undefined`

##### endTime

`Date`

##### startCallPromise

`Promise`\<`void`>

#### Returns

`Promise`\<`void`>

***

### flush()

> **flush**(): `Promise`\<`void`>

Deliver all buffered calls to the server. Await before `process.exit()`.

Defined in: [src/weaveClient.ts:919](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L919)

#### Returns

`Promise`\<`void`>

***

### get()

> **get**(`ref`): `Promise`\<`any`>

Defined in: [src/weaveClient.ts:1351](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1351)

#### Parameters

##### ref

[`ObjectRef`](../classes/objectref)

#### Returns

`Promise`\<`any`>

***

### getAgentCustomAttributes()

> **getAgentCustomAttributes**(`options`): `Promise`\<[`Response`](../type-aliases/response)\<\{ `attributes?`: `object`\[]; `has_more?`: `boolean`; `limit?`: `number`; `offset?`: `number`; }>>

Discover typed custom-attribute keys observed on agent spans in the
project. Each result row is one `(source, key, value_type)` triple plus
a count of how many spans carry it, which is what the spans
query/group/stats APIs use to reference custom attrs.

Filter the spans considered by passing `query` (a structured span
filter), `startedAfter` / `startedBefore` (ISO-8601), or both. Use
`limit` / `offset` to page through the discovered keys.

Defined in: [src/weaveClient.ts:877](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L877)

#### Parameters

##### options

###### limit?

`number`

**Min**

1

**Max**

2000

**Default**

```ts twoslash theme={null}
// @noErrors
200
```

###### offset?

`number`

**Min**

0

**Default**

```ts twoslash theme={null}
// @noErrors
0
```

###### query?

[`Query`](./query) | `null`

###### startedAfter?

`string` | `null`

###### startedBefore?

`string` | `null`

#### Returns

`Promise`\<[`Response`](../type-aliases/response)\<\{ `attributes?`: `object`\[]; `has_more?`: `boolean`; `limit?`: `number`; `offset?`: `number`; }>>

#### Example

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentCustomAttributes({
  query: {
    $expr: {
      $eq: [{$getField: 'agent_name'}, {$literal: 'my-agent'}],
    },
  },
  startedAfter: '2026-06-15T00:00:00Z',
  limit: 200,
});

for (const attr of resp.data.attributes ?? []) {
  console.log(`${attr.source}.${attr.key} (${attr.value_type}): ${attr.span_count}`);
}
```

***

### getAgents()

> **getAgents**(`options?`): `Promise`\<[`Response`](../type-aliases/response)\<[`GetAgentsResult`](../type-aliases/getagentsresult)>>

List agents with aggregated stats.

Defined in: [src/weaveClient.ts:593](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L593)

#### Parameters

##### options?

[`GetAgentsOptions`](./getagentsoptions) = `{}`

#### Returns

`Promise`\<[`Response`](../type-aliases/response)\<[`GetAgentsResult`](../type-aliases/getagentsresult)>>

#### Example

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgents({limit: 20});

for (const agent of resp.data.agents) {
  console.log(agent.agent_name, agent.total_input_tokens);
}

console.log(`total count: ${resp.data.total_count}`)
```

***

### getAgentSpans()

> **getAgentSpans**(`options`): `Promise`\<[`Response`](../type-aliases/response)\<[`GetAgentSpansResult`](../type-aliases/getagentspansresult)>>

Query agent spans, optionally filtered by agent name and/or a mongo-style
query expression.

Defined in: [src/weaveClient.ts:671](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L671)

#### Parameters

##### options

[`GetAgentSpansOptions`](./getagentspansoptions)

#### Returns

`Promise`\<[`Response`](../type-aliases/response)\<[`GetAgentSpansResult`](../type-aliases/getagentspansresult)>>

#### Examples

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentSpans({agentName: 'my-agent', limit: 20});

for (const span of resp.data.spans) {
  console.log(span.span_id, span.span_name, span.input_tokens);
}
```

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');

const resp = await client.getAgentSpans({
  agentName: 'my-agent',
  query: {
    $expr: {$gt: [{$getField: 'input_tokens'}, {$literal: 1000}]},
  },
});

for (const span of resp.data.spans) {
  console.log(span.span_id, span.span_name, span.input_tokens);
}
```

***

### getAgentSpanStats()

> **getAgentSpanStats**(`options`): `Promise`\<[`Response`](../type-aliases/response)\<\{ `bucket_type?`: `"number"` | `"time"`; `columns?`: `object`\[]; `end`: `string`; `granularity?`: `number` | `null`; `rows?`: `Record`\<`string`, `string` | `number` | `boolean` | `null`>\[]; `start`: `string`; `timezone`: `string`; }>>

Agregations over agent spans in the project, returned as rows + column
metadata suitable for time-series / bucketed visualizations.

`start` (required) and `end` define the time window. Each entry in
`metrics` declares a field to extract and how to aggregate it (`sum`,
`avg`, `count`, percentiles, etc.). Pass `granularity` (seconds) to
bucket rows by time, or `groupBy` to break results out per agent /
provider / model / etc. `query` filters the underlying spans before
aggregation.

Defined in: [src/weaveClient.ts:726](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L726)

#### Parameters

##### options

###### end?

`string` | `null`

###### granularity?

`number` | `null`

###### groupBy?

`object`\[]

###### metrics

`object`\[]

###### query?

[`Query`](./query) | `null`

###### start

`string`

###### timezone?

`string`

**Default**

```ts twoslash theme={null}
// @noErrors
"UTC"
```

#### Returns

`Promise`\<[`Response`](../type-aliases/response)\<\{ `bucket_type?`: `"number"` | `"time"`; `columns?`: `object`\[]; `end`: `string`; `granularity?`: `number` | `null`; `rows?`: `Record`\<`string`, `string` | `number` | `boolean` | `null`>\[]; `start`: `string`; `timezone`: `string`; }>>

#### Example

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentSpanStats({
  start: '2026-06-10T00:00:00Z',
  end: '2026-06-23T00:00:00Z',
  granularity: 86400, // one row per day
  metrics: [
    {
      alias: 'total_input_tokens',
      value_type: 'number',
      aggregations: ['sum'],
      value: {source: 'field', key: 'input_tokens'},
    },
  ],
  groupBy: [{key: 'agent_name'}],
});

for (const row of resp.data.rows ?? []) {
  console.log(row.started_at_bucket, row.agent_name, row.total_input_tokens);
}
```

***

### getAgentTurn()

> **getAgentTurn**(`options`): `Promise`\<[`Response`](../type-aliases/response)\<\{ `agent_name?`: `string` | `null`; `agent_version?`: `string` | `null`; `feedback?`: `Record`\<`string`, `any`>\[] | `null`; `messages?`: `object`\[]; `provider?`: `string` | `null`; `root_span_name?`: `string` | `null`; `status_code?`: `"UNSET"` | `"OK"` | `"ERROR"` | `null`; `total_cost_usd?`: `number` | `null`; `total_duration_ms?`: `number` | `null`; `trace_id`: `string`; }>>

Get data (including messages) for a single turn (by traceId).

Defined in: [src/weaveClient.ts:760](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L760)

#### Parameters

##### options

[`GetAgentTurnOptions`](./getagentturnoptions)

#### Returns

`Promise`\<[`Response`](../type-aliases/response)\<\{ `agent_name?`: `string` | `null`; `agent_version?`: `string` | `null`; `feedback?`: `Record`\<`string`, `any`>\[] | `null`; `messages?`: `object`\[]; `provider?`: `string` | `null`; `root_span_name?`: `string` | `null`; `status_code?`: `"UNSET"` | `"OK"` | `"ERROR"` | `null`; `total_cost_usd?`: `number` | `null`; `total_duration_ms?`: `number` | `null`; `trace_id`: `string`; }>>

#### Example

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentTurn({
  traceId: '01997b8a-2c89-7c4d-9d0e-2f7e5b9a1b2c',
  includeFeedback: true,
});

console.log(resp.data.root_span_name, resp.data.total_duration_ms);

for (const message of resp.data.messages ?? []) {
  if (message.user_message) console.log('user:', message.user_message);
  if (message.assistant_message) console.log('assistant:', message.assistant_message);
}
```

***

### getAgentTurns()

> **getAgentTurns**(`options`): `Promise`\<[`Response`](../type-aliases/response)\<[`GetAgentTurnsResult`](../type-aliases/getagentturnsresult)>>

Get data (including messages) for many turns (by conversationId).

Defined in: [src/weaveClient.ts:793](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L793)

#### Parameters

##### options

[`GetAgentTurnsOptions`](./getagentturnsoptions)

#### Returns

`Promise`\<[`Response`](../type-aliases/response)\<[`GetAgentTurnsResult`](../type-aliases/getagentturnsresult)>>

#### Example

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentTurns({
  conversationId: 'trace_c50312356de3487fa90e381c9399b5b4',
  limit: 20,
  includeFeedback: true,
});

for (const turn of resp.data.turns ?? []) {
  console.log(turn.trace_id, turn.root_span_name);
  for (const message of turn.messages ?? []) {
    if (message.user_message) console.log('user:', message.user_message);
    if (message.assistant_message) console.log('assistant:', message.assistant_message);
  }
}

console.log(`total turns: ${resp.data.total_turns}, has more: ${resp.data.has_more}`);
```

***

### getAgentVersions()

> **getAgentVersions**(`options`): `Promise`\<[`Response`](../type-aliases/response)\<[`GetAgentVersionsResult`](../type-aliases/getagentversionsresult)>>

List versions for a given agent.

Defined in: [src/weaveClient.ts:627](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L627)

#### Parameters

##### options

[`GetAgentVersionsOptions`](./getagentversionsoptions)

#### Returns

`Promise`\<[`Response`](../type-aliases/response)\<[`GetAgentVersionsResult`](../type-aliases/getagentversionsresult)>>

#### Example

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentVersions({agentName: 'my-agent', limit: 20});

for (const version of resp.data.versions) {
  console.log(version.agent_version, version.total_input_tokens);
}

console.log(`total count: ${resp.data.total_count}`)
```

***

### getCall()

> **getCall**(`callId`, `includeCosts?`): `Promise`\<\{ `attributes`: `Record`\<`string`, `any`>; `deleted_at?`: `string` | `null`; `display_name?`: `string` | `null`; `ended_at?`: `string` | `null`; `exception?`: `string` | `null`; `expire_at?`: `string` | `null`; `id`: `string`; `inputs`: `Record`\<`string`, `any`>; `op_name`: `string`; `output?`: `null`; `parent_id?`: `string` | `null`; `project_id`: `string`; `started_at`: `string`; `storage_size_bytes?`: `number` | `null`; `summary?`: `Record`\<`string`, `any`>; `thread_id?`: `string` | `null`; `total_storage_size_bytes?`: `number` | `null`; `trace_id`: `string`; `turn_id?`: `string` | `null`; `wb_run_id?`: `string` | `null`; `wb_run_step?`: `number` | `null`; `wb_run_step_end?`: `number` | `null`; `wb_user_id?`: `string` | `null`; `wb_username?`: `string` | `null`; `setDisplayName`: `Promise`\<`void`>; }>

Defined in: [src/weaveClient.ts:1228](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1228)

#### Parameters

##### callId

`string`

##### includeCosts?

`boolean` = `false`

#### Returns

`Promise`\<\{ `attributes`: `Record`\<`string`, `any`>; `deleted_at?`: `string` | `null`; `display_name?`: `string` | `null`; `ended_at?`: `string` | `null`; `exception?`: `string` | `null`; `expire_at?`: `string` | `null`; `id`: `string`; `inputs`: `Record`\<`string`, `any`>; `op_name`: `string`; `output?`: `null`; `parent_id?`: `string` | `null`; `project_id`: `string`; `started_at`: `string`; `storage_size_bytes?`: `number` | `null`; `summary?`: `Record`\<`string`, `any`>; `thread_id?`: `string` | `null`; `total_storage_size_bytes?`: `number` | `null`; `trace_id`: `string`; `turn_id?`: `string` | `null`; `wb_run_id?`: `string` | `null`; `wb_run_step?`: `number` | `null`; `wb_run_step_end?`: `number` | `null`; `wb_user_id?`: `string` | `null`; `wb_username?`: `string` | `null`; `setDisplayName`: `Promise`\<`void`>; }>

***

### getCalls()

#### Call Signature

> **getCalls**(`options?`): `Promise`\<`object`\[]>

Defined in: [src/weaveClient.ts:1261](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1261)

##### Parameters

###### options?

[`GetCallsOptions`](./getcallsoptions)

##### Returns

`Promise`\<`object`\[]>

#### Call Signature

> **getCalls**(`options?`, `includeCosts?`, `limit?`): `Promise`\<`object`\[]>

Defined in: [src/weaveClient.ts:1262](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1262)

##### Parameters

###### options?

[`CallsFilter`](./callsfilter)

###### includeCosts?

`boolean`

###### limit?

`number`

##### Returns

`Promise`\<`object`\[]>

***

### getCallsIterator()

#### Call Signature

> **getCallsIterator**(`options?`, `includeCosts?`, `limit?`): `AsyncIterableIterator`\<[`CallSchema`](./callschema)>

Defined in: [src/weaveClient.ts:1283](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1283)

##### Parameters

###### options?

[`CallsFilter`](./callsfilter)

###### includeCosts?

`boolean`

###### limit?

`number`

##### Returns

`AsyncIterableIterator`\<[`CallSchema`](./callschema)>

#### Call Signature

> **getCallsIterator**(`options?`): `AsyncIterableIterator`\<[`CallSchema`](./callschema)>

Defined in: [src/weaveClient.ts:1288](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1288)

##### Parameters

###### options?

[`GetCallsOptions`](./getcallsoptions)

##### Returns

`AsyncIterableIterator`\<[`CallSchema`](./callschema)>

***

### getCallStack()

> **getCallStack**(): `CallStack`

Defined in: [src/weaveClient.ts:1901](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1901)

#### Returns

`CallStack`

***

### getCurrentAttributes()

> **getCurrentAttributes**(): `Record`\<`string`, `any`>

Defined in: [src/weaveClient.ts:1905](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1905)

#### Returns

`Record`\<`string`, `any`>

***

### linkPromptToRegistry()

> **linkPromptToRegistry**(`prompt`, `options`): `Promise`\<\{ `version_index`: `number` | `null`; }>

Link a published prompt version into a registry portfolio.

Defined in: [src/weaveClient.ts:1510](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1510)

#### Parameters

##### prompt

`string` | [`ObjectRef`](../classes/objectref) | `Prompt`

##### options

###### aliases?

`string`\[]

###### targetPath

`string`

#### Returns

`Promise`\<\{ `version_index`: `number` | `null`; }>

***

### pendingCallCount()

> **pendingCallCount**(): `number`

Calls buffered client-side but not yet delivered to the server.

Defined in: [src/weaveClient.ts:924](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L924)

#### Returns

`number`

***

### publish()

> **publish**(`obj`, `objId?`): `Promise`\<[`ObjectRef`](../classes/objectref)>

Defined in: [src/weaveClient.ts:1216](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1216)

#### Parameters

##### obj

`any`

##### objId?

`string`

#### Returns

`Promise`\<[`ObjectRef`](../classes/objectref)>

***

### pushNewCall()

> **pushNewCall**(): `object`

Defined in: [src/weaveClient.ts:1909](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1909)

#### Returns

`object`

##### currentCall

> **currentCall**: `object`

###### currentCall.callId

> **callId**: `string`

###### currentCall.childSummary

> **childSummary**: `Record`\<`string`, `any`>

###### currentCall.displayName

> `optional` **displayName**: `string`

###### currentCall.opName

> `optional` **opName**: `string`

###### currentCall.traceId

> **traceId**: `string`

##### newStack

> **newStack**: `CallStack`

##### parentCall

> `optional` **parentCall**: `object`

###### parentCall.callId

> **callId**: `string`

###### parentCall.childSummary

> **childSummary**: `Record`\<`string`, `any`>

###### parentCall.displayName

> `optional` **displayName**: `string`

###### parentCall.opName

> `optional` **opName**: `string`

###### parentCall.traceId

> **traceId**: `string`

***

### registerCustomRuntime()

> **registerCustomRuntime**(`options`): `Promise`\<[`Response`](../type-aliases/response)\<\{ `api_key_secret`: `string` | `null`; `base_url`: `string`; `headers`: `Record`\<`string`, `string`>; `name`: `string`; `runtime_ids`: `object`\[]; }>>

Register a custom runtime, replacing its complete configuration if it exists.

Defined in: [src/weaveClient.ts:557](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L557)

#### Parameters

##### options

[`RegisterCustomRuntimeOptions`](./registercustomruntimeoptions)

#### Returns

`Promise`\<[`Response`](../type-aliases/response)\<\{ `api_key_secret`: `string` | `null`; `base_url`: `string`; `headers`: `Record`\<`string`, `string`>; `name`: `string`; `runtime_ids`: `object`\[]; }>>

***

### runWithAttributes()

> **runWithAttributes**\<`T`>(`attributes`, `fn`): `T`

Defined in: [src/weaveClient.ts:1917](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1917)

#### Type Parameters

##### T

`T`

#### Parameters

##### attributes

`Record`\<`string`, `any`>

##### fn

() => `T`

#### Returns

`T`

***

### runWithCallStack()

> **runWithCallStack**\<`T`>(`callStack`, `fn`): `T`

Defined in: [src/weaveClient.ts:1913](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1913)

#### Type Parameters

##### T

`T`

#### Parameters

##### callStack

`CallStack`

##### fn

() => `T`

#### Returns

`T`

***

### saveCallEnd()

> **saveCallEnd**(`callEnd`): `void`

Defined in: [src/weaveClient.ts:1863](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1863)

#### Parameters

##### callEnd

`object` & `object`

#### Returns

`void`

***

### saveCallStart()

> **saveCallStart**(`callStart`, `opts?`): `void`

Defined in: [src/weaveClient.ts:1828](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1828)

#### Parameters

##### callStart

###### attributes

`Record`\<`string`, `any`>

Attributes

###### display\_name?

`string` | `null`

Display Name

###### id?

`string` | `null`

Id

###### inputs

`Record`\<`string`, `any`>

Inputs

###### op\_name

`string`

Op Name

###### otel\_dump?

`Record`\<`string`, `any`> | `null`

Otel Dump

###### parent\_id?

`string` | `null`

Parent Id

###### project\_id

`string`

Project Id

###### started\_at

`string`

Started At

**Format**

date-time

###### thread\_id?

`string` | `null`

Thread Id

###### trace\_id?

`string` | `null`

Trace Id

###### turn\_id?

`string` | `null`

Turn Id

###### wb\_run\_id?

`string` | `null`

Wb Run Id

###### wb\_run\_step?

`number` | `null`

Wb Run Step

###### wb\_user\_id?

`string` | `null`

Wb User Id
Do not set directly. Server will automatically populate this field.

##### opts?

###### eager?

`boolean`

#### Returns

`void`

***

### saveOp()

> **saveOp**(`op`, `objId?`): `Promise`\<`OpRef`>

Defined in: [src/weaveClient.ts:1961](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1961)

#### Parameters

##### op

[`Op`](../type-aliases/op)\<(...`args`) => `any`>

##### objId?

`string`

#### Returns

`Promise`\<`OpRef`>

***

### searchAgents()

> **searchAgents**(`options`): `Promise`\<[`Response`](../type-aliases/response)\<\{ `results`: `object`\[]; `total_conversations?`: `number`; }>>

Full-text search across agent messages in the project. Returns hits
grouped by conversation, with a preview of each matched message.

`query` is the full-text search term. Pass an empty string to retrieve
all messages matching the structured filters (`agentName`,
`conversationId`, `traceId`) without text matching. Use `limit` /
`offset` to page through results.

Defined in: [src/weaveClient.ts:835](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L835)

#### Parameters

##### options

###### agentName?

`string` | `null`

###### conversationId?

`string` | `null`

###### limit?

`number`

Limit

**Min**

0

**Max**

1000

**Default**

```ts twoslash theme={null}
// @noErrors
20
```

###### offset?

`number`

Offset

**Min**

0

**Default**

```ts twoslash theme={null}
// @noErrors
0
```

###### query

`string`

###### traceId?

`string` | `null`

#### Returns

`Promise`\<[`Response`](../type-aliases/response)\<\{ `results`: `object`\[]; `total_conversations?`: `number`; }>>

#### Example

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.searchAgents({
  query: 'Liverpool',
  agentName: 'Assistant',
  limit: 20,
});

for (const conversation of resp.data.results ?? []) {
  console.log(`${conversation.conversation_id} (${conversation.agent_name})`);
  for (const match of conversation.matched_messages) {
    console.log(`  [${match.role}] ${match.content_preview}`);
  }
}

console.log(`total conversations: ${resp.data.total_conversations}`);
```

***

### serializeAudio()

> **serializeAudio**(`data`, `audioType?`): `Promise`\<\{ `_type`: `"CustomWeaveType"`; `files`: `Record`\<`string`, `string`>; `load_op`: `string`; `weave_type`: \{ `type`: `string`; }; }>

Upload raw audio bytes to the Weave content store and return the
`CustomWeaveType` placeholder that can be embedded in a call output.

Use this when building call outputs manually (e.g. via `saveCallEnd`)
where the automatic serialization pipeline from `finishCall` is not used.

Defined in: [src/weaveClient.ts:1765](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L1765)

#### Parameters

##### data

`Buffer`

Raw audio bytes (WAV for best browser compatibility)

##### audioType?

`"wav"` = `DEFAULT_AUDIO_TYPE`

File format — currently only 'wav' is supported

#### Returns

`Promise`\<\{ `_type`: `"CustomWeaveType"`; `files`: `Record`\<`string`, `string`>; `load_op`: `string`; `weave_type`: \{ `type`: `string`; }; }>

***

### updateCall()

> **updateCall**(`callId`, `displayName`): `Promise`\<`void`>

Defined in: [src/weaveClient.ts:2148](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L2148)

#### Parameters

##### callId

`string`

##### displayName

`string`

#### Returns

`Promise`\<`void`>

***

### waitForBatchProcessing()

> **waitForBatchProcessing**(): `Promise`\<`void`>

Defined in: [src/weaveClient.ts:907](https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/weaveClient.ts#L907)

#### Returns

`Promise`\<`void`>
