@axonflow/sdk 1.2.1 → 1.4.0
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 +119 -0
- package/dist/cjs/client.d.ts +42 -1
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +167 -0
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/index.d.ts +10 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +15 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interceptors/anthropic.d.ts +24 -0
- package/dist/cjs/interceptors/anthropic.d.ts.map +1 -1
- package/dist/cjs/interceptors/anthropic.js +27 -0
- package/dist/cjs/interceptors/anthropic.js.map +1 -1
- package/dist/cjs/interceptors/bedrock.d.ts +142 -0
- package/dist/cjs/interceptors/bedrock.d.ts.map +1 -0
- package/dist/cjs/interceptors/bedrock.js +263 -0
- package/dist/cjs/interceptors/bedrock.js.map +1 -0
- package/dist/cjs/interceptors/gemini.d.ts +89 -0
- package/dist/cjs/interceptors/gemini.d.ts.map +1 -0
- package/dist/cjs/interceptors/gemini.js +121 -0
- package/dist/cjs/interceptors/gemini.js.map +1 -0
- package/dist/cjs/interceptors/ollama.d.ts +143 -0
- package/dist/cjs/interceptors/ollama.d.ts.map +1 -0
- package/dist/cjs/interceptors/ollama.js +153 -0
- package/dist/cjs/interceptors/ollama.js.map +1 -0
- package/dist/cjs/interceptors/openai.d.ts +24 -0
- package/dist/cjs/interceptors/openai.d.ts.map +1 -1
- package/dist/cjs/interceptors/openai.js +27 -0
- package/dist/cjs/interceptors/openai.js.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +1 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/proxy.d.ts +78 -0
- package/dist/cjs/types/proxy.d.ts.map +1 -0
- package/dist/cjs/types/proxy.js +9 -0
- package/dist/cjs/types/proxy.js.map +1 -0
- package/dist/esm/client.d.ts +42 -1
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +168 -1
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/index.d.ts +10 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +11 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interceptors/anthropic.d.ts +24 -0
- package/dist/esm/interceptors/anthropic.d.ts.map +1 -1
- package/dist/esm/interceptors/anthropic.js +27 -0
- package/dist/esm/interceptors/anthropic.js.map +1 -1
- package/dist/esm/interceptors/bedrock.d.ts +142 -0
- package/dist/esm/interceptors/bedrock.d.ts.map +1 -0
- package/dist/esm/interceptors/bedrock.js +224 -0
- package/dist/esm/interceptors/bedrock.js.map +1 -0
- package/dist/esm/interceptors/gemini.d.ts +89 -0
- package/dist/esm/interceptors/gemini.d.ts.map +1 -0
- package/dist/esm/interceptors/gemini.js +116 -0
- package/dist/esm/interceptors/gemini.js.map +1 -0
- package/dist/esm/interceptors/ollama.d.ts +143 -0
- package/dist/esm/interceptors/ollama.d.ts.map +1 -0
- package/dist/esm/interceptors/ollama.js +147 -0
- package/dist/esm/interceptors/ollama.js.map +1 -0
- package/dist/esm/interceptors/openai.d.ts +24 -0
- package/dist/esm/interceptors/openai.d.ts.map +1 -1
- package/dist/esm/interceptors/openai.js +27 -0
- package/dist/esm/interceptors/openai.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/proxy.d.ts +78 -0
- package/dist/esm/types/proxy.d.ts.map +1 -0
- package/dist/esm/types/proxy.js +8 -0
- package/dist/esm/types/proxy.js.map +1 -0
- package/package.json +5 -1
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { BaseInterceptor } from './base';
|
|
2
|
+
import { AIRequest } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Interceptor for Ollama API calls
|
|
5
|
+
*
|
|
6
|
+
* Ollama is a local LLM server that runs on localhost:11434 by default.
|
|
7
|
+
* No authentication is required.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { AxonFlow, wrapOllamaClient } from '@axonflow/sdk';
|
|
12
|
+
* import Ollama from 'ollama';
|
|
13
|
+
*
|
|
14
|
+
* const ollama = new Ollama({ host: 'http://localhost:11434' });
|
|
15
|
+
* const axonflow = new AxonFlow({ endpoint: 'http://localhost:8080' });
|
|
16
|
+
*
|
|
17
|
+
* const wrapped = wrapOllamaClient(ollama, axonflow);
|
|
18
|
+
* const response = await wrapped.chat({
|
|
19
|
+
* model: 'llama2',
|
|
20
|
+
* messages: [{ role: 'user', content: 'Hello!' }]
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare class OllamaInterceptor extends BaseInterceptor {
|
|
25
|
+
canHandle(aiCall: any): boolean;
|
|
26
|
+
extractRequest(aiCall: any): AIRequest;
|
|
27
|
+
executeWithModifications(aiCall: any, _modifications: any): Promise<any>;
|
|
28
|
+
getProvider(): string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Ollama chat message
|
|
32
|
+
*/
|
|
33
|
+
export interface OllamaMessage {
|
|
34
|
+
role: 'system' | 'user' | 'assistant';
|
|
35
|
+
content: string;
|
|
36
|
+
images?: string[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Ollama chat request
|
|
40
|
+
*/
|
|
41
|
+
export interface OllamaChatRequest {
|
|
42
|
+
model: string;
|
|
43
|
+
messages: OllamaMessage[];
|
|
44
|
+
stream?: boolean;
|
|
45
|
+
format?: 'json';
|
|
46
|
+
options?: {
|
|
47
|
+
temperature?: number;
|
|
48
|
+
top_p?: number;
|
|
49
|
+
top_k?: number;
|
|
50
|
+
num_predict?: number;
|
|
51
|
+
stop?: string[];
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Ollama chat response
|
|
56
|
+
*/
|
|
57
|
+
export interface OllamaChatResponse {
|
|
58
|
+
model: string;
|
|
59
|
+
created_at: string;
|
|
60
|
+
message: OllamaMessage;
|
|
61
|
+
done: boolean;
|
|
62
|
+
total_duration?: number;
|
|
63
|
+
load_duration?: number;
|
|
64
|
+
prompt_eval_count?: number;
|
|
65
|
+
prompt_eval_duration?: number;
|
|
66
|
+
eval_count?: number;
|
|
67
|
+
eval_duration?: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Ollama generate request (for completions)
|
|
71
|
+
*/
|
|
72
|
+
export interface OllamaGenerateRequest {
|
|
73
|
+
model: string;
|
|
74
|
+
prompt: string;
|
|
75
|
+
stream?: boolean;
|
|
76
|
+
format?: 'json';
|
|
77
|
+
options?: {
|
|
78
|
+
temperature?: number;
|
|
79
|
+
top_p?: number;
|
|
80
|
+
top_k?: number;
|
|
81
|
+
num_predict?: number;
|
|
82
|
+
stop?: string[];
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Ollama generate response
|
|
87
|
+
*/
|
|
88
|
+
export interface OllamaGenerateResponse {
|
|
89
|
+
model: string;
|
|
90
|
+
created_at: string;
|
|
91
|
+
response: string;
|
|
92
|
+
done: boolean;
|
|
93
|
+
total_duration?: number;
|
|
94
|
+
load_duration?: number;
|
|
95
|
+
prompt_eval_count?: number;
|
|
96
|
+
prompt_eval_duration?: number;
|
|
97
|
+
eval_count?: number;
|
|
98
|
+
eval_duration?: number;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Wraps an Ollama client with AxonFlow governance.
|
|
102
|
+
*
|
|
103
|
+
* @deprecated This function is deprecated and will be removed in v2.0.0.
|
|
104
|
+
* JavaScript Proxy-based wrapping has compatibility issues with modern SDK versions.
|
|
105
|
+
*
|
|
106
|
+
* Use Gateway Mode or Proxy Mode instead:
|
|
107
|
+
*
|
|
108
|
+
* Gateway Mode (recommended):
|
|
109
|
+
* ```typescript
|
|
110
|
+
* const context = await axonflow.getPolicyApprovedContext({ query, userToken });
|
|
111
|
+
* const response = await ollama.chat({ model: 'llama2', messages: [...] });
|
|
112
|
+
* await axonflow.auditLLMCall({ contextId: context.contextId, ... });
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* Proxy Mode:
|
|
116
|
+
* ```typescript
|
|
117
|
+
* const response = await axonflow.executeQuery({
|
|
118
|
+
* query,
|
|
119
|
+
* userToken,
|
|
120
|
+
* context: { provider: 'ollama', model: 'llama2' }
|
|
121
|
+
* });
|
|
122
|
+
* ```
|
|
123
|
+
*
|
|
124
|
+
* See: https://docs.getaxonflow.com/sdk/gateway-mode
|
|
125
|
+
*/
|
|
126
|
+
export declare function wrapOllamaClient(ollamaClient: any, axonflow: any): any;
|
|
127
|
+
/**
|
|
128
|
+
* Creates a governed Ollama chat function.
|
|
129
|
+
*
|
|
130
|
+
* Use this when you want fine-grained control over individual calls
|
|
131
|
+
* rather than wrapping the entire client.
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* const governedChat = createGovernedOllamaChat(ollamaClient, axonflow, 'user-123');
|
|
136
|
+
* const response = await governedChat({
|
|
137
|
+
* model: 'llama2',
|
|
138
|
+
* messages: [{ role: 'user', content: 'Hello!' }]
|
|
139
|
+
* });
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
export declare function createGovernedOllamaChat(ollamaClient: any, axonflow: any, userToken?: string): (request: OllamaChatRequest) => Promise<OllamaChatResponse>;
|
|
143
|
+
//# sourceMappingURL=ollama.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/interceptors/ollama.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OllamaInterceptor = void 0;
|
|
4
|
+
exports.wrapOllamaClient = wrapOllamaClient;
|
|
5
|
+
exports.createGovernedOllamaChat = createGovernedOllamaChat;
|
|
6
|
+
const base_1 = require("./base");
|
|
7
|
+
/**
|
|
8
|
+
* Interceptor for Ollama API calls
|
|
9
|
+
*
|
|
10
|
+
* Ollama is a local LLM server that runs on localhost:11434 by default.
|
|
11
|
+
* No authentication is required.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { AxonFlow, wrapOllamaClient } from '@axonflow/sdk';
|
|
16
|
+
* import Ollama from 'ollama';
|
|
17
|
+
*
|
|
18
|
+
* const ollama = new Ollama({ host: 'http://localhost:11434' });
|
|
19
|
+
* const axonflow = new AxonFlow({ endpoint: 'http://localhost:8080' });
|
|
20
|
+
*
|
|
21
|
+
* const wrapped = wrapOllamaClient(ollama, axonflow);
|
|
22
|
+
* const response = await wrapped.chat({
|
|
23
|
+
* model: 'llama2',
|
|
24
|
+
* messages: [{ role: 'user', content: 'Hello!' }]
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
class OllamaInterceptor extends base_1.BaseInterceptor {
|
|
29
|
+
canHandle(aiCall) {
|
|
30
|
+
const callString = aiCall.toString();
|
|
31
|
+
return (callString.includes('ollama') ||
|
|
32
|
+
callString.includes('llama') ||
|
|
33
|
+
callString.includes('mistral') ||
|
|
34
|
+
callString.includes('codellama') ||
|
|
35
|
+
callString.includes('localhost:11434'));
|
|
36
|
+
}
|
|
37
|
+
extractRequest(aiCall) {
|
|
38
|
+
const callString = aiCall.toString();
|
|
39
|
+
let model = 'llama2';
|
|
40
|
+
if (callString.includes('mistral')) {
|
|
41
|
+
model = 'mistral';
|
|
42
|
+
}
|
|
43
|
+
else if (callString.includes('codellama')) {
|
|
44
|
+
model = 'codellama';
|
|
45
|
+
}
|
|
46
|
+
else if (callString.includes('llama3')) {
|
|
47
|
+
model = 'llama3';
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
provider: 'ollama',
|
|
51
|
+
model,
|
|
52
|
+
prompt: callString,
|
|
53
|
+
parameters: {},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
executeWithModifications(aiCall, _modifications) {
|
|
57
|
+
return aiCall();
|
|
58
|
+
}
|
|
59
|
+
getProvider() {
|
|
60
|
+
return 'ollama';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.OllamaInterceptor = OllamaInterceptor;
|
|
64
|
+
/**
|
|
65
|
+
* Wraps an Ollama client with AxonFlow governance.
|
|
66
|
+
*
|
|
67
|
+
* @deprecated This function is deprecated and will be removed in v2.0.0.
|
|
68
|
+
* JavaScript Proxy-based wrapping has compatibility issues with modern SDK versions.
|
|
69
|
+
*
|
|
70
|
+
* Use Gateway Mode or Proxy Mode instead:
|
|
71
|
+
*
|
|
72
|
+
* Gateway Mode (recommended):
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const context = await axonflow.getPolicyApprovedContext({ query, userToken });
|
|
75
|
+
* const response = await ollama.chat({ model: 'llama2', messages: [...] });
|
|
76
|
+
* await axonflow.auditLLMCall({ contextId: context.contextId, ... });
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* Proxy Mode:
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const response = await axonflow.executeQuery({
|
|
82
|
+
* query,
|
|
83
|
+
* userToken,
|
|
84
|
+
* context: { provider: 'ollama', model: 'llama2' }
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* See: https://docs.getaxonflow.com/sdk/gateway-mode
|
|
89
|
+
*/
|
|
90
|
+
function wrapOllamaClient(ollamaClient, axonflow) {
|
|
91
|
+
console.warn('[AxonFlow] wrapOllamaClient is deprecated and will be removed in v2.0.0. ' +
|
|
92
|
+
'Use Gateway Mode (getPolicyApprovedContext + auditLLMCall) or Proxy Mode (executeQuery) instead. ' +
|
|
93
|
+
'See: https://docs.getaxonflow.com/sdk/gateway-mode');
|
|
94
|
+
return new Proxy(ollamaClient, {
|
|
95
|
+
get(target, prop, receiver) {
|
|
96
|
+
const original = Reflect.get(target, prop, receiver);
|
|
97
|
+
// Intercept chat and generate methods
|
|
98
|
+
if (typeof original === 'function' && ['chat', 'generate'].includes(prop.toString())) {
|
|
99
|
+
return async (...args) => {
|
|
100
|
+
return axonflow.protect(() => original.apply(target, args));
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return original;
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Creates a governed Ollama chat function.
|
|
109
|
+
*
|
|
110
|
+
* Use this when you want fine-grained control over individual calls
|
|
111
|
+
* rather than wrapping the entire client.
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* const governedChat = createGovernedOllamaChat(ollamaClient, axonflow, 'user-123');
|
|
116
|
+
* const response = await governedChat({
|
|
117
|
+
* model: 'llama2',
|
|
118
|
+
* messages: [{ role: 'user', content: 'Hello!' }]
|
|
119
|
+
* });
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
function createGovernedOllamaChat(ollamaClient, axonflow, userToken = '') {
|
|
123
|
+
return async (request) => {
|
|
124
|
+
// Extract prompt from messages
|
|
125
|
+
const prompt = request.messages.map(m => m.content).join(' ');
|
|
126
|
+
// Pre-check with AxonFlow
|
|
127
|
+
const preCheck = await axonflow.getPolicyApprovedContext({
|
|
128
|
+
userToken,
|
|
129
|
+
query: prompt,
|
|
130
|
+
context: {
|
|
131
|
+
provider: 'ollama',
|
|
132
|
+
model: request.model,
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
if (!preCheck.approved) {
|
|
136
|
+
throw new Error(`Request blocked by policy: ${preCheck.blockReason}`);
|
|
137
|
+
}
|
|
138
|
+
// Execute the call
|
|
139
|
+
const startTime = Date.now();
|
|
140
|
+
const response = await ollamaClient.chat(request);
|
|
141
|
+
const latencyMs = Date.now() - startTime;
|
|
142
|
+
// Audit the call
|
|
143
|
+
if (preCheck.contextId) {
|
|
144
|
+
await axonflow.auditLLMCall(preCheck.contextId, response.message?.content?.substring(0, 200) || '', 'ollama', request.model, {
|
|
145
|
+
promptTokens: response.prompt_eval_count || 0,
|
|
146
|
+
completionTokens: response.eval_count || 0,
|
|
147
|
+
totalTokens: (response.prompt_eval_count || 0) + (response.eval_count || 0),
|
|
148
|
+
}, latencyMs);
|
|
149
|
+
}
|
|
150
|
+
return response;
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=ollama.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/interceptors/ollama.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,30 @@ export declare class OpenAIInterceptor extends BaseInterceptor {
|
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Helper to wrap OpenAI client for easier interception
|
|
14
|
+
*
|
|
15
|
+
* @deprecated This function is deprecated and will be removed in v2.0.0.
|
|
16
|
+
* Modern OpenAI SDK versions (v4+) use private class fields that are incompatible
|
|
17
|
+
* with JavaScript Proxy-based wrapping.
|
|
18
|
+
*
|
|
19
|
+
* Use Gateway Mode or Proxy Mode instead:
|
|
20
|
+
*
|
|
21
|
+
* Gateway Mode (recommended):
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const context = await axonflow.getPolicyApprovedContext({ query, userToken });
|
|
24
|
+
* const response = await openai.chat.completions.create({ ... });
|
|
25
|
+
* await axonflow.auditLLMCall({ contextId: context.contextId, ... });
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* Proxy Mode:
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const response = await axonflow.executeQuery({
|
|
31
|
+
* query,
|
|
32
|
+
* userToken,
|
|
33
|
+
* context: { provider: 'openai', model: 'gpt-4' }
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* See: https://docs.getaxonflow.com/sdk/gateway-mode
|
|
14
38
|
*/
|
|
15
39
|
export declare function wrapOpenAIClient(openaiClient: any, axonflow: any): any;
|
|
16
40
|
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/interceptors/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAW/B,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,SAAS;IAuBtC,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAMxE,WAAW,IAAI,MAAM;CAGtB;AAED
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/interceptors/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAW/B,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,SAAS;IAuBtC,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAMxE,WAAW,IAAI,MAAM;CAGtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,CA8BtE"}
|
|
@@ -48,8 +48,35 @@ class OpenAIInterceptor extends base_1.BaseInterceptor {
|
|
|
48
48
|
exports.OpenAIInterceptor = OpenAIInterceptor;
|
|
49
49
|
/**
|
|
50
50
|
* Helper to wrap OpenAI client for easier interception
|
|
51
|
+
*
|
|
52
|
+
* @deprecated This function is deprecated and will be removed in v2.0.0.
|
|
53
|
+
* Modern OpenAI SDK versions (v4+) use private class fields that are incompatible
|
|
54
|
+
* with JavaScript Proxy-based wrapping.
|
|
55
|
+
*
|
|
56
|
+
* Use Gateway Mode or Proxy Mode instead:
|
|
57
|
+
*
|
|
58
|
+
* Gateway Mode (recommended):
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const context = await axonflow.getPolicyApprovedContext({ query, userToken });
|
|
61
|
+
* const response = await openai.chat.completions.create({ ... });
|
|
62
|
+
* await axonflow.auditLLMCall({ contextId: context.contextId, ... });
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* Proxy Mode:
|
|
66
|
+
* ```typescript
|
|
67
|
+
* const response = await axonflow.executeQuery({
|
|
68
|
+
* query,
|
|
69
|
+
* userToken,
|
|
70
|
+
* context: { provider: 'openai', model: 'gpt-4' }
|
|
71
|
+
* });
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* See: https://docs.getaxonflow.com/sdk/gateway-mode
|
|
51
75
|
*/
|
|
52
76
|
function wrapOpenAIClient(openaiClient, axonflow) {
|
|
77
|
+
console.warn('[AxonFlow] wrapOpenAIClient is deprecated and will be removed in v2.0.0. ' +
|
|
78
|
+
'Use Gateway Mode (getPolicyApprovedContext + auditLLMCall) or Proxy Mode (executeQuery) instead. ' +
|
|
79
|
+
'See: https://docs.getaxonflow.com/sdk/gateway-mode');
|
|
53
80
|
// Create a proxy that intercepts method calls
|
|
54
81
|
return new Proxy(openaiClient, {
|
|
55
82
|
get(target, prop, receiver) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/interceptors/openai.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/interceptors/openai.ts"],"names":[],"mappings":";;;AA+EA,4CA8BC;AA7GD,iCAAyC;AAGzC;;GAEG;AACH,MAAa,iBAAkB,SAAQ,sBAAe;IACpD,SAAS,CAAC,MAAW;QACnB,0CAA0C;QAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,CACL,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7B,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACvC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC3C,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,MAAW;QACxB,yCAAyC;QACzC,0EAA0E;QAC1E,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAErC,sBAAsB;QACtB,IAAI,KAAK,GAAG,SAAS,CAAC;QACtB,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,KAAK,GAAG,OAAO,CAAC;QAClB,CAAC;aAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,KAAK,GAAG,eAAe,CAAC;QAC1B,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,KAAK;YACL,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE;YACV,4DAA4D;aAC7D;SACF,CAAC;IACJ,CAAC;IAED,wBAAwB,CAAC,MAAW,EAAE,cAAmB;QACvD,0DAA0D;QAC1D,uDAAuD;QACvD,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,WAAW;QACT,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA5CD,8CA4CC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,gBAAgB,CAAC,YAAiB,EAAE,QAAa;IAC/D,OAAO,CAAC,IAAI,CACV,2EAA2E;QACzE,mGAAmG;QACnG,oDAAoD,CACvD,CAAC;IACF,8CAA8C;IAC9C,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE;QAC7B,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAErD,0CAA0C;YAC1C,IACE,OAAO,QAAQ,KAAK,UAAU;gBAC9B,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EACpF,CAAC;gBACD,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;oBAC9B,iCAAiC;oBACjC,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9D,CAAC,CAAC;YACJ,CAAC;YAED,oDAAoD;YACpD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtD,OAAO,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
package/dist/cjs/types/index.js
CHANGED
|
@@ -21,4 +21,5 @@ __exportStar(require("./policy"), exports);
|
|
|
21
21
|
__exportStar(require("./connector"), exports);
|
|
22
22
|
__exportStar(require("./planning"), exports);
|
|
23
23
|
__exportStar(require("./gateway"), exports);
|
|
24
|
+
__exportStar(require("./proxy"), exports);
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,8CAA4B;AAC5B,6CAA2B;AAC3B,4CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,8CAA4B;AAC5B,6CAA2B;AAC3B,4CAA0B;AAC1B,0CAAwB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proxy Mode Types
|
|
3
|
+
*
|
|
4
|
+
* Proxy Mode routes requests through AxonFlow's /api/request endpoint,
|
|
5
|
+
* allowing AxonFlow to handle policy enforcement and optional LLM routing.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Request type for executeQuery
|
|
9
|
+
*/
|
|
10
|
+
export type RequestType = 'chat' | 'sql' | 'mcp-query' | 'multi-agent-plan' | 'execute-plan';
|
|
11
|
+
/**
|
|
12
|
+
* Options for executing a query through AxonFlow proxy
|
|
13
|
+
*/
|
|
14
|
+
export interface ExecuteQueryOptions {
|
|
15
|
+
/** User authentication token (JWT or session token) */
|
|
16
|
+
userToken: string;
|
|
17
|
+
/** The query or prompt to process */
|
|
18
|
+
query: string;
|
|
19
|
+
/** Type of request */
|
|
20
|
+
requestType: RequestType;
|
|
21
|
+
/** Additional context for policy evaluation and processing */
|
|
22
|
+
context?: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Policy evaluation information from the agent
|
|
26
|
+
*/
|
|
27
|
+
export interface PolicyInfo {
|
|
28
|
+
/** List of policies that were evaluated */
|
|
29
|
+
policiesEvaluated: string[];
|
|
30
|
+
/** Static checks that were applied */
|
|
31
|
+
staticChecks: string[];
|
|
32
|
+
/** Processing time for policy evaluation */
|
|
33
|
+
processingTime: string;
|
|
34
|
+
/** Tenant ID associated with the request */
|
|
35
|
+
tenantId: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Response from executeQuery in Proxy Mode
|
|
39
|
+
*/
|
|
40
|
+
export interface ExecuteQueryResponse {
|
|
41
|
+
/** Whether the request was successful */
|
|
42
|
+
success: boolean;
|
|
43
|
+
/** Response data from the operation */
|
|
44
|
+
data?: unknown;
|
|
45
|
+
/** Result string (for planning operations) */
|
|
46
|
+
result?: string;
|
|
47
|
+
/** Plan ID (for multi-agent planning) */
|
|
48
|
+
planId?: string;
|
|
49
|
+
/** Request ID for tracking */
|
|
50
|
+
requestId?: string;
|
|
51
|
+
/** Additional metadata */
|
|
52
|
+
metadata: Record<string, unknown>;
|
|
53
|
+
/** Error message if request failed */
|
|
54
|
+
error?: string;
|
|
55
|
+
/** Whether the request was blocked by policy */
|
|
56
|
+
blocked: boolean;
|
|
57
|
+
/** Reason for blocking (if blocked) */
|
|
58
|
+
blockReason?: string;
|
|
59
|
+
/** Policy evaluation info */
|
|
60
|
+
policyInfo?: PolicyInfo;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Health check response
|
|
64
|
+
*/
|
|
65
|
+
export interface HealthStatus {
|
|
66
|
+
/** Health status: healthy, degraded, or unhealthy */
|
|
67
|
+
status: 'healthy' | 'degraded' | 'unhealthy';
|
|
68
|
+
/** Agent version */
|
|
69
|
+
version?: string;
|
|
70
|
+
/** Uptime duration */
|
|
71
|
+
uptime?: string;
|
|
72
|
+
/** Component health statuses */
|
|
73
|
+
components?: Record<string, {
|
|
74
|
+
status: string;
|
|
75
|
+
message?: string;
|
|
76
|
+
}>;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/types/proxy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,sCAAsC;IACtC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Proxy Mode Types
|
|
4
|
+
*
|
|
5
|
+
* Proxy Mode routes requests through AxonFlow's /api/request endpoint,
|
|
6
|
+
* allowing AxonFlow to handle policy enforcement and optional LLM routing.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/types/proxy.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
package/dist/esm/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AxonFlowConfig, ConnectorMetadata, ConnectorInstallRequest, ConnectorResponse, PlanResponse, PlanExecutionResponse, PolicyApprovalResult, PolicyApprovalOptions, AuditResult, AuditOptions } from './types';
|
|
1
|
+
import { AxonFlowConfig, ConnectorMetadata, ConnectorInstallRequest, ConnectorResponse, PlanResponse, PlanExecutionResponse, PolicyApprovalResult, PolicyApprovalOptions, AuditResult, AuditOptions, ExecuteQueryOptions, ExecuteQueryResponse, HealthStatus } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Main AxonFlow client for invisible AI governance
|
|
4
4
|
*/
|
|
@@ -32,6 +32,47 @@ export declare class AxonFlow {
|
|
|
32
32
|
* Create a sandbox client for testing
|
|
33
33
|
*/
|
|
34
34
|
static sandbox(apiKey?: string): AxonFlow;
|
|
35
|
+
/**
|
|
36
|
+
* Check if AxonFlow Agent is healthy and available.
|
|
37
|
+
*
|
|
38
|
+
* @returns HealthStatus object with agent health information
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const health = await axonflow.healthCheck();
|
|
43
|
+
* if (health.status === 'healthy') {
|
|
44
|
+
* console.log('Agent is healthy');
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
healthCheck(): Promise<HealthStatus>;
|
|
49
|
+
/**
|
|
50
|
+
* Execute a query through AxonFlow with policy enforcement (Proxy Mode).
|
|
51
|
+
*
|
|
52
|
+
* This is the primary method for Proxy Mode, where AxonFlow handles policy
|
|
53
|
+
* checking and optionally routes requests to LLM providers.
|
|
54
|
+
*
|
|
55
|
+
* @param options - Query execution options
|
|
56
|
+
* @returns ExecuteQueryResponse with results or error information
|
|
57
|
+
* @throws PolicyViolationError if request is blocked by policy
|
|
58
|
+
* @throws AuthenticationError if credentials are invalid
|
|
59
|
+
* @throws APIError for other API errors
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const response = await axonflow.executeQuery({
|
|
64
|
+
* userToken: 'user-123',
|
|
65
|
+
* query: 'Explain quantum computing',
|
|
66
|
+
* requestType: 'chat',
|
|
67
|
+
* context: { provider: 'openai', model: 'gpt-4' }
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
* if (response.success) {
|
|
71
|
+
* console.log('Response:', response.data);
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
executeQuery(options: ExecuteQueryOptions): Promise<ExecuteQueryResponse>;
|
|
35
76
|
/**
|
|
36
77
|
* List all available MCP connectors from the marketplace
|
|
37
78
|
*/
|
package/dist/esm/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAId,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACb,MAAM,SAAS,CAAC;AAOjB;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAUZ;IACF,OAAO,CAAC,YAAY,CAAyB;gBAEjC,MAAM,EAAE,cAAc;IAqDlC;;;;OAIG;IACG,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAuD5D;;OAEG;YACW,cAAc;IAiB5B;;OAEG;YACW,aAAa;IAyE3B;;OAEG;YACW,QAAQ;IAYtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,GAAE,MAAmB,GAAG,QAAQ;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAId,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACb,MAAM,SAAS,CAAC;AAOjB;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAUZ;IACF,OAAO,CAAC,YAAY,CAAyB;gBAEjC,MAAM,EAAE,cAAc;IAqDlC;;;;OAIG;IACG,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAuD5D;;OAEG;YACW,cAAc;IAiB5B;;OAEG;YACW,aAAa;IAyE3B;;OAEG;YACW,QAAQ;IAYtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,GAAE,MAAmB,GAAG,QAAQ;IAarD;;;;;;;;;;;;OAYG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IA0C1C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwG/E;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAqBpD;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCvE;;OAEG;IACG,cAAc,CAClB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,GAAG,GACX,OAAO,CAAC,iBAAiB,CAAC;IAkD7B;;;;;OAKG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAqD7F;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiDrF;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA+BnE;;;OAGG;IACG,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACG,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkF7F;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;CAqEhE"}
|