conversationalist 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +120 -11
- package/dist/conversation/index.d.ts +1 -1
- package/dist/conversation/index.d.ts.map +1 -1
- package/dist/conversation/serialization.d.ts +41 -3
- package/dist/conversation/serialization.d.ts.map +1 -1
- package/dist/conversation.d.ts +17 -3
- package/dist/conversation.d.ts.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +166 -25
- package/dist/index.js.map +9 -6
- package/dist/schemas.d.ts +1 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/types.d.ts +48 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utilities/deterministic.d.ts +37 -0
- package/dist/utilities/deterministic.d.ts.map +1 -0
- package/dist/utilities/index.d.ts +4 -2
- package/dist/utilities/index.d.ts.map +1 -1
- package/dist/utilities/markdown.d.ts +46 -20
- package/dist/utilities/markdown.d.ts.map +1 -1
- package/dist/utilities/transient.d.ts +47 -0
- package/dist/utilities/transient.d.ts.map +1 -0
- package/dist/utilities.d.ts +6 -2
- package/dist/utilities.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/schemas.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export declare const messageInputSchema: z.ZodType<MessageInput>;
|
|
|
17
17
|
export declare const messageJSONSchema: z.ZodType<MessageJSON>;
|
|
18
18
|
export declare const conversationStatusSchema: z.ZodType<ConversationStatus>;
|
|
19
19
|
export declare const conversationShape: {
|
|
20
|
+
readonly schemaVersion: z.ZodNumber;
|
|
20
21
|
readonly id: z.ZodString;
|
|
21
22
|
readonly title: z.ZodOptional<z.ZodString>;
|
|
22
23
|
readonly status: z.ZodType<ConversationStatus, unknown, z.core.$ZodTypeInternals<ConversationStatus, unknown>>;
|
package/dist/schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,QAAQ,EACR,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,uBAAuB;;;;;;;;2BAQlC,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAQb,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAExC,eAAO,MAAM,cAAc,EAIV,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAErC,eAAO,MAAM,gBAAgB,EAIZ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAEvC,eAAO,MAAM,gBAAgB,EAIZ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAEvC,eAAO,MAAM,kBAAkB,EASd,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAEzC,eAAO,MAAM,iBAAiB,EAcC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,wBAAwB,EAIpB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAG/C,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,QAAQ,EACR,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,uBAAuB;;;;;;;;2BAQlC,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAQb,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAExC,eAAO,MAAM,cAAc,EAIV,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAErC,eAAO,MAAM,gBAAgB,EAIZ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAEvC,eAAO,MAAM,gBAAgB,EAIZ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAEvC,eAAO,MAAM,kBAAkB,EASd,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAEzC,eAAO,MAAM,iBAAiB,EAcC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,wBAAwB,EAIpB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAG/C,eAAO,MAAM,iBAAiB;;;;;;;;;;CAUpB,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAEf,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { MultiModalContent } from '@lasercat/homogenaize';
|
|
2
|
+
/**
|
|
3
|
+
* Current schema version for ConversationJSON.
|
|
4
|
+
* Increment when making breaking changes to the schema.
|
|
5
|
+
*/
|
|
6
|
+
export declare const CURRENT_SCHEMA_VERSION = 1;
|
|
2
7
|
export type MessageRole = 'user' | 'assistant' | 'system' | 'developer' | 'tool-use' | 'tool-result' | 'snapshot';
|
|
3
8
|
export interface ToolCall {
|
|
4
9
|
id: string;
|
|
@@ -56,6 +61,7 @@ export interface Message {
|
|
|
56
61
|
}
|
|
57
62
|
export type ConversationStatus = 'active' | 'archived' | 'deleted';
|
|
58
63
|
export interface ConversationJSON {
|
|
64
|
+
schemaVersion: number;
|
|
59
65
|
id: string;
|
|
60
66
|
title?: string | undefined;
|
|
61
67
|
status: ConversationStatus;
|
|
@@ -97,4 +103,46 @@ export interface ConversationHistoryJSON {
|
|
|
97
103
|
root: HistoryNodeJSON;
|
|
98
104
|
currentPath: number[];
|
|
99
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Base options for all export operations.
|
|
108
|
+
*/
|
|
109
|
+
export interface ExportOptions {
|
|
110
|
+
/**
|
|
111
|
+
* When true, produces deterministic output with sorted keys and messages.
|
|
112
|
+
* Useful for testing, diffing, and content-addressable storage.
|
|
113
|
+
* @default false
|
|
114
|
+
*/
|
|
115
|
+
deterministic?: boolean;
|
|
116
|
+
/**
|
|
117
|
+
* When true, strips transient metadata (keys starting with '_').
|
|
118
|
+
* @default false
|
|
119
|
+
*/
|
|
120
|
+
stripTransient?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* When true, redacts tool call arguments with '[REDACTED]'.
|
|
123
|
+
* @default false
|
|
124
|
+
*/
|
|
125
|
+
redactToolArguments?: boolean;
|
|
126
|
+
/**
|
|
127
|
+
* When true, redacts tool result content with '[REDACTED]'.
|
|
128
|
+
* @default false
|
|
129
|
+
*/
|
|
130
|
+
redactToolResults?: boolean;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Options for exporting to markdown format.
|
|
134
|
+
*/
|
|
135
|
+
export interface ToMarkdownOptions extends ExportOptions {
|
|
136
|
+
/**
|
|
137
|
+
* When true, includes YAML frontmatter with full metadata for lossless round-trip.
|
|
138
|
+
* Headers include message ID: `### Role (msg-id)`
|
|
139
|
+
* @default false
|
|
140
|
+
*/
|
|
141
|
+
includeMetadata?: boolean;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Options for serializing conversations to JSON.
|
|
145
|
+
* Alias for ExportOptions for API consistency.
|
|
146
|
+
*/
|
|
147
|
+
export type SerializeOptions = ExportOptions;
|
|
100
148
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recursively sorts object keys alphabetically for deterministic JSON output.
|
|
3
|
+
* Arrays are processed recursively but maintain their element order.
|
|
4
|
+
* Primitives and null are returned as-is.
|
|
5
|
+
*
|
|
6
|
+
* @param obj - The value to process
|
|
7
|
+
* @returns A new object with sorted keys (or the original value for non-objects)
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* sortObjectKeys({ z: 1, a: 2 });
|
|
12
|
+
* // Returns: { a: 2, z: 1 }
|
|
13
|
+
*
|
|
14
|
+
* sortObjectKeys({ b: { y: 1, x: 2 }, a: 1 });
|
|
15
|
+
* // Returns: { a: 1, b: { x: 2, y: 1 } }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function sortObjectKeys<T>(obj: T): T;
|
|
19
|
+
/**
|
|
20
|
+
* Sorts messages by position for deterministic output.
|
|
21
|
+
* When positions are equal, falls back to createdAt, then id.
|
|
22
|
+
*
|
|
23
|
+
* @param messages - Array of messages to sort
|
|
24
|
+
* @returns A new sorted array (does not mutate the original)
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* const sorted = sortMessagesByPosition(messages);
|
|
29
|
+
* // Messages are ordered by position (ascending)
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function sortMessagesByPosition<T extends {
|
|
33
|
+
position: number;
|
|
34
|
+
createdAt: string;
|
|
35
|
+
id: string;
|
|
36
|
+
}>(messages: readonly T[]): T[];
|
|
37
|
+
//# sourceMappingURL=deterministic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deterministic.d.ts","sourceRoot":"","sources":["../../src/utilities/deterministic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAiB3C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAC7D,QAAQ,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAU7B"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
export type { ToMarkdownOptions } from '../types';
|
|
1
2
|
export { normalizeContent, toMultiModalArray } from './content';
|
|
2
|
-
export
|
|
3
|
-
export { fromMarkdown, MarkdownParseError, toMarkdown } from './markdown';
|
|
3
|
+
export { sortMessagesByPosition, sortObjectKeys } from './deterministic';
|
|
4
|
+
export { fromMarkdown, getRoleFromLabel, getRoleLabel, LABEL_TO_ROLE, MarkdownParseError, ROLE_LABELS, toMarkdown, } from './markdown';
|
|
4
5
|
export { createMessage, messageHasImages, messageParts, messageText, messageToJSON, messageToString, } from './message';
|
|
5
6
|
export type { ToolCallPair } from './tool-calls';
|
|
6
7
|
export { pairToolCallsWithResults } from './tool-calls';
|
|
8
|
+
export { isTransientKey, stripTransientFromRecord, stripTransientMetadata, } from './transient';
|
|
7
9
|
export { hasOwnProperty, toReadonly } from './type-helpers';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGhE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGzE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,WAAW,CAAC;AAGnB,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,25 +1,51 @@
|
|
|
1
|
-
import type { Conversation } from '../types';
|
|
1
|
+
import type { Conversation, MessageRole, ToMarkdownOptions } from '../types';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Maps message roles to human-readable display labels.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* ROLE_LABELS['tool-use']; // 'Tool Use'
|
|
8
|
+
* ROLE_LABELS.assistant; // 'Assistant'
|
|
9
|
+
* ```
|
|
4
10
|
*/
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
export declare const ROLE_LABELS: Record<MessageRole, string>;
|
|
12
|
+
/**
|
|
13
|
+
* Maps display labels back to message roles.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* LABEL_TO_ROLE['Tool Use']; // 'tool-use'
|
|
18
|
+
* LABEL_TO_ROLE.User; // 'user'
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare const LABEL_TO_ROLE: Record<string, MessageRole>;
|
|
22
|
+
/**
|
|
23
|
+
* Gets the human-readable display label for a message role.
|
|
24
|
+
*
|
|
25
|
+
* @param role - The message role
|
|
26
|
+
* @returns The display label for the role
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* getRoleLabel('assistant'); // 'Assistant'
|
|
31
|
+
* getRoleLabel('tool-use'); // 'Tool Use'
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function getRoleLabel(role: MessageRole): string;
|
|
35
|
+
/**
|
|
36
|
+
* Gets the message role from a display label.
|
|
37
|
+
*
|
|
38
|
+
* @param label - The display label
|
|
39
|
+
* @returns The message role, or undefined if the label is not recognized
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* getRoleFromLabel('Assistant'); // 'assistant'
|
|
44
|
+
* getRoleFromLabel('Tool Use'); // 'tool-use'
|
|
45
|
+
* getRoleFromLabel('Unknown'); // undefined
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function getRoleFromLabel(label: string): MessageRole | undefined;
|
|
23
49
|
/**
|
|
24
50
|
* Converts a conversation to a Markdown string representation.
|
|
25
51
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/utilities/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/utilities/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EAGZ,WAAW,EAEX,iBAAiB,EAGlB,MAAM,UAAU,CAAC;AAIlB;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAQnD,CAAC;AAKF;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAQrD,CAAC;AAKF;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEvE;AAuDD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CACxB,YAAY,EAAE,YAAY,EAC1B,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAQR;AAqFD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AASD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAW3D"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Conversation } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if a metadata key is transient (starts with '_').
|
|
4
|
+
* Transient metadata is intended for temporary UI state and should not be persisted.
|
|
5
|
+
*
|
|
6
|
+
* @param key - The metadata key to check
|
|
7
|
+
* @returns true if the key starts with '_'
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* isTransientKey('_tempId'); // true
|
|
12
|
+
* isTransientKey('__internal'); // true
|
|
13
|
+
* isTransientKey('source'); // false
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function isTransientKey(key: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Strips transient metadata (keys starting with '_') from a metadata object.
|
|
19
|
+
*
|
|
20
|
+
* @param metadata - The metadata object to filter
|
|
21
|
+
* @returns A new object with transient keys removed
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* stripTransientFromRecord({ _temp: 1, source: 'web' });
|
|
26
|
+
* // Returns: { source: 'web' }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function stripTransientFromRecord(metadata: Record<string, unknown>): Record<string, unknown>;
|
|
30
|
+
/**
|
|
31
|
+
* Strips all transient metadata from a conversation.
|
|
32
|
+
* Transient metadata is identified by keys starting with '_'.
|
|
33
|
+
* This is useful for persisting conversations without temporary UI state.
|
|
34
|
+
*
|
|
35
|
+
* @param conversation - The conversation to process
|
|
36
|
+
* @returns A new conversation with transient metadata removed from both
|
|
37
|
+
* the conversation and all messages
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* const cleaned = stripTransientMetadata(conversation);
|
|
42
|
+
* // conversation.metadata._tempState is removed
|
|
43
|
+
* // message.metadata._deliveryStatus is removed
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function stripTransientMetadata(conversation: Conversation): Conversation;
|
|
47
|
+
//# sourceMappingURL=transient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transient.d.ts","sourceRoot":"","sources":["../../src/utilities/transient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,UAAU,CAAC;AAGtD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CA4B/E"}
|
package/dist/utilities.d.ts
CHANGED
|
@@ -2,16 +2,20 @@
|
|
|
2
2
|
* This file re-exports all utilities from the utilities/ directory.
|
|
3
3
|
* For new code, prefer importing directly from the specific modules:
|
|
4
4
|
* - './utilities/content' for content normalization
|
|
5
|
+
* - './utilities/deterministic' for deterministic output
|
|
5
6
|
* - './utilities/markdown' for markdown conversion
|
|
6
7
|
* - './utilities/message' for message utilities
|
|
7
8
|
* - './utilities/tool-calls' for tool call pairing
|
|
9
|
+
* - './utilities/transient' for transient metadata handling
|
|
8
10
|
* - './utilities/type-helpers' for type guard helpers
|
|
9
11
|
*/
|
|
12
|
+
export type { ToMarkdownOptions } from './types';
|
|
10
13
|
export { normalizeContent, toMultiModalArray } from './utilities/content';
|
|
11
|
-
export
|
|
12
|
-
export { fromMarkdown, MarkdownParseError, toMarkdown } from './utilities/markdown';
|
|
14
|
+
export { sortMessagesByPosition, sortObjectKeys } from './utilities/deterministic';
|
|
15
|
+
export { fromMarkdown, getRoleFromLabel, getRoleLabel, LABEL_TO_ROLE, MarkdownParseError, ROLE_LABELS, toMarkdown, } from './utilities/markdown';
|
|
13
16
|
export { createMessage, messageHasImages, messageParts, messageText, messageToJSON, messageToString, } from './utilities/message';
|
|
14
17
|
export type { ToolCallPair } from './utilities/tool-calls';
|
|
15
18
|
export { pairToolCallsWithResults } from './utilities/tool-calls';
|
|
19
|
+
export { isTransientKey, stripTransientFromRecord, stripTransientMetadata, } from './utilities/transient';
|
|
16
20
|
export { hasOwnProperty, toReadonly } from './utilities/type-helpers';
|
|
17
21
|
//# sourceMappingURL=utilities.d.ts.map
|
package/dist/utilities.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG1E,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGnF,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,UAAU,GACX,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
|