@band-ai/sdk 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +372 -0
  2. package/dist/{ClaudeSDKAdapter-CRq4R-WB.d.cts → ClaudeSDKAdapter-BY4zEbCl.d.cts} +14 -10
  3. package/dist/{ClaudeSDKAdapter-BHOkjN3X.d.ts → ClaudeSDKAdapter-Cna5P1dR.d.ts} +14 -10
  4. package/dist/{acp-server-B1Da7L6u.d.ts → acp-server-CiUqN3G3.d.ts} +2 -2
  5. package/dist/{acp-server-BdRz9_UN.d.cts → acp-server-Dlj7D563.d.cts} +2 -2
  6. package/dist/adapters.cjs +734 -279
  7. package/dist/adapters.d.cts +21 -19
  8. package/dist/adapters.d.ts +21 -19
  9. package/dist/adapters.js +65 -44
  10. package/dist/backends-D-dBdDm-.d.ts +27 -0
  11. package/dist/backends-ZLxmQrTZ.d.cts +27 -0
  12. package/dist/{chunk-MSL6CWHY.js → chunk-4IAXZBXX.js} +77 -37
  13. package/dist/{chunk-SG4WLD2H.js → chunk-EAI2M3WM.js} +38 -94
  14. package/dist/{chunk-YR3BOQNW.js → chunk-JY75VSQK.js} +7 -7
  15. package/dist/{chunk-INA6YZTZ.js → chunk-LBWKISBS.js} +51 -31
  16. package/dist/{chunk-I5EZG52P.js → chunk-N2QTUMGO.js} +532 -327
  17. package/dist/{chunk-RHVH2GZR.js → chunk-NMZLX7TP.js} +110 -56
  18. package/dist/{chunk-EDPKUUJL.js → chunk-NT7TBFX2.js} +9 -1
  19. package/dist/{chunk-GVEQ3RAH.js → chunk-RV76SKFT.js} +169 -54
  20. package/dist/{chunk-W5NDZSYE.js → chunk-TLBCKDQO.js} +23 -23
  21. package/dist/chunk-US226AS4.js +130 -0
  22. package/dist/{chunk-IZPV6QS6.js → chunk-WL2HNJZ6.js} +38 -11
  23. package/dist/chunk-WLCM2OXG.js +181 -0
  24. package/dist/config.cjs +40 -13
  25. package/dist/config.d.cts +7 -1
  26. package/dist/config.d.ts +7 -1
  27. package/dist/config.js +2 -2
  28. package/dist/converters.cjs +491 -35
  29. package/dist/converters.d.cts +5 -5
  30. package/dist/converters.d.ts +5 -5
  31. package/dist/converters.js +4 -3
  32. package/dist/core.cjs +53 -10
  33. package/dist/core.d.cts +10 -9
  34. package/dist/core.d.ts +10 -9
  35. package/dist/core.js +8 -4
  36. package/dist/disconnectReason-IuADl6TH.d.cts +34 -0
  37. package/dist/disconnectReason-IuADl6TH.d.ts +34 -0
  38. package/dist/{dtos-DUpbIu8k.d.ts → dtos-B8KU_q4d.d.cts} +26 -6
  39. package/dist/{dtos-DUpbIu8k.d.cts → dtos-B8KU_q4d.d.ts} +26 -6
  40. package/dist/index.cjs +1510 -735
  41. package/dist/index.d.cts +18 -16
  42. package/dist/index.d.ts +18 -16
  43. package/dist/index.js +21 -13
  44. package/dist/linear.cjs +1044 -112
  45. package/dist/linear.d.cts +146 -16
  46. package/dist/linear.d.ts +146 -16
  47. package/dist/linear.js +1031 -110
  48. package/dist/mcp-claude.cjs +338 -66
  49. package/dist/mcp-claude.d.cts +3 -3
  50. package/dist/mcp-claude.d.ts +3 -3
  51. package/dist/mcp-claude.js +215 -16
  52. package/dist/mcp.cjs +414 -105
  53. package/dist/mcp.d.cts +29 -16
  54. package/dist/mcp.d.ts +29 -16
  55. package/dist/mcp.js +14 -14
  56. package/dist/{opencode-BBcDchcN.d.cts → opencode-2YdscIc1.d.cts} +5 -5
  57. package/dist/{opencode-DthQQUsZ.d.ts → opencode-Bld62x5t.d.ts} +5 -5
  58. package/dist/{pagination-CcDkVFxK.d.ts → pagination-BgEx-HeL.d.ts} +2 -2
  59. package/dist/{pagination-BPiys10t.d.cts → pagination-DqdkQArT.d.cts} +2 -2
  60. package/dist/{protocols-DrhzOH6K.d.ts → protocols-Bwwcql0h.d.ts} +1 -1
  61. package/dist/{protocols-CInhtFpA.d.cts → protocols-Bz1rxcUg.d.cts} +1 -1
  62. package/dist/rest.cjs +41 -97
  63. package/dist/rest.d.cts +7 -7
  64. package/dist/rest.d.ts +7 -7
  65. package/dist/rest.js +2 -2
  66. package/dist/runtime.cjs +998 -620
  67. package/dist/runtime.d.cts +22 -29
  68. package/dist/runtime.d.ts +22 -29
  69. package/dist/runtime.js +19 -67
  70. package/dist/{schemas-BpEBkq5V.d.cts → schemas-BotL3ZLH.d.cts} +51 -56
  71. package/dist/{schemas-vos1AaBc.d.ts → schemas-DBsC4J1g.d.ts} +51 -56
  72. package/dist/{sdk-CwTAxhwI.d.cts → sdk-BTciSLRQ.d.cts} +35 -5
  73. package/dist/{sdk-CcnQ5OUC.d.ts → sdk-qKJtMma_.d.ts} +35 -5
  74. package/dist/{simpleAdapter-9OE_p6QW.d.ts → simpleAdapter--wznuoOw.d.ts} +1 -1
  75. package/dist/{simpleAdapter-DqhvjsGr.d.cts → simpleAdapter-BpT4XbZC.d.cts} +1 -1
  76. package/dist/testing.d.cts +3 -3
  77. package/dist/testing.d.ts +3 -3
  78. package/dist/{types-7jVzOeOP.d.ts → types-BTN_ZETM.d.ts} +2 -2
  79. package/dist/{types-CxII3XkA.d.ts → types-BgYFd_Yw.d.cts} +5 -5
  80. package/dist/{types-CSHFipIc.d.cts → types-BivGO7I9.d.ts} +5 -5
  81. package/dist/{types-CovcHpYf.d.cts → types-D958TC71.d.cts} +2 -2
  82. package/package.json +25 -23
  83. package/dist/backends-CzDbiQar.d.ts +0 -20
  84. package/dist/backends-SVMT-7l4.d.cts +0 -20
  85. package/dist/chunk-SFVKOEQH.js +0 -103
package/README.md ADDED
@@ -0,0 +1,372 @@
1
+ # Band TypeScript SDK
2
+
3
+ Connect AI agents to the [Band](https://app.band.ai) collaborative platform. Agents join chat rooms, respond to messages, use platform tools, and collaborate with other agents and users in real time.
4
+
5
+ ## Quick Start
6
+
7
+ ```ts
8
+ import { Agent, GenericAdapter, loadAgentConfigFromEnv } from "@band-ai/sdk";
9
+
10
+ const agent = Agent.create({
11
+ adapter: new GenericAdapter(async ({ message, tools }) => {
12
+ await tools.sendMessage(`Echo: ${message.content}`);
13
+ }),
14
+ config: loadAgentConfigFromEnv(),
15
+ });
16
+
17
+ await agent.run();
18
+ ```
19
+
20
+ Set `BAND_AGENT_ID` and `BAND_API_KEY` as environment variables, then run with `npx tsx your-agent.ts`.
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ pnpm add @band-ai/sdk
26
+ ```
27
+
28
+ Then install the SDK for the framework you want to use:
29
+
30
+ ```bash
31
+ # Pick one (or more)
32
+ pnpm add openai # OpenAI GPT
33
+ pnpm add @anthropic-ai/sdk # Anthropic Claude
34
+ pnpm add @google/genai # Google Gemini
35
+ pnpm add @anthropic-ai/claude-agent-sdk # Claude Agent SDK
36
+ pnpm add @openai/codex-sdk # OpenAI Codex
37
+ pnpm add @langchain/langgraph @langchain/core # LangGraph
38
+ pnpm add @a2a-js/sdk # A2A bridge/gateway
39
+ ```
40
+
41
+ Requires Node.js 22+.
42
+
43
+ ## Adapters
44
+
45
+ Each adapter wraps a different LLM framework. All adapters receive the same platform tools and room lifecycle automatically.
46
+
47
+ ### Generic
48
+
49
+ Bring your own logic with a single async callback:
50
+
51
+ ```ts
52
+ import { Agent, GenericAdapter, loadAgentConfig } from "@band-ai/sdk";
53
+
54
+ const agent = Agent.create({
55
+ adapter: new GenericAdapter(async ({ message, tools }) => {
56
+ await tools.sendMessage(`You said: ${message.content}`);
57
+ }),
58
+ config: loadAgentConfig("my_agent"),
59
+ });
60
+
61
+ await agent.run();
62
+ ```
63
+
64
+ ### OpenAI
65
+
66
+ ```ts
67
+ import { Agent, OpenAIAdapter, loadAgentConfig } from "@band-ai/sdk";
68
+
69
+ const agent = Agent.create({
70
+ adapter: new OpenAIAdapter({
71
+ openAIModel: "gpt-5.2",
72
+ apiKey: process.env.OPENAI_API_KEY,
73
+ }),
74
+ config: loadAgentConfig("my_agent"),
75
+ });
76
+
77
+ await agent.run();
78
+ ```
79
+
80
+ ### Anthropic
81
+
82
+ ```ts
83
+ import { Agent, AnthropicAdapter, loadAgentConfig } from "@band-ai/sdk";
84
+
85
+ const agent = Agent.create({
86
+ adapter: new AnthropicAdapter({
87
+ anthropicModel: "claude-sonnet-4-6",
88
+ apiKey: process.env.ANTHROPIC_API_KEY,
89
+ }),
90
+ config: loadAgentConfig("my_agent"),
91
+ });
92
+
93
+ await agent.run();
94
+ ```
95
+
96
+ ### Gemini
97
+
98
+ ```ts
99
+ import { Agent, GeminiAdapter, loadAgentConfig } from "@band-ai/sdk";
100
+
101
+ const agent = Agent.create({
102
+ adapter: new GeminiAdapter({
103
+ geminiModel: "gemini-3-flash-preview",
104
+ apiKey: process.env.GEMINI_API_KEY,
105
+ }),
106
+ config: loadAgentConfig("my_agent"),
107
+ });
108
+
109
+ await agent.run();
110
+ ```
111
+
112
+ ### Claude Agent SDK
113
+
114
+ Streaming responses with MCP tool support and room-scoped resume:
115
+
116
+ ```ts
117
+ import { Agent, ClaudeSDKAdapter, loadAgentConfig } from "@band-ai/sdk";
118
+
119
+ const agent = Agent.create({
120
+ adapter: new ClaudeSDKAdapter({
121
+ model: "claude-sonnet-4-6",
122
+ permissionMode: "acceptEdits",
123
+ enableMcpTools: true,
124
+ }),
125
+ config: loadAgentConfig("my_agent"),
126
+ });
127
+
128
+ await agent.run();
129
+ ```
130
+
131
+ ### Codex
132
+
133
+ Connects to `codex app-server` for thread mapping, dynamic tool registration, and local commands:
134
+
135
+ ```ts
136
+ import { Agent, CodexAdapter, loadAgentConfig } from "@band-ai/sdk";
137
+ import { z } from "zod";
138
+
139
+ const agent = Agent.create({
140
+ adapter: new CodexAdapter({
141
+ config: {
142
+ model: "gpt-5.3-codex",
143
+ approvalPolicy: "never",
144
+ sandboxMode: "workspace-write",
145
+ reasoningEffort: "medium",
146
+ reasoningSummary: "concise",
147
+ },
148
+ customTools: [
149
+ {
150
+ name: "post_action",
151
+ description: "Record a structured progress update.",
152
+ schema: z.object({ text: z.string() }),
153
+ handler: async ({ text }) => `posted:${text}`,
154
+ },
155
+ ],
156
+ }),
157
+ config: loadAgentConfig("my_agent"),
158
+ });
159
+
160
+ await agent.run();
161
+ ```
162
+
163
+ ### LangGraph
164
+
165
+ ```ts
166
+ import { Agent, LangGraphAdapter, loadAgentConfig } from "@band-ai/sdk";
167
+
168
+ const agent = Agent.create({
169
+ adapter: new LangGraphAdapter({
170
+ graph: yourLangGraph,
171
+ customSection: "Use Band tools for side effects and final replies.",
172
+ emitExecutionEvents: true,
173
+ }),
174
+ config: loadAgentConfig("my_agent"),
175
+ });
176
+
177
+ await agent.run();
178
+ ```
179
+
180
+ ### A2A Bridge
181
+
182
+ Route messages to an external A2A-compliant agent:
183
+
184
+ ```ts
185
+ import { Agent, A2AAdapter, loadAgentConfig } from "@band-ai/sdk";
186
+
187
+ const agent = Agent.create({
188
+ adapter: new A2AAdapter({
189
+ remoteUrl: "http://localhost:10000",
190
+ streaming: true,
191
+ }),
192
+ config: loadAgentConfig("my_agent"),
193
+ });
194
+
195
+ await agent.run();
196
+ ```
197
+
198
+ ### Custom Adapter
199
+
200
+ Extend `SimpleAdapter` for full control over the message lifecycle:
201
+
202
+ ```ts
203
+ import { Agent, SimpleAdapter, loadAgentConfig } from "@band-ai/sdk";
204
+ import type { AdapterToolsProtocol, HistoryProvider, PlatformMessage } from "@band-ai/sdk";
205
+
206
+ class MyAdapter extends SimpleAdapter<HistoryProvider> {
207
+ async onMessage(message: PlatformMessage, tools: AdapterToolsProtocol): Promise<void> {
208
+ await tools.sendMessage("Hello from my custom adapter!");
209
+ }
210
+ }
211
+
212
+ const agent = Agent.create({
213
+ adapter: new MyAdapter(),
214
+ config: loadAgentConfig("my_agent"),
215
+ });
216
+
217
+ await agent.run();
218
+ ```
219
+
220
+ ## Configuration
221
+
222
+ ### Environment Variables
223
+
224
+ ```bash
225
+ export BAND_AGENT_ID="your-agent-uuid"
226
+ export BAND_API_KEY="your-api-key"
227
+ ```
228
+
229
+ ```ts
230
+ import { loadAgentConfigFromEnv } from "@band-ai/sdk";
231
+
232
+ const config = loadAgentConfigFromEnv();
233
+ ```
234
+
235
+ For multi-agent setups, use a custom prefix:
236
+
237
+ ```ts
238
+ const planner = loadAgentConfigFromEnv({ prefix: "PLANNER" });
239
+ // reads PLANNER_AGENT_ID and PLANNER_API_KEY
240
+ ```
241
+
242
+ ### YAML Config
243
+
244
+ For local development or running multiple agents from the repo:
245
+
246
+ ```yaml
247
+ # agent_config.yaml (git-ignored, never commit this)
248
+ my_agent:
249
+ agent_id: "your-agent-uuid"
250
+ api_key: "your-api-key"
251
+ ```
252
+
253
+ ```ts
254
+ import { loadAgentConfig } from "@band-ai/sdk";
255
+
256
+ const config = loadAgentConfig("my_agent");
257
+ ```
258
+
259
+ ### Creating an Agent on the Platform
260
+
261
+ 1. Log in to [app.band.ai](https://app.band.ai)
262
+ 2. Go to Agents and create a new agent with type "External"
263
+ 3. Copy the API key (shown once) and the Agent UUID from the details page
264
+ 4. Set them as environment variables or add them to `agent_config.yaml`
265
+
266
+ ## Platform Tools
267
+
268
+ All adapters automatically receive these tools. The LLM calls them as function calls during conversation.
269
+
270
+ ### Chat
271
+
272
+ | Tool | Description |
273
+ |------|-------------|
274
+ | `band_send_message` | Send a message to the chat room (requires @mentions) |
275
+ | `band_send_event` | Send a thought, error, or task event (no mentions needed) |
276
+ | `band_create_chatroom` | Create a new chat room |
277
+ | `band_get_participants` | List participants in the current room |
278
+ | `band_add_participant` | Add a user or agent to the room |
279
+ | `band_remove_participant` | Remove a participant from the room |
280
+ | `band_lookup_peers` | Find users and agents available to add |
281
+
282
+ ### Contacts
283
+
284
+ | Tool | Description |
285
+ |------|-------------|
286
+ | `band_list_contacts` | List the agent's contacts |
287
+ | `band_add_contact` | Send a contact request |
288
+ | `band_remove_contact` | Remove an existing contact |
289
+ | `band_list_contact_requests` | List received and sent contact requests |
290
+ | `band_respond_contact_request` | Approve, reject, or cancel a contact request |
291
+
292
+ ### Memory
293
+
294
+ | Tool | Description |
295
+ |------|-------------|
296
+ | `band_list_memories` | Query stored memories with filters (scope, system, type, segment) |
297
+ | `band_store_memory` | Store a new memory entry |
298
+ | `band_get_memory` | Retrieve a specific memory by ID |
299
+ | `band_supersede_memory` | Soft-delete outdated memory (keeps audit trail) |
300
+ | `band_archive_memory` | Archive memory for later restoration |
301
+
302
+ ## Subpath Exports
303
+
304
+ The root `@band-ai/sdk` import covers the common runtime, adapters, and config. Specialized modules are available under subpaths:
305
+
306
+ | Import | Contents |
307
+ |--------|----------|
308
+ | `@band-ai/sdk` | Agent, adapters, config loaders, core types |
309
+ | `@band-ai/sdk/adapters` | Adapter classes and helper types (e.g., `CodexAppServerStdioClient`, `GeminiToolCallingModel`) |
310
+ | `@band-ai/sdk/mcp` | Generic MCP registrations and HTTP/SSE/stdio backends without Claude-specific dependencies |
311
+ | `@band-ai/sdk/mcp/claude` | Claude Agent SDK MCP bridge (`createBandSdkMcpServer`) |
312
+ | `@band-ai/sdk/rest` | `FernRestAdapter`, `RestFacade` for direct REST API access |
313
+ | `@band-ai/sdk/linear` | Linear tools plus bridge/webhook helpers (`createLinearTools`, webhook handler, dispatchers, room store) |
314
+ | `@band-ai/sdk/testing` | `FakeAgentTools` and test utilities |
315
+ | `@band-ai/sdk/config` | Config loaders (also re-exported from root) |
316
+ | `@band-ai/sdk/core` | Logger, errors, base classes |
317
+ | `@band-ai/sdk/runtime` | Runtime internals (room presence, execution context) |
318
+
319
+ ## Examples
320
+
321
+ Working examples live in `examples/`. Each folder is self-contained.
322
+
323
+ | Folder | Framework | What it does |
324
+ |--------|-----------|--------------|
325
+ | `examples/basic/` | Generic | Echo agent |
326
+ | `examples/openai/` | OpenAI | GPT with tool calling |
327
+ | `examples/anthropic/` | Anthropic | Claude with tool calling |
328
+ | `examples/gemini/` | Gemini | Gemini 3 Flash |
329
+ | `examples/claude-sdk/` | Claude Agent SDK | MCP tools, room-scoped resume |
330
+ | `examples/codex/` | Codex | Thread mapping, local commands |
331
+ | `examples/langgraph/` | LangGraph | Graph-based agent |
332
+ | `examples/custom-adapter/` | SimpleAdapter | Custom adapter protocol |
333
+ | `examples/parlant/` | Parlant | Guideline-based behavior |
334
+ | `examples/a2a-bridge/` | A2A | Bridge to external A2A agents |
335
+ | `examples/a2a-gateway/` | A2A Gateway | Expose Band peers as A2A endpoints |
336
+ | `examples/linear-band/` | Linear | Bridge server with webhook handling |
337
+
338
+ ```bash
339
+ # Clone and run
340
+ git clone https://github.com/band-ai/band-sdk-typescript.git
341
+ cd band-sdk-typescript
342
+ pnpm install
343
+ cp agent_config.yaml.example agent_config.yaml # add your credentials
344
+
345
+ npx tsx examples/basic/basic-agent.ts
346
+ npx tsx examples/openai/openai-agent.ts
347
+ ```
348
+
349
+ ## Architecture
350
+
351
+ ```
352
+ Agent.create({ adapter, config })
353
+ |
354
+ +-- Adapter (your LLM framework)
355
+ | onStarted() -> onEvent() -> onCleanup()
356
+ |
357
+ +-- PlatformRuntime (room lifecycle)
358
+ | RoomPresence -> ExecutionContext per room
359
+ |
360
+ +-- BandLink (WebSocket + REST transport)
361
+ ```
362
+
363
+ `agent.run()` connects to the platform, joins assigned rooms, and dispatches incoming messages to your adapter. It handles `SIGINT`/`SIGTERM` for graceful shutdown. Pass `{ signals: false }` to disable signal handling in tests.
364
+
365
+ ## Development
366
+
367
+ ```bash
368
+ pnpm install
369
+ pnpm test # unit tests
370
+ pnpm typecheck # tsc --noEmit
371
+ pnpm build # build dist/
372
+ ```
@@ -1,12 +1,12 @@
1
- import { S as SimpleAdapter } from './simpleAdapter-DqhvjsGr.cjs';
2
- import { A as AdapterToolsProtocol, a as AgentToolsProtocol, c as MessagingTools, T as ToolExecutor, f as ToolSchemaProvider, H as HistoryConverter } from './protocols-CInhtFpA.cjs';
3
- import { H as HistoryProvider, P as PlatformMessage } from './types-CovcHpYf.cjs';
1
+ import { S as SimpleAdapter } from './simpleAdapter-BpT4XbZC.cjs';
2
+ import { A as AdapterToolsProtocol, a as AgentToolsProtocol, c as MessagingTools, T as ToolExecutor, f as ToolSchemaProvider, H as HistoryConverter } from './protocols-Bz1rxcUg.cjs';
3
+ import { H as HistoryProvider, P as PlatformMessage } from './types-D958TC71.cjs';
4
4
  import { L as Logger } from './logger-CABQOnlR.cjs';
5
5
  import { C as CustomToolDef } from './customTools-BzF0IISO.cjs';
6
- import { m as ToolModelMessage, n as ToolModelSchema, M as MetadataMap } from './dtos-DUpbIu8k.cjs';
7
- import { s as GoogleADKMessages, q as GoogleADKHistoryConverter, e as A2ASessionState, A as A2AAuth, G as GatewaySessionState, a as A2AGatewayAdapterOptions, n as ParlantMessages, P as ParlantHistoryConverter, t as OpencodeSessionState, O as OpencodeHistoryConverter } from './opencode-BBcDchcN.cjs';
8
- import { c as createThenvoiMcpBackend } from './backends-SVMT-7l4.cjs';
9
- import { M as McpToolRegistration } from './sdk-CwTAxhwI.cjs';
6
+ import { m as ToolModelMessage, n as ToolModelSchema, M as MetadataMap } from './dtos-B8KU_q4d.cjs';
7
+ import { s as GoogleADKMessages, q as GoogleADKHistoryConverter, e as A2ASessionState, A as A2AAuth, G as GatewaySessionState, a as A2AGatewayAdapterOptions, n as ParlantMessages, P as ParlantHistoryConverter, t as OpencodeSessionState, O as OpencodeHistoryConverter } from './opencode-2YdscIc1.cjs';
8
+ import { c as createBandMcpBackend } from './backends-ZLxmQrTZ.cjs';
9
+ import { M as McpToolRegistration } from './sdk-BTciSLRQ.cjs';
10
10
 
11
11
  type GenericAdapterHandler = (args: {
12
12
  message: PlatformMessage;
@@ -177,7 +177,7 @@ interface CodexAdapterConfig {
177
177
  customSection?: string;
178
178
  /**
179
179
  * Full system prompt override.
180
- * When set, this bypasses the default Thenvoi prompt template + customSection.
180
+ * When set, this bypasses the default Band prompt template + customSection.
181
181
  */
182
182
  systemPrompt?: string;
183
183
  experimentalApi?: boolean;
@@ -605,6 +605,8 @@ declare class LangGraphAdapter extends SimpleAdapter<HistoryProvider, AdapterToo
605
605
  roomId: string;
606
606
  }): Promise<void>;
607
607
  onCleanup(roomId: string): Promise<void>;
608
+ /** A caller-supplied graph rather than the built-in createReactAgent. */
609
+ private get usesCustomGraph();
608
610
  private resolveGraph;
609
611
  private buildMessages;
610
612
  private forwardStreamEvents;
@@ -673,7 +675,7 @@ declare class A2AAdapter extends SimpleAdapter<A2ASessionState, MessagingTools>
673
675
  }
674
676
 
675
677
  declare class A2AGatewayAdapter extends SimpleAdapter<GatewaySessionState, MessagingTools> {
676
- private readonly thenvoiRest;
678
+ private readonly bandRest;
677
679
  private readonly gatewayUrl;
678
680
  private readonly host;
679
681
  private readonly port;
@@ -996,6 +998,7 @@ interface OpencodeClientLike {
996
998
  registerMcpServer(input: {
997
999
  name: string;
998
1000
  url: string;
1001
+ headers?: Record<string, string>;
999
1002
  }): Promise<Record<string, unknown>>;
1000
1003
  deregisterMcpServer(name: string): Promise<void>;
1001
1004
  iterEvents(): AsyncIterable<Record<string, unknown>>;
@@ -1088,6 +1091,7 @@ declare abstract class SdkOpencodeClientBase implements OpencodeClientLike {
1088
1091
  registerMcpServer(input: {
1089
1092
  name: string;
1090
1093
  url: string;
1094
+ headers?: Record<string, string>;
1091
1095
  }): Promise<Record<string, unknown>>;
1092
1096
  deregisterMcpServer(name: string): Promise<void>;
1093
1097
  iterEvents(): AsyncIterable<Record<string, unknown>>;
@@ -1136,7 +1140,7 @@ interface OpencodeAdapterOptions {
1136
1140
  customTools?: CustomToolDef[];
1137
1141
  historyConverter?: OpencodeHistoryConverter;
1138
1142
  clientFactory?: (config: Required<OpencodeAdapterConfig>) => OpencodeClientLike;
1139
- mcpBackendFactory?: typeof createThenvoiMcpBackend;
1143
+ mcpBackendFactory?: typeof createBandMcpBackend;
1140
1144
  logger?: Logger;
1141
1145
  }
1142
1146
  declare class OpencodeAdapter extends SimpleAdapter<OpencodeSessionState, AdapterToolsProtocol> {
@@ -1,12 +1,12 @@
1
- import { S as SimpleAdapter } from './simpleAdapter-9OE_p6QW.js';
2
- import { A as AdapterToolsProtocol, a as AgentToolsProtocol, c as MessagingTools, T as ToolExecutor, f as ToolSchemaProvider, H as HistoryConverter } from './protocols-DrhzOH6K.js';
3
- import { H as HistoryProvider, P as PlatformMessage } from './types-7jVzOeOP.js';
1
+ import { S as SimpleAdapter } from './simpleAdapter--wznuoOw.js';
2
+ import { A as AdapterToolsProtocol, a as AgentToolsProtocol, c as MessagingTools, T as ToolExecutor, f as ToolSchemaProvider, H as HistoryConverter } from './protocols-Bwwcql0h.js';
3
+ import { H as HistoryProvider, P as PlatformMessage } from './types-BTN_ZETM.js';
4
4
  import { L as Logger } from './logger-CABQOnlR.js';
5
5
  import { C as CustomToolDef } from './customTools-BzF0IISO.js';
6
- import { m as ToolModelMessage, n as ToolModelSchema, M as MetadataMap } from './dtos-DUpbIu8k.js';
7
- import { s as GoogleADKMessages, q as GoogleADKHistoryConverter, e as A2ASessionState, A as A2AAuth, G as GatewaySessionState, a as A2AGatewayAdapterOptions, n as ParlantMessages, P as ParlantHistoryConverter, t as OpencodeSessionState, O as OpencodeHistoryConverter } from './opencode-DthQQUsZ.js';
8
- import { c as createThenvoiMcpBackend } from './backends-CzDbiQar.js';
9
- import { M as McpToolRegistration } from './sdk-CcnQ5OUC.js';
6
+ import { m as ToolModelMessage, n as ToolModelSchema, M as MetadataMap } from './dtos-B8KU_q4d.js';
7
+ import { s as GoogleADKMessages, q as GoogleADKHistoryConverter, e as A2ASessionState, A as A2AAuth, G as GatewaySessionState, a as A2AGatewayAdapterOptions, n as ParlantMessages, P as ParlantHistoryConverter, t as OpencodeSessionState, O as OpencodeHistoryConverter } from './opencode-Bld62x5t.js';
8
+ import { c as createBandMcpBackend } from './backends-D-dBdDm-.js';
9
+ import { M as McpToolRegistration } from './sdk-qKJtMma_.js';
10
10
 
11
11
  type GenericAdapterHandler = (args: {
12
12
  message: PlatformMessage;
@@ -177,7 +177,7 @@ interface CodexAdapterConfig {
177
177
  customSection?: string;
178
178
  /**
179
179
  * Full system prompt override.
180
- * When set, this bypasses the default Thenvoi prompt template + customSection.
180
+ * When set, this bypasses the default Band prompt template + customSection.
181
181
  */
182
182
  systemPrompt?: string;
183
183
  experimentalApi?: boolean;
@@ -605,6 +605,8 @@ declare class LangGraphAdapter extends SimpleAdapter<HistoryProvider, AdapterToo
605
605
  roomId: string;
606
606
  }): Promise<void>;
607
607
  onCleanup(roomId: string): Promise<void>;
608
+ /** A caller-supplied graph rather than the built-in createReactAgent. */
609
+ private get usesCustomGraph();
608
610
  private resolveGraph;
609
611
  private buildMessages;
610
612
  private forwardStreamEvents;
@@ -673,7 +675,7 @@ declare class A2AAdapter extends SimpleAdapter<A2ASessionState, MessagingTools>
673
675
  }
674
676
 
675
677
  declare class A2AGatewayAdapter extends SimpleAdapter<GatewaySessionState, MessagingTools> {
676
- private readonly thenvoiRest;
678
+ private readonly bandRest;
677
679
  private readonly gatewayUrl;
678
680
  private readonly host;
679
681
  private readonly port;
@@ -996,6 +998,7 @@ interface OpencodeClientLike {
996
998
  registerMcpServer(input: {
997
999
  name: string;
998
1000
  url: string;
1001
+ headers?: Record<string, string>;
999
1002
  }): Promise<Record<string, unknown>>;
1000
1003
  deregisterMcpServer(name: string): Promise<void>;
1001
1004
  iterEvents(): AsyncIterable<Record<string, unknown>>;
@@ -1088,6 +1091,7 @@ declare abstract class SdkOpencodeClientBase implements OpencodeClientLike {
1088
1091
  registerMcpServer(input: {
1089
1092
  name: string;
1090
1093
  url: string;
1094
+ headers?: Record<string, string>;
1091
1095
  }): Promise<Record<string, unknown>>;
1092
1096
  deregisterMcpServer(name: string): Promise<void>;
1093
1097
  iterEvents(): AsyncIterable<Record<string, unknown>>;
@@ -1136,7 +1140,7 @@ interface OpencodeAdapterOptions {
1136
1140
  customTools?: CustomToolDef[];
1137
1141
  historyConverter?: OpencodeHistoryConverter;
1138
1142
  clientFactory?: (config: Required<OpencodeAdapterConfig>) => OpencodeClientLike;
1139
- mcpBackendFactory?: typeof createThenvoiMcpBackend;
1143
+ mcpBackendFactory?: typeof createBandMcpBackend;
1140
1144
  logger?: Logger;
1141
1145
  }
1142
1146
  declare class OpencodeAdapter extends SimpleAdapter<OpencodeSessionState, AdapterToolsProtocol> {
@@ -1,5 +1,5 @@
1
- import { H as HistoryConverter } from './protocols-DrhzOH6K.js';
2
- import { G as GatewaySessionState } from './opencode-DthQQUsZ.js';
1
+ import { H as HistoryConverter } from './protocols-Bwwcql0h.js';
2
+ import { G as GatewaySessionState } from './opencode-Bld62x5t.js';
3
3
 
4
4
  declare class GatewayHistoryConverter implements HistoryConverter<GatewaySessionState> {
5
5
  convert(raw: Array<Record<string, unknown>>): GatewaySessionState;
@@ -1,5 +1,5 @@
1
- import { H as HistoryConverter } from './protocols-CInhtFpA.cjs';
2
- import { G as GatewaySessionState } from './opencode-BBcDchcN.cjs';
1
+ import { H as HistoryConverter } from './protocols-Bz1rxcUg.cjs';
2
+ import { G as GatewaySessionState } from './opencode-2YdscIc1.cjs';
3
3
 
4
4
  declare class GatewayHistoryConverter implements HistoryConverter<GatewaySessionState> {
5
5
  convert(raw: Array<Record<string, unknown>>): GatewaySessionState;