@axonflow/sdk 1.2.0 → 1.3.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/LICENSE +21 -0
- package/README.md +313 -9
- package/dist/cjs/client.d.ts +106 -41
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +446 -198
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/errors.d.ts +51 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +84 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/index.d.ts +6 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +16 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interceptors/anthropic.d.ts +1 -1
- package/dist/cjs/interceptors/anthropic.d.ts.map +1 -1
- package/dist/cjs/interceptors/anthropic.js +6 -6
- package/dist/cjs/interceptors/anthropic.js.map +1 -1
- package/dist/cjs/interceptors/bedrock.d.ts +141 -0
- package/dist/cjs/interceptors/bedrock.d.ts.map +1 -0
- package/dist/cjs/interceptors/bedrock.js +259 -0
- package/dist/cjs/interceptors/bedrock.js.map +1 -0
- package/dist/cjs/interceptors/gemini.d.ts +81 -0
- package/dist/cjs/interceptors/gemini.d.ts.map +1 -0
- package/dist/cjs/interceptors/gemini.js +110 -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 +150 -0
- package/dist/cjs/interceptors/ollama.js.map +1 -0
- package/dist/cjs/interceptors/openai.d.ts +1 -1
- package/dist/cjs/interceptors/openai.d.ts.map +1 -1
- package/dist/cjs/interceptors/openai.js +5 -5
- package/dist/cjs/interceptors/openai.js.map +1 -1
- package/dist/cjs/types/config.d.ts +7 -1
- package/dist/cjs/types/config.d.ts.map +1 -1
- package/dist/cjs/types/gateway.d.ts +51 -114
- package/dist/cjs/types/gateway.d.ts.map +1 -1
- package/dist/cjs/types/gateway.js +2 -7
- package/dist/cjs/types/gateway.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/cjs/utils/helpers.d.ts.map +1 -1
- package/dist/cjs/utils/helpers.js +3 -1
- package/dist/cjs/utils/helpers.js.map +1 -1
- package/dist/esm/client.d.ts +106 -41
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +446 -198
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/errors.d.ts +51 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +75 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/index.d.ts +6 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +6 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interceptors/anthropic.d.ts +1 -1
- package/dist/esm/interceptors/anthropic.d.ts.map +1 -1
- package/dist/esm/interceptors/anthropic.js +6 -6
- package/dist/esm/interceptors/anthropic.js.map +1 -1
- package/dist/esm/interceptors/bedrock.d.ts +141 -0
- package/dist/esm/interceptors/bedrock.d.ts.map +1 -0
- package/dist/esm/interceptors/bedrock.js +220 -0
- package/dist/esm/interceptors/bedrock.js.map +1 -0
- package/dist/esm/interceptors/gemini.d.ts +81 -0
- package/dist/esm/interceptors/gemini.d.ts.map +1 -0
- package/dist/esm/interceptors/gemini.js +105 -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 +144 -0
- package/dist/esm/interceptors/ollama.js.map +1 -0
- package/dist/esm/interceptors/openai.d.ts +1 -1
- package/dist/esm/interceptors/openai.d.ts.map +1 -1
- package/dist/esm/interceptors/openai.js +5 -5
- package/dist/esm/interceptors/openai.js.map +1 -1
- package/dist/esm/types/config.d.ts +7 -1
- package/dist/esm/types/config.d.ts.map +1 -1
- package/dist/esm/types/gateway.d.ts +51 -114
- package/dist/esm/types/gateway.d.ts.map +1 -1
- package/dist/esm/types/gateway.js +2 -7
- package/dist/esm/types/gateway.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/dist/esm/utils/helpers.d.ts.map +1 -1
- package/dist/esm/utils/helpers.js +3 -1
- package/dist/esm/utils/helpers.js.map +1 -1
- package/package.json +22 -7
package/dist/esm/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AxonFlowConfig, ConnectorMetadata, ConnectorInstallRequest, ConnectorResponse, PlanResponse, PlanExecutionResponse,
|
|
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
|
*/
|
|
@@ -46,66 +87,90 @@ export declare class AxonFlow {
|
|
|
46
87
|
queryConnector(connectorName: string, query: string, params?: any): Promise<ConnectorResponse>;
|
|
47
88
|
/**
|
|
48
89
|
* Generate a multi-agent execution plan from a natural language query
|
|
90
|
+
* @param query - Natural language query describing the task
|
|
91
|
+
* @param domain - Optional domain hint (travel, healthcare, etc.)
|
|
92
|
+
* @param userToken - Optional user token for authentication (defaults to tenant/client_id)
|
|
49
93
|
*/
|
|
50
|
-
generatePlan(query: string, domain?: string): Promise<PlanResponse>;
|
|
94
|
+
generatePlan(query: string, domain?: string, userToken?: string): Promise<PlanResponse>;
|
|
51
95
|
/**
|
|
52
96
|
* Execute a previously generated multi-agent plan
|
|
97
|
+
* @param planId - ID of the plan to execute
|
|
98
|
+
* @param userToken - Optional user token for authentication (defaults to tenant/client_id)
|
|
53
99
|
*/
|
|
54
|
-
executePlan(planId: string): Promise<PlanExecutionResponse>;
|
|
100
|
+
executePlan(planId: string, userToken?: string): Promise<PlanExecutionResponse>;
|
|
55
101
|
/**
|
|
56
102
|
* Get the status of a running or completed plan
|
|
57
103
|
*/
|
|
58
104
|
getPlanStatus(planId: string): Promise<PlanExecutionResponse>;
|
|
59
105
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
|
|
63
|
-
|
|
106
|
+
* Gateway Mode: Pre-check policy approval before making a direct LLM call.
|
|
107
|
+
* Alias for getPolicyApprovedContext() for simpler API.
|
|
108
|
+
*/
|
|
109
|
+
preCheck(options: PolicyApprovalOptions): Promise<PolicyApprovalResult>;
|
|
110
|
+
/**
|
|
111
|
+
* Gateway Mode: Get policy-approved context before making a direct LLM call.
|
|
64
112
|
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
113
|
+
* Use this when you want to:
|
|
114
|
+
* - Make direct LLM calls (not through AxonFlow proxy)
|
|
115
|
+
* - Have full control over your LLM provider/model selection
|
|
116
|
+
* - Minimize latency by calling LLM directly
|
|
67
117
|
*
|
|
68
118
|
* @example
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* query: '
|
|
119
|
+
* ```typescript
|
|
120
|
+
* const ctx = await axonflow.getPolicyApprovedContext({
|
|
121
|
+
* userToken: 'user-jwt',
|
|
122
|
+
* query: 'Analyze this customer data',
|
|
123
|
+
* dataSources: ['postgres']
|
|
73
124
|
* });
|
|
74
125
|
*
|
|
75
|
-
* if (!
|
|
76
|
-
* throw new Error(`
|
|
126
|
+
* if (!ctx.approved) {
|
|
127
|
+
* throw new Error(`Blocked: ${ctx.blockReason}`);
|
|
77
128
|
* }
|
|
78
129
|
*
|
|
79
|
-
* //
|
|
80
|
-
* const
|
|
130
|
+
* // Make direct LLM call with approved data
|
|
131
|
+
* const response = await openai.chat.completions.create({
|
|
132
|
+
* model: 'gpt-4',
|
|
133
|
+
* messages: [{ role: 'user', content: JSON.stringify(ctx.approvedData) }]
|
|
134
|
+
* });
|
|
135
|
+
*
|
|
136
|
+
* // Audit the call
|
|
137
|
+
* await axonflow.auditLLMCall({
|
|
138
|
+
* contextId: ctx.contextId,
|
|
139
|
+
* responseSummary: response.choices[0].message.content.substring(0, 100),
|
|
140
|
+
* provider: 'openai',
|
|
141
|
+
* model: 'gpt-4',
|
|
142
|
+
* tokenUsage: {
|
|
143
|
+
* promptTokens: response.usage.prompt_tokens,
|
|
144
|
+
* completionTokens: response.usage.completion_tokens,
|
|
145
|
+
* totalTokens: response.usage.total_tokens
|
|
146
|
+
* },
|
|
147
|
+
* latencyMs: 250
|
|
148
|
+
* });
|
|
149
|
+
* ```
|
|
81
150
|
*/
|
|
82
|
-
getPolicyApprovedContext(
|
|
151
|
+
getPolicyApprovedContext(options: PolicyApprovalOptions): Promise<PolicyApprovalResult>;
|
|
83
152
|
/**
|
|
84
|
-
*
|
|
153
|
+
* Gateway Mode: Audit an LLM call after completion.
|
|
85
154
|
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
* @param contextId Context ID from getPolicyApprovedContext()
|
|
90
|
-
* @param responseSummary Brief summary of the LLM response (not full response)
|
|
91
|
-
* @param provider LLM provider name
|
|
92
|
-
* @param model Model name
|
|
93
|
-
* @param tokenUsage Token counts from LLM response
|
|
94
|
-
* @param latencyMs Time taken for LLM call in milliseconds
|
|
95
|
-
* @param metadata Optional additional metadata
|
|
96
|
-
* @returns AuditResult confirming the audit was recorded
|
|
155
|
+
* Call this after making a direct LLM call to log the audit trail.
|
|
156
|
+
* This is required for compliance and monitoring.
|
|
97
157
|
*
|
|
98
158
|
* @example
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
* '
|
|
103
|
-
* '
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
|
|
109
|
-
|
|
159
|
+
* ```typescript
|
|
160
|
+
* await axonflow.auditLLMCall({
|
|
161
|
+
* contextId: ctx.contextId,
|
|
162
|
+
* responseSummary: 'Generated report with 5 items',
|
|
163
|
+
* provider: 'openai',
|
|
164
|
+
* model: 'gpt-4',
|
|
165
|
+
* tokenUsage: {
|
|
166
|
+
* promptTokens: 100,
|
|
167
|
+
* completionTokens: 50,
|
|
168
|
+
* totalTokens: 150
|
|
169
|
+
* },
|
|
170
|
+
* latencyMs: 250
|
|
171
|
+
* });
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
auditLLMCall(options: AuditOptions): Promise<AuditResult>;
|
|
110
175
|
}
|
|
111
176
|
//# sourceMappingURL=client.d.ts.map
|
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,
|
|
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"}
|