@animalabs/membrane 0.2.0 → 0.2.2

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.
@@ -22,10 +22,27 @@ export interface OpenAICompletionsAdapterConfig {
22
22
  /** Additional headers to include with requests */
23
23
  extraHeaders?: Record<string, string>;
24
24
  /**
25
- * Stop sequences to use (default: ['\n\nHuman:', '\nHuman:'])
26
- * These prevent the model from generating user turns.
25
+ * Name of the assistant participant (default: 'Assistant')
26
+ * Used to identify which messages are from the assistant and to
27
+ * add the final prompt prefix for completion.
27
28
  */
28
- defaultStopSequences?: string[];
29
+ assistantName?: string;
30
+ /**
31
+ * End-of-turn token to append after each message (default: '<|eot|>')
32
+ * Set to empty string or null to disable.
33
+ *
34
+ * Example output with default:
35
+ * Alice: Hello<|eot|>
36
+ *
37
+ * Claude: Hi there!<|eot|>
38
+ */
39
+ eotToken?: string | null;
40
+ /**
41
+ * Additional stop sequences beyond auto-generated participant-based ones.
42
+ * By default, stop sequences are generated from participant names in the
43
+ * conversation (e.g., "\n\nAlice:", "\nBob:").
44
+ */
45
+ extraStopSequences?: string[];
29
46
  /**
30
47
  * Whether to warn when images are stripped from context (default: true)
31
48
  */
@@ -37,18 +54,28 @@ export declare class OpenAICompletionsAdapter implements ProviderAdapter {
37
54
  private apiKey;
38
55
  private defaultMaxTokens;
39
56
  private extraHeaders;
40
- private defaultStopSequences;
57
+ private assistantName;
58
+ private eotToken;
59
+ private extraStopSequences;
41
60
  private warnOnImageStrip;
42
61
  constructor(config: OpenAICompletionsAdapterConfig);
43
62
  supportsModel(_modelId: string): boolean;
44
63
  complete(request: ProviderRequest, options?: ProviderRequestOptions): Promise<ProviderResponse>;
45
64
  stream(request: ProviderRequest, callbacks: StreamCallbacks, options?: ProviderRequestOptions): Promise<ProviderResponse>;
46
65
  /**
47
- * Serialize messages to Human:/Assistant: format for base models.
66
+ * Serialize messages to "Participant: content<eot>" format for base models.
67
+ * Uses actual participant names from messages.
48
68
  * Images are stripped from content.
49
69
  */
50
- serializeToPrompt(messages: any[]): string;
51
- private normalizeRole;
70
+ serializeToPrompt(messages: any[]): {
71
+ prompt: string;
72
+ participants: Set<string>;
73
+ };
74
+ /**
75
+ * Generate stop sequences from participant names.
76
+ * Prevents the model from generating turns for other participants.
77
+ */
78
+ private generateStopSequences;
52
79
  private extractTextContent;
53
80
  private getHeaders;
54
81
  private buildRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"openai-completions.d.ts","sourceRoot":"","sources":["../../src/providers/openai-completions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AA2C3B,MAAM,WAAW,8BAA8B;IAC7C,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAEhB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhC;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAMD,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,oBAAoB,CAAW;IACvC,OAAO,CAAC,gBAAgB,CAAU;gBAEtB,MAAM,EAAE,8BAA8B;IAclD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC,QAAQ,CACZ,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAWtB,MAAM,CACV,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,eAAe,EAC1B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAkE5B;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM;IA6B1C,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,YAAY;YA+BN,WAAW;IAgBzB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,WAAW;CAqCpB"}
1
+ {"version":3,"file":"openai-completions.d.ts","sourceRoot":"","sources":["../../src/providers/openai-completions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AA2C3B,MAAM,WAAW,8BAA8B;IAC7C,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAEhB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAMD,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,kBAAkB,CAAW;IACrC,OAAO,CAAC,gBAAgB,CAAU;gBAEtB,MAAM,EAAE,8BAA8B;IAgBlD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC,QAAQ,CACZ,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAWtB,MAAM,CACV,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,eAAe,EAC1B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAkE5B;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE;IAoCjF;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,YAAY;YAiCN,WAAW;IAgBzB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,WAAW;CAqCpB"}
@@ -19,7 +19,9 @@ export class OpenAICompletionsAdapter {
19
19
  apiKey;
20
20
  defaultMaxTokens;
21
21
  extraHeaders;
22
- defaultStopSequences;
22
+ assistantName;
23
+ eotToken;
24
+ extraStopSequences;
23
25
  warnOnImageStrip;
24
26
  constructor(config) {
25
27
  if (!config.baseURL) {
@@ -30,7 +32,9 @@ export class OpenAICompletionsAdapter {
30
32
  this.apiKey = config.apiKey ?? '';
31
33
  this.defaultMaxTokens = config.defaultMaxTokens ?? 4096;
32
34
  this.extraHeaders = config.extraHeaders ?? {};
33
- this.defaultStopSequences = config.defaultStopSequences ?? ['\n\nHuman:', '\nHuman:'];
35
+ this.assistantName = config.assistantName ?? 'Assistant';
36
+ this.eotToken = config.eotToken === null ? '' : (config.eotToken ?? '<|eot|>');
37
+ this.extraStopSequences = config.extraStopSequences ?? [];
34
38
  this.warnOnImageStrip = config.warnOnImageStrip ?? true;
35
39
  }
36
40
  supportsModel(_modelId) {
@@ -103,36 +107,54 @@ export class OpenAICompletionsAdapter {
103
107
  // Prompt Serialization
104
108
  // ============================================================================
105
109
  /**
106
- * Serialize messages to Human:/Assistant: format for base models.
110
+ * Serialize messages to "Participant: content<eot>" format for base models.
111
+ * Uses actual participant names from messages.
107
112
  * Images are stripped from content.
108
113
  */
109
114
  serializeToPrompt(messages) {
110
115
  const parts = [];
116
+ const participants = new Set();
111
117
  let hasStrippedImages = false;
112
118
  for (const msg of messages) {
113
- const role = this.normalizeRole(msg.role);
114
- const prefix = role === 'user' ? 'Human:' : 'Assistant:';
119
+ // Get participant name (supports both 'participant' and 'role' fields)
120
+ const participant = msg.participant || msg.role || 'Unknown';
121
+ participants.add(participant);
115
122
  // Extract text content, strip images
116
123
  const textContent = this.extractTextContent(msg.content);
117
124
  if (textContent.hadImages) {
118
125
  hasStrippedImages = true;
119
126
  }
120
127
  if (textContent.text) {
121
- parts.push(`${prefix} ${textContent.text}`);
128
+ // Append EOT token after content (on same line)
129
+ const eot = this.eotToken;
130
+ parts.push(`${participant}: ${textContent.text}${eot}`);
122
131
  }
123
132
  }
124
133
  if (hasStrippedImages && this.warnOnImageStrip) {
125
134
  console.warn('[OpenAICompletionsAdapter] Images were stripped from context (not supported in completions mode)');
126
135
  }
127
- // Add final Assistant: prefix to prompt completion
128
- parts.push('Assistant:');
129
- return parts.join('\n\n');
136
+ // Add final assistant prefix to prompt completion (no EOT - model generates this)
137
+ parts.push(`${this.assistantName}:`);
138
+ return {
139
+ prompt: parts.join('\n\n'),
140
+ participants,
141
+ };
130
142
  }
131
- normalizeRole(role) {
132
- if (role === 'user' || role === 'human' || role === 'Human') {
133
- return 'user';
143
+ /**
144
+ * Generate stop sequences from participant names.
145
+ * Prevents the model from generating turns for other participants.
146
+ */
147
+ generateStopSequences(participants) {
148
+ const stops = [];
149
+ for (const participant of participants) {
150
+ // Skip the assistant - we don't want to stop on its own name
151
+ if (participant === this.assistantName)
152
+ continue;
153
+ // Add both "\n\nName:" and "\nName:" variants
154
+ stops.push(`\n\n${participant}:`);
155
+ stops.push(`\n${participant}:`);
134
156
  }
135
- return 'assistant';
157
+ return stops;
136
158
  }
137
159
  extractTextContent(content) {
138
160
  if (typeof content === 'string') {
@@ -168,7 +190,7 @@ export class OpenAICompletionsAdapter {
168
190
  return headers;
169
191
  }
170
192
  buildRequest(request) {
171
- const prompt = this.serializeToPrompt(request.messages);
193
+ const { prompt, participants } = this.serializeToPrompt(request.messages);
172
194
  const params = {
173
195
  model: request.model,
174
196
  prompt,
@@ -177,9 +199,11 @@ export class OpenAICompletionsAdapter {
177
199
  if (request.temperature !== undefined) {
178
200
  params.temperature = request.temperature;
179
201
  }
180
- // Combine default stop sequences with any provided ones
202
+ // Generate stop sequences from participant names + EOT token + any extras
181
203
  const stopSequences = [
182
- ...this.defaultStopSequences,
204
+ ...this.generateStopSequences(participants),
205
+ ...(this.eotToken ? [this.eotToken] : []),
206
+ ...this.extraStopSequences,
183
207
  ...(request.stopSequences || []),
184
208
  ];
185
209
  if (stopSequences.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"openai-completions.js","sourceRoot":"","sources":["../../src/providers/openai-completions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-completions.js","sourceRoot":"","sources":["../../src/providers/openai-completions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@animalabs/membrane",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "LLM middleware - a selective boundary that transforms what passes through",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -77,10 +77,29 @@ export interface OpenAICompletionsAdapterConfig {
77
77
  extraHeaders?: Record<string, string>;
78
78
 
79
79
  /**
80
- * Stop sequences to use (default: ['\n\nHuman:', '\nHuman:'])
81
- * These prevent the model from generating user turns.
80
+ * Name of the assistant participant (default: 'Assistant')
81
+ * Used to identify which messages are from the assistant and to
82
+ * add the final prompt prefix for completion.
82
83
  */
83
- defaultStopSequences?: string[];
84
+ assistantName?: string;
85
+
86
+ /**
87
+ * End-of-turn token to append after each message (default: '<|eot|>')
88
+ * Set to empty string or null to disable.
89
+ *
90
+ * Example output with default:
91
+ * Alice: Hello<|eot|>
92
+ *
93
+ * Claude: Hi there!<|eot|>
94
+ */
95
+ eotToken?: string | null;
96
+
97
+ /**
98
+ * Additional stop sequences beyond auto-generated participant-based ones.
99
+ * By default, stop sequences are generated from participant names in the
100
+ * conversation (e.g., "\n\nAlice:", "\nBob:").
101
+ */
102
+ extraStopSequences?: string[];
84
103
 
85
104
  /**
86
105
  * Whether to warn when images are stripped from context (default: true)
@@ -98,7 +117,9 @@ export class OpenAICompletionsAdapter implements ProviderAdapter {
98
117
  private apiKey: string;
99
118
  private defaultMaxTokens: number;
100
119
  private extraHeaders: Record<string, string>;
101
- private defaultStopSequences: string[];
120
+ private assistantName: string;
121
+ private eotToken: string;
122
+ private extraStopSequences: string[];
102
123
  private warnOnImageStrip: boolean;
103
124
 
104
125
  constructor(config: OpenAICompletionsAdapterConfig) {
@@ -111,7 +132,9 @@ export class OpenAICompletionsAdapter implements ProviderAdapter {
111
132
  this.apiKey = config.apiKey ?? '';
112
133
  this.defaultMaxTokens = config.defaultMaxTokens ?? 4096;
113
134
  this.extraHeaders = config.extraHeaders ?? {};
114
- this.defaultStopSequences = config.defaultStopSequences ?? ['\n\nHuman:', '\nHuman:'];
135
+ this.assistantName = config.assistantName ?? 'Assistant';
136
+ this.eotToken = config.eotToken === null ? '' : (config.eotToken ?? '<|eot|>');
137
+ this.extraStopSequences = config.extraStopSequences ?? [];
115
138
  this.warnOnImageStrip = config.warnOnImageStrip ?? true;
116
139
  }
117
140
 
@@ -204,16 +227,19 @@ export class OpenAICompletionsAdapter implements ProviderAdapter {
204
227
  // ============================================================================
205
228
 
206
229
  /**
207
- * Serialize messages to Human:/Assistant: format for base models.
230
+ * Serialize messages to "Participant: content<eot>" format for base models.
231
+ * Uses actual participant names from messages.
208
232
  * Images are stripped from content.
209
233
  */
210
- serializeToPrompt(messages: any[]): string {
234
+ serializeToPrompt(messages: any[]): { prompt: string; participants: Set<string> } {
211
235
  const parts: string[] = [];
236
+ const participants = new Set<string>();
212
237
  let hasStrippedImages = false;
213
238
 
214
239
  for (const msg of messages) {
215
- const role = this.normalizeRole(msg.role);
216
- const prefix = role === 'user' ? 'Human:' : 'Assistant:';
240
+ // Get participant name (supports both 'participant' and 'role' fields)
241
+ const participant = msg.participant || msg.role || 'Unknown';
242
+ participants.add(participant);
217
243
 
218
244
  // Extract text content, strip images
219
245
  const textContent = this.extractTextContent(msg.content);
@@ -222,7 +248,9 @@ export class OpenAICompletionsAdapter implements ProviderAdapter {
222
248
  }
223
249
 
224
250
  if (textContent.text) {
225
- parts.push(`${prefix} ${textContent.text}`);
251
+ // Append EOT token after content (on same line)
252
+ const eot = this.eotToken;
253
+ parts.push(`${participant}: ${textContent.text}${eot}`);
226
254
  }
227
255
  }
228
256
 
@@ -230,17 +258,32 @@ export class OpenAICompletionsAdapter implements ProviderAdapter {
230
258
  console.warn('[OpenAICompletionsAdapter] Images were stripped from context (not supported in completions mode)');
231
259
  }
232
260
 
233
- // Add final Assistant: prefix to prompt completion
234
- parts.push('Assistant:');
261
+ // Add final assistant prefix to prompt completion (no EOT - model generates this)
262
+ parts.push(`${this.assistantName}:`);
235
263
 
236
- return parts.join('\n\n');
264
+ return {
265
+ prompt: parts.join('\n\n'),
266
+ participants,
267
+ };
237
268
  }
238
269
 
239
- private normalizeRole(role: string): 'user' | 'assistant' {
240
- if (role === 'user' || role === 'human' || role === 'Human') {
241
- return 'user';
270
+ /**
271
+ * Generate stop sequences from participant names.
272
+ * Prevents the model from generating turns for other participants.
273
+ */
274
+ private generateStopSequences(participants: Set<string>): string[] {
275
+ const stops: string[] = [];
276
+
277
+ for (const participant of participants) {
278
+ // Skip the assistant - we don't want to stop on its own name
279
+ if (participant === this.assistantName) continue;
280
+
281
+ // Add both "\n\nName:" and "\nName:" variants
282
+ stops.push(`\n\n${participant}:`);
283
+ stops.push(`\n${participant}:`);
242
284
  }
243
- return 'assistant';
285
+
286
+ return stops;
244
287
  }
245
288
 
246
289
  private extractTextContent(content: any): { text: string; hadImages: boolean } {
@@ -285,7 +328,7 @@ export class OpenAICompletionsAdapter implements ProviderAdapter {
285
328
  }
286
329
 
287
330
  private buildRequest(request: ProviderRequest): CompletionsRequest {
288
- const prompt = this.serializeToPrompt(request.messages as any[]);
331
+ const { prompt, participants } = this.serializeToPrompt(request.messages as any[]);
289
332
 
290
333
  const params: CompletionsRequest = {
291
334
  model: request.model,
@@ -297,9 +340,11 @@ export class OpenAICompletionsAdapter implements ProviderAdapter {
297
340
  params.temperature = request.temperature;
298
341
  }
299
342
 
300
- // Combine default stop sequences with any provided ones
343
+ // Generate stop sequences from participant names + EOT token + any extras
301
344
  const stopSequences = [
302
- ...this.defaultStopSequences,
345
+ ...this.generateStopSequences(participants),
346
+ ...(this.eotToken ? [this.eotToken] : []),
347
+ ...this.extraStopSequences,
303
348
  ...(request.stopSequences || []),
304
349
  ];
305
350
  if (stopSequences.length > 0) {