🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@nimblebrain/sdk

Package Overview
Dependencies
Maintainers
2
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nimblebrain/sdk - npm Package Compare versions

Comparing version
0.2.0
to
0.3.0
+0
-2
dist/index.d.ts

@@ -1,5 +0,3 @@

export { NimbleBrain } from './nimblebrain';
export type { NimbleBrainConfig, Agent, Playbook, Conversation, Message, SendMessageResponse, ExecutePlaybookResponse, Execution, StreamEvent, WaitForCompletionOptions, } from './nimblebrain';
export type * from './types.gen';
export * from './sdk.gen';
//# sourceMappingURL=index.d.ts.map
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,iBAAiB,EACjB,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACT,WAAW,EACX,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAGvB,mBAAmB,aAAa,CAAC;AACjC,cAAc,WAAW,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,mBAAmB,aAAa,CAAC;AACjC,cAAc,WAAW,CAAC"}

@@ -1,4 +0,3 @@

// High-level SDK (recommended)
export { NimbleBrain } from './nimblebrain';
// This file is auto-generated by @hey-api/openapi-ts
export * from './sdk.gen';
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAgB5C,cAAc,WAAW,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAGrD,cAAc,WAAW,CAAC"}
import type { Client, Options as Options2, TDataShape } from './client';
import type { GetV1AgentsByAgentIdConversationsByConversationIdData, GetV1AgentsByAgentIdConversationsByConversationIdMessagesData, GetV1AgentsByAgentIdConversationsByConversationIdMessagesResponses, GetV1AgentsByAgentIdConversationsByConversationIdResponses, GetV1AgentsData, GetV1AgentsErrors, GetV1AgentsResponses, GetV1ExecutionsByIdData, GetV1ExecutionsByIdResponses, GetV1PlaybooksData, GetV1PlaybooksResponses, PostV1AgentsByAgentIdConversationsByConversationIdMessagesData, PostV1AgentsByAgentIdConversationsByConversationIdMessagesResponses, PostV1AgentsByAgentIdConversationsData, PostV1AgentsByAgentIdConversationsResponses, PostV1PlaybooksByPlaybookIdExecuteData, PostV1PlaybooksByPlaybookIdExecuteResponses } from './types.gen';
import type { GetV1ExecutionsByIdData, GetV1ExecutionsByIdResponses, GetV1MeData, GetV1MeErrors, GetV1MeResponses, GetV1NiraConversationsByIdData, GetV1NiraConversationsByIdMessagesData, GetV1NiraConversationsByIdMessagesResponses, GetV1NiraConversationsByIdResponses, GetV1PlaybooksData, GetV1PlaybooksResponses, GetV1WorkspacesData, GetV1WorkspacesErrors, GetV1WorkspacesResponses, PostV1NiraConversationsByIdMessagesData, PostV1NiraConversationsByIdMessagesResponses, PostV1NiraConversationsData, PostV1NiraConversationsResponses, PostV1PlaybooksByPlaybookIdExecuteData, PostV1PlaybooksByPlaybookIdExecuteResponses } from './types.gen';
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {

@@ -17,8 +17,14 @@ /**

/**
* List agents
* Get current user
*
* Get a list of all agents available in your workspace
* Returns the authenticated user profile, organization, and available workspaces. Requires Clerk JWT authentication (not API key).
*/
export declare const getV1Agents: <ThrowOnError extends boolean = false>(options?: Options<GetV1AgentsData, ThrowOnError>) => import("./client").RequestResult<GetV1AgentsResponses, GetV1AgentsErrors, ThrowOnError, "fields">;
export declare const getV1Me: <ThrowOnError extends boolean = false>(options?: Options<GetV1MeData, ThrowOnError>) => import("./client").RequestResult<GetV1MeResponses, GetV1MeErrors, ThrowOnError, "fields">;
/**
* List workspaces
*
* Returns workspaces accessible to the authenticated user. Requires Clerk JWT authentication (not API key).
*/
export declare const getV1Workspaces: <ThrowOnError extends boolean = false>(options?: Options<GetV1WorkspacesData, ThrowOnError>) => import("./client").RequestResult<GetV1WorkspacesResponses, GetV1WorkspacesErrors, ThrowOnError, "fields">;
/**
* List playbooks

@@ -30,51 +36,37 @@ *

/**
* Create conversation with agent
* Execute playbook
*
* Start a new conversation with a specific agent
* Execute a playbook with optional parameters
*/
export declare const postV1AgentsByAgentIdConversations: <ThrowOnError extends boolean = false>(options: Options<PostV1AgentsByAgentIdConversationsData, ThrowOnError>) => import("./client").RequestResult<PostV1AgentsByAgentIdConversationsResponses, unknown, ThrowOnError, "fields">;
export declare const postV1PlaybooksByPlaybookIdExecute: <ThrowOnError extends boolean = false>(options: Options<PostV1PlaybooksByPlaybookIdExecuteData, ThrowOnError>) => import("./client").RequestResult<PostV1PlaybooksByPlaybookIdExecuteResponses, unknown, ThrowOnError, "fields">;
/**
* Get conversation
* Get execution status
*
* Get details of a specific conversation with an agent
* Poll execution status and retrieve results. Use the ID returned from POST /v1/playbooks/:id/execute
*/
export declare const getV1AgentsByAgentIdConversationsByConversationId: <ThrowOnError extends boolean = false>(options: Options<GetV1AgentsByAgentIdConversationsByConversationIdData, ThrowOnError>) => import("./client").RequestResult<GetV1AgentsByAgentIdConversationsByConversationIdResponses, unknown, ThrowOnError, "fields">;
export declare const getV1ExecutionsById: <ThrowOnError extends boolean = false>(options: Options<GetV1ExecutionsByIdData, ThrowOnError>) => import("./client").RequestResult<GetV1ExecutionsByIdResponses, unknown, ThrowOnError, "fields">;
/**
* List messages
* Create conversation
*
* Get messages in a conversation with an agent
* Create a new conversation with Nira. Optionally provide context for personalization.
*/
export declare const getV1AgentsByAgentIdConversationsByConversationIdMessages: <ThrowOnError extends boolean = false>(options: Options<GetV1AgentsByAgentIdConversationsByConversationIdMessagesData, ThrowOnError>) => import("./client").RequestResult<GetV1AgentsByAgentIdConversationsByConversationIdMessagesResponses, unknown, ThrowOnError, "fields">;
export declare const postV1NiraConversations: <ThrowOnError extends boolean = false>(options?: Options<PostV1NiraConversationsData, ThrowOnError>) => import("./client").RequestResult<PostV1NiraConversationsResponses, unknown, ThrowOnError, "fields">;
/**
* Send message
* Get conversation
*
* Send a message to a conversation with an agent.
*
* **Response Modes:**
* - **Streaming** (Accept: text/event-stream OR stream: true): Returns SSE stream with real-time events
* - **Synchronous** (default): Blocks until response complete, returns full message
* - **Async** (async: true): Returns immediately with executionId, poll /v1/executions/:id for result
*
* **SSE Events (streaming mode):**
* - `message.start` - Agent started responding
* - `content` - Content chunk (text field)
* - `tool.start` - Tool execution started
* - `tool.complete` - Tool execution finished
* - `message.complete` - Full message with content
* - `error` - Error occurred
* - `done` - Stream complete
* Get details of a specific conversation
*/
export declare const postV1AgentsByAgentIdConversationsByConversationIdMessages: <ThrowOnError extends boolean = false>(options: Options<PostV1AgentsByAgentIdConversationsByConversationIdMessagesData, ThrowOnError>) => import("./client").RequestResult<PostV1AgentsByAgentIdConversationsByConversationIdMessagesResponses, unknown, ThrowOnError, "fields">;
export declare const getV1NiraConversationsById: <ThrowOnError extends boolean = false>(options: Options<GetV1NiraConversationsByIdData, ThrowOnError>) => import("./client").RequestResult<GetV1NiraConversationsByIdResponses, unknown, ThrowOnError, "fields">;
/**
* Execute playbook
* List messages
*
* Execute a playbook with optional parameters
* Get messages in a conversation with pagination
*/
export declare const postV1PlaybooksByPlaybookIdExecute: <ThrowOnError extends boolean = false>(options: Options<PostV1PlaybooksByPlaybookIdExecuteData, ThrowOnError>) => import("./client").RequestResult<PostV1PlaybooksByPlaybookIdExecuteResponses, unknown, ThrowOnError, "fields">;
export declare const getV1NiraConversationsByIdMessages: <ThrowOnError extends boolean = false>(options: Options<GetV1NiraConversationsByIdMessagesData, ThrowOnError>) => import("./client").RequestResult<GetV1NiraConversationsByIdMessagesResponses, unknown, ThrowOnError, "fields">;
/**
* Get execution status
* Send message
*
* Poll execution status and retrieve results. Use the ID returned from POST /v1/playbooks/:id/execute
* Send a message to Nira. Response is streamed via Server-Sent Events (SSE).
*/
export declare const getV1ExecutionsById: <ThrowOnError extends boolean = false>(options: Options<GetV1ExecutionsByIdData, ThrowOnError>) => import("./client").RequestResult<GetV1ExecutionsByIdResponses, unknown, ThrowOnError, "fields">;
export declare const postV1NiraConversationsByIdMessages: <ThrowOnError extends boolean = false>(options: Options<PostV1NiraConversationsByIdMessagesData, ThrowOnError>) => Promise<import("./core/serverSentEvents.gen").ServerSentEventsResult<PostV1NiraConversationsByIdMessagesResponses, unknown>>;
//# sourceMappingURL=sdk.gen.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"sdk.gen.d.ts","sourceRoot":"","sources":["../src/sdk.gen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAExE,OAAO,KAAK,EAAE,qDAAqD,EAAE,6DAA6D,EAAE,kEAAkE,EAAE,0DAA0D,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,8DAA8D,EAAE,mEAAmE,EAAE,sCAAsC,EAAE,2CAA2C,EAAE,sCAAsC,EAAE,2CAA2C,EAAE,MAAM,aAAa,CAAC;AAEruB,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EAAE,YAAY,SAAS,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG;IACjI;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,UAAU,OAAO,CAAC,eAAe,EAAE,YAAY,CAAC,sGAIhH,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,UAAU,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,+FAItH,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,SAAS,OAAO,CAAC,sCAAsC,EAAE,YAAY,CAAC,mHAQ7J,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,iDAAiD,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,SAAS,OAAO,CAAC,qDAAqD,EAAE,YAAY,CAAC,kIAI3L,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,yDAAyD,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,SAAS,OAAO,CAAC,6DAA6D,EAAE,YAAY,CAAC,0IAI3M,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,0DAA0D,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,SAAS,OAAO,CAAC,8DAA8D,EAAE,YAAY,CAAC,2IAQ7M,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,SAAS,OAAO,CAAC,sCAAsC,EAAE,YAAY,CAAC,mHAQ7J,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,SAAS,OAAO,CAAC,uBAAuB,EAAE,YAAY,CAAC,oGAI/H,CAAC"}
{"version":3,"file":"sdk.gen.d.ts","sourceRoot":"","sources":["../src/sdk.gen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAExE,OAAO,KAAK,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,sCAAsC,EAAE,2CAA2C,EAAE,mCAAmC,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,uCAAuC,EAAE,4CAA4C,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,sCAAsC,EAAE,2CAA2C,EAAE,MAAM,aAAa,CAAC;AAE/nB,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EAAE,YAAY,SAAS,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG;IACjI;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,UAAU,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,8FAIxG,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,UAAU,OAAO,CAAC,mBAAmB,EAAE,YAAY,CAAC,8GAIxH,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,UAAU,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,+FAItH,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,SAAS,OAAO,CAAC,sCAAsC,EAAE,YAAY,CAAC,mHAQ7J,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,SAAS,OAAO,CAAC,uBAAuB,EAAE,YAAY,CAAC,oGAI/H,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,UAAU,OAAO,CAAC,2BAA2B,EAAE,YAAY,CAAC,wGAQxI,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,SAAS,OAAO,CAAC,8BAA8B,EAAE,YAAY,CAAC,2GAI7I,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,SAAS,OAAO,CAAC,sCAAsC,EAAE,YAAY,CAAC,mHAI7J,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,GAAI,YAAY,SAAS,OAAO,GAAG,KAAK,EAAE,SAAS,OAAO,CAAC,uCAAuC,EAAE,YAAY,CAAC,iIAQ/J,CAAC"}
// This file is auto-generated by @hey-api/openapi-ts
import { client } from './client.gen';
/**
* List agents
* Get current user
*
* Get a list of all agents available in your workspace
* Returns the authenticated user profile, organization, and available workspaces. Requires Clerk JWT authentication (not API key).
*/
export const getV1Agents = (options) => (options?.client ?? client).get({
export const getV1Me = (options) => (options?.client ?? client).get({
security: [{ scheme: 'bearer', type: 'http' }],
url: '/v1/agents',
url: '/v1/me',
...options
});
/**
* List workspaces
*
* Returns workspaces accessible to the authenticated user. Requires Clerk JWT authentication (not API key).
*/
export const getV1Workspaces = (options) => (options?.client ?? client).get({
security: [{ scheme: 'bearer', type: 'http' }],
url: '/v1/workspaces',
...options
});
/**
* List playbooks

@@ -24,9 +34,9 @@ *

/**
* Create conversation with agent
* Execute playbook
*
* Start a new conversation with a specific agent
* Execute a playbook with optional parameters
*/
export const postV1AgentsByAgentIdConversations = (options) => (options.client ?? client).post({
export const postV1PlaybooksByPlaybookIdExecute = (options) => (options.client ?? client).post({
security: [{ scheme: 'bearer', type: 'http' }],
url: '/v1/agents/{agentId}/conversations',
url: '/v1/playbooks/{playbookId}/execute',
...options,

@@ -39,57 +49,53 @@ headers: {

/**
* Get conversation
* Get execution status
*
* Get details of a specific conversation with an agent
* Poll execution status and retrieve results. Use the ID returned from POST /v1/playbooks/:id/execute
*/
export const getV1AgentsByAgentIdConversationsByConversationId = (options) => (options.client ?? client).get({
export const getV1ExecutionsById = (options) => (options.client ?? client).get({
security: [{ scheme: 'bearer', type: 'http' }],
url: '/v1/agents/{agentId}/conversations/{conversationId}',
url: '/v1/executions/{id}',
...options
});
/**
* List messages
* Create conversation
*
* Get messages in a conversation with an agent
* Create a new conversation with Nira. Optionally provide context for personalization.
*/
export const getV1AgentsByAgentIdConversationsByConversationIdMessages = (options) => (options.client ?? client).get({
export const postV1NiraConversations = (options) => (options?.client ?? client).post({
security: [{ scheme: 'bearer', type: 'http' }],
url: '/v1/agents/{agentId}/conversations/{conversationId}/messages',
url: '/v1/nira/conversations',
...options,
headers: {
'Content-Type': 'application/json',
...options?.headers
}
});
/**
* Get conversation
*
* Get details of a specific conversation
*/
export const getV1NiraConversationsById = (options) => (options.client ?? client).get({
security: [{ scheme: 'bearer', type: 'http' }],
url: '/v1/nira/conversations/{id}',
...options
});
/**
* Send message
* List messages
*
* Send a message to a conversation with an agent.
*
* **Response Modes:**
* - **Streaming** (Accept: text/event-stream OR stream: true): Returns SSE stream with real-time events
* - **Synchronous** (default): Blocks until response complete, returns full message
* - **Async** (async: true): Returns immediately with executionId, poll /v1/executions/:id for result
*
* **SSE Events (streaming mode):**
* - `message.start` - Agent started responding
* - `content` - Content chunk (text field)
* - `tool.start` - Tool execution started
* - `tool.complete` - Tool execution finished
* - `message.complete` - Full message with content
* - `error` - Error occurred
* - `done` - Stream complete
* Get messages in a conversation with pagination
*/
export const postV1AgentsByAgentIdConversationsByConversationIdMessages = (options) => (options.client ?? client).post({
export const getV1NiraConversationsByIdMessages = (options) => (options.client ?? client).get({
security: [{ scheme: 'bearer', type: 'http' }],
url: '/v1/agents/{agentId}/conversations/{conversationId}/messages',
...options,
headers: {
'Content-Type': 'application/json',
...options.headers
}
url: '/v1/nira/conversations/{id}/messages',
...options
});
/**
* Execute playbook
* Send message
*
* Execute a playbook with optional parameters
* Send a message to Nira. Response is streamed via Server-Sent Events (SSE).
*/
export const postV1PlaybooksByPlaybookIdExecute = (options) => (options.client ?? client).post({
export const postV1NiraConversationsByIdMessages = (options) => (options.client ?? client).sse.post({
security: [{ scheme: 'bearer', type: 'http' }],
url: '/v1/playbooks/{playbookId}/execute',
url: '/v1/nira/conversations/{id}/messages',
...options,

@@ -101,12 +107,2 @@ headers: {

});
/**
* Get execution status
*
* Poll execution status and retrieve results. Use the ID returned from POST /v1/playbooks/:id/execute
*/
export const getV1ExecutionsById = (options) => (options.client ?? client).get({
security: [{ scheme: 'bearer', type: 'http' }],
url: '/v1/executions/{id}',
...options
});
//# sourceMappingURL=sdk.gen.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"sdk.gen.js","sourceRoot":"","sources":["../src/sdk.gen.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"sdk.gen.js","sourceRoot":"","sources":["../src/sdk.gen.ts"],"names":[],"mappings":"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"}
export type ClientOptions = {
baseUrl: 'http://localhost:3000' | (string & {});
};
export type GetV1AgentsData = {
export type ActionCard = ({
type: 'link';
} & LinkCard) | ({
type: 'document';
} & DocumentCard) | ({
type: 'code';
} & CodeCard) | ({
type: 'meeting';
} & MeetingCard) | ({
type: 'contact';
} & ContactCard) | ({
type: 'datetime';
} & DateTimeCard) | ({
type: 'table';
} & TableCard) | ({
type: 'connection';
} & ConnectionCard);
/**
* Hyperlink with label and optional description
*/
export type LinkCard = {
type: 'link';
label: string;
url: string;
description?: string;
};
/**
* File/document reference with metadata
*/
export type DocumentCard = {
type: 'document';
label: string;
url: string;
filename?: string;
mimeType?: string;
/**
* File size in bytes
*/
size?: number;
};
/**
* Code snippet or value with copy functionality
*/
export type CodeCard = {
type: 'code';
label: string;
value: string;
copyable?: boolean;
/**
* If true, value should be masked
*/
sensitive?: boolean;
};
/**
* Meeting/video call with join information
*/
export type MeetingCard = {
type: 'meeting';
/**
* e.g., "Zoom Meeting"
*/
label: string;
joinUrl: string;
meetingId?: string;
passcode?: string;
dialIn?: string;
startTime?: string;
};
/**
* Person/contact information
*/
export type ContactCard = {
type: 'contact';
label: string;
name?: string;
email?: string;
phone?: string;
profileUrl?: string;
};
/**
* Date/time information with optional duration
*/
export type DateTimeCard = {
type: 'datetime';
label: string;
iso: string;
timezone?: string;
/**
* Duration in minutes
*/
duration?: number;
};
/**
* Tabular data display
*/
export type TableCard = {
type: 'table';
label: string;
headers: Array<string>;
rows: Array<Array<string>>;
truncated?: boolean;
totalRows?: number;
};
/**
* MCP connection requiring user action (OAuth or API key configuration)
*/
export type ConnectionCard = {
type: 'connection';
connectionId: string;
connectionName: string;
status: 'pending_auth' | 'configuring' | 'active' | 'error' | 'disconnected';
authType: 'oauth2' | 'api_key' | 'none';
/**
* Required fields for API key auth
*/
requiredSecrets?: Array<string>;
icon?: string;
description?: string;
/**
* OAuth token expired, needs re-authorization
*/
needsReauth?: boolean;
/**
* OAuth initiate URL. Present when authType is oauth2 and authorization is needed.
*/
authUrl?: string;
};
/**
* Initial metadata for the response message. Event type: message.meta
*/
export type MessageMetaEvent = {
conversationId: string;
messageId: string;
participantId: string;
participantName: string;
};
/**
* Indicates Nira is processing. Event type: message.thinking
*/
export type MessageThinkingEvent = {
status: 'thinking';
};
/**
* Streaming text content chunk. Event type: message.content
*/
export type MessageContentEvent = {
/**
* Text chunk to append
*/
content: string;
messageId: string;
};
/**
* Tool execution status update. Event type: message.tool
*/
export type MessageToolEvent = {
/**
* Internal tool identifier
*/
toolName: string;
/**
* Human-readable tool name
*/
displayName: string;
status: 'started' | 'completed';
/**
* Present when status is completed
*/
success?: boolean;
};
/**
* Rich interactive cards (connections, links, meetings, etc.). Event type: message.actionCards
*/
export type MessageActionCardsEvent = {
actionCards: Array<ActionCard>;
};
/**
* File attachments. Event type: message.attachments
*/
export type MessageAttachmentsEvent = {
attachments: Array<{
name: string;
url: string;
mimeType: string;
}>;
};
/**
* Client-side actions to execute. Event type: message.actions
*/
export type MessageActionsEvent = {
actions: Array<{
type: string;
payload: {
[key: string]: unknown;
};
}>;
};
/**
* Stream completion indicator. Event type: message.done
*/
export type MessageDoneEvent = {
messagesCount: number;
};
/**
* Error during message processing. Event type: error
*/
export type ErrorEvent = {
error: string;
code?: 'INSUFFICIENT_CREDITS' | 'NOT_FOUND' | 'VALIDATION_ERROR' | 'INTERNAL_ERROR';
recoverable: boolean;
};
export type GetV1MeData = {
body?: never;
path?: never;
query?: never;
url: '/v1/agents';
url: '/v1/me';
};
export type GetV1AgentsErrors = {
export type GetV1MeErrors = {
/**
* Unauthorized - Invalid or missing API key
* JWT authentication required
*/

@@ -18,6 +229,39 @@ 401: {

};
};
export type GetV1MeError = GetV1MeErrors[keyof GetV1MeErrors];
export type GetV1MeResponses = {
/**
* Forbidden - Insufficient permissions
* Current user profile
*/
403: {
200: {
user?: {
id?: string;
email?: string;
firstName?: string;
lastName?: string;
avatarUrl?: string;
};
organization?: {
id?: string;
name?: string;
};
workspaces?: Array<{
id?: string;
name?: string;
slug?: string;
}>;
};
};
export type GetV1MeResponse = GetV1MeResponses[keyof GetV1MeResponses];
export type GetV1WorkspacesData = {
body?: never;
path?: never;
query?: never;
url: '/v1/workspaces';
};
export type GetV1WorkspacesErrors = {
/**
* JWT authentication required
*/
401: {
error?: string;

@@ -27,20 +271,16 @@ message?: string;

};
export type GetV1AgentsError = GetV1AgentsErrors[keyof GetV1AgentsErrors];
export type GetV1AgentsResponses = {
export type GetV1WorkspacesError = GetV1WorkspacesErrors[keyof GetV1WorkspacesErrors];
export type GetV1WorkspacesResponses = {
/**
* List of agents
* List of workspaces
*/
200: {
agents?: Array<{
workspaces?: Array<{
id?: string;
name?: string;
type?: 'custom' | 'nira' | 'system';
description?: string;
createdAt?: string;
updatedAt?: string;
slug?: string;
}>;
total?: number;
};
};
export type GetV1AgentsResponse = GetV1AgentsResponses[keyof GetV1AgentsResponses];
export type GetV1WorkspacesResponse = GetV1WorkspacesResponses[keyof GetV1WorkspacesResponses];
export type GetV1PlaybooksData = {

@@ -68,140 +308,2 @@ body?: never;

export type GetV1PlaybooksResponse = GetV1PlaybooksResponses[keyof GetV1PlaybooksResponses];
export type PostV1AgentsByAgentIdConversationsData = {
body?: {
title?: string;
context?: 'sidebar' | 'dedicated';
};
path: {
agentId: string;
};
query?: never;
url: '/v1/agents/{agentId}/conversations';
};
export type PostV1AgentsByAgentIdConversationsResponses = {
/**
* Conversation created
*/
201: {
id?: string;
title?: string;
context?: string;
status?: string;
createdAt?: string;
};
};
export type PostV1AgentsByAgentIdConversationsResponse = PostV1AgentsByAgentIdConversationsResponses[keyof PostV1AgentsByAgentIdConversationsResponses];
export type GetV1AgentsByAgentIdConversationsByConversationIdData = {
body?: never;
path: {
/**
* Agent ID
*/
agentId: string;
/**
* Conversation ID
*/
conversationId: string;
};
query?: never;
url: '/v1/agents/{agentId}/conversations/{conversationId}';
};
export type GetV1AgentsByAgentIdConversationsByConversationIdResponses = {
/**
* Conversation details
*/
200: {
id?: string;
title?: string;
context?: string;
status?: string;
messageCount?: number;
lastMessageAt?: string;
createdAt?: string;
};
};
export type GetV1AgentsByAgentIdConversationsByConversationIdResponse = GetV1AgentsByAgentIdConversationsByConversationIdResponses[keyof GetV1AgentsByAgentIdConversationsByConversationIdResponses];
export type GetV1AgentsByAgentIdConversationsByConversationIdMessagesData = {
body?: never;
path: {
/**
* Agent ID
*/
agentId: string;
/**
* Conversation ID
*/
conversationId: string;
};
query?: {
limit?: number;
offset?: number;
};
url: '/v1/agents/{agentId}/conversations/{conversationId}/messages';
};
export type GetV1AgentsByAgentIdConversationsByConversationIdMessagesResponses = {
/**
* List of messages
*/
200: {
messages?: Array<{
id?: string;
role?: 'user' | 'assistant' | 'system';
content?: string;
createdAt?: string;
}>;
total?: number;
};
};
export type GetV1AgentsByAgentIdConversationsByConversationIdMessagesResponse = GetV1AgentsByAgentIdConversationsByConversationIdMessagesResponses[keyof GetV1AgentsByAgentIdConversationsByConversationIdMessagesResponses];
export type PostV1AgentsByAgentIdConversationsByConversationIdMessagesData = {
body: {
/**
* Message content
*/
content: string;
role?: 'user' | 'assistant';
/**
* Enable streaming mode (alternative to Accept header)
*/
stream?: boolean;
/**
* Enable async mode (return immediately, poll for result)
*/
async?: boolean;
};
path: {
/**
* Agent ID
*/
agentId: string;
/**
* Conversation ID
*/
conversationId: string;
};
query?: never;
url: '/v1/agents/{agentId}/conversations/{conversationId}/messages';
};
export type PostV1AgentsByAgentIdConversationsByConversationIdMessagesResponses = {
/**
* Synchronous response - full message
*/
200: {
messageId?: string;
content?: string;
role?: string;
executionId?: string;
tokensUsed?: number;
};
/**
* Async mode - message queued
*/
202: {
messageId?: string;
executionId?: string;
status?: string;
message?: string;
};
};
export type PostV1AgentsByAgentIdConversationsByConversationIdMessagesResponse = PostV1AgentsByAgentIdConversationsByConversationIdMessagesResponses[keyof PostV1AgentsByAgentIdConversationsByConversationIdMessagesResponses];
export type PostV1PlaybooksByPlaybookIdExecuteData = {

@@ -294,2 +396,138 @@ body?: {

export type GetV1ExecutionsByIdResponse = GetV1ExecutionsByIdResponses[keyof GetV1ExecutionsByIdResponses];
export type PostV1NiraConversationsData = {
body?: {
/**
* Optional conversation title
*/
title?: string;
/**
* Personalization context for this conversation
*/
context?: {
/**
* End user information (your user, not a NimbleBrain user)
*/
endUser?: {
/**
* Display name for personalized addressing
*/
name?: string;
/**
* Email (for context, not authentication)
*/
email?: string;
/**
* Your user ID (for correlation)
*/
externalId?: string;
};
/**
* Preferences for this conversation
*/
preferences?: {
/**
* IANA timezone (e.g., "America/New_York")
*/
timezone?: string;
/**
* Response verbosity level
*/
verbosity?: 'concise' | 'balanced' | 'detailed';
/**
* Locale (e.g., "en-US")
*/
locale?: string;
};
/**
* Custom instructions (future use)
*/
instructions?: string;
};
};
path?: never;
query?: never;
url: '/v1/nira/conversations';
};
export type PostV1NiraConversationsResponses = {
/**
* Conversation created
*/
201: {
id?: string;
title?: string;
messageCount?: number;
createdAt?: string;
updatedAt?: string;
};
};
export type PostV1NiraConversationsResponse = PostV1NiraConversationsResponses[keyof PostV1NiraConversationsResponses];
export type GetV1NiraConversationsByIdData = {
body?: never;
path: {
id: string;
};
query?: never;
url: '/v1/nira/conversations/{id}';
};
export type GetV1NiraConversationsByIdResponses = {
/**
* Conversation details
*/
200: {
id?: string;
title?: string;
messageCount?: number;
createdAt?: string;
updatedAt?: string;
};
};
export type GetV1NiraConversationsByIdResponse = GetV1NiraConversationsByIdResponses[keyof GetV1NiraConversationsByIdResponses];
export type GetV1NiraConversationsByIdMessagesData = {
body?: never;
path: {
id: string;
};
query?: {
limit?: number;
offset?: number;
};
url: '/v1/nira/conversations/{id}/messages';
};
export type GetV1NiraConversationsByIdMessagesResponses = {
/**
* List of messages
*/
200: {
messages?: Array<{
id?: string;
role?: 'user' | 'assistant';
content?: string;
createdAt?: string;
}>;
total?: number;
limit?: number;
offset?: number;
};
};
export type GetV1NiraConversationsByIdMessagesResponse = GetV1NiraConversationsByIdMessagesResponses[keyof GetV1NiraConversationsByIdMessagesResponses];
export type PostV1NiraConversationsByIdMessagesData = {
body: {
/**
* Message content to send to Nira
*/
content: string;
};
path: {
id: string;
};
query?: never;
url: '/v1/nira/conversations/{id}/messages';
};
export type PostV1NiraConversationsByIdMessagesResponses = {
/**
* SSE event format: "event: {type}\ndata: {json}\n\n"
*/
200: string;
};
export type PostV1NiraConversationsByIdMessagesResponse = PostV1NiraConversationsByIdMessagesResponses[keyof PostV1NiraConversationsByIdMessagesResponses];
//# sourceMappingURL=types.gen.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"types.gen.d.ts","sourceRoot":"","sources":["../src/types.gen.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"types.gen.d.ts","sourceRoot":"","sources":["../src/types.gen.ts"],"names":[],"mappings":"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"}
{
"name": "@nimblebrain/sdk",
"version": "0.2.0",
"version": "0.3.0",
"description": "Official TypeScript SDK for NimbleBrain Studio API - AI agents, playbooks, and streaming conversations",

@@ -5,0 +5,0 @@ "type": "module",

+46
-44

@@ -12,7 +12,11 @@ # NimbleBrain SDK for TypeScript

- **High-level API** - Clean, intuitive interface for agents, playbooks, and conversations
- **Streaming support** - Real-time SSE streaming for agent responses with typewriter effect
- **High-level API** - Clean, intuitive interface for Nira conversations and playbooks
- **Streaming support** - Real-time SSE streaming with typewriter effect
- **TypeScript first** - Full type definitions for all API responses
- **Auto-generated types** - OpenAPI-generated types ensure API compatibility
## Requirements
- Node.js >= 18.0.0
## Installation

@@ -31,13 +35,11 @@

// List agents in your workspace
const agents = await nb.agents.list();
console.log('Available agents:', agents);
// Create a conversation with Nira
const conversation = await nb.nira.createConversation('My Chat');
// Create a conversation and chat with an agent
const conversation = await nb.conversations.create(agents[0].id);
// Stream the response in real-time
for await (const event of nb.messages.stream(agents[0].id, conversation.id, 'Hello!')) {
if (event.type === 'content') {
process.stdout.write(event.data.text as string);
for await (const event of nb.nira.stream(conversation.id, 'Hello!')) {
if (event.type === 'message.content') {
process.stdout.write(event.data.content as string);
} else if (event.type === 'message.done') {
console.log('\nDone!');
}

@@ -62,23 +64,25 @@ }

The SDK provides real-time streaming for agent responses via Server-Sent Events (SSE):
The SDK provides real-time streaming for Nira responses via Server-Sent Events (SSE):
```typescript
const conversation = await nb.conversations.create(agentId);
const conversation = await nb.nira.createConversation('My Chat');
for await (const event of nb.messages.stream(agentId, conversation.id, 'Tell me a joke')) {
for await (const event of nb.nira.stream(conversation.id, 'Tell me a joke')) {
switch (event.type) {
case 'message.start':
console.log('Agent is responding...');
case 'message.meta':
console.log('Message ID:', event.data.messageId);
break;
case 'content':
case 'message.content':
// Text chunk - display with typewriter effect
process.stdout.write(event.data.text as string);
process.stdout.write(event.data.content as string);
break;
case 'tool.start':
console.log(`Using tool: ${event.data.display}`);
case 'message.tool':
// Tool execution status
console.log(`Tool: ${event.data.toolName} - ${event.data.status}`);
break;
case 'tool.complete':
console.log('Tool completed');
case 'message.actionCards':
// Action cards (e.g., OAuth prompts)
console.log('Action cards:', event.data.actionCards);
break;
case 'done':
case 'message.done':
console.log('\nResponse complete!');

@@ -95,30 +99,22 @@ break;

### Agents
### Nira (Conversations)
```typescript
// List all agents
const agents = await nb.agents.list();
```
### Conversations
```typescript
// Create a new conversation
const conversation = await nb.conversations.create(agentId, 'My Chat');
const conversation = await nb.nira.createConversation('My Chat');
// Get conversation details
const conv = await nb.conversations.get(agentId, conversationId);
```
const conv = await nb.nira.getConversation(conversationId);
### Messages
// List messages in a conversation (paginated)
const { messages, total } = await nb.nira.listMessages(conversationId, {
limit: 50,
offset: 0,
});
```typescript
// List messages in a conversation
const messages = await nb.messages.list(agentId, conversationId);
// Send a message (non-streaming, blocks until complete)
const response = await nb.messages.send(agentId, conversationId, 'Hello!');
const response = await nb.nira.sendMessage(conversationId, 'Hello!');
// Send with streaming (recommended for UI)
for await (const event of nb.messages.stream(agentId, conversationId, 'Hello!')) {
for await (const event of nb.nira.stream(conversationId, 'Hello!')) {
// Handle streaming events

@@ -152,3 +148,3 @@ }

```typescript
import { getV1Agents, postV1AgentsByAgentIdConversations } from '@nimblebrain/sdk';
import { postV1NiraConversations, getV1NiraConversationsById } from '@nimblebrain/sdk';
import { createClient, createConfig } from '@nimblebrain/sdk/client';

@@ -161,3 +157,6 @@

const { data, error } = await getV1Agents({ client });
const { data, error } = await postV1NiraConversations({
client,
body: { title: 'My Chat' },
});
```

@@ -169,3 +168,3 @@

try {
const agents = await nb.agents.list();
const conversation = await nb.nira.createConversation('My Chat');
} catch (error) {

@@ -205,2 +204,5 @@ if (error instanceof Error) {

npm run typecheck
# Run tests
npm run test
```

@@ -207,0 +209,0 @@

/**
* NimbleBrain SDK - High-level wrapper for the NimbleBrain Studio API
*
* This file provides a clean, intuitive interface on top of the auto-generated
* OpenAPI client functions.
*/
import { type Client } from './client';
export interface NimbleBrainConfig {
/** Your NimbleBrain API key (e.g., 'nb_live_...') */
apiKey: string;
/** Base URL for the API. Defaults to 'https://api.nimblebrain.ai' */
baseUrl?: string;
}
export interface Agent {
id: string;
name: string;
type?: 'custom' | 'nira' | 'system';
description?: string;
createdAt?: string;
updatedAt?: string;
}
export interface Playbook {
id: string;
name: string;
description?: string;
createdAt?: string;
updatedAt?: string;
}
export interface Conversation {
id: string;
title?: string;
context?: string;
status?: string;
messageCount?: number;
lastMessageAt?: string;
createdAt?: string;
}
export interface Message {
id: string;
role: 'user' | 'assistant' | 'system';
content: string;
createdAt?: string;
}
export interface SendMessageResponse {
messageId?: string;
content?: string;
role?: string;
executionId?: string;
tokensUsed?: number;
}
export interface ExecutePlaybookResponse {
id: string;
status: 'queued';
message?: string;
}
export interface Execution {
id: string;
status: 'queued' | 'pending' | 'running' | 'completed' | 'completed_with_errors' | 'failed' | 'cancelled';
targetType?: 'playbook' | 'agent';
targetId?: string;
targetName?: string;
result?: string | Record<string, unknown> | null;
startedAt?: string;
completedAt?: string;
durationMs?: number;
}
export interface StreamEvent {
type: 'message.start' | 'content' | 'tool.start' | 'tool.complete' | 'message.complete' | 'error' | 'done';
data: Record<string, unknown>;
}
export interface WaitForCompletionOptions {
/** Maximum time to wait in milliseconds. Defaults to 60000 (1 minute) */
timeoutMs?: number;
/** Interval between polling requests in milliseconds. Defaults to 1000 */
pollIntervalMs?: number;
}
export declare class NimbleBrain {
private client;
private baseUrl;
private apiKey;
readonly agents: AgentsAPI;
readonly conversations: ConversationsAPI;
readonly messages: MessagesAPI;
readonly playbooks: PlaybooksAPI;
readonly executions: ExecutionsAPI;
constructor(config: NimbleBrainConfig);
}
declare class AgentsAPI {
private client;
constructor(client: Client);
/**
* List all agents in your workspace
*/
list(): Promise<Agent[]>;
}
declare class ConversationsAPI {
private client;
constructor(client: Client);
/**
* Create a new conversation with an agent
*/
create(agentId: string, title?: string): Promise<Conversation>;
/**
* Get details of a conversation
*/
get(agentId: string, conversationId: string): Promise<Conversation>;
}
declare class MessagesAPI {
private client;
private baseUrl;
private apiKey;
constructor(client: Client, baseUrl: string, apiKey: string);
/**
* List messages in a conversation
*/
list(agentId: string, conversationId: string): Promise<Message[]>;
/**
* Send a message and wait for the complete response (non-streaming)
*/
send(agentId: string, conversationId: string, content: string): Promise<SendMessageResponse>;
/**
* Send a message with streaming response (SSE)
* Returns an async generator that yields streaming events
*/
stream(agentId: string, conversationId: string, content: string): AsyncGenerator<StreamEvent>;
}
declare class PlaybooksAPI {
private client;
constructor(client: Client);
/**
* List all playbooks in your workspace
*/
list(): Promise<Playbook[]>;
/**
* Execute a playbook with optional parameters
*/
execute(playbookId: string, parameters?: Record<string, unknown>): Promise<ExecutePlaybookResponse>;
}
declare class ExecutionsAPI {
private client;
constructor(client: Client);
/**
* Get the status of an execution
*/
get(id: string): Promise<Execution>;
/**
* Wait for an execution to complete, polling at regular intervals
*/
waitForCompletion(id: string, options?: WaitForCompletionOptions): Promise<Execution>;
}
export {};
//# sourceMappingURL=nimblebrain.d.ts.map
{"version":3,"file":"nimblebrain.d.ts","sourceRoot":"","sources":["../src/nimblebrain.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA8B,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAgBnE,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,uBAAuB,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC1G,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,GAAG,SAAS,GAAG,YAAY,GAAG,eAAe,GAAG,kBAAkB,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3G,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IAEvB,SAAgB,MAAM,EAAE,SAAS,CAAC;IAClC,SAAgB,aAAa,EAAE,gBAAgB,CAAC;IAChD,SAAgB,QAAQ,EAAE,WAAW,CAAC;IACtC,SAAgB,SAAS,EAAE,YAAY,CAAC;IACxC,SAAgB,UAAU,EAAE,aAAa,CAAC;gBAE9B,MAAM,EAAE,iBAAiB;CAoBtC;AAMD,cAAM,SAAS;IACD,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAI/B;AAED,cAAM,gBAAgB;IACR,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAUpE;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAQ1E;AAED,cAAM,WAAW;IAEb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;gBAFN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM;IAGxB;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IASvE;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUlG;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC;CAyErG;AAED,cAAM,YAAY;IACJ,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKjC;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAS1G;AAED,cAAM,aAAa;IACL,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IASzC;;OAEG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,SAAS,CAAC;CAsB5F"}
/**
* NimbleBrain SDK - High-level wrapper for the NimbleBrain Studio API
*
* This file provides a clean, intuitive interface on top of the auto-generated
* OpenAPI client functions.
*/
import { createClient, createConfig } from './client';
import { getV1Agents, getV1Playbooks, postV1AgentsByAgentIdConversations, getV1AgentsByAgentIdConversationsByConversationId, getV1AgentsByAgentIdConversationsByConversationIdMessages, postV1AgentsByAgentIdConversationsByConversationIdMessages, postV1PlaybooksByPlaybookIdExecute, getV1ExecutionsById, } from './sdk.gen';
// ============================================================================
// NimbleBrain SDK Class
// ============================================================================
export class NimbleBrain {
client;
baseUrl;
apiKey;
agents;
conversations;
messages;
playbooks;
executions;
constructor(config) {
this.apiKey = config.apiKey;
this.baseUrl = config.baseUrl || 'https://api.nimblebrain.ai';
this.client = createClient(createConfig({
baseUrl: this.baseUrl,
headers: {
Authorization: `Bearer ${this.apiKey}`,
},
}));
// Initialize API namespaces
this.agents = new AgentsAPI(this.client);
this.conversations = new ConversationsAPI(this.client);
this.messages = new MessagesAPI(this.client, this.baseUrl, this.apiKey);
this.playbooks = new PlaybooksAPI(this.client);
this.executions = new ExecutionsAPI(this.client);
}
}
// ============================================================================
// API Namespace Classes
// ============================================================================
class AgentsAPI {
client;
constructor(client) {
this.client = client;
}
/**
* List all agents in your workspace
*/
async list() {
const response = await getV1Agents({ client: this.client, throwOnError: true });
return (response.data?.agents || []);
}
}
class ConversationsAPI {
client;
constructor(client) {
this.client = client;
}
/**
* Create a new conversation with an agent
*/
async create(agentId, title) {
const response = await postV1AgentsByAgentIdConversations({
client: this.client,
path: { agentId },
body: { title },
throwOnError: true,
});
return response.data;
}
/**
* Get details of a conversation
*/
async get(agentId, conversationId) {
const response = await getV1AgentsByAgentIdConversationsByConversationId({
client: this.client,
path: { agentId, conversationId },
throwOnError: true,
});
return response.data;
}
}
class MessagesAPI {
client;
baseUrl;
apiKey;
constructor(client, baseUrl, apiKey) {
this.client = client;
this.baseUrl = baseUrl;
this.apiKey = apiKey;
}
/**
* List messages in a conversation
*/
async list(agentId, conversationId) {
const response = await getV1AgentsByAgentIdConversationsByConversationIdMessages({
client: this.client,
path: { agentId, conversationId },
throwOnError: true,
});
return (response.data?.messages || []);
}
/**
* Send a message and wait for the complete response (non-streaming)
*/
async send(agentId, conversationId, content) {
const response = await postV1AgentsByAgentIdConversationsByConversationIdMessages({
client: this.client,
path: { agentId, conversationId },
body: { content },
throwOnError: true,
});
return response.data;
}
/**
* Send a message with streaming response (SSE)
* Returns an async generator that yields streaming events
*/
async *stream(agentId, conversationId, content) {
const url = `${this.baseUrl}/v1/agents/${agentId}/conversations/${conversationId}/messages`;
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'text/event-stream',
'Authorization': `Bearer ${this.apiKey}`,
},
body: JSON.stringify({ content, stream: true }),
});
if (!response.ok) {
const errorText = await response.text();
throw new Error(`Stream request failed: ${response.status} ${errorText}`);
}
if (!response.body) {
throw new Error('No response body for streaming');
}
const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
let buffer = '';
try {
while (true) {
const { done, value } = await reader.read();
if (done)
break;
buffer += value;
const chunks = buffer.split('\n\n');
buffer = chunks.pop() ?? '';
for (const chunk of chunks) {
const lines = chunk.split('\n');
let eventType;
const dataLines = [];
for (const line of lines) {
if (line.startsWith('event:')) {
eventType = line.replace(/^event:\s*/, '');
}
else if (line.startsWith('data:')) {
dataLines.push(line.replace(/^data:\s*/, ''));
}
}
if (dataLines.length > 0) {
const rawData = dataLines.join('\n');
let data = {};
try {
data = JSON.parse(rawData);
}
catch {
data = { raw: rawData };
}
yield {
type: (eventType || 'content'),
data,
};
// Stop on done event
if (eventType === 'done') {
return;
}
}
}
}
}
finally {
reader.releaseLock();
}
}
}
class PlaybooksAPI {
client;
constructor(client) {
this.client = client;
}
/**
* List all playbooks in your workspace
*/
async list() {
const response = await getV1Playbooks({ client: this.client, throwOnError: true });
return (response.data?.playbooks || []);
}
/**
* Execute a playbook with optional parameters
*/
async execute(playbookId, parameters) {
const response = await postV1PlaybooksByPlaybookIdExecute({
client: this.client,
path: { playbookId },
body: parameters ? { parameters } : {},
throwOnError: true,
});
return response.data;
}
}
class ExecutionsAPI {
client;
constructor(client) {
this.client = client;
}
/**
* Get the status of an execution
*/
async get(id) {
const response = await getV1ExecutionsById({
client: this.client,
path: { id },
throwOnError: true,
});
return response.data;
}
/**
* Wait for an execution to complete, polling at regular intervals
*/
async waitForCompletion(id, options) {
const timeoutMs = options?.timeoutMs ?? 60000;
const pollIntervalMs = options?.pollIntervalMs ?? 1000;
const startTime = Date.now();
while (true) {
const execution = await this.get(id);
// Check if execution is complete (success or failure)
if (['completed', 'completed_with_errors', 'failed', 'cancelled'].includes(execution.status)) {
return execution;
}
// Check for timeout
if (Date.now() - startTime > timeoutMs) {
throw new Error(`Execution ${id} timed out after ${timeoutMs}ms (status: ${execution.status})`);
}
// Wait before next poll
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
}
}
}
//# sourceMappingURL=nimblebrain.js.map
{"version":3,"file":"nimblebrain.js","sourceRoot":"","sources":["../src/nimblebrain.ts"],"names":[],"mappings":"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"}
export {};
//# sourceMappingURL=nimblebrain.test.d.ts.map
{"version":3,"file":"nimblebrain.test.d.ts","sourceRoot":"","sources":["../src/nimblebrain.test.ts"],"names":[],"mappings":""}
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
import { NimbleBrain } from './nimblebrain';
// Mock the auto-generated SDK functions
vi.mock('./sdk.gen', () => ({
getV1Agents: vi.fn(),
getV1Playbooks: vi.fn(),
postV1AgentsByAgentIdConversations: vi.fn(),
getV1AgentsByAgentIdConversationsByConversationId: vi.fn(),
getV1AgentsByAgentIdConversationsByConversationIdMessages: vi.fn(),
postV1AgentsByAgentIdConversationsByConversationIdMessages: vi.fn(),
postV1PlaybooksByPlaybookIdExecute: vi.fn(),
getV1ExecutionsById: vi.fn(),
}));
// Import mocked functions
import { getV1Agents, getV1Playbooks, postV1AgentsByAgentIdConversations, getV1AgentsByAgentIdConversationsByConversationId, getV1AgentsByAgentIdConversationsByConversationIdMessages, postV1AgentsByAgentIdConversationsByConversationIdMessages, postV1PlaybooksByPlaybookIdExecute, getV1ExecutionsById, } from './sdk.gen';
describe('NimbleBrain', () => {
let sdk;
beforeEach(() => {
vi.clearAllMocks();
sdk = new NimbleBrain({ apiKey: 'test-api-key' });
});
describe('constructor', () => {
it('should use default baseUrl when not provided', () => {
const client = new NimbleBrain({ apiKey: 'test-key' });
expect(client).toBeDefined();
});
it('should use custom baseUrl when provided', () => {
const client = new NimbleBrain({
apiKey: 'test-key',
baseUrl: 'https://custom.api.com',
});
expect(client).toBeDefined();
});
});
describe('agents', () => {
it('should list agents', async () => {
const mockAgents = [
{ id: 'agent-1', name: 'Agent 1', type: 'custom' },
{ id: 'agent-2', name: 'Agent 2', type: 'nira' },
];
vi.mocked(getV1Agents).mockResolvedValue({
data: { agents: mockAgents, total: 2 },
request: new Request('http://test'),
response: new Response(),
});
const agents = await sdk.agents.list();
expect(agents).toEqual(mockAgents);
expect(getV1Agents).toHaveBeenCalledWith({
client: expect.anything(),
throwOnError: true,
});
});
it('should return empty array when no agents', async () => {
vi.mocked(getV1Agents).mockResolvedValue({
data: { agents: undefined, total: 0 },
request: new Request('http://test'),
response: new Response(),
});
const agents = await sdk.agents.list();
expect(agents).toEqual([]);
});
});
describe('playbooks', () => {
it('should list playbooks', async () => {
const mockPlaybooks = [
{ id: 'pb-1', name: 'Playbook 1' },
{ id: 'pb-2', name: 'Playbook 2' },
];
vi.mocked(getV1Playbooks).mockResolvedValue({
data: { playbooks: mockPlaybooks, total: 2 },
request: new Request('http://test'),
response: new Response(),
});
const playbooks = await sdk.playbooks.list();
expect(playbooks).toEqual(mockPlaybooks);
});
it('should execute playbook without parameters', async () => {
vi.mocked(postV1PlaybooksByPlaybookIdExecute).mockResolvedValue({
data: { id: 'exec-1', status: 'queued' },
request: new Request('http://test'),
response: new Response(),
});
const result = await sdk.playbooks.execute('pb-1');
expect(result).toEqual({ id: 'exec-1', status: 'queued' });
expect(postV1PlaybooksByPlaybookIdExecute).toHaveBeenCalledWith({
client: expect.anything(),
path: { playbookId: 'pb-1' },
body: {},
throwOnError: true,
});
});
it('should execute playbook with parameters', async () => {
vi.mocked(postV1PlaybooksByPlaybookIdExecute).mockResolvedValue({
data: { id: 'exec-2', status: 'queued' },
request: new Request('http://test'),
response: new Response(),
});
const result = await sdk.playbooks.execute('pb-1', { param1: 'value1' });
expect(result).toEqual({ id: 'exec-2', status: 'queued' });
expect(postV1PlaybooksByPlaybookIdExecute).toHaveBeenCalledWith({
client: expect.anything(),
path: { playbookId: 'pb-1' },
body: { parameters: { param1: 'value1' } },
throwOnError: true,
});
});
});
describe('conversations', () => {
it('should create a conversation', async () => {
const mockConversation = {
id: 'conv-1',
title: 'Test Chat',
status: 'active',
};
vi.mocked(postV1AgentsByAgentIdConversations).mockResolvedValue({
data: mockConversation,
request: new Request('http://test'),
response: new Response(),
});
const conversation = await sdk.conversations.create('agent-1', 'Test Chat');
expect(conversation).toEqual(mockConversation);
expect(postV1AgentsByAgentIdConversations).toHaveBeenCalledWith({
client: expect.anything(),
path: { agentId: 'agent-1' },
body: { title: 'Test Chat' },
throwOnError: true,
});
});
it('should get a conversation', async () => {
const mockConversation = {
id: 'conv-1',
title: 'Test Chat',
messageCount: 5,
};
vi.mocked(getV1AgentsByAgentIdConversationsByConversationId).mockResolvedValue({
data: mockConversation,
request: new Request('http://test'),
response: new Response(),
});
const conversation = await sdk.conversations.get('agent-1', 'conv-1');
expect(conversation).toEqual(mockConversation);
});
});
describe('messages', () => {
it('should list messages', async () => {
const mockMessages = [
{ id: 'msg-1', role: 'user', content: 'Hello' },
{ id: 'msg-2', role: 'assistant', content: 'Hi there!' },
];
vi.mocked(getV1AgentsByAgentIdConversationsByConversationIdMessages).mockResolvedValue({
data: { messages: mockMessages, total: 2 },
request: new Request('http://test'),
response: new Response(),
});
const messages = await sdk.messages.list('agent-1', 'conv-1');
expect(messages).toEqual(mockMessages);
});
it('should send a message (non-streaming)', async () => {
const mockResponse = {
messageId: 'msg-3',
content: 'Hello! How can I help?',
role: 'assistant',
};
vi.mocked(postV1AgentsByAgentIdConversationsByConversationIdMessages).mockResolvedValue({
data: mockResponse,
request: new Request('http://test'),
response: new Response(),
});
const response = await sdk.messages.send('agent-1', 'conv-1', 'Hello!');
expect(response).toEqual(mockResponse);
expect(postV1AgentsByAgentIdConversationsByConversationIdMessages).toHaveBeenCalledWith({
client: expect.anything(),
path: { agentId: 'agent-1', conversationId: 'conv-1' },
body: { content: 'Hello!' },
throwOnError: true,
});
});
});
describe('executions', () => {
it('should get execution status', async () => {
const mockExecution = {
id: 'exec-1',
status: 'running',
targetType: 'playbook',
};
vi.mocked(getV1ExecutionsById).mockResolvedValue({
data: mockExecution,
request: new Request('http://test'),
response: new Response(),
});
const execution = await sdk.executions.get('exec-1');
expect(execution).toEqual(mockExecution);
});
it('should wait for completion - immediate success', async () => {
const mockExecution = {
id: 'exec-1',
status: 'completed',
result: 'Success!',
};
vi.mocked(getV1ExecutionsById).mockResolvedValue({
data: mockExecution,
request: new Request('http://test'),
response: new Response(),
});
const execution = await sdk.executions.waitForCompletion('exec-1');
expect(execution).toEqual(mockExecution);
expect(getV1ExecutionsById).toHaveBeenCalledTimes(1);
});
it('should wait for completion - polls until complete', async () => {
vi.mocked(getV1ExecutionsById)
.mockResolvedValueOnce({
data: { id: 'exec-1', status: 'running' },
request: new Request('http://test'),
response: new Response(),
})
.mockResolvedValueOnce({
data: { id: 'exec-1', status: 'running' },
request: new Request('http://test'),
response: new Response(),
})
.mockResolvedValueOnce({
data: { id: 'exec-1', status: 'completed', result: 'Done!' },
request: new Request('http://test'),
response: new Response(),
});
const execution = await sdk.executions.waitForCompletion('exec-1', {
pollIntervalMs: 10,
});
expect(execution.status).toBe('completed');
expect(getV1ExecutionsById).toHaveBeenCalledTimes(3);
});
it('should wait for completion - handles failed status', async () => {
vi.mocked(getV1ExecutionsById).mockResolvedValue({
data: { id: 'exec-1', status: 'failed' },
request: new Request('http://test'),
response: new Response(),
});
const execution = await sdk.executions.waitForCompletion('exec-1');
expect(execution.status).toBe('failed');
});
it('should wait for completion - times out', async () => {
vi.mocked(getV1ExecutionsById).mockResolvedValue({
data: { id: 'exec-1', status: 'running' },
request: new Request('http://test'),
response: new Response(),
});
await expect(sdk.executions.waitForCompletion('exec-1', {
timeoutMs: 50,
pollIntervalMs: 20,
})).rejects.toThrow(/timed out/);
});
});
});
describe('NimbleBrain.messages.stream', () => {
let sdk;
let originalFetch;
beforeEach(() => {
originalFetch = global.fetch;
sdk = new NimbleBrain({
apiKey: 'test-api-key',
baseUrl: 'https://api.test.com',
});
});
afterEach(() => {
global.fetch = originalFetch;
});
it('should stream SSE events', async () => {
const sseData = [
'event: message.start\ndata: {"messageId":"msg-1"}\n\n',
'event: content\ndata: {"text":"Hello"}\n\n',
'event: content\ndata: {"text":" world"}\n\n',
'event: done\ndata: {}\n\n',
].join('');
const mockStream = new ReadableStream({
start(controller) {
controller.enqueue(new TextEncoder().encode(sseData));
controller.close();
},
});
global.fetch = vi.fn().mockResolvedValue({
ok: true,
body: mockStream,
});
const events = [];
for await (const event of sdk.messages.stream('agent-1', 'conv-1', 'Hello!')) {
events.push(event);
}
expect(events).toHaveLength(4);
expect(events[0]).toEqual({ type: 'message.start', data: { messageId: 'msg-1' } });
expect(events[1]).toEqual({ type: 'content', data: { text: 'Hello' } });
expect(events[2]).toEqual({ type: 'content', data: { text: ' world' } });
expect(events[3]).toEqual({ type: 'done', data: {} });
expect(global.fetch).toHaveBeenCalledWith('https://api.test.com/v1/agents/agent-1/conversations/conv-1/messages', expect.objectContaining({
method: 'POST',
headers: expect.objectContaining({
'Content-Type': 'application/json',
'Accept': 'text/event-stream',
'Authorization': 'Bearer test-api-key',
}),
body: JSON.stringify({ content: 'Hello!', stream: true }),
}));
});
it('should handle chunked SSE data', async () => {
// Simulate data arriving in chunks that split across event boundaries
const mockStream = new ReadableStream({
start(controller) {
controller.enqueue(new TextEncoder().encode('event: content\ndata: {"te'));
controller.enqueue(new TextEncoder().encode('xt":"chunk1"}\n\nevent: done\ndata: {}\n\n'));
controller.close();
},
});
global.fetch = vi.fn().mockResolvedValue({
ok: true,
body: mockStream,
});
const events = [];
for await (const event of sdk.messages.stream('agent-1', 'conv-1', 'test')) {
events.push(event);
}
expect(events).toHaveLength(2);
expect(events[0]).toEqual({ type: 'content', data: { text: 'chunk1' } });
expect(events[1]).toEqual({ type: 'done', data: {} });
});
it('should throw on non-ok response', async () => {
global.fetch = vi.fn().mockResolvedValue({
ok: false,
status: 401,
text: () => Promise.resolve('Unauthorized'),
});
await expect(async () => {
for await (const _ of sdk.messages.stream('agent-1', 'conv-1', 'test')) {
// consume
}
}).rejects.toThrow(/401/);
});
it('should throw when no response body', async () => {
global.fetch = vi.fn().mockResolvedValue({
ok: true,
body: null,
});
await expect(async () => {
for await (const _ of sdk.messages.stream('agent-1', 'conv-1', 'test')) {
// consume
}
}).rejects.toThrow(/No response body/);
});
it('should handle tool events', async () => {
const sseData = [
'event: tool.start\ndata: {"tool":"search","display":"Searching..."}\n\n',
'event: tool.complete\ndata: {"tool":"search"}\n\n',
'event: done\ndata: {}\n\n',
].join('');
const mockStream = new ReadableStream({
start(controller) {
controller.enqueue(new TextEncoder().encode(sseData));
controller.close();
},
});
global.fetch = vi.fn().mockResolvedValue({
ok: true,
body: mockStream,
});
const events = [];
for await (const event of sdk.messages.stream('agent-1', 'conv-1', 'search something')) {
events.push(event);
}
expect(events).toHaveLength(3);
expect(events[0].type).toBe('tool.start');
expect(events[1].type).toBe('tool.complete');
});
});
//# sourceMappingURL=nimblebrain.test.js.map
{"version":3,"file":"nimblebrain.test.js","sourceRoot":"","sources":["../src/nimblebrain.test.ts"],"names":[],"mappings":"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"}