conversationalist 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +369 -0
- package/dist/adapters/anthropic/index.d.ts +76 -0
- package/dist/adapters/anthropic/index.d.ts.map +1 -0
- package/dist/adapters/anthropic/index.js +147 -0
- package/dist/adapters/anthropic/index.js.map +10 -0
- package/dist/adapters/gemini/index.d.ts +79 -0
- package/dist/adapters/gemini/index.d.ts.map +1 -0
- package/dist/adapters/gemini/index.js +148 -0
- package/dist/adapters/gemini/index.js.map +10 -0
- package/dist/adapters/openai/index.d.ts +65 -0
- package/dist/adapters/openai/index.d.ts.map +1 -0
- package/dist/adapters/openai/index.js +127 -0
- package/dist/adapters/openai/index.js.map +10 -0
- package/dist/context.d.ts +35 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/conversation/append.d.ts +25 -0
- package/dist/conversation/append.d.ts.map +1 -0
- package/dist/conversation/create.d.ts +14 -0
- package/dist/conversation/create.d.ts.map +1 -0
- package/dist/conversation/index.d.ts +9 -0
- package/dist/conversation/index.d.ts.map +1 -0
- package/dist/conversation/modify.d.ts +9 -0
- package/dist/conversation/modify.d.ts.map +1 -0
- package/dist/conversation/query.d.ts +34 -0
- package/dist/conversation/query.d.ts.map +1 -0
- package/dist/conversation/serialization.d.ts +13 -0
- package/dist/conversation/serialization.d.ts.map +1 -0
- package/dist/conversation/system-messages.d.ts +31 -0
- package/dist/conversation/system-messages.d.ts.map +1 -0
- package/dist/conversation/tool-tracking.d.ts +26 -0
- package/dist/conversation/tool-tracking.d.ts.map +1 -0
- package/dist/conversation/transform.d.ts +9 -0
- package/dist/conversation/transform.d.ts.map +1 -0
- package/dist/conversation.d.ts +39 -0
- package/dist/conversation.d.ts.map +1 -0
- package/dist/environment.d.ts +23 -0
- package/dist/environment.d.ts.map +1 -0
- package/dist/errors.d.ts +67 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14378 -0
- package/dist/index.js.map +87 -0
- package/dist/message.d.ts +2 -0
- package/dist/message.d.ts.map +1 -0
- package/dist/multi-modal.d.ts +27 -0
- package/dist/multi-modal.d.ts.map +1 -0
- package/dist/schemas.d.ts +30 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/streaming.d.ts +37 -0
- package/dist/streaming.d.ts.map +1 -0
- package/dist/types.d.ts +78 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utilities.d.ts +79 -0
- package/dist/utilities.d.ts.map +1 -0
- package/dist/with-conversation.d.ts +125 -0
- package/dist/with-conversation.d.ts.map +1 -0
- package/package.json +113 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Conversation, ConversationJSON } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a conversation to a plain JSON-serializable object.
|
|
4
|
+
* Creates deep copies of all nested objects to ensure immutability.
|
|
5
|
+
*/
|
|
6
|
+
export declare function serializeConversation(conversation: Conversation): ConversationJSON;
|
|
7
|
+
/**
|
|
8
|
+
* Reconstructs a conversation from a JSON object.
|
|
9
|
+
* Validates message positions are contiguous and tool results reference valid calls.
|
|
10
|
+
* Throws a serialization error if validation fails.
|
|
11
|
+
*/
|
|
12
|
+
export declare function deserializeConversation(json: ConversationJSON): Conversation;
|
|
13
|
+
//# sourceMappingURL=serialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/conversation/serialization.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAW,MAAM,UAAU,CAAC;AAIxE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,gBAAgB,CAuBlF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CA2C5E"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type ConversationEnvironment } from '../environment';
|
|
2
|
+
import type { Conversation, Message } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Checks if a conversation contains any system messages.
|
|
5
|
+
*/
|
|
6
|
+
export declare function hasSystemMessage(conversation: Conversation): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Returns the first system message in the conversation.
|
|
9
|
+
* Returns undefined if no system message exists.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getFirstSystemMessage(conversation: Conversation): Message | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Returns all system messages in the conversation.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getSystemMessages(conversation: Conversation): ReadonlyArray<Message>;
|
|
16
|
+
/**
|
|
17
|
+
* Inserts a system message at the beginning of the conversation.
|
|
18
|
+
* Renumbers all existing message positions.
|
|
19
|
+
*/
|
|
20
|
+
export declare function prependSystemMessage(conversation: Conversation, content: string, metadata?: Record<string, unknown>, environment?: Partial<ConversationEnvironment>): Conversation;
|
|
21
|
+
/**
|
|
22
|
+
* Replaces the first system message with new content.
|
|
23
|
+
* If no system message exists, prepends a new one.
|
|
24
|
+
*/
|
|
25
|
+
export declare function replaceSystemMessage(conversation: Conversation, content: string, metadata?: Record<string, unknown>, environment?: Partial<ConversationEnvironment>): Conversation;
|
|
26
|
+
/**
|
|
27
|
+
* Merges all system messages into a single message at the first position.
|
|
28
|
+
* Duplicate content is removed. Returns unchanged if 0 or 1 system messages.
|
|
29
|
+
*/
|
|
30
|
+
export declare function collapseSystemMessages(conversation: Conversation, environment?: Partial<ConversationEnvironment>): Conversation;
|
|
31
|
+
//# sourceMappingURL=system-messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-messages.d.ts","sourceRoot":"","sources":["../../src/conversation/system-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGtD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEpE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,GAAG,SAAS,CAErF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,CAEpF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,WAAW,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAC7C,YAAY,CAqCd;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,WAAW,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAC7C,YAAY,CA6Bd;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,YAAY,EAC1B,WAAW,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAC7C,YAAY,CA+Ed"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Message } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* A map of tool use IDs to their names, used for tracking tool calls
|
|
4
|
+
* and validating tool results reference valid calls.
|
|
5
|
+
*/
|
|
6
|
+
export type ToolUseIndex = Map<string, {
|
|
7
|
+
name: string;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* Builds an index of all tool use messages from a list of messages.
|
|
11
|
+
* Used to validate that tool results reference existing tool uses.
|
|
12
|
+
*/
|
|
13
|
+
export declare const buildToolUseIndex: (messages: ReadonlyArray<Message>) => ToolUseIndex;
|
|
14
|
+
/**
|
|
15
|
+
* Registers a new tool use in the index, returning a new immutable index.
|
|
16
|
+
*/
|
|
17
|
+
export declare const registerToolUse: (index: ToolUseIndex, toolCall: {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
}) => ToolUseIndex;
|
|
21
|
+
/**
|
|
22
|
+
* Throws an error if the given call ID does not exist in the tool use index.
|
|
23
|
+
* Used to ensure tool results reference valid tool uses.
|
|
24
|
+
*/
|
|
25
|
+
export declare const assertToolReference: (index: ToolUseIndex, callId: string) => void;
|
|
26
|
+
//# sourceMappingURL=tool-tracking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-tracking.d.ts","sourceRoot":"","sources":["../../src/conversation/tool-tracking.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,aAAa,CAAC,OAAO,CAAC,KAAG,YAM5B,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,YAAY,EACnB,UAAU;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACrC,YAIF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,YAAY,EAAE,QAAQ,MAAM,KAAG,IAIzE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Message as ExternalMessage } from '@lasercat/homogenaize';
|
|
2
|
+
import type { Conversation } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Converts conversation messages to the external chat message format.
|
|
5
|
+
* Maps internal roles to standard user/assistant/system roles.
|
|
6
|
+
* Hidden messages are excluded from the output.
|
|
7
|
+
*/
|
|
8
|
+
export declare function toChatMessages(conversation: Conversation): ExternalMessage[];
|
|
9
|
+
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/conversation/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,IAAI,eAAe,EAE3B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,YAAY,GAAG,eAAe,EAAE,CAqB5E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Message as ExternalMessage } from '@lasercat/homogenaize';
|
|
2
|
+
import { type ConversationEnvironment } from './environment';
|
|
3
|
+
import type { Conversation, ConversationJSON, ConversationStatus, Message, MessageInput } from './types';
|
|
4
|
+
export type { ConversationEnvironment } from './environment';
|
|
5
|
+
export declare function createConversation(options?: {
|
|
6
|
+
id?: string;
|
|
7
|
+
title?: string;
|
|
8
|
+
status?: ConversationStatus;
|
|
9
|
+
metadata?: Record<string, unknown>;
|
|
10
|
+
tags?: string[];
|
|
11
|
+
}, environment?: Partial<ConversationEnvironment>): Conversation;
|
|
12
|
+
export declare function appendMessages(conversation: Conversation, ...inputs: MessageInput[]): Conversation;
|
|
13
|
+
export declare function appendMessages(conversation: Conversation, ...inputsAndEnvironment: [...MessageInput[], Partial<ConversationEnvironment>]): Conversation;
|
|
14
|
+
export declare function appendUserMessage(conversation: Conversation, content: MessageInput['content'], metadata?: Record<string, unknown>, environment?: Partial<ConversationEnvironment>): Conversation;
|
|
15
|
+
export declare function appendAssistantMessage(conversation: Conversation, content: MessageInput['content'], metadata?: Record<string, unknown>, environment?: Partial<ConversationEnvironment>): Conversation;
|
|
16
|
+
export declare function appendSystemMessage(conversation: Conversation, content: string, metadata?: Record<string, unknown>, environment?: Partial<ConversationEnvironment>): Conversation;
|
|
17
|
+
export declare function getConversationMessages(conversation: Conversation, options?: {
|
|
18
|
+
includeHidden?: boolean;
|
|
19
|
+
}): ReadonlyArray<Message>;
|
|
20
|
+
export declare function getMessageAtPosition(conversation: Conversation, position: number): Message | undefined;
|
|
21
|
+
export declare function getMessageByIdentifier(conversation: Conversation, id: string): Message | undefined;
|
|
22
|
+
export declare function searchConversationMessages(conversation: Conversation, predicate: (m: Message) => boolean): Message[];
|
|
23
|
+
export declare function computeConversationStatistics(conversation: Conversation): {
|
|
24
|
+
total: number;
|
|
25
|
+
byRole: Record<string, number>;
|
|
26
|
+
hidden: number;
|
|
27
|
+
withImages: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function hasSystemMessage(conversation: Conversation): boolean;
|
|
30
|
+
export declare function getFirstSystemMessage(conversation: Conversation): Message | undefined;
|
|
31
|
+
export declare function getSystemMessages(conversation: Conversation): ReadonlyArray<Message>;
|
|
32
|
+
export declare function prependSystemMessage(conversation: Conversation, content: string, metadata?: Record<string, unknown>, environment?: Partial<ConversationEnvironment>): Conversation;
|
|
33
|
+
export declare function replaceSystemMessage(conversation: Conversation, content: string, metadata?: Record<string, unknown>, environment?: Partial<ConversationEnvironment>): Conversation;
|
|
34
|
+
export declare function collapseSystemMessages(conversation: Conversation, environment?: Partial<ConversationEnvironment>): Conversation;
|
|
35
|
+
export declare function redactMessageAtPosition(conversation: Conversation, position: number, placeholder?: string, environment?: Partial<ConversationEnvironment>): Conversation;
|
|
36
|
+
export declare function serializeConversation(conversation: Conversation): ConversationJSON;
|
|
37
|
+
export declare function deserializeConversation(json: ConversationJSON): Conversation;
|
|
38
|
+
export declare function toChatMessages(conversation: Conversation): ExternalMessage[];
|
|
39
|
+
//# sourceMappingURL=conversation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment functions for conversation operations.
|
|
3
|
+
* Allows dependency injection for testing and custom ID generation.
|
|
4
|
+
*/
|
|
5
|
+
export interface ConversationEnvironment {
|
|
6
|
+
now: () => string;
|
|
7
|
+
randomId: () => string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Default environment using Date.toISOString() and crypto.randomUUID().
|
|
11
|
+
*/
|
|
12
|
+
export declare const defaultConversationEnvironment: ConversationEnvironment;
|
|
13
|
+
/**
|
|
14
|
+
* Merges a partial environment with defaults.
|
|
15
|
+
* Returns a complete environment with all required functions.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveConversationEnvironment(environment?: Partial<ConversationEnvironment>): ConversationEnvironment;
|
|
18
|
+
/**
|
|
19
|
+
* Type guard to distinguish environment objects from message inputs.
|
|
20
|
+
* Returns true if the value has environment functions but no role property.
|
|
21
|
+
*/
|
|
22
|
+
export declare function isConversationEnvironmentParameter(value: unknown): value is Partial<ConversationEnvironment>;
|
|
23
|
+
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,uBAG5C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,WAAW,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAC7C,uBAAuB,CAKzB;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAM3C"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error codes for Conversationalist errors (kebab-case with `error:` prefix).
|
|
3
|
+
*/
|
|
4
|
+
export type ConversationalistErrorCode = 'error:locked' | 'error:invalid-input' | 'error:invalid-position' | 'error:invalid-tool-reference' | 'error:duplicate-id' | 'error:not-found' | 'error:serialization' | 'error:validation';
|
|
5
|
+
/**
|
|
6
|
+
* Base error class for all Conversationalist errors.
|
|
7
|
+
*
|
|
8
|
+
* Provides structured error information with error codes, context data,
|
|
9
|
+
* and cause chains for better debugging.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ConversationalistError extends Error {
|
|
12
|
+
/** Structured error code */
|
|
13
|
+
readonly code: ConversationalistErrorCode;
|
|
14
|
+
/** Additional context data */
|
|
15
|
+
readonly context?: Record<string, unknown> | undefined;
|
|
16
|
+
/** Underlying cause (if any) */
|
|
17
|
+
readonly cause?: Error | undefined;
|
|
18
|
+
constructor(code: ConversationalistErrorCode, message: string, options?: {
|
|
19
|
+
context?: Record<string, unknown> | undefined;
|
|
20
|
+
cause?: Error | undefined;
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Formats the error as a detailed string with code and context.
|
|
24
|
+
*/
|
|
25
|
+
toDetailedString(): string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Creates a lock error (ERR_LOCKED).
|
|
29
|
+
* Thrown when a conversation is already being modified.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createLockedError(conversationId: string): ConversationalistError;
|
|
32
|
+
/**
|
|
33
|
+
* Creates an invalid input error (ERR_INVALID_INPUT).
|
|
34
|
+
* Thrown when message input data is invalid.
|
|
35
|
+
*/
|
|
36
|
+
export declare function createInvalidInputError(message: string, context?: Record<string, unknown>): ConversationalistError;
|
|
37
|
+
/**
|
|
38
|
+
* Creates an invalid position error (ERR_INVALID_POSITION).
|
|
39
|
+
* Thrown when positions are non-contiguous or invalid.
|
|
40
|
+
*/
|
|
41
|
+
export declare function createInvalidPositionError(expected: number, actual: number): ConversationalistError;
|
|
42
|
+
/**
|
|
43
|
+
* Creates an invalid tool reference error (ERR_INVALID_TOOL_REFERENCE).
|
|
44
|
+
* Thrown when a tool result references a non-existent tool-use message.
|
|
45
|
+
*/
|
|
46
|
+
export declare function createInvalidToolReferenceError(callId: string): ConversationalistError;
|
|
47
|
+
/**
|
|
48
|
+
* Creates a duplicate ID error (ERR_DUPLICATE_ID).
|
|
49
|
+
* Thrown when a conversation with the given ID already exists.
|
|
50
|
+
*/
|
|
51
|
+
export declare function createDuplicateIdError(id: string): ConversationalistError;
|
|
52
|
+
/**
|
|
53
|
+
* Creates a not found error (ERR_NOT_FOUND).
|
|
54
|
+
* Thrown when a conversation cannot be found.
|
|
55
|
+
*/
|
|
56
|
+
export declare function createNotFoundError(id: string): ConversationalistError;
|
|
57
|
+
/**
|
|
58
|
+
* Creates a serialization error (ERR_SERIALIZATION).
|
|
59
|
+
* Thrown when JSON serialization/deserialization fails.
|
|
60
|
+
*/
|
|
61
|
+
export declare function createSerializationError(message: string, cause?: Error): ConversationalistError;
|
|
62
|
+
/**
|
|
63
|
+
* Creates a validation error (ERR_VALIDATION).
|
|
64
|
+
* Thrown when data validation fails (e.g., Zod schema validation).
|
|
65
|
+
*/
|
|
66
|
+
export declare function createValidationError(message: string, context?: Record<string, unknown>, cause?: Error): ConversationalistError;
|
|
67
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAClC,cAAc,GACd,qBAAqB,GACrB,wBAAwB,GACxB,8BAA8B,GAC9B,oBAAoB,GACpB,iBAAiB,GACjB,qBAAqB,GACrB,kBAAkB,CAAC;AAEvB;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAE1C,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAEvD,gCAAgC;IAChC,SAAkB,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;gBAG1C,IAAI,EAAE,0BAA0B,EAChC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;QAC9C,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;KAC3B;IAcH;;OAEG;IACH,gBAAgB,IAAI,MAAM;CAa3B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,sBAAsB,CAMhF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,sBAAsB,CAExB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,sBAAsB,CAMxB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAMtF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,CAMzE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,CAQtE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,KAAK,GACZ,sBAAsB,CAExB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,KAAK,CAAC,EAAE,KAAK,GACZ,sBAAsB,CAExB"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type { ImageContent, TextContent } from './multi-modal';
|
|
2
|
+
export { copyContent, copyMultiModalContent } from './multi-modal';
|
|
3
|
+
export type { Message as ExternalMessage, MultiModalContent, } from '@lasercat/homogenaize';
|
|
4
|
+
export type { Conversation, ConversationJSON, ConversationStatus, Message, MessageInput, MessageJSON, MessageRole, TokenUsage, ToolCall, ToolResult, } from './types';
|
|
5
|
+
export { conversationSchema, conversationShape, messageInputSchema, messageJSONSchema, messageRoleSchema, multiModalContentSchema, tokenUsageSchema, toolCallSchema, toolResultSchema, } from './schemas';
|
|
6
|
+
export type { ConversationEnvironment } from './conversation';
|
|
7
|
+
export { appendAssistantMessage, appendMessages, appendSystemMessage, appendUserMessage, collapseSystemMessages, computeConversationStatistics, createConversation, deserializeConversation, getConversationMessages, getFirstSystemMessage, getMessageAtPosition, getMessageByIdentifier, getSystemMessages, hasSystemMessage, prependSystemMessage, redactMessageAtPosition, replaceSystemMessage, searchConversationMessages, serializeConversation, toChatMessages, } from './conversation';
|
|
8
|
+
export { createMessage } from './utilities';
|
|
9
|
+
export type { ConversationalistErrorCode } from './errors';
|
|
10
|
+
export { ConversationalistError, createDuplicateIdError, createInvalidInputError, createInvalidPositionError, createInvalidToolReferenceError, createLockedError, createNotFoundError, createSerializationError, createValidationError, } from './errors';
|
|
11
|
+
export type { ToolCallPair } from './utilities';
|
|
12
|
+
export { normalizeContent, pairToolCallsWithResults, toMultiModalArray, } from './utilities';
|
|
13
|
+
export type { ConversationDraft } from './with-conversation';
|
|
14
|
+
export { pipeConversation, withConversation } from './with-conversation';
|
|
15
|
+
export { appendStreamingMessage, cancelStreamingMessage, finalizeStreamingMessage, getStreamingMessage, isStreamingMessage, updateStreamingMessage, } from './streaming';
|
|
16
|
+
export { estimateConversationTokens, getRecentMessages, simpleTokenEstimator, truncateFromPosition, truncateToTokenLimit, } from './context';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACnE,YAAY,EACV,OAAO,IAAI,eAAe,EAC1B,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAGnB,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,YAAY,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,WAAW,CAAC"}
|