@axonflow/sdk 2.3.0 → 3.3.1

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.
Files changed (126) hide show
  1. package/README.md +185 -8
  2. package/dist/cjs/client.d.ts +487 -8
  3. package/dist/cjs/client.d.ts.map +1 -1
  4. package/dist/cjs/client.js +1672 -45
  5. package/dist/cjs/client.js.map +1 -1
  6. package/dist/cjs/errors.d.ts +22 -0
  7. package/dist/cjs/errors.d.ts.map +1 -1
  8. package/dist/cjs/errors.js +32 -1
  9. package/dist/cjs/errors.js.map +1 -1
  10. package/dist/cjs/index.d.ts +10 -14
  11. package/dist/cjs/index.d.ts.map +1 -1
  12. package/dist/cjs/index.js +11 -20
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/types/connector.d.ts +54 -0
  15. package/dist/cjs/types/connector.d.ts.map +1 -1
  16. package/dist/cjs/types/connector.js +7 -0
  17. package/dist/cjs/types/connector.js.map +1 -1
  18. package/dist/cjs/types/execution.d.ts +227 -0
  19. package/dist/cjs/types/execution.d.ts.map +1 -0
  20. package/dist/cjs/types/execution.js +73 -0
  21. package/dist/cjs/types/execution.js.map +1 -0
  22. package/dist/cjs/types/index.d.ts +3 -0
  23. package/dist/cjs/types/index.d.ts.map +1 -1
  24. package/dist/cjs/types/index.js +3 -0
  25. package/dist/cjs/types/index.js.map +1 -1
  26. package/dist/cjs/types/masfeat.d.ts +238 -0
  27. package/dist/cjs/types/masfeat.d.ts.map +1 -0
  28. package/dist/cjs/types/masfeat.js +11 -0
  29. package/dist/cjs/types/masfeat.js.map +1 -0
  30. package/dist/cjs/types/planning.d.ts +126 -1
  31. package/dist/cjs/types/planning.d.ts.map +1 -1
  32. package/dist/cjs/types/policies.d.ts +19 -1
  33. package/dist/cjs/types/policies.d.ts.map +1 -1
  34. package/dist/cjs/types/proxy.d.ts +29 -3
  35. package/dist/cjs/types/proxy.d.ts.map +1 -1
  36. package/dist/cjs/types/workflows.d.ts +318 -0
  37. package/dist/cjs/types/workflows.d.ts.map +1 -0
  38. package/dist/cjs/types/workflows.js +61 -0
  39. package/dist/cjs/types/workflows.js.map +1 -0
  40. package/dist/esm/client.d.ts +487 -8
  41. package/dist/esm/client.d.ts.map +1 -1
  42. package/dist/esm/client.js +1673 -46
  43. package/dist/esm/client.js.map +1 -1
  44. package/dist/esm/errors.d.ts +22 -0
  45. package/dist/esm/errors.d.ts.map +1 -1
  46. package/dist/esm/errors.js +30 -0
  47. package/dist/esm/errors.js.map +1 -1
  48. package/dist/esm/index.d.ts +10 -14
  49. package/dist/esm/index.d.ts.map +1 -1
  50. package/dist/esm/index.js +7 -15
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/types/connector.d.ts +54 -0
  53. package/dist/esm/types/connector.d.ts.map +1 -1
  54. package/dist/esm/types/connector.js +6 -1
  55. package/dist/esm/types/connector.js.map +1 -1
  56. package/dist/esm/types/execution.d.ts +227 -0
  57. package/dist/esm/types/execution.d.ts.map +1 -0
  58. package/dist/esm/types/execution.js +70 -0
  59. package/dist/esm/types/execution.js.map +1 -0
  60. package/dist/esm/types/index.d.ts +3 -0
  61. package/dist/esm/types/index.d.ts.map +1 -1
  62. package/dist/esm/types/index.js +3 -0
  63. package/dist/esm/types/index.js.map +1 -1
  64. package/dist/esm/types/masfeat.d.ts +238 -0
  65. package/dist/esm/types/masfeat.d.ts.map +1 -0
  66. package/dist/esm/types/masfeat.js +10 -0
  67. package/dist/esm/types/masfeat.js.map +1 -0
  68. package/dist/esm/types/planning.d.ts +126 -1
  69. package/dist/esm/types/planning.d.ts.map +1 -1
  70. package/dist/esm/types/policies.d.ts +19 -1
  71. package/dist/esm/types/policies.d.ts.map +1 -1
  72. package/dist/esm/types/proxy.d.ts +29 -3
  73. package/dist/esm/types/proxy.d.ts.map +1 -1
  74. package/dist/esm/types/workflows.d.ts +318 -0
  75. package/dist/esm/types/workflows.d.ts.map +1 -0
  76. package/dist/esm/types/workflows.js +58 -0
  77. package/dist/esm/types/workflows.js.map +1 -0
  78. package/package.json +7 -2
  79. package/dist/cjs/interceptors/anthropic.d.ts +0 -40
  80. package/dist/cjs/interceptors/anthropic.d.ts.map +0 -1
  81. package/dist/cjs/interceptors/anthropic.js +0 -101
  82. package/dist/cjs/interceptors/anthropic.js.map +0 -1
  83. package/dist/cjs/interceptors/base.d.ts +0 -23
  84. package/dist/cjs/interceptors/base.d.ts.map +0 -1
  85. package/dist/cjs/interceptors/base.js +0 -10
  86. package/dist/cjs/interceptors/base.js.map +0 -1
  87. package/dist/cjs/interceptors/bedrock.d.ts +0 -142
  88. package/dist/cjs/interceptors/bedrock.d.ts.map +0 -1
  89. package/dist/cjs/interceptors/bedrock.js +0 -263
  90. package/dist/cjs/interceptors/bedrock.js.map +0 -1
  91. package/dist/cjs/interceptors/gemini.d.ts +0 -89
  92. package/dist/cjs/interceptors/gemini.d.ts.map +0 -1
  93. package/dist/cjs/interceptors/gemini.js +0 -121
  94. package/dist/cjs/interceptors/gemini.js.map +0 -1
  95. package/dist/cjs/interceptors/ollama.d.ts +0 -143
  96. package/dist/cjs/interceptors/ollama.d.ts.map +0 -1
  97. package/dist/cjs/interceptors/ollama.js +0 -153
  98. package/dist/cjs/interceptors/ollama.js.map +0 -1
  99. package/dist/cjs/interceptors/openai.d.ts +0 -40
  100. package/dist/cjs/interceptors/openai.d.ts.map +0 -1
  101. package/dist/cjs/interceptors/openai.js +0 -100
  102. package/dist/cjs/interceptors/openai.js.map +0 -1
  103. package/dist/esm/interceptors/anthropic.d.ts +0 -40
  104. package/dist/esm/interceptors/anthropic.d.ts.map +0 -1
  105. package/dist/esm/interceptors/anthropic.js +0 -96
  106. package/dist/esm/interceptors/anthropic.js.map +0 -1
  107. package/dist/esm/interceptors/base.d.ts +0 -23
  108. package/dist/esm/interceptors/base.d.ts.map +0 -1
  109. package/dist/esm/interceptors/base.js +0 -6
  110. package/dist/esm/interceptors/base.js.map +0 -1
  111. package/dist/esm/interceptors/bedrock.d.ts +0 -142
  112. package/dist/esm/interceptors/bedrock.d.ts.map +0 -1
  113. package/dist/esm/interceptors/bedrock.js +0 -224
  114. package/dist/esm/interceptors/bedrock.js.map +0 -1
  115. package/dist/esm/interceptors/gemini.d.ts +0 -89
  116. package/dist/esm/interceptors/gemini.d.ts.map +0 -1
  117. package/dist/esm/interceptors/gemini.js +0 -116
  118. package/dist/esm/interceptors/gemini.js.map +0 -1
  119. package/dist/esm/interceptors/ollama.d.ts +0 -143
  120. package/dist/esm/interceptors/ollama.d.ts.map +0 -1
  121. package/dist/esm/interceptors/ollama.js +0 -147
  122. package/dist/esm/interceptors/ollama.js.map +0 -1
  123. package/dist/esm/interceptors/openai.d.ts +0 -40
  124. package/dist/esm/interceptors/openai.d.ts.map +0 -1
  125. package/dist/esm/interceptors/openai.js +0 -95
  126. package/dist/esm/interceptors/openai.js.map +0 -1
@@ -1,143 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/interceptors/ollama.ts"],"names":[],"mappings":"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"}
@@ -1,153 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/interceptors/ollama.ts"],"names":[],"mappings":";;;AAsKA,4CAoBC;AAiBD,4DA8CC;AAzPD,iCAAyC;AAGzC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,iBAAkB,SAAQ,sBAAe;IACpD,SAAS,CAAC,MAAW;QACnB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,CACL,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7B,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5B,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9B,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;YAChC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CACvC,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,MAAW;QACxB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAErC,IAAI,KAAK,GAAG,QAAQ,CAAC;QACrB,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;aAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,KAAK,GAAG,WAAW,CAAC;QACtB,CAAC;aAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,KAAK;YACL,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,wBAAwB,CAAC,MAAW,EAAE,cAAmB;QACvD,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,WAAW;QACT,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAvCD,8CAuCC;AA6ED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,gBAAgB,CAAC,YAAiB,EAAE,QAAa;IAC/D,OAAO,CAAC,IAAI,CACV,2EAA2E;QACzE,mGAAmG;QACnG,oDAAoD,CACvD,CAAC;IACF,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,sCAAsC;YACtC,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBACrF,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;oBAC9B,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9D,CAAC,CAAC;YACJ,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,wBAAwB,CACtC,YAAiB,EACjB,QAAa,EACb,YAAoB,EAAE;IAEtB,OAAO,KAAK,EAAE,OAA0B,EAA+B,EAAE;QACvE,+BAA+B;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9D,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,wBAAwB,CAAC;YACvD,SAAS;YACT,KAAK,EAAE,MAAM;YACb,OAAO,EAAE;gBACP,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,mBAAmB;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEzC,iBAAiB;QACjB,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,QAAQ,CAAC,YAAY,CACzB,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,EAClD,QAAQ,EACR,OAAO,CAAC,KAAK,EACb;gBACE,YAAY,EAAE,QAAQ,CAAC,iBAAiB,IAAI,CAAC;gBAC7C,gBAAgB,EAAE,QAAQ,CAAC,UAAU,IAAI,CAAC;gBAC1C,WAAW,EAAE,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;aAC5E,EACD,SAAS,CACV,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC"}
@@ -1,40 +0,0 @@
1
- import { BaseInterceptor } from './base';
2
- import { AIRequest } from '../types';
3
- /**
4
- * Interceptor for OpenAI API calls
5
- */
6
- export declare class OpenAIInterceptor extends BaseInterceptor {
7
- canHandle(aiCall: any): boolean;
8
- extractRequest(aiCall: any): AIRequest;
9
- executeWithModifications(aiCall: any, _modifications: any): Promise<any>;
10
- getProvider(): string;
11
- }
12
- /**
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
38
- */
39
- export declare function wrapOpenAIClient(openaiClient: any, axonflow: any): any;
40
- //# sourceMappingURL=openai.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OpenAIInterceptor = void 0;
4
- exports.wrapOpenAIClient = wrapOpenAIClient;
5
- const base_1 = require("./base");
6
- /**
7
- * Interceptor for OpenAI API calls
8
- */
9
- class OpenAIInterceptor extends base_1.BaseInterceptor {
10
- canHandle(aiCall) {
11
- // Check if this looks like an OpenAI call
12
- const callString = aiCall.toString();
13
- return (callString.includes('openai') ||
14
- callString.includes('createCompletion') ||
15
- callString.includes('createChatCompletion') ||
16
- callString.includes('gpt'));
17
- }
18
- extractRequest(aiCall) {
19
- // Try to extract OpenAI-specific details
20
- // This is simplified - in production, we'd use more sophisticated parsing
21
- const callString = aiCall.toString();
22
- // Try to detect model
23
- let model = 'unknown';
24
- if (callString.includes('gpt-4')) {
25
- model = 'gpt-4';
26
- }
27
- else if (callString.includes('gpt-3.5')) {
28
- model = 'gpt-3.5-turbo';
29
- }
30
- return {
31
- provider: 'openai',
32
- model,
33
- prompt: callString,
34
- parameters: {
35
- // Would extract temperature, max_tokens, etc. in production
36
- },
37
- };
38
- }
39
- executeWithModifications(aiCall, _modifications) {
40
- // Execute the call with any modifications from governance
41
- // In production, this would apply actual modifications
42
- return aiCall();
43
- }
44
- getProvider() {
45
- return 'openai';
46
- }
47
- }
48
- exports.OpenAIInterceptor = OpenAIInterceptor;
49
- /**
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
75
- */
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');
80
- // Create a proxy that intercepts method calls
81
- return new Proxy(openaiClient, {
82
- get(target, prop, receiver) {
83
- const original = Reflect.get(target, prop, receiver);
84
- // If it's a function that makes API calls
85
- if (typeof original === 'function' &&
86
- ['createCompletion', 'createChatCompletion', 'createEdit'].includes(prop.toString())) {
87
- return async (...args) => {
88
- // Protect the call with AxonFlow
89
- return axonflow.protect(() => original.apply(target, args));
90
- };
91
- }
92
- // For nested objects (like openai.chat.completions)
93
- if (typeof original === 'object' && original !== null) {
94
- return wrapOpenAIClient(original, axonflow);
95
- }
96
- return original;
97
- },
98
- });
99
- }
100
- //# sourceMappingURL=openai.js.map
@@ -1 +0,0 @@
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,40 +0,0 @@
1
- import { BaseInterceptor } from './base';
2
- import { AIRequest } from '../types';
3
- /**
4
- * Interceptor for Anthropic Claude API calls
5
- */
6
- export declare class AnthropicInterceptor extends BaseInterceptor {
7
- canHandle(aiCall: any): boolean;
8
- extractRequest(aiCall: any): AIRequest;
9
- executeWithModifications(aiCall: any, _modifications: any): Promise<any>;
10
- getProvider(): string;
11
- }
12
- /**
13
- * Helper to wrap Anthropic client for easier interception
14
- *
15
- * @deprecated This function is deprecated and will be removed in v2.0.0.
16
- * Modern Anthropic SDK versions 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 anthropic.messages.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: 'anthropic', model: 'claude-3-sonnet' }
34
- * });
35
- * ```
36
- *
37
- * See: https://docs.getaxonflow.com/sdk/gateway-mode
38
- */
39
- export declare function wrapAnthropicClient(anthropicClient: any, axonflow: any): any;
40
- //# sourceMappingURL=anthropic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/interceptors/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,eAAe;IACvD,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAU/B,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,SAAS;IAsBtC,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAKxE,WAAW,IAAI,MAAM;CAGtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,CAiC5E"}
@@ -1,96 +0,0 @@
1
- import { BaseInterceptor } from './base.js';
2
- /**
3
- * Interceptor for Anthropic Claude API calls
4
- */
5
- export class AnthropicInterceptor extends BaseInterceptor {
6
- canHandle(aiCall) {
7
- // Check if this looks like an Anthropic call
8
- const callString = aiCall.toString();
9
- return (callString.includes('anthropic') ||
10
- callString.includes('claude') ||
11
- callString.includes('messages.create'));
12
- }
13
- extractRequest(aiCall) {
14
- // Try to extract Anthropic-specific details
15
- const callString = aiCall.toString();
16
- // Try to detect model
17
- let model = 'unknown';
18
- if (callString.includes('claude-3')) {
19
- model = 'claude-3';
20
- }
21
- else if (callString.includes('claude-2')) {
22
- model = 'claude-2';
23
- }
24
- return {
25
- provider: 'anthropic',
26
- model,
27
- prompt: callString,
28
- parameters: {
29
- // Would extract max_tokens, temperature, etc. in production
30
- },
31
- };
32
- }
33
- executeWithModifications(aiCall, _modifications) {
34
- // Execute the call with any modifications from governance
35
- return aiCall();
36
- }
37
- getProvider() {
38
- return 'anthropic';
39
- }
40
- }
41
- /**
42
- * Helper to wrap Anthropic client for easier interception
43
- *
44
- * @deprecated This function is deprecated and will be removed in v2.0.0.
45
- * Modern Anthropic SDK versions use private class fields that are incompatible
46
- * with JavaScript Proxy-based wrapping.
47
- *
48
- * Use Gateway Mode or Proxy Mode instead:
49
- *
50
- * Gateway Mode (recommended):
51
- * ```typescript
52
- * const context = await axonflow.getPolicyApprovedContext({ query, userToken });
53
- * const response = await anthropic.messages.create({ ... });
54
- * await axonflow.auditLLMCall({ contextId: context.contextId, ... });
55
- * ```
56
- *
57
- * Proxy Mode:
58
- * ```typescript
59
- * const response = await axonflow.executeQuery({
60
- * query,
61
- * userToken,
62
- * context: { provider: 'anthropic', model: 'claude-3-sonnet' }
63
- * });
64
- * ```
65
- *
66
- * See: https://docs.getaxonflow.com/sdk/gateway-mode
67
- */
68
- export function wrapAnthropicClient(anthropicClient, axonflow) {
69
- console.warn('[AxonFlow] wrapAnthropicClient is deprecated and will be removed in v2.0.0. ' +
70
- 'Use Gateway Mode (getPolicyApprovedContext + auditLLMCall) or Proxy Mode (executeQuery) instead. ' +
71
- 'See: https://docs.getaxonflow.com/sdk/gateway-mode');
72
- // Create a proxy that intercepts method calls
73
- return new Proxy(anthropicClient, {
74
- get(target, prop, receiver) {
75
- const original = Reflect.get(target, prop, receiver);
76
- // If it's the messages object
77
- if (prop === 'messages' && typeof original === 'object') {
78
- return new Proxy(original, {
79
- get(messagesTarget, messagesProp) {
80
- const messagesOriginal = Reflect.get(messagesTarget, messagesProp);
81
- // If it's the create method
82
- if (messagesProp === 'create' && typeof messagesOriginal === 'function') {
83
- return async (...args) => {
84
- // Protect the call with AxonFlow
85
- return axonflow.protect(() => messagesOriginal.apply(messagesTarget, args));
86
- };
87
- }
88
- return messagesOriginal;
89
- },
90
- });
91
- }
92
- return original;
93
- },
94
- });
95
- }
96
- //# sourceMappingURL=anthropic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/interceptors/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGzC;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IACvD,SAAS,CAAC,MAAW;QACnB,6CAA6C;QAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,CACL,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;YAChC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7B,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CACvC,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,MAAW;QACxB,4CAA4C;QAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAErC,sBAAsB;QACtB,IAAI,KAAK,GAAG,SAAS,CAAC;QACtB,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,KAAK,GAAG,UAAU,CAAC;QACrB,CAAC;aAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,KAAK,GAAG,UAAU,CAAC;QACrB,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,KAAK;YACL,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE;YACV,4DAA4D;aAC7D;SACF,CAAC;IACJ,CAAC;IAED,wBAAwB,CAAC,MAAW,EAAE,cAAmB;QACvD,0DAA0D;QAC1D,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,WAAW;QACT,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,mBAAmB,CAAC,eAAoB,EAAE,QAAa;IACrE,OAAO,CAAC,IAAI,CACV,8EAA8E;QAC5E,mGAAmG;QACnG,oDAAoD,CACvD,CAAC;IACF,8CAA8C;IAC9C,OAAO,IAAI,KAAK,CAAC,eAAe,EAAE;QAChC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAErD,8BAA8B;YAC9B,IAAI,IAAI,KAAK,UAAU,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACxD,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;oBACzB,GAAG,CAAC,cAAc,EAAE,YAAY;wBAC9B,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;wBAEnE,4BAA4B;wBAC5B,IAAI,YAAY,KAAK,QAAQ,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;4BACxE,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;gCAC9B,iCAAiC;gCACjC,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;4BAC9E,CAAC,CAAC;wBACJ,CAAC;wBAED,OAAO,gBAAgB,CAAC;oBAC1B,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,23 +0,0 @@
1
- import { AIRequest } from '../types';
2
- /**
3
- * Base interceptor interface for different AI providers
4
- */
5
- export declare abstract class BaseInterceptor {
6
- /**
7
- * Check if this interceptor can handle the given AI call
8
- */
9
- abstract canHandle(aiCall: any): boolean;
10
- /**
11
- * Extract request details from the AI call
12
- */
13
- abstract extractRequest(aiCall: any): AIRequest;
14
- /**
15
- * Execute the AI call with modifications
16
- */
17
- abstract executeWithModifications(aiCall: any, modifications: any): Promise<any>;
18
- /**
19
- * Get the provider name
20
- */
21
- abstract getProvider(): string;
22
- }
23
- //# sourceMappingURL=base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/interceptors/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,8BAAsB,eAAe;IACnC;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAExC;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,SAAS;IAE/C;;OAEG;IACH,QAAQ,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAEhF;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,MAAM;CAC/B"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Base interceptor interface for different AI providers
3
- */
4
- export class BaseInterceptor {
5
- }
6
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/interceptors/base.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAgB,eAAe;CAoBpC"}