@animalabs/membrane 0.5.50 → 0.5.52
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/dist/context/index.d.ts +12 -0
- package/dist/context/index.js +11 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/process.d.ts +43 -0
- package/dist/context/process.js +381 -0
- package/dist/context/process.js.map +1 -0
- package/dist/context/types.d.ts +164 -0
- package/dist/context/types.js +61 -0
- package/dist/context/types.js.map +1 -0
- package/dist/formatters/anthropic-xml.d.ts +63 -0
- package/dist/formatters/anthropic-xml.js +417 -0
- package/dist/formatters/anthropic-xml.js.map +1 -0
- package/dist/formatters/completions.d.ts +68 -0
- package/dist/formatters/completions.js +261 -0
- package/dist/formatters/completions.js.map +1 -0
- package/dist/formatters/index.d.ts +8 -0
- package/dist/formatters/index.js +7 -0
- package/dist/formatters/index.js.map +1 -0
- package/dist/formatters/native.d.ts +35 -0
- package/dist/formatters/native.js +336 -0
- package/dist/formatters/native.js.map +1 -0
- package/dist/formatters/types.d.ts +167 -0
- package/dist/formatters/types.js +7 -0
- package/dist/formatters/types.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/membrane.d.ts +155 -0
- package/dist/providers/anthropic.d.ts +36 -0
- package/dist/providers/bedrock.d.ts +43 -0
- package/dist/providers/gemini.d.ts +68 -0
- package/dist/providers/gemini.js +538 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.js +13 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/mock.d.ts +90 -0
- package/dist/providers/mock.d.ts.map +1 -0
- package/dist/providers/mock.js +210 -0
- package/dist/providers/mock.js.map +1 -0
- package/dist/providers/openai-compatible.d.ts +82 -0
- package/dist/providers/openai-compatible.js +480 -0
- package/dist/providers/openai-compatible.js.map +1 -0
- package/dist/providers/openai-completions.d.ts +89 -0
- package/dist/providers/openai-completions.js +347 -0
- package/dist/providers/openai-completions.js.map +1 -0
- package/dist/providers/openai-responses.d.ts +77 -0
- package/dist/providers/openai-responses.js +333 -0
- package/dist/providers/openai-responses.js.map +1 -0
- package/dist/providers/openai.d.ts +77 -0
- package/dist/providers/openai.js +533 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/openrouter.d.ts +82 -0
- package/dist/providers/openrouter.js +556 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/providers/utils.d.ts +44 -0
- package/dist/providers/utils.d.ts.map +1 -0
- package/dist/providers/utils.js +100 -0
- package/dist/providers/utils.js.map +1 -0
- package/dist/registry/default-pricing.d.ts +3 -0
- package/dist/registry/default-pricing.d.ts.map +1 -0
- package/dist/registry/default-pricing.js +75 -0
- package/dist/registry/default-pricing.js.map +1 -0
- package/dist/transforms/chat.d.ts +52 -0
- package/dist/transforms/chat.js +136 -0
- package/dist/transforms/chat.js.map +1 -0
- package/dist/transforms/index.d.ts +5 -0
- package/dist/transforms/index.js +7 -0
- package/dist/transforms/index.js.map +1 -0
- package/dist/types/config.d.ts +110 -0
- package/dist/types/config.js +21 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/content.d.ts +87 -0
- package/dist/types/content.d.ts.map +1 -0
- package/dist/types/content.js +40 -0
- package/dist/types/content.js.map +1 -0
- package/dist/types/errors.d.ts +50 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +253 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +20 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/message.d.ts +52 -0
- package/dist/types/message.d.ts.map +1 -0
- package/dist/types/message.js +38 -0
- package/dist/types/message.js.map +1 -0
- package/dist/types/provider.d.ts +169 -0
- package/dist/types/provider.d.ts.map +1 -0
- package/dist/types/provider.js +5 -0
- package/dist/types/provider.js.map +1 -0
- package/dist/types/request.d.ts +116 -0
- package/dist/types/request.d.ts.map +1 -0
- package/dist/types/request.js +5 -0
- package/dist/types/request.js.map +1 -0
- package/dist/types/response.d.ts +131 -0
- package/dist/types/response.d.ts.map +1 -0
- package/dist/types/response.js +7 -0
- package/dist/types/response.js.map +1 -0
- package/dist/types/streaming.d.ts +194 -0
- package/dist/types/streaming.js +5 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/types/tools.d.ts +71 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +5 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/cost.d.ts +10 -0
- package/dist/utils/cost.d.ts.map +1 -0
- package/dist/utils/cost.js +19 -0
- package/dist/utils/cost.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/stream-parser.d.ts +84 -0
- package/dist/utils/stream-parser.js +418 -0
- package/dist/utils/stream-parser.js.map +1 -0
- package/dist/utils/tool-parser.d.ts +134 -0
- package/dist/utils/tool-parser.js +600 -0
- package/dist/utils/tool-parser.js.map +1 -0
- package/dist/yielding-stream.d.ts +60 -0
- package/dist/yielding-stream.js +206 -0
- package/dist/yielding-stream.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/formatters/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prefill Formatter Types
|
|
3
|
+
*
|
|
4
|
+
* Interfaces for pluggable prefill formatting and parsing.
|
|
5
|
+
*/
|
|
6
|
+
import type { NormalizedMessage, ContentBlock, ToolDefinition, ToolCall, ToolResult, BlockEvent } from '../types/index.js';
|
|
7
|
+
import type { ChunkMeta, MembraneBlockType } from '../types/streaming.js';
|
|
8
|
+
import type { StreamEmission, ProcessChunkResult } from '../utils/stream-parser.js';
|
|
9
|
+
export type { BlockEvent, ChunkMeta, MembraneBlockType, StreamEmission };
|
|
10
|
+
/** Block type alias for formatter contexts */
|
|
11
|
+
export type BlockType = MembraneBlockType;
|
|
12
|
+
export interface FormatterConfig {
|
|
13
|
+
/** How to handle unsupported media (images, etc.). Default: 'error' */
|
|
14
|
+
unsupportedMedia?: 'error' | 'strip';
|
|
15
|
+
/** Warn when stripping content. Default: true */
|
|
16
|
+
warnOnStrip?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface BuildOptions {
|
|
19
|
+
/** How to handle multiple participants */
|
|
20
|
+
participantMode: 'simple' | 'multiuser';
|
|
21
|
+
/** Name of the assistant participant */
|
|
22
|
+
assistantParticipant: string;
|
|
23
|
+
/** Name of the human participant (for simple mode) */
|
|
24
|
+
humanParticipant?: string;
|
|
25
|
+
/** Tool definitions to include */
|
|
26
|
+
tools?: ToolDefinition[];
|
|
27
|
+
/** Whether thinking is enabled */
|
|
28
|
+
thinking?: {
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
budgetTokens?: number;
|
|
31
|
+
};
|
|
32
|
+
/** System prompt content */
|
|
33
|
+
systemPrompt?: string | ContentBlock[];
|
|
34
|
+
/** Enable prompt caching (Anthropic-specific) */
|
|
35
|
+
promptCaching?: boolean;
|
|
36
|
+
/** Cache TTL for Anthropic prompt caching - '5m' (default) or '1h' for extended */
|
|
37
|
+
cacheTtl?: '5m' | '1h';
|
|
38
|
+
/** Additional stop sequences to include */
|
|
39
|
+
additionalStopSequences?: string[];
|
|
40
|
+
/** Maximum participants to include in stop sequences */
|
|
41
|
+
maxParticipantsForStop?: number;
|
|
42
|
+
/** Context prefix for simulacrum seeding (injected as first cached assistant message) */
|
|
43
|
+
contextPrefix?: string;
|
|
44
|
+
/** Custom content for the synthetic user message when first message is assistant role.
|
|
45
|
+
* In prefill formatters: defaults to '<cmd>cat untitled.txt</cmd>' with a CLI simulation
|
|
46
|
+
* system prompt when no system prompt is configured, or '[Start]' when a system prompt is set. */
|
|
47
|
+
prefillUserMessage?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Function to check if a message has a cache marker.
|
|
50
|
+
* When provided, content before the marked message gets cache_control.
|
|
51
|
+
* This enables per-message cache boundaries in the conversation.
|
|
52
|
+
*/
|
|
53
|
+
hasCacheMarker?: (message: NormalizedMessage, index: number) => boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface BuildResult {
|
|
56
|
+
/** Messages in provider format */
|
|
57
|
+
messages: ProviderMessage[];
|
|
58
|
+
/** System content (if separate from messages) */
|
|
59
|
+
systemContent?: unknown;
|
|
60
|
+
/** Assistant prefill content (appended to last assistant message) */
|
|
61
|
+
assistantPrefill?: string;
|
|
62
|
+
/** Stop sequences for this format */
|
|
63
|
+
stopSequences: string[];
|
|
64
|
+
/** Tool definitions for API (if using native tools) */
|
|
65
|
+
nativeTools?: unknown[];
|
|
66
|
+
/** Number of cache control markers applied (for Anthropic prompt caching) */
|
|
67
|
+
cacheMarkersApplied?: number;
|
|
68
|
+
}
|
|
69
|
+
export interface ProviderMessage {
|
|
70
|
+
role: 'user' | 'assistant';
|
|
71
|
+
content: unknown;
|
|
72
|
+
}
|
|
73
|
+
/** Parse result from processing a chunk */
|
|
74
|
+
export type ParseResult = ProcessChunkResult;
|
|
75
|
+
export interface StreamParser {
|
|
76
|
+
/**
|
|
77
|
+
* Process a chunk of streamed content.
|
|
78
|
+
* Returns parsed events (text, blocks, etc.)
|
|
79
|
+
*/
|
|
80
|
+
processChunk(chunk: string): ParseResult;
|
|
81
|
+
/**
|
|
82
|
+
* Flush any buffered content at end of stream.
|
|
83
|
+
*/
|
|
84
|
+
flush(): ParseResult;
|
|
85
|
+
/**
|
|
86
|
+
* Get full accumulated content.
|
|
87
|
+
*/
|
|
88
|
+
getAccumulated(): string;
|
|
89
|
+
/**
|
|
90
|
+
* Reset parser state completely.
|
|
91
|
+
*/
|
|
92
|
+
reset(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Push content without emitting (for prefill initialization).
|
|
95
|
+
*/
|
|
96
|
+
push(content: string): void;
|
|
97
|
+
/**
|
|
98
|
+
* Get current block type being parsed.
|
|
99
|
+
*/
|
|
100
|
+
getCurrentBlockType(): BlockType;
|
|
101
|
+
/**
|
|
102
|
+
* Get current block index.
|
|
103
|
+
*/
|
|
104
|
+
getBlockIndex(): number;
|
|
105
|
+
/**
|
|
106
|
+
* Increment block index (for external block tracking).
|
|
107
|
+
*/
|
|
108
|
+
incrementBlockIndex(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Check if parser is inside a block (e.g., unclosed XML tag).
|
|
111
|
+
* Used for false-positive stop sequence detection.
|
|
112
|
+
*/
|
|
113
|
+
isInsideBlock(): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Get current nesting depths for each block type.
|
|
116
|
+
* Used to compare against prefill baseline for false-positive detection.
|
|
117
|
+
*/
|
|
118
|
+
getDepths(): {
|
|
119
|
+
functionCalls: number;
|
|
120
|
+
functionResults: number;
|
|
121
|
+
thinking: number;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Reset streaming state for a new API iteration.
|
|
125
|
+
* Keeps accumulated text and block depth state, but resets
|
|
126
|
+
* per-stream tracking so processChunk works correctly.
|
|
127
|
+
*/
|
|
128
|
+
resetForNewIteration(): void;
|
|
129
|
+
}
|
|
130
|
+
export interface PrefillFormatter {
|
|
131
|
+
/** Formatter name for identification */
|
|
132
|
+
readonly name: string;
|
|
133
|
+
/** Whether this formatter uses prefill (vs native pass-through) */
|
|
134
|
+
readonly usesPrefill: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Transform normalized messages into provider-ready format.
|
|
137
|
+
*/
|
|
138
|
+
buildMessages(messages: NormalizedMessage[], options: BuildOptions): BuildResult;
|
|
139
|
+
/**
|
|
140
|
+
* Format tool results for continuation request.
|
|
141
|
+
* Called when injecting tool results back into the conversation.
|
|
142
|
+
*/
|
|
143
|
+
formatToolResults(results: ToolResult[], options?: {
|
|
144
|
+
thinking?: boolean;
|
|
145
|
+
}): string;
|
|
146
|
+
/**
|
|
147
|
+
* Create a stream parser for this format.
|
|
148
|
+
* Parser tracks state across chunks (e.g., XML depth, token boundaries).
|
|
149
|
+
*/
|
|
150
|
+
createStreamParser(): StreamParser;
|
|
151
|
+
/**
|
|
152
|
+
* Parse tool calls from accumulated content.
|
|
153
|
+
* Returns empty array if no tool calls detected.
|
|
154
|
+
*/
|
|
155
|
+
parseToolCalls(content: string): ToolCall[];
|
|
156
|
+
/**
|
|
157
|
+
* Check if content indicates tool use.
|
|
158
|
+
* Used to determine stop reason.
|
|
159
|
+
*/
|
|
160
|
+
hasToolUse(content: string): boolean;
|
|
161
|
+
/**
|
|
162
|
+
* Parse content blocks from accumulated response.
|
|
163
|
+
* Extracts text, thinking, tool_use blocks, etc.
|
|
164
|
+
*/
|
|
165
|
+
parseContentBlocks(content: string): ContentBlock[];
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/formatters/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Membrane - LLM middleware
|
|
3
|
+
*
|
|
4
|
+
* A selective boundary that transforms what passes through.
|
|
5
|
+
*/
|
|
6
|
+
export { Membrane } from './membrane.js';
|
|
7
|
+
export * from './types/index.js';
|
|
8
|
+
export * from './transforms/index.js';
|
|
9
|
+
export * from './providers/index.js';
|
|
10
|
+
export * from './utils/index.js';
|
|
11
|
+
export * from './formatters/index.js';
|
|
12
|
+
export * from './context/index.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Membrane - LLM middleware
|
|
3
|
+
*
|
|
4
|
+
* A selective boundary that transforms what passes through.
|
|
5
|
+
*/
|
|
6
|
+
// Core class
|
|
7
|
+
export { Membrane } from './membrane.js';
|
|
8
|
+
// Types
|
|
9
|
+
export * from './types/index.js';
|
|
10
|
+
// Transforms
|
|
11
|
+
export * from './transforms/index.js';
|
|
12
|
+
// Providers
|
|
13
|
+
export * from './providers/index.js';
|
|
14
|
+
// Utilities
|
|
15
|
+
export * from './utils/index.js';
|
|
16
|
+
// Formatters
|
|
17
|
+
export * from './formatters/index.js';
|
|
18
|
+
// Context management
|
|
19
|
+
export * from './context/index.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,QAAQ;AACR,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,uBAAuB,CAAC;AAEtC,YAAY;AACZ,cAAc,sBAAsB,CAAC;AAErC,YAAY;AACZ,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,uBAAuB,CAAC;AAEtC,qBAAqB;AACrB,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Membrane - LLM middleware core class
|
|
3
|
+
*
|
|
4
|
+
* A selective boundary that transforms what passes through.
|
|
5
|
+
*/
|
|
6
|
+
import type { NormalizedRequest, NormalizedResponse, AbortedResponse, ProviderAdapter, MembraneConfig, StreamOptions, CompleteOptions } from './types/index.js';
|
|
7
|
+
import type { YieldingStream, YieldingStreamOptions } from './types/yielding-stream.js';
|
|
8
|
+
export declare class Membrane {
|
|
9
|
+
private adapter;
|
|
10
|
+
private registry?;
|
|
11
|
+
private retryConfig;
|
|
12
|
+
private config;
|
|
13
|
+
private formatter;
|
|
14
|
+
constructor(adapter: ProviderAdapter, config?: MembraneConfig);
|
|
15
|
+
/**
|
|
16
|
+
* Complete a request (non-streaming)
|
|
17
|
+
*/
|
|
18
|
+
complete(request: NormalizedRequest, options?: CompleteOptions): Promise<NormalizedResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Stream a request with inline tool execution.
|
|
21
|
+
*
|
|
22
|
+
* Returns either a complete NormalizedResponse or an AbortedResponse
|
|
23
|
+
* if the request was cancelled via the abort signal. Use `isAbortedResponse()`
|
|
24
|
+
* to check which type was returned.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const result = await membrane.stream(request, { signal: controller.signal });
|
|
29
|
+
* if (isAbortedResponse(result)) {
|
|
30
|
+
* console.log('Aborted:', result.rawAssistantText);
|
|
31
|
+
* // Use rawAssistantText as prefill to continue, or toolCalls/toolResults to rebuild state
|
|
32
|
+
* } else {
|
|
33
|
+
* console.log('Complete:', result.content);
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
stream(request: NormalizedRequest, options?: StreamOptions): Promise<NormalizedResponse | AbortedResponse>;
|
|
38
|
+
/**
|
|
39
|
+
* Determine the effective tool mode
|
|
40
|
+
*/
|
|
41
|
+
private resolveToolMode;
|
|
42
|
+
/**
|
|
43
|
+
* Stream with XML-based tool execution (prefill mode)
|
|
44
|
+
*
|
|
45
|
+
* Uses IncrementalXmlParser to track XML nesting depth for:
|
|
46
|
+
* - False-positive stop sequence detection (e.g., "\nUser:" inside tool results)
|
|
47
|
+
* - Structured block events for UI
|
|
48
|
+
*/
|
|
49
|
+
private streamWithXmlTools;
|
|
50
|
+
/**
|
|
51
|
+
* Stream with native API tool execution
|
|
52
|
+
*/
|
|
53
|
+
private streamWithNativeTools;
|
|
54
|
+
/**
|
|
55
|
+
* Build a provider request with native tool support
|
|
56
|
+
*/
|
|
57
|
+
private buildNativeToolRequest;
|
|
58
|
+
/**
|
|
59
|
+
* Parse provider response content into normalized blocks
|
|
60
|
+
*/
|
|
61
|
+
private parseProviderContent;
|
|
62
|
+
/**
|
|
63
|
+
* Apply the configured `beforeRequest` hook to a provider-format request.
|
|
64
|
+
* Returns the (possibly modified) request, or the original if no hook is
|
|
65
|
+
* configured. This is the single point that all request-build sites should
|
|
66
|
+
* route through before invoking the adapter, so observers / mutators
|
|
67
|
+
* (logging, redaction, model rewriting) see every API call regardless of
|
|
68
|
+
* whether it came from `complete()`, `stream()`, or `streamYielding()`.
|
|
69
|
+
*/
|
|
70
|
+
private applyBeforeRequestHook;
|
|
71
|
+
/**
|
|
72
|
+
* Extract base provider params from config, with thinking temperature enforcement.
|
|
73
|
+
* Used by transformRequest, buildContinuationRequest, and buildContinuationRequestWithImages.
|
|
74
|
+
*/
|
|
75
|
+
private getBaseProviderParams;
|
|
76
|
+
/**
|
|
77
|
+
* Transform a normalized request into provider format using the formatter
|
|
78
|
+
*/
|
|
79
|
+
private transformRequest;
|
|
80
|
+
private streamOnce;
|
|
81
|
+
private buildContinuationRequest;
|
|
82
|
+
/**
|
|
83
|
+
* Build continuation request with split-turn image injection.
|
|
84
|
+
*
|
|
85
|
+
* When tool results contain images in prefill mode, we must:
|
|
86
|
+
* 1. End assistant turn mid-XML (after text content, inside <function_results>)
|
|
87
|
+
* 2. Insert user turn with only image content
|
|
88
|
+
* 3. Continue with assistant prefill containing closing XML tags
|
|
89
|
+
*
|
|
90
|
+
* This is required because Anthropic API only allows images in user turns.
|
|
91
|
+
*
|
|
92
|
+
* Structure:
|
|
93
|
+
* ```
|
|
94
|
+
* Assistant: "...response..." + <function_results><result>text content
|
|
95
|
+
* User: [image blocks]
|
|
96
|
+
* Assistant (prefill): </result></function_results>
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
private buildContinuationRequestWithImages;
|
|
100
|
+
private transformResponse;
|
|
101
|
+
private buildFinalResponse;
|
|
102
|
+
private mapStopReason;
|
|
103
|
+
private calculateCacheHitRatio;
|
|
104
|
+
private resolvePricing;
|
|
105
|
+
/** Resolve pricing + calculate cost in one call (for one-shot use outside loops). */
|
|
106
|
+
private estimateCost;
|
|
107
|
+
private calculateRetryDelay;
|
|
108
|
+
private attachRawRequest;
|
|
109
|
+
private sleep;
|
|
110
|
+
/**
|
|
111
|
+
* Check if an error is an abort error
|
|
112
|
+
*/
|
|
113
|
+
private isAbortError;
|
|
114
|
+
/**
|
|
115
|
+
* Build an AbortedResponse from current execution state
|
|
116
|
+
*/
|
|
117
|
+
private buildAbortedResponse;
|
|
118
|
+
/**
|
|
119
|
+
* Stream inference with yielding control for tool execution.
|
|
120
|
+
*
|
|
121
|
+
* Unlike `stream()` which uses callbacks for tool execution, this method
|
|
122
|
+
* returns an async iterator that yields control back to the caller when
|
|
123
|
+
* tool calls are detected. The caller provides results via `provideToolResults()`.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* const stream = membrane.streamYielding(request, options);
|
|
128
|
+
*
|
|
129
|
+
* for await (const event of stream) {
|
|
130
|
+
* switch (event.type) {
|
|
131
|
+
* case 'tokens':
|
|
132
|
+
* process.stdout.write(event.content);
|
|
133
|
+
* break;
|
|
134
|
+
* case 'tool-calls':
|
|
135
|
+
* const results = await executeTools(event.calls);
|
|
136
|
+
* stream.provideToolResults(results);
|
|
137
|
+
* break;
|
|
138
|
+
* case 'complete':
|
|
139
|
+
* console.log('Done:', event.response);
|
|
140
|
+
* break;
|
|
141
|
+
* }
|
|
142
|
+
* }
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
streamYielding(request: NormalizedRequest, options?: YieldingStreamOptions): YieldingStream;
|
|
146
|
+
/**
|
|
147
|
+
* Run XML-based tool execution with yielding stream.
|
|
148
|
+
*/
|
|
149
|
+
private runXmlToolsYielding;
|
|
150
|
+
/**
|
|
151
|
+
* Run native tool execution with yielding stream.
|
|
152
|
+
*/
|
|
153
|
+
private runNativeToolsYielding;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=membrane.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic provider adapter
|
|
3
|
+
*/
|
|
4
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
5
|
+
import type { ProviderAdapter, ProviderRequest, ProviderRequestOptions, ProviderResponse, StreamCallbacks, ContentBlock } from '../types/index.js';
|
|
6
|
+
export interface AnthropicAdapterConfig {
|
|
7
|
+
/** API key (defaults to ANTHROPIC_API_KEY env var) */
|
|
8
|
+
apiKey?: string;
|
|
9
|
+
/** Base URL override */
|
|
10
|
+
baseURL?: string;
|
|
11
|
+
/** Default max tokens */
|
|
12
|
+
defaultMaxTokens?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class AnthropicAdapter implements ProviderAdapter {
|
|
15
|
+
readonly name = "anthropic";
|
|
16
|
+
private client;
|
|
17
|
+
private defaultMaxTokens;
|
|
18
|
+
constructor(config?: AnthropicAdapterConfig);
|
|
19
|
+
supportsModel(modelId: string): boolean;
|
|
20
|
+
complete(request: ProviderRequest, options?: ProviderRequestOptions): Promise<ProviderResponse>;
|
|
21
|
+
stream(request: ProviderRequest, callbacks: StreamCallbacks, options?: ProviderRequestOptions): Promise<ProviderResponse>;
|
|
22
|
+
private buildRequest;
|
|
23
|
+
private parseResponse;
|
|
24
|
+
private handleError;
|
|
25
|
+
private parseRetryAfter;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Convert normalized content blocks to Anthropic format
|
|
29
|
+
* Preserves cache_control for prompt caching
|
|
30
|
+
*/
|
|
31
|
+
export declare function toAnthropicContent(blocks: ContentBlock[]): Anthropic.ContentBlockParam[];
|
|
32
|
+
/**
|
|
33
|
+
* Convert Anthropic response content to normalized format
|
|
34
|
+
*/
|
|
35
|
+
export declare function fromAnthropicContent(blocks: Anthropic.ContentBlock[]): ContentBlock[];
|
|
36
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS Bedrock provider adapter for Anthropic Claude models
|
|
3
|
+
*
|
|
4
|
+
* Uses the Anthropic Messages API format through AWS Bedrock.
|
|
5
|
+
*/
|
|
6
|
+
import type { ProviderAdapter, ProviderRequest, ProviderRequestOptions, ProviderResponse, StreamCallbacks } from '../types/index.js';
|
|
7
|
+
export interface BedrockAdapterConfig {
|
|
8
|
+
/** AWS access key ID */
|
|
9
|
+
accessKeyId?: string;
|
|
10
|
+
/** AWS secret access key */
|
|
11
|
+
secretAccessKey?: string;
|
|
12
|
+
/** AWS region (defaults to us-west-2) */
|
|
13
|
+
region?: string;
|
|
14
|
+
/** AWS session token (for temporary credentials) */
|
|
15
|
+
sessionToken?: string;
|
|
16
|
+
/** Default max tokens */
|
|
17
|
+
defaultMaxTokens?: number;
|
|
18
|
+
/** Anthropic API version header (defaults to 2023-06-01) */
|
|
19
|
+
anthropicVersion?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare class BedrockAdapter implements ProviderAdapter {
|
|
22
|
+
readonly name = "bedrock";
|
|
23
|
+
private accessKeyId;
|
|
24
|
+
private secretAccessKey;
|
|
25
|
+
private sessionToken?;
|
|
26
|
+
private region;
|
|
27
|
+
private defaultMaxTokens;
|
|
28
|
+
private anthropicVersion;
|
|
29
|
+
constructor(config?: BedrockAdapterConfig);
|
|
30
|
+
supportsModel(modelId: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Convert a standard Claude model ID to Bedrock format if needed
|
|
33
|
+
*/
|
|
34
|
+
private toBedrockModelId;
|
|
35
|
+
complete(request: ProviderRequest, options?: ProviderRequestOptions): Promise<ProviderResponse>;
|
|
36
|
+
stream(request: ProviderRequest, callbacks: StreamCallbacks, options?: ProviderRequestOptions): Promise<ProviderResponse>;
|
|
37
|
+
private buildRequest;
|
|
38
|
+
private invokeModel;
|
|
39
|
+
private invokeModelWithStream;
|
|
40
|
+
private parseResponse;
|
|
41
|
+
private handleError;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=bedrock.d.ts.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google Gemini provider adapter
|
|
3
|
+
*
|
|
4
|
+
* Direct adapter for Google's Generative AI REST API.
|
|
5
|
+
* Supports Gemini 2.x, 2.5, 3.x models with:
|
|
6
|
+
* - Text and image input
|
|
7
|
+
* - Tool/function calling
|
|
8
|
+
* - Streaming via SSE
|
|
9
|
+
*
|
|
10
|
+
* Auth: API key passed as query parameter (?key=...)
|
|
11
|
+
* Endpoint: generativelanguage.googleapis.com/v1beta
|
|
12
|
+
*/
|
|
13
|
+
import type { ProviderAdapter, ProviderRequest, ProviderRequestOptions, ProviderResponse, StreamCallbacks, ContentBlock } from '../types/index.js';
|
|
14
|
+
interface GeminiPart {
|
|
15
|
+
text?: string;
|
|
16
|
+
inlineData?: {
|
|
17
|
+
mimeType: string;
|
|
18
|
+
data: string;
|
|
19
|
+
};
|
|
20
|
+
functionCall?: {
|
|
21
|
+
name: string;
|
|
22
|
+
args: Record<string, unknown>;
|
|
23
|
+
};
|
|
24
|
+
functionResponse?: {
|
|
25
|
+
name: string;
|
|
26
|
+
response: Record<string, unknown>;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface GeminiAdapterConfig {
|
|
30
|
+
/** Google AI API key */
|
|
31
|
+
apiKey?: string;
|
|
32
|
+
/** Base URL (default: https://generativelanguage.googleapis.com/v1beta) */
|
|
33
|
+
baseURL?: string;
|
|
34
|
+
/** Default max output tokens */
|
|
35
|
+
defaultMaxTokens?: number;
|
|
36
|
+
}
|
|
37
|
+
export declare class GeminiAdapter implements ProviderAdapter {
|
|
38
|
+
readonly name = "gemini";
|
|
39
|
+
private apiKey;
|
|
40
|
+
private baseURL;
|
|
41
|
+
private defaultMaxTokens;
|
|
42
|
+
constructor(config?: GeminiAdapterConfig);
|
|
43
|
+
supportsModel(modelId: string): boolean;
|
|
44
|
+
complete(request: ProviderRequest, options?: ProviderRequestOptions): Promise<ProviderResponse>;
|
|
45
|
+
stream(request: ProviderRequest, callbacks: StreamCallbacks, options?: ProviderRequestOptions): Promise<ProviderResponse>;
|
|
46
|
+
private buildRequest;
|
|
47
|
+
private convertMessages;
|
|
48
|
+
/**
|
|
49
|
+
* Gemini requires strictly alternating user/model messages.
|
|
50
|
+
* Merge consecutive messages with the same role into one.
|
|
51
|
+
*/
|
|
52
|
+
private mergeConsecutiveRoles;
|
|
53
|
+
private convertTools;
|
|
54
|
+
private parseResponse;
|
|
55
|
+
private buildContentBlocks;
|
|
56
|
+
private mapFinishReason;
|
|
57
|
+
private handleError;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Convert normalized content blocks to Gemini parts
|
|
61
|
+
*/
|
|
62
|
+
export declare function toGeminiParts(blocks: ContentBlock[]): GeminiPart[];
|
|
63
|
+
/**
|
|
64
|
+
* Convert Gemini parts to normalized content blocks
|
|
65
|
+
*/
|
|
66
|
+
export declare function fromGeminiParts(parts: GeminiPart[]): ContentBlock[];
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=gemini.d.ts.map
|