@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
package/README.md CHANGED
@@ -5,14 +5,64 @@
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue.svg)](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
+ [![AxonFlow Architecture Overview](https://img.youtube.com/vi/WwQXHKuZhxc/maxresdefault.jpg)](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 sub-10ms latency:
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
- **Performance:**
434
- - Public endpoint: ~100ms (internet routing)
435
- - VPC private endpoint: <10ms P99 (intra-VPC routing)
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: https://docs.axonflow.com
525
- - Email: support@axonflow.com
526
- - GitHub: https://github.com/axonflow/sdk-typescript
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.3.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" />