@axonflow/sdk 2.2.0 → 3.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/README.md +185 -8
- package/dist/cjs/client.d.ts +530 -8
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +1760 -45
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/errors.d.ts +22 -0
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +32 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.d.ts +10 -14
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +11 -20
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/connector.d.ts +82 -0
- package/dist/cjs/types/connector.d.ts.map +1 -1
- package/dist/cjs/types/connector.js +7 -0
- package/dist/cjs/types/connector.js.map +1 -1
- package/dist/cjs/types/execution.d.ts +227 -0
- package/dist/cjs/types/execution.d.ts.map +1 -0
- package/dist/cjs/types/execution.js +73 -0
- package/dist/cjs/types/execution.js.map +1 -0
- package/dist/cjs/types/index.d.ts +3 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +3 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/masfeat.d.ts +238 -0
- package/dist/cjs/types/masfeat.d.ts.map +1 -0
- package/dist/cjs/types/masfeat.js +11 -0
- package/dist/cjs/types/masfeat.js.map +1 -0
- package/dist/cjs/types/planning.d.ts +126 -1
- package/dist/cjs/types/planning.d.ts.map +1 -1
- package/dist/cjs/types/policies.d.ts +19 -1
- package/dist/cjs/types/policies.d.ts.map +1 -1
- package/dist/cjs/types/proxy.d.ts +29 -3
- package/dist/cjs/types/proxy.d.ts.map +1 -1
- package/dist/cjs/types/workflows.d.ts +318 -0
- package/dist/cjs/types/workflows.d.ts.map +1 -0
- package/dist/cjs/types/workflows.js +61 -0
- package/dist/cjs/types/workflows.js.map +1 -0
- package/dist/esm/client.d.ts +530 -8
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +1761 -46
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/errors.d.ts +22 -0
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +30 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts +10 -14
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +7 -15
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/connector.d.ts +82 -0
- package/dist/esm/types/connector.d.ts.map +1 -1
- package/dist/esm/types/connector.js +6 -1
- package/dist/esm/types/connector.js.map +1 -1
- package/dist/esm/types/execution.d.ts +227 -0
- package/dist/esm/types/execution.d.ts.map +1 -0
- package/dist/esm/types/execution.js +70 -0
- package/dist/esm/types/execution.js.map +1 -0
- package/dist/esm/types/index.d.ts +3 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/masfeat.d.ts +238 -0
- package/dist/esm/types/masfeat.d.ts.map +1 -0
- package/dist/esm/types/masfeat.js +10 -0
- package/dist/esm/types/masfeat.js.map +1 -0
- package/dist/esm/types/planning.d.ts +126 -1
- package/dist/esm/types/planning.d.ts.map +1 -1
- package/dist/esm/types/policies.d.ts +19 -1
- package/dist/esm/types/policies.d.ts.map +1 -1
- package/dist/esm/types/proxy.d.ts +29 -3
- package/dist/esm/types/proxy.d.ts.map +1 -1
- package/dist/esm/types/workflows.d.ts +318 -0
- package/dist/esm/types/workflows.d.ts.map +1 -0
- package/dist/esm/types/workflows.js +58 -0
- package/dist/esm/types/workflows.js.map +1 -0
- package/package.json +7 -2
- package/dist/cjs/interceptors/anthropic.d.ts +0 -40
- package/dist/cjs/interceptors/anthropic.d.ts.map +0 -1
- package/dist/cjs/interceptors/anthropic.js +0 -101
- package/dist/cjs/interceptors/anthropic.js.map +0 -1
- package/dist/cjs/interceptors/base.d.ts +0 -23
- package/dist/cjs/interceptors/base.d.ts.map +0 -1
- package/dist/cjs/interceptors/base.js +0 -10
- package/dist/cjs/interceptors/base.js.map +0 -1
- package/dist/cjs/interceptors/bedrock.d.ts +0 -142
- package/dist/cjs/interceptors/bedrock.d.ts.map +0 -1
- package/dist/cjs/interceptors/bedrock.js +0 -263
- package/dist/cjs/interceptors/bedrock.js.map +0 -1
- package/dist/cjs/interceptors/gemini.d.ts +0 -89
- package/dist/cjs/interceptors/gemini.d.ts.map +0 -1
- package/dist/cjs/interceptors/gemini.js +0 -121
- package/dist/cjs/interceptors/gemini.js.map +0 -1
- package/dist/cjs/interceptors/ollama.d.ts +0 -143
- package/dist/cjs/interceptors/ollama.d.ts.map +0 -1
- package/dist/cjs/interceptors/ollama.js +0 -153
- package/dist/cjs/interceptors/ollama.js.map +0 -1
- package/dist/cjs/interceptors/openai.d.ts +0 -40
- package/dist/cjs/interceptors/openai.d.ts.map +0 -1
- package/dist/cjs/interceptors/openai.js +0 -100
- package/dist/cjs/interceptors/openai.js.map +0 -1
- package/dist/esm/interceptors/anthropic.d.ts +0 -40
- package/dist/esm/interceptors/anthropic.d.ts.map +0 -1
- package/dist/esm/interceptors/anthropic.js +0 -96
- package/dist/esm/interceptors/anthropic.js.map +0 -1
- package/dist/esm/interceptors/base.d.ts +0 -23
- package/dist/esm/interceptors/base.d.ts.map +0 -1
- package/dist/esm/interceptors/base.js +0 -6
- package/dist/esm/interceptors/base.js.map +0 -1
- package/dist/esm/interceptors/bedrock.d.ts +0 -142
- package/dist/esm/interceptors/bedrock.d.ts.map +0 -1
- package/dist/esm/interceptors/bedrock.js +0 -224
- package/dist/esm/interceptors/bedrock.js.map +0 -1
- package/dist/esm/interceptors/gemini.d.ts +0 -89
- package/dist/esm/interceptors/gemini.d.ts.map +0 -1
- package/dist/esm/interceptors/gemini.js +0 -116
- package/dist/esm/interceptors/gemini.js.map +0 -1
- package/dist/esm/interceptors/ollama.d.ts +0 -143
- package/dist/esm/interceptors/ollama.d.ts.map +0 -1
- package/dist/esm/interceptors/ollama.js +0 -147
- package/dist/esm/interceptors/ollama.js.map +0 -1
- package/dist/esm/interceptors/openai.d.ts +0 -40
- package/dist/esm/interceptors/openai.d.ts.map +0 -1
- package/dist/esm/interceptors/openai.js +0 -95
- package/dist/esm/interceptors/openai.js.map +0 -1
package/README.md
CHANGED
|
@@ -5,14 +5,64 @@
|
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
[](https://www.typescriptlang.org/)
|
|
7
7
|
|
|
8
|
+
> **Evaluating AxonFlow in production?** We're opening limited Design Partner slots.
|
|
9
|
+
>
|
|
10
|
+
> Free 30-minute architecture and incident-readiness review, priority issue triage, roadmap input, and early feature access.
|
|
11
|
+
>
|
|
12
|
+
> [Apply here](https://getaxonflow.com/design-partner?utm_source=readme_sdk_typescript) or email [design-partners@getaxonflow.com](mailto:design-partners@getaxonflow.com).
|
|
13
|
+
>
|
|
14
|
+
> No commitment required. We reply within 48 hours.
|
|
15
|
+
|
|
16
|
+
> **AxonFlow Feedback Week (Feb 5–12, 2026)** — We're shipping 3 improvements from user feedback.
|
|
17
|
+
>
|
|
18
|
+
> [Share feedback](https://github.com/getaxonflow/axonflow/discussions/239) or email [hello@getaxonflow.com](mailto:hello@getaxonflow.com) for private feedback.
|
|
19
|
+
|
|
8
20
|
Add invisible AI governance to your applications in 3 lines of code. No UI changes. No user training. Just drop-in enterprise protection.
|
|
9
21
|
|
|
22
|
+
## How This SDK Fits with AxonFlow
|
|
23
|
+
|
|
24
|
+
This SDK is a client library for interacting with a running AxonFlow control plane. It is used from application or agent code to send execution context, policies, and requests at runtime.
|
|
25
|
+
|
|
26
|
+
A deployed AxonFlow platform (self-hosted or cloud) is required for end-to-end AI governance. SDKs alone are not sufficient—the platform and SDKs are designed to be used together.
|
|
27
|
+
|
|
28
|
+
### Architecture Overview (2 min)
|
|
29
|
+
|
|
30
|
+
If you're new to AxonFlow, this short video shows how the control plane and SDKs work together in a real production setup:
|
|
31
|
+
|
|
32
|
+
[](https://youtu.be/WwQXHKuZhxc)
|
|
33
|
+
|
|
34
|
+
▶️ [Watch on YouTube](https://youtu.be/WwQXHKuZhxc)
|
|
35
|
+
|
|
10
36
|
## Installation
|
|
11
37
|
|
|
12
38
|
```bash
|
|
13
39
|
npm install @axonflow/sdk
|
|
14
40
|
```
|
|
15
41
|
|
|
42
|
+
### Install from Source
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
git clone https://github.com/getaxonflow/axonflow-sdk-typescript.git
|
|
46
|
+
cd axonflow-sdk-typescript && npm install && npm run build && npm link
|
|
47
|
+
# In your project: npm link @axonflow/sdk
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Evaluation Tier (Free License)
|
|
51
|
+
|
|
52
|
+
Need more capacity than Community without moving to Enterprise? Evaluation uses the same core features with higher limits:
|
|
53
|
+
|
|
54
|
+
| Limit | Community | Evaluation (Free) | Enterprise |
|
|
55
|
+
|-------|-----------|-------------------|------------|
|
|
56
|
+
| Tenant policies | 20 | 50 | Unlimited |
|
|
57
|
+
| Org-wide policies | 0 | 5 | Unlimited |
|
|
58
|
+
| Audit retention | 3 days | 14 days | 3650 days |
|
|
59
|
+
| Concurrent executions | 5 | 25 | Unlimited |
|
|
60
|
+
| Execution history | 50 | 500 | Unlimited |
|
|
61
|
+
|
|
62
|
+
Also includes higher limits for LLM providers and MAP planning.
|
|
63
|
+
|
|
64
|
+
[Get a free Evaluation license](https://getaxonflow.com/evaluation-license?utm_source=readme_sdk_typescript_eval) · [Full tier matrix](https://docs.getaxonflow.com/docs/features/community-vs-enterprise)
|
|
65
|
+
|
|
16
66
|
## Quick Start
|
|
17
67
|
|
|
18
68
|
### Gateway Mode (Recommended)
|
|
@@ -419,7 +469,7 @@ const axonflow = new AxonFlow({
|
|
|
419
469
|
|
|
420
470
|
### VPC Private Endpoint (Low-Latency)
|
|
421
471
|
|
|
422
|
-
For customers running within AWS VPC, use the private endpoint for
|
|
472
|
+
For customers running within AWS VPC, use the private endpoint for lowest latency:
|
|
423
473
|
|
|
424
474
|
```typescript
|
|
425
475
|
const axonflow = new AxonFlow({
|
|
@@ -428,11 +478,13 @@ const axonflow = new AxonFlow({
|
|
|
428
478
|
endpoint: 'https://vpc-private-endpoint.getaxonflow.com:8443', // VPC private endpoint
|
|
429
479
|
mode: 'production'
|
|
430
480
|
});
|
|
481
|
+
|
|
482
|
+
// VPC deployment provides lowest latency due to intra-VPC routing
|
|
431
483
|
```
|
|
432
484
|
|
|
433
|
-
**
|
|
434
|
-
- Public endpoint:
|
|
435
|
-
- VPC private endpoint:
|
|
485
|
+
**Network Latency Characteristics:**
|
|
486
|
+
- Public endpoint: Higher latency (internet routing overhead)
|
|
487
|
+
- VPC private endpoint: Lower latency (intra-VPC routing)
|
|
436
488
|
|
|
437
489
|
**Note:** VPC endpoints require AWS VPC peering setup with AxonFlow infrastructure.
|
|
438
490
|
|
|
@@ -519,11 +571,92 @@ try {
|
|
|
519
571
|
});
|
|
520
572
|
```
|
|
521
573
|
|
|
574
|
+
## Examples
|
|
575
|
+
|
|
576
|
+
Complete working examples for all features are available in the [examples folder](https://github.com/getaxonflow/axonflow/tree/main/examples).
|
|
577
|
+
|
|
578
|
+
### Community Features
|
|
579
|
+
|
|
580
|
+
```typescript
|
|
581
|
+
// PII Detection - Automatically detect sensitive data
|
|
582
|
+
const result = await axonflow.getPolicyApprovedContext({
|
|
583
|
+
userToken: 'user-123',
|
|
584
|
+
query: 'My SSN is 123-45-6789'
|
|
585
|
+
});
|
|
586
|
+
// result.approved = true, result.requiresRedaction = true (SSN detected)
|
|
587
|
+
|
|
588
|
+
// SQL Injection Detection - Block prohibited queries
|
|
589
|
+
const result = await axonflow.getPolicyApprovedContext({
|
|
590
|
+
userToken: 'user-123',
|
|
591
|
+
query: "SELECT * FROM users WHERE role = 'admin'"
|
|
592
|
+
});
|
|
593
|
+
// result.approved = false, result.blockReason = "SQL query policy violation"
|
|
594
|
+
|
|
595
|
+
// Static Policies - List and manage built-in policies
|
|
596
|
+
const policies = await axonflow.listPolicies();
|
|
597
|
+
// Returns: [{name: "pii-detection", enabled: true}, ...]
|
|
598
|
+
|
|
599
|
+
// Dynamic Policies - Create runtime policies
|
|
600
|
+
await axonflow.createDynamicPolicy({
|
|
601
|
+
name: 'block-competitor-queries',
|
|
602
|
+
conditions: { contains: ['competitor', 'pricing'] },
|
|
603
|
+
action: 'block'
|
|
604
|
+
});
|
|
605
|
+
|
|
606
|
+
// MCP Connectors - Query external data sources
|
|
607
|
+
const resp = await axonflow.queryConnector('postgres-db', 'SELECT name FROM customers', {});
|
|
608
|
+
// resp.data contains query results
|
|
609
|
+
|
|
610
|
+
// Multi-Agent Planning - Orchestrate complex workflows
|
|
611
|
+
const plan = await axonflow.generatePlan('Research AI regulations', 'legal');
|
|
612
|
+
const result = await axonflow.executePlan(plan.planId);
|
|
613
|
+
|
|
614
|
+
// Audit Logging - Track all LLM interactions
|
|
615
|
+
await axonflow.auditLLMCall({
|
|
616
|
+
contextId: ctx.contextId,
|
|
617
|
+
responseSummary: 'AI response summary',
|
|
618
|
+
provider: 'openai',
|
|
619
|
+
model: 'gpt-4',
|
|
620
|
+
tokenUsage: { promptTokens: 100, completionTokens: 200, totalTokens: 300 },
|
|
621
|
+
latencyMs: 450
|
|
622
|
+
});
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### Enterprise Features
|
|
626
|
+
|
|
627
|
+
These features require an AxonFlow Enterprise license:
|
|
628
|
+
|
|
629
|
+
```typescript
|
|
630
|
+
// Code Governance - Automated PR reviews with AI
|
|
631
|
+
const prResult = await axonflow.reviewPullRequest({
|
|
632
|
+
repoOwner: 'your-org',
|
|
633
|
+
repoName: 'your-repo',
|
|
634
|
+
prNumber: 123,
|
|
635
|
+
checkTypes: ['security', 'style', 'performance']
|
|
636
|
+
});
|
|
637
|
+
|
|
638
|
+
// Cost Controls - Budget management for LLM usage
|
|
639
|
+
const budget = await axonflow.getBudget('team-engineering');
|
|
640
|
+
// Returns: { limit: 1000.00, used: 234.56, remaining: 765.44 }
|
|
641
|
+
|
|
642
|
+
// MCP Policy Enforcement - Automatic PII redaction in connector responses
|
|
643
|
+
const resp = await axonflow.queryConnector('postgres', 'SELECT * FROM customers', {});
|
|
644
|
+
// resp.policyInfo.redacted = true
|
|
645
|
+
// resp.policyInfo.redactedFields = ['ssn', 'credit_card']
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
For enterprise features, contact [sales@getaxonflow.com](mailto:sales@getaxonflow.com).
|
|
649
|
+
|
|
522
650
|
## Support
|
|
523
651
|
|
|
524
|
-
- Documentation
|
|
525
|
-
-
|
|
526
|
-
-
|
|
652
|
+
- **Documentation**: https://docs.getaxonflow.com
|
|
653
|
+
- **Issues**: https://github.com/getaxonflow/axonflow-sdk-typescript/issues
|
|
654
|
+
- **Email**: dev@getaxonflow.com
|
|
655
|
+
|
|
656
|
+
If you are evaluating AxonFlow in a company setting and cannot open a public issue, you can share feedback or blockers confidentially here:
|
|
657
|
+
[Anonymous evaluation feedback form](https://getaxonflow.com/feedback)
|
|
658
|
+
|
|
659
|
+
No email required. Optional contact if you want a response.
|
|
527
660
|
|
|
528
661
|
## MCP Connector Marketplace
|
|
529
662
|
|
|
@@ -673,6 +806,48 @@ console.log('Message sent:', result.success);
|
|
|
673
806
|
|
|
674
807
|
For complete connector documentation, see [https://docs.getaxonflow.com/mcp](https://docs.getaxonflow.com/mcp)
|
|
675
808
|
|
|
809
|
+
## MCP Policy Features (v3.2.0)
|
|
810
|
+
|
|
811
|
+
### Exfiltration Detection
|
|
812
|
+
|
|
813
|
+
Prevent large-scale data extraction with automatic row and byte limits:
|
|
814
|
+
|
|
815
|
+
```typescript
|
|
816
|
+
// Query with exfiltration limits (default: 10K rows, 10MB)
|
|
817
|
+
const response = await axonflow.queryConnector('postgres', 'SELECT * FROM customers', {});
|
|
818
|
+
|
|
819
|
+
// Check exfiltration info
|
|
820
|
+
if (response.policyInfo?.exfiltrationCheck?.exceeded) {
|
|
821
|
+
console.log('Data limit exceeded:', response.policyInfo.exfiltrationCheck.limitType);
|
|
822
|
+
// limitType: 'rows' | 'bytes'
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
// Configure limits via environment:
|
|
826
|
+
// MCP_MAX_ROWS_PER_QUERY=1000
|
|
827
|
+
// MCP_MAX_BYTES_PER_QUERY=5242880
|
|
828
|
+
```
|
|
829
|
+
|
|
830
|
+
### Dynamic Policy Evaluation
|
|
831
|
+
|
|
832
|
+
Enable Orchestrator-based policy evaluation for rate limiting, budget controls, and more:
|
|
833
|
+
|
|
834
|
+
```typescript
|
|
835
|
+
// Response includes dynamic policy info when enabled
|
|
836
|
+
const response = await axonflow.queryConnector('postgres', 'SELECT id FROM users', {});
|
|
837
|
+
|
|
838
|
+
// Check dynamic policy evaluation results
|
|
839
|
+
const dynamicInfo = response.policyInfo?.dynamicPolicyInfo;
|
|
840
|
+
if (dynamicInfo?.orchestratorReachable) {
|
|
841
|
+
console.log('Policies evaluated:', dynamicInfo.policiesEvaluated);
|
|
842
|
+
dynamicInfo.matchedPolicies?.forEach(policy => {
|
|
843
|
+
console.log(` ${policy.policyName}: ${policy.action}`);
|
|
844
|
+
});
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
// Enable via environment:
|
|
848
|
+
// MCP_DYNAMIC_POLICIES_ENABLED=true
|
|
849
|
+
```
|
|
850
|
+
|
|
676
851
|
## Multi-Agent Planning (MAP)
|
|
677
852
|
|
|
678
853
|
Generate and execute complex multi-step plans using AI agent orchestration:
|
|
@@ -803,4 +978,6 @@ const axonflow = new AxonFlow({
|
|
|
803
978
|
|
|
804
979
|
## License
|
|
805
980
|
|
|
806
|
-
MIT
|
|
981
|
+
MIT
|
|
982
|
+
|
|
983
|
+
<img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=4970d33a-d1ab-4baf-880c-1670f3c6cf0e" />
|