conversationalist 0.0.2 → 0.0.4
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 +521 -287
- package/dist/context.d.ts +22 -19
- package/dist/context.d.ts.map +1 -1
- package/dist/conversation.d.ts.map +1 -1
- package/dist/environment.d.ts +13 -1
- package/dist/environment.d.ts.map +1 -1
- package/dist/history.d.ts +165 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4196 -159
- package/dist/index.js.map +53 -8
- package/dist/plugins/index.d.ts +2 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/pii-redaction.d.ts +36 -0
- package/dist/plugins/pii-redaction.d.ts.map +1 -0
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utilities.d.ts +75 -1
- package/dist/utilities.d.ts.map +1 -1
- package/dist/with-conversation.d.ts +3 -3
- package/dist/with-conversation.d.ts.map +1 -1
- package/package.json +10 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { MessagePlugin } from '../types';
|
|
2
|
+
export declare const DEFAULT_PII_RULES: {
|
|
3
|
+
readonly email: {
|
|
4
|
+
readonly regex: RegExp;
|
|
5
|
+
readonly replace: "[EMAIL_REDACTED]";
|
|
6
|
+
};
|
|
7
|
+
readonly phone: {
|
|
8
|
+
readonly regex: RegExp;
|
|
9
|
+
readonly replace: "[PHONE_REDACTED]";
|
|
10
|
+
};
|
|
11
|
+
readonly apiKey: {
|
|
12
|
+
readonly regex: RegExp;
|
|
13
|
+
readonly replace: (match: string, key: string) => string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export interface PIIRedactionRule {
|
|
17
|
+
regex: RegExp;
|
|
18
|
+
replace: string | ((match: string, ...groups: string[]) => string);
|
|
19
|
+
}
|
|
20
|
+
export interface PIIRedactionOptions {
|
|
21
|
+
rules?: Record<string, PIIRedactionRule>;
|
|
22
|
+
excludeRules?: string[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Creates a PII redaction function with custom rules.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createPIIRedaction(options?: PIIRedactionOptions): (text: string) => string;
|
|
28
|
+
/**
|
|
29
|
+
* Creates a PII redaction plugin with custom rules.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createPIIRedactionPlugin(options?: PIIRedactionOptions): MessagePlugin;
|
|
32
|
+
/**
|
|
33
|
+
* Default PII redaction plugin instance.
|
|
34
|
+
*/
|
|
35
|
+
export declare const piiRedactionPlugin: MessagePlugin;
|
|
36
|
+
//# sourceMappingURL=pii-redaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pii-redaction.d.ts","sourceRoot":"","sources":["../../src/plugins/pii-redaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,UAAU,CAAC;AAE5D,eAAO,MAAM,iBAAiB;;;;;;;;;;;kCAYT,MAAM,OAAO,MAAM;;CAE9B,CAAC;AAEX,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,mBAAwB,GAChC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAe1B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,mBAAwB,GAChC,aAAa,CAwBf;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAA6B,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -75,4 +75,26 @@ export interface Conversation {
|
|
|
75
75
|
createdAt: string;
|
|
76
76
|
updatedAt: string;
|
|
77
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* A function that estimates the number of tokens in a message.
|
|
80
|
+
*/
|
|
81
|
+
export type TokenEstimator = (message: Message) => number;
|
|
82
|
+
/**
|
|
83
|
+
* A plugin that can transform a MessageInput before it is appended.
|
|
84
|
+
*/
|
|
85
|
+
export type MessagePlugin = (input: MessageInput) => MessageInput;
|
|
86
|
+
/**
|
|
87
|
+
* Serialized form of a single node in the conversation history tree.
|
|
88
|
+
*/
|
|
89
|
+
export interface HistoryNodeJSON {
|
|
90
|
+
conversation: ConversationJSON;
|
|
91
|
+
children: HistoryNodeJSON[];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Serialized form of the entire conversation history.
|
|
95
|
+
*/
|
|
96
|
+
export interface ConversationHistoryJSON {
|
|
97
|
+
root: HistoryNodeJSON;
|
|
98
|
+
currentPath: number[];
|
|
99
|
+
}
|
|
78
100
|
//# 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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"}
|
package/dist/utilities.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MultiModalContent } from '@lasercat/homogenaize';
|
|
2
|
-
import type { Message, MessageJSON, ToolCall, ToolResult } from './types';
|
|
2
|
+
import type { Conversation, Message, MessageJSON, ToolCall, ToolResult } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Represents a paired tool call with its optional result.
|
|
5
5
|
*/
|
|
@@ -76,4 +76,78 @@ export declare function messageHasImages(message: Message): boolean;
|
|
|
76
76
|
* Images are rendered as markdown image syntax.
|
|
77
77
|
*/
|
|
78
78
|
export declare function messageToString(message: Message): string;
|
|
79
|
+
/**
|
|
80
|
+
* Options for the toMarkdown function.
|
|
81
|
+
*/
|
|
82
|
+
export interface ToMarkdownOptions {
|
|
83
|
+
/**
|
|
84
|
+
* Whether to include metadata (YAML frontmatter with message metadata)
|
|
85
|
+
* for lossless round-trip conversion.
|
|
86
|
+
*
|
|
87
|
+
* When `true`:
|
|
88
|
+
* - Includes YAML frontmatter with conversation and message metadata
|
|
89
|
+
* - Headers include message ID: `### Role (msg-id)`
|
|
90
|
+
* - Supports lossless round-trip via `fromMarkdown`
|
|
91
|
+
*
|
|
92
|
+
* When `false` (default):
|
|
93
|
+
* - Outputs clean, human-readable markdown
|
|
94
|
+
* - Headers only include role: `### Role`
|
|
95
|
+
*
|
|
96
|
+
* @default false
|
|
97
|
+
*/
|
|
98
|
+
includeMetadata?: boolean;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Converts a conversation to a Markdown string representation.
|
|
102
|
+
*
|
|
103
|
+
* By default, outputs clean, human-readable markdown with:
|
|
104
|
+
* - Each message with a header containing only the role: `### Role`
|
|
105
|
+
* - Message content rendered as markdown
|
|
106
|
+
*
|
|
107
|
+
* When `options.includeMetadata` is `true`, outputs markdown with full metadata
|
|
108
|
+
* for lossless round-trip conversion:
|
|
109
|
+
* - YAML frontmatter with conversation metadata and all message metadata keyed by message ID
|
|
110
|
+
* - Headers include message ID: `### Role (msg-id)`
|
|
111
|
+
* - Full content array preserved for multi-modal messages
|
|
112
|
+
*
|
|
113
|
+
* For multi-modal content:
|
|
114
|
+
* - Text parts are appended in order
|
|
115
|
+
* - Image parts are rendered as `` on their own line
|
|
116
|
+
*
|
|
117
|
+
* @param conversation - The conversation to convert
|
|
118
|
+
* @param options - Options for markdown output
|
|
119
|
+
* @returns A Markdown string representation of the conversation
|
|
120
|
+
*/
|
|
121
|
+
export declare function toMarkdown(conversation: Conversation, options?: ToMarkdownOptions): string;
|
|
122
|
+
/**
|
|
123
|
+
* Error thrown when markdown parsing fails.
|
|
124
|
+
*/
|
|
125
|
+
export declare class MarkdownParseError extends Error {
|
|
126
|
+
constructor(message: string);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Parses a Markdown string back into a Conversation object.
|
|
130
|
+
*
|
|
131
|
+
* This is the inverse of `toMarkdown` and supports both:
|
|
132
|
+
* - Lossless round-trip conversion when markdown includes metadata
|
|
133
|
+
* (generated by `toMarkdown` with `includeMetadata: true`)
|
|
134
|
+
* - Best-effort parsing of simple markdown without metadata
|
|
135
|
+
* (generated by `toMarkdown` with `includeMetadata: false` or hand-written)
|
|
136
|
+
*
|
|
137
|
+
* When metadata is present:
|
|
138
|
+
* - YAML frontmatter provides conversation and message metadata
|
|
139
|
+
* - Headers include message ID: `### Role (msg-id)`
|
|
140
|
+
* - Full fidelity is preserved
|
|
141
|
+
*
|
|
142
|
+
* When metadata is absent:
|
|
143
|
+
* - Conversation ID and timestamps are generated
|
|
144
|
+
* - Message IDs are generated, positions are inferred from order
|
|
145
|
+
* - Content is parsed from markdown body
|
|
146
|
+
* - Defaults: status='active', hidden=false, empty metadata/tags
|
|
147
|
+
*
|
|
148
|
+
* @param markdown - The markdown string to parse
|
|
149
|
+
* @returns A Conversation object
|
|
150
|
+
* @throws {MarkdownParseError} If the markdown format is invalid (e.g., unknown role)
|
|
151
|
+
*/
|
|
152
|
+
export declare function fromMarkdown(markdown: string): Conversation;
|
|
79
153
|
//# 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,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI/D,OAAO,KAAK,EACV,YAAY,EAEZ,OAAO,EACP,WAAW,EAGX,QAAQ,EACR,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oBAAoB;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,6CAA6C;IAC7C,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAC/B,YAAY,EAAE,CAsBhB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,WAAW,EACpE,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,GACN,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAE/B;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAoBzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,GACtD,iBAAiB,EAAE,CAGrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,GACzD,MAAM,GAAG,iBAAiB,EAAE,GAAG,SAAS,CAI1C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAc3D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAO/E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,MAAe,GAAG,MAAM,CAM7E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE1D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CASxD;AA2ED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -104,10 +104,10 @@ export interface ConversationDraft {
|
|
|
104
104
|
* Truncates the conversation to fit within a token limit.
|
|
105
105
|
* Removes oldest messages first while preserving system messages and optionally the last N messages.
|
|
106
106
|
* @param maxTokens - Maximum token count to target.
|
|
107
|
-
* @param
|
|
108
|
-
* @param options - Options for preserving system messages and last N messages.
|
|
107
|
+
* @param options - Options for estimation and preservation.
|
|
109
108
|
*/
|
|
110
|
-
truncateToTokenLimit: (maxTokens: number,
|
|
109
|
+
truncateToTokenLimit: (maxTokens: number, options?: {
|
|
110
|
+
estimateTokens?: (message: Message) => number;
|
|
111
111
|
preserveSystemMessages?: boolean;
|
|
112
112
|
preserveLastN?: number;
|
|
113
113
|
}) => ConversationDraft;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-conversation.d.ts","sourceRoot":"","sources":["../src/with-conversation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAmB/D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE/E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAE7B;;;OAGG;IACH,cAAc,EAAE,CAAC,GAAG,MAAM,EAAE,YAAY,EAAE,KAAK,iBAAiB,CAAC;IAEjE;;;;OAIG;IACH,iBAAiB,EAAE,CACjB,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,iBAAiB,CAAC;IAEvB;;;;OAIG;IACH,sBAAsB,EAAE,CACtB,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,iBAAiB,CAAC;IAEvB;;;;OAIG;IACH,mBAAmB,EAAE,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,iBAAiB,CAAC;IAEvB;;;;OAIG;IACH,oBAAoB,EAAE,CACpB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,iBAAiB,CAAC;IAEvB;;;;OAIG;IACH,oBAAoB,EAAE,CACpB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,iBAAiB,CAAC;IAEvB;;OAEG;IACH,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;IAEhD;;;;OAIG;IACH,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,iBAAiB,CAAC;IAEvF;;;;;OAKG;IACH,sBAAsB,EAAE,CACtB,IAAI,EAAE,WAAW,GAAG,MAAM,EAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B;QAAE,KAAK,EAAE,iBAAiB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAErD;;;;OAIG;IACH,sBAAsB,EAAE,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,KAClC,iBAAiB,CAAC;IAEvB;;;;OAIG;IACH,wBAAwB,EAAE,CACxB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KACtE,iBAAiB,CAAC;IAEvB;;;OAGG;IACH,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,iBAAiB,CAAC;IAEjE;;;;OAIG;IACH,oBAAoB,EAAE,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,KAC3C,iBAAiB,CAAC;IAEvB
|
|
1
|
+
{"version":3,"file":"with-conversation.d.ts","sourceRoot":"","sources":["../src/with-conversation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAmB/D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE/E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAE7B;;;OAGG;IACH,cAAc,EAAE,CAAC,GAAG,MAAM,EAAE,YAAY,EAAE,KAAK,iBAAiB,CAAC;IAEjE;;;;OAIG;IACH,iBAAiB,EAAE,CACjB,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,iBAAiB,CAAC;IAEvB;;;;OAIG;IACH,sBAAsB,EAAE,CACtB,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,iBAAiB,CAAC;IAEvB;;;;OAIG;IACH,mBAAmB,EAAE,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,iBAAiB,CAAC;IAEvB;;;;OAIG;IACH,oBAAoB,EAAE,CACpB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,iBAAiB,CAAC;IAEvB;;;;OAIG;IACH,oBAAoB,EAAE,CACpB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,iBAAiB,CAAC;IAEvB;;OAEG;IACH,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;IAEhD;;;;OAIG;IACH,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,iBAAiB,CAAC;IAEvF;;;;;OAKG;IACH,sBAAsB,EAAE,CACtB,IAAI,EAAE,WAAW,GAAG,MAAM,EAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B;QAAE,KAAK,EAAE,iBAAiB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAErD;;;;OAIG;IACH,sBAAsB,EAAE,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,KAClC,iBAAiB,CAAC;IAEvB;;;;OAIG;IACH,wBAAwB,EAAE,CACxB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KACtE,iBAAiB,CAAC;IAEvB;;;OAGG;IACH,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,iBAAiB,CAAC;IAEjE;;;;OAIG;IACH,oBAAoB,EAAE,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,KAC3C,iBAAiB,CAAC;IAEvB;;;;;OAKG;IACH,oBAAoB,EAAE,CACpB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC;QAC9C,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,KACE,iBAAiB,CAAC;CACxB;AAoFD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACrD,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAWtC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,YAAY,EAC1B,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,YAAY,EAAE,YAAY,KAAK,YAAY,CAAC,GAC1D,YAAY,CAEd"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "conversationalist",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "A TypeScript library for managing AI conversation state",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"conversation",
|
|
@@ -36,6 +36,10 @@
|
|
|
36
36
|
"./gemini": {
|
|
37
37
|
"types": "./dist/adapters/gemini/index.d.ts",
|
|
38
38
|
"import": "./dist/adapters/gemini/index.js"
|
|
39
|
+
},
|
|
40
|
+
"./plugins": {
|
|
41
|
+
"types": "./dist/plugins/index.d.ts",
|
|
42
|
+
"import": "./dist/plugins/index.js"
|
|
39
43
|
}
|
|
40
44
|
},
|
|
41
45
|
"main": "./dist/index.js",
|
|
@@ -77,12 +81,15 @@
|
|
|
77
81
|
]
|
|
78
82
|
},
|
|
79
83
|
"dependencies": {
|
|
80
|
-
"change-case": "^5.4.4"
|
|
84
|
+
"change-case": "^5.4.4",
|
|
85
|
+
"gray-matter": "^4.0.3"
|
|
81
86
|
},
|
|
82
87
|
"devDependencies": {
|
|
88
|
+
"@anthropic-ai/sdk": "^0.71.2",
|
|
83
89
|
"@eslint/eslintrc": "^3.3.3",
|
|
84
90
|
"@eslint/js": "^9.39.2",
|
|
85
91
|
"@eslint/markdown": "^7.5.1",
|
|
92
|
+
"@google/generative-ai": "^0.24.1",
|
|
86
93
|
"@lasercat/homogenaize": "^1.2.41",
|
|
87
94
|
"@types/bun": "^1.3.5",
|
|
88
95
|
"@typescript-eslint/eslint-plugin": "^8.50.0",
|
|
@@ -102,6 +109,7 @@
|
|
|
102
109
|
"globals": "^16.5.0",
|
|
103
110
|
"husky": "^9.1.7",
|
|
104
111
|
"lint-staged": "^16.2.7",
|
|
112
|
+
"openai": "^6.15.0",
|
|
105
113
|
"prettier": "^3.7.4",
|
|
106
114
|
"sort-package-json": "^3.6.0",
|
|
107
115
|
"typescript-eslint": "^8.50.0",
|