hexr-sdk 0.5.22__tar.gz
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.
- hexr_sdk-0.5.22/LICENSE +85 -0
- hexr_sdk-0.5.22/PKG-INFO +498 -0
- hexr_sdk-0.5.22/README.md +404 -0
- hexr_sdk-0.5.22/_hexr_analyzer/.cargo/config.toml +8 -0
- hexr_sdk-0.5.22/_hexr_analyzer/.gitignore +2 -0
- hexr_sdk-0.5.22/_hexr_analyzer/BENCHMARK.md +123 -0
- hexr_sdk-0.5.22/_hexr_analyzer/Cargo.lock +2687 -0
- hexr_sdk-0.5.22/_hexr_analyzer/Cargo.toml +85 -0
- hexr_sdk-0.5.22/_hexr_analyzer/EVAL_REPORT.md +41 -0
- hexr_sdk-0.5.22/_hexr_analyzer/EVAL_REPORT_REAL.md +25 -0
- hexr_sdk-0.5.22/_hexr_analyzer/PR_D1_D2_D3_BODY.md +101 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-detect/Cargo.toml +18 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-detect/src/lib.rs +29 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-detect/src/manifest.rs +116 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-detect/src/pack.rs +218 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-detect/src/walker.rs +1292 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-parse/Cargo.toml +13 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-parse/src/lib.rs +116 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-suggest/Cargo.toml +51 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-suggest/src/corpus.rs +82 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-suggest/src/diff.rs +104 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-suggest/src/engine.rs +118 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-suggest/src/lib.rs +27 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-suggest/src/onnx.rs +177 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-suggest/tests/suggest_onnx.rs +146 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-symbols/Cargo.toml +12 -0
- hexr_sdk-0.5.22/_hexr_analyzer/crates/hexr-symbols/src/lib.rs +132 -0
- hexr_sdk-0.5.22/_hexr_analyzer/src/lib.rs +129 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/bench_50repo.rs +398 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/call_classifier.rs +99 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/detect_smoke.rs +173 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/eval_real.rs +205 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/eval_report.rs +287 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/adk_app.py +6 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/agno_app.py +5 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/autogen_app.py +7 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/bespoke_app.py +12 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/claude_agent_app.py +12 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/crewai_app.py +8 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/dspy_app.py +15 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/langchain_app.py +8 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/langgraph_app.py +6 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/llamaindex_app.py +7 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/mcp_app.py +13 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/openai_agents_app.py +6 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/pydantic_ai_app.py +12 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/smolagents_app.py +6 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/frameworks/strands_app.py +7 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/patterns/evaluator_optimizer.py +24 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/patterns/orchestrator_workers.py +18 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/patterns/parallelization.py +17 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/patterns/prompt_chain.py +16 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/patterns/react.py +22 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/patterns/reflection.py +24 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures/patterns/routing.py +18 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/SOURCES.md +84 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/adk/callbacks_agent.py +198 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/adk/hello_function.py +108 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/adk/main.py +111 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/agno/agent.py +1731 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/agno/teams.py +1799 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/autogen/agentchat_chess.py +142 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/autogen/chainlit_app_agent.py +68 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/autogen/teams_basic.py +1946 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/bespoke/demo.py +53 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/bespoke/openai_loop.py +100 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/bespoke/requests_agent.py +89 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/claude-agent-sdk/mcp_calculator.py +193 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/claude-agent-sdk/quick_start.py +76 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/claude-agent-sdk/streaming_mode.py +519 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/crewai/crew.py +36 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/crewai/instagram_post_agents.py +117 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/crewai/instagram_post_main.py +75 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/crewai/markdown_validator.py +75 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/crewai/trip_planner_agents.py +47 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/crewai/trip_planner_main.py +81 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/dspy/cot.py +41 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/dspy/predict.py +396 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/dspy/react.py +236 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/langchain/test_agent.py +1329 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/langchain/test_agent_iterator.py +386 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/langchain/test_mrkl.py +164 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/langchain/test_openai_functions_multi.py +91 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/langgraph/test_pregel.py +9686 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/langgraph/test_pregel_async.py +9890 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/langgraph/test_remote_graph.py +1485 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/llamaindex/test_function_call.py +462 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/llamaindex/test_multi_agent.py +728 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/llamaindex/test_react_agent.py +27 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/mcp/server.py +80 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/mcp/simple_prompt.py +98 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/mcp/simple_resource.py +91 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/openai-agents/customer_service.py +191 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/openai-agents/handoffs.py +187 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/openai-agents/hello_world.py +20 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/pydantic-ai/bank_support.py +101 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/pydantic-ai/chat_app.py +227 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/pydantic-ai/rag.py +259 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/pydantic-ai/weather_agent.py +106 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/smolagents/multi_agents.py +256 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/smolagents/rag.py +70 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/smolagents/text_to_sql.py +79 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/strands/file_operations.py +124 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/strands/memory_agent.py +145 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/strands/test_agent.py +2802 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/frameworks/strands/weather_forecaster.py +128 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/fixtures_real/scripts/fetch_50repo_corpus.sh +115 -0
- hexr_sdk-0.5.22/_hexr_analyzer/tests/receiver_tracking.rs +349 -0
- hexr_sdk-0.5.22/pyproject.toml +365 -0
- hexr_sdk-0.5.22/src/hexr/__init__.py +56 -0
- hexr_sdk-0.5.22/src/hexr/__main__.py +4 -0
- hexr_sdk-0.5.22/src/hexr/_meta/__init__.py +38 -0
- hexr_sdk-0.5.22/src/hexr/_meta/requirements-mirror.txt +938 -0
- hexr_sdk-0.5.22/src/hexr/_native/__init__.py +36 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/adk.yaml +89 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/agno.yaml +67 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/autogen.yaml +91 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/bespoke.yaml +131 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/claude-agent.yaml +76 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/crewai.yaml +102 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/dspy.yaml +80 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/langchain.yaml +110 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/langgraph.yaml +77 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/llamaindex.yaml +78 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/mcp.yaml +56 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/openai-agents.yaml +86 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/pydantic-ai.yaml +58 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/smolagents.yaml +72 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/frameworks/strands.yaml +71 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/patterns/evaluator-optimizer.yaml +15 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/patterns/orchestrator-workers.yaml +15 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/patterns/parallelization.yaml +16 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/patterns/prompt-chain.yaml +18 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/patterns/react.yaml +16 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/patterns/reflection.yaml +18 -0
- hexr_sdk-0.5.22/src/hexr/_native/packs/patterns/routing.yaml +16 -0
- hexr_sdk-0.5.22/src/hexr/a2a/__init__.py +76 -0
- hexr_sdk-0.5.22/src/hexr/a2a/bridge.py +358 -0
- hexr_sdk-0.5.22/src/hexr/a2a/checkpoint.py +119 -0
- hexr_sdk-0.5.22/src/hexr/a2a/client.py +562 -0
- hexr_sdk-0.5.22/src/hexr/a2a/errors.py +135 -0
- hexr_sdk-0.5.22/src/hexr/a2a/json_rpc.py +198 -0
- hexr_sdk-0.5.22/src/hexr/a2a/models.py +349 -0
- hexr_sdk-0.5.22/src/hexr/browser.py +166 -0
- hexr_sdk-0.5.22/src/hexr/build/__init__.py +1 -0
- hexr_sdk-0.5.22/src/hexr/build/a2a.py +465 -0
- hexr_sdk-0.5.22/src/hexr/build/analyzer.py +494 -0
- hexr_sdk-0.5.22/src/hexr/build/attestor_metadata.py +380 -0
- hexr_sdk-0.5.22/src/hexr/build/container_builder.py +404 -0
- hexr_sdk-0.5.22/src/hexr/build/docker.py +345 -0
- hexr_sdk-0.5.22/src/hexr/build/envoy.py +440 -0
- hexr_sdk-0.5.22/src/hexr/build/k8s.py +689 -0
- hexr_sdk-0.5.22/src/hexr/build/k8s_generator.py +477 -0
- hexr_sdk-0.5.22/src/hexr/build/managed.py +514 -0
- hexr_sdk-0.5.22/src/hexr/cli/__init__.py +1 -0
- hexr_sdk-0.5.22/src/hexr/cli/_entry.py +46 -0
- hexr_sdk-0.5.22/src/hexr/cli/_signature_overlay.py +116 -0
- hexr_sdk-0.5.22/src/hexr/cli/analyze.py +335 -0
- hexr_sdk-0.5.22/src/hexr/cli/audit.py +960 -0
- hexr_sdk-0.5.22/src/hexr/cli/audit_pack.py +778 -0
- hexr_sdk-0.5.22/src/hexr/cli/build.py +1225 -0
- hexr_sdk-0.5.22/src/hexr/cli/builder_selector.py +221 -0
- hexr_sdk-0.5.22/src/hexr/cli/cache.py +323 -0
- hexr_sdk-0.5.22/src/hexr/cli/cicd_templates.py +512 -0
- hexr_sdk-0.5.22/src/hexr/cli/cloud_config.py +147 -0
- hexr_sdk-0.5.22/src/hexr/cli/cluster.py +219 -0
- hexr_sdk-0.5.22/src/hexr/cli/cluster_selector.py +184 -0
- hexr_sdk-0.5.22/src/hexr/cli/cluster_types.py +31 -0
- hexr_sdk-0.5.22/src/hexr/cli/delete.py +126 -0
- hexr_sdk-0.5.22/src/hexr/cli/deploy.py +1321 -0
- hexr_sdk-0.5.22/src/hexr/cli/init.py +76 -0
- hexr_sdk-0.5.22/src/hexr/cli/login.py +176 -0
- hexr_sdk-0.5.22/src/hexr/cli/main.py +315 -0
- hexr_sdk-0.5.22/src/hexr/cli/push.py +1874 -0
- hexr_sdk-0.5.22/src/hexr/cli/trust_policy.py +208 -0
- hexr_sdk-0.5.22/src/hexr/cli/update.py +674 -0
- hexr_sdk-0.5.22/src/hexr/cloud/__init__.py +1 -0
- hexr_sdk-0.5.22/src/hexr/cloud/aws.py +52 -0
- hexr_sdk-0.5.22/src/hexr/cloud/azure.py +54 -0
- hexr_sdk-0.5.22/src/hexr/cloud/gcp.py +45 -0
- hexr_sdk-0.5.22/src/hexr/config.py +48 -0
- hexr_sdk-0.5.22/src/hexr/context.py +412 -0
- hexr_sdk-0.5.22/src/hexr/credential/__init__.py +5 -0
- hexr_sdk-0.5.22/src/hexr/credential/cache.py +888 -0
- hexr_sdk-0.5.22/src/hexr/credential/injector_client.py +319 -0
- hexr_sdk-0.5.22/src/hexr/decorators.py +682 -0
- hexr_sdk-0.5.22/src/hexr/enterprise_pid_mapper.py +1160 -0
- hexr_sdk-0.5.22/src/hexr/evidence.py +202 -0
- hexr_sdk-0.5.22/src/hexr/evidence_signing.py +348 -0
- hexr_sdk-0.5.22/src/hexr/exceptions.py +57 -0
- hexr_sdk-0.5.22/src/hexr/framework_integration.py +399 -0
- hexr_sdk-0.5.22/src/hexr/gateway/__init__.py +46 -0
- hexr_sdk-0.5.22/src/hexr/gateway/client.py +488 -0
- hexr_sdk-0.5.22/src/hexr/gateway/decorators.py +267 -0
- hexr_sdk-0.5.22/src/hexr/gateway/types.py +172 -0
- hexr_sdk-0.5.22/src/hexr/guard.py +178 -0
- hexr_sdk-0.5.22/src/hexr/identity.py +151 -0
- hexr_sdk-0.5.22/src/hexr/llm.py +935 -0
- hexr_sdk-0.5.22/src/hexr/observability/__init__.py +30 -0
- hexr_sdk-0.5.22/src/hexr/observability/evidence_http_exporter.py +195 -0
- hexr_sdk-0.5.22/src/hexr/observability/provider.py +437 -0
- hexr_sdk-0.5.22/src/hexr/observability/spans.py +188 -0
- hexr_sdk-0.5.22/src/hexr/process_tree.py +436 -0
- hexr_sdk-0.5.22/src/hexr/runtime_metadata.py +577 -0
- hexr_sdk-0.5.22/src/hexr/sandbox.py +156 -0
- hexr_sdk-0.5.22/src/hexr/shared_config.py +198 -0
- hexr_sdk-0.5.22/src/hexr/spiffe/__init__.py +5 -0
- hexr_sdk-0.5.22/src/hexr/spiffe/workload_api_client.py +212 -0
- hexr_sdk-0.5.22/src/hexr/subprocess_detector.py +310 -0
- hexr_sdk-0.5.22/src/hexr/suggest/__init__.py +8 -0
- hexr_sdk-0.5.22/src/hexr/suggest/accel.py +86 -0
- hexr_sdk-0.5.22/src/hexr/synchronous_registration.py +721 -0
- hexr_sdk-0.5.22/src/hexr/tools.py +432 -0
- hexr_sdk-0.5.22/src/hexr/trust_policy/__init__.py +38 -0
- hexr_sdk-0.5.22/src/hexr/trust_policy/aws.py +67 -0
- hexr_sdk-0.5.22/src/hexr/trust_policy/azure.py +114 -0
- hexr_sdk-0.5.22/src/hexr/trust_policy/gcp.py +94 -0
- hexr_sdk-0.5.22/src/hexr/trust_policy/manifest.py +94 -0
- hexr_sdk-0.5.22/src/hexr/utils/__init__.py +1 -0
- hexr_sdk-0.5.22/src/hexr/utils/enhanced_process.py +443 -0
- hexr_sdk-0.5.22/src/hexr/utils/logging.py +65 -0
- hexr_sdk-0.5.22/src/hexr/utils/simple_logging.py +18 -0
- hexr_sdk-0.5.22/src/hexr/vault/__init__.py +36 -0
- hexr_sdk-0.5.22/src/hexr/vault/client.py +355 -0
- hexr_sdk-0.5.22/src/hexr/vault/decorators.py +213 -0
- hexr_sdk-0.5.22/src/hexr/version.py +26 -0
hexr_sdk-0.5.22/LICENSE
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
HEXR SDK - PROPRIETARY LICENSE
|
|
2
|
+
Source Available, Non-Commercial, No Derivatives
|
|
3
|
+
|
|
4
|
+
Copyright (c) 2025 Hexr Team. All rights reserved.
|
|
5
|
+
|
|
6
|
+
GRANT OF RIGHTS
|
|
7
|
+
|
|
8
|
+
Subject to the terms and conditions of this License, Hexr Team ("Licensor")
|
|
9
|
+
grants you a limited, non-exclusive, non-transferable, non-sublicensable
|
|
10
|
+
license to:
|
|
11
|
+
|
|
12
|
+
1. VIEW AND READ the source code of this software ("Software")
|
|
13
|
+
2. USE the Software in binary form for evaluation and testing purposes only
|
|
14
|
+
3. REPORT bugs and issues to the Licensor
|
|
15
|
+
|
|
16
|
+
RESTRICTIONS
|
|
17
|
+
|
|
18
|
+
You may NOT:
|
|
19
|
+
|
|
20
|
+
1. MODIFY, alter, adapt, or create derivative works of the Software
|
|
21
|
+
2. USE the Software for any commercial purpose
|
|
22
|
+
3. DISTRIBUTE, sublicense, lease, rent, or lend the Software
|
|
23
|
+
4. REVERSE ENGINEER, decompile, or disassemble the Software (except as
|
|
24
|
+
required by law)
|
|
25
|
+
5. REMOVE or alter any copyright, trademark, or other proprietary notices
|
|
26
|
+
6. USE the Software to compete with Licensor's products or services
|
|
27
|
+
7. TRANSFER your rights under this License to any third party
|
|
28
|
+
|
|
29
|
+
COMMERCIAL USE
|
|
30
|
+
|
|
31
|
+
Any commercial use, including but not limited to:
|
|
32
|
+
- Using the Software in a production environment
|
|
33
|
+
- Integrating the Software into commercial products
|
|
34
|
+
- Providing services using the Software
|
|
35
|
+
- Using the Software to generate revenue
|
|
36
|
+
|
|
37
|
+
requires a separate commercial license from Hexr Team. Contact sdk@hexr.dev
|
|
38
|
+
for licensing inquiries.
|
|
39
|
+
|
|
40
|
+
TERMINATION
|
|
41
|
+
|
|
42
|
+
This License is effective until terminated. Your rights under this License
|
|
43
|
+
will terminate automatically without notice if you fail to comply with any
|
|
44
|
+
term of this License. Upon termination, you must destroy all copies of the
|
|
45
|
+
Software.
|
|
46
|
+
|
|
47
|
+
NO WARRANTY
|
|
48
|
+
|
|
49
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
50
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
51
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
52
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
53
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
54
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
55
|
+
SOFTWARE.
|
|
56
|
+
|
|
57
|
+
LIMITATION OF LIABILITY
|
|
58
|
+
|
|
59
|
+
IN NO EVENT SHALL HEXR TEAM BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT,
|
|
60
|
+
OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES
|
|
61
|
+
FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
|
|
62
|
+
INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
|
|
63
|
+
INABILITY TO USE THIS SOFTWARE.
|
|
64
|
+
|
|
65
|
+
GOVERNING LAW
|
|
66
|
+
|
|
67
|
+
This License shall be governed by and construed in accordance with the laws
|
|
68
|
+
of the jurisdiction where Hexr Team is registered, without regard to its
|
|
69
|
+
conflict of law provisions.
|
|
70
|
+
|
|
71
|
+
ENTIRE AGREEMENT
|
|
72
|
+
|
|
73
|
+
This License constitutes the entire agreement between you and Hexr Team
|
|
74
|
+
concerning the Software and supersedes all prior or contemporaneous oral or
|
|
75
|
+
written communications, proposals, and representations with respect to the
|
|
76
|
+
Software.
|
|
77
|
+
|
|
78
|
+
For questions about this License or to obtain a commercial license, please
|
|
79
|
+
contact: sdk@hexr.dev
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
NOTICE: This is proprietary software. The source code is made available for
|
|
84
|
+
transparency and security auditing purposes only. All rights are reserved by
|
|
85
|
+
Hexr Team.
|
hexr_sdk-0.5.22/PKG-INFO
ADDED
|
@@ -0,0 +1,498 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hexr-sdk
|
|
3
|
+
Version: 0.5.22
|
|
4
|
+
Classifier: Development Status :: 4 - Beta
|
|
5
|
+
Classifier: Intended Audience :: Developers
|
|
6
|
+
Classifier: License :: Other/Proprietary License
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
11
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
12
|
+
Classifier: Topic :: Security :: Cryptography
|
|
13
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
14
|
+
Requires-Dist: psutil>=5.9.0,<6.0.0
|
|
15
|
+
Requires-Dist: pydantic>=2.5.0,<3.0.0
|
|
16
|
+
Requires-Dist: spiffe>=0.3.1,<1.0.0
|
|
17
|
+
Requires-Dist: cryptography>=50.0.1
|
|
18
|
+
Requires-Dist: pyjwt>=2.13.0
|
|
19
|
+
Requires-Dist: pyasn1>=0.6.4
|
|
20
|
+
Requires-Dist: idna>=3.19
|
|
21
|
+
Requires-Dist: protobuf>=6.31.1,<7.0.0
|
|
22
|
+
Requires-Dist: requests>=2.31.0,<3.0.0
|
|
23
|
+
Requires-Dist: redis[hiredis]>=5.0.0,<6.0.0
|
|
24
|
+
Requires-Dist: httpx>=0.25.0,<1.0.0
|
|
25
|
+
Requires-Dist: pyyaml>=6.0.0,<7.0.0
|
|
26
|
+
Requires-Dist: structlog>=23.2.0,<24.0.0
|
|
27
|
+
Requires-Dist: hexr-sdk[aws,gcp,azure,observability,cli] ; extra == 'all'
|
|
28
|
+
Requires-Dist: pip-audit>=2.7.0,<3.0.0 ; extra == 'audit'
|
|
29
|
+
Requires-Dist: cyclonedx-bom>=4.0.0,<8.0.0 ; extra == 'audit'
|
|
30
|
+
Requires-Dist: reportlab>=4.0.0,<6.0.0 ; extra == 'audit-pack'
|
|
31
|
+
Requires-Dist: psycopg2-binary>=2.9.0,<3.0.0 ; extra == 'audit-pack'
|
|
32
|
+
Requires-Dist: boto3>=1.34.0,<2.0.0 ; extra == 'aws'
|
|
33
|
+
Requires-Dist: azure-identity>=1.15.0,<2.0.0 ; extra == 'azure'
|
|
34
|
+
Requires-Dist: click>=8.1.0,<9.0.0 ; extra == 'cli'
|
|
35
|
+
Requires-Dist: rich>=13.0.0,<16.0.0 ; extra == 'cli'
|
|
36
|
+
Requires-Dist: hexr-sdk[all] ; extra == 'dev'
|
|
37
|
+
Requires-Dist: pytest>=7.4.0 ; extra == 'dev'
|
|
38
|
+
Requires-Dist: pytest-cov>=4.1.0 ; extra == 'dev'
|
|
39
|
+
Requires-Dist: pytest-asyncio>=0.21.0 ; extra == 'dev'
|
|
40
|
+
Requires-Dist: pytest-mock>=3.12.0 ; extra == 'dev'
|
|
41
|
+
Requires-Dist: black>=23.9.0 ; extra == 'dev'
|
|
42
|
+
Requires-Dist: ruff>=0.1.0 ; extra == 'dev'
|
|
43
|
+
Requires-Dist: mypy>=1.7.0 ; extra == 'dev'
|
|
44
|
+
Requires-Dist: pre-commit>=3.5.0 ; extra == 'dev'
|
|
45
|
+
Requires-Dist: onnxruntime>=1.20,<2.0 ; extra == 'enterprise'
|
|
46
|
+
Requires-Dist: hexr-sdk-models>=0.1.0,<1.0 ; extra == 'enterprise'
|
|
47
|
+
Requires-Dist: crewai>=0.28.0 ; extra == 'frameworks'
|
|
48
|
+
Requires-Dist: langchain>=0.1.0 ; extra == 'frameworks'
|
|
49
|
+
Requires-Dist: pyautogen>=0.2.0 ; extra == 'frameworks'
|
|
50
|
+
Requires-Dist: google-cloud-core>=2.4.0,<3.0.0 ; extra == 'gcp'
|
|
51
|
+
Requires-Dist: google-auth>=2.23.0,<3.0.0 ; extra == 'gcp'
|
|
52
|
+
Requires-Dist: opentelemetry-api>=1.41.0,<2.0.0 ; extra == 'observability'
|
|
53
|
+
Requires-Dist: opentelemetry-sdk>=1.41.0,<2.0.0 ; extra == 'observability'
|
|
54
|
+
Requires-Dist: opentelemetry-propagator-b3>=1.41.0,<2.0.0 ; extra == 'observability'
|
|
55
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.41.0,<2.0.0 ; extra == 'observability'
|
|
56
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.41.0,<2.0.0 ; extra == 'observability'
|
|
57
|
+
Requires-Dist: sigstore>=4.5.0,<5.0.0 ; extra == 'ops'
|
|
58
|
+
Requires-Dist: bandit>=1.7.5 ; extra == 'security'
|
|
59
|
+
Requires-Dist: safety>=2.3.0 ; extra == 'security'
|
|
60
|
+
Requires-Dist: semgrep>=1.45.0 ; extra == 'security'
|
|
61
|
+
Requires-Dist: pytest>=8.0.0 ; extra == 'test'
|
|
62
|
+
Requires-Dist: pytest-asyncio>=1.0.0 ; extra == 'test'
|
|
63
|
+
Requires-Dist: pytest-httpx>=0.35.0 ; extra == 'test'
|
|
64
|
+
Requires-Dist: pytest-mock>=3.14.0 ; extra == 'test'
|
|
65
|
+
Requires-Dist: boto3>=1.34.0,<2.0.0 ; extra == 'test'
|
|
66
|
+
Provides-Extra: all
|
|
67
|
+
Provides-Extra: audit
|
|
68
|
+
Provides-Extra: audit-pack
|
|
69
|
+
Provides-Extra: aws
|
|
70
|
+
Provides-Extra: azure
|
|
71
|
+
Provides-Extra: cli
|
|
72
|
+
Provides-Extra: dev
|
|
73
|
+
Provides-Extra: enterprise
|
|
74
|
+
Provides-Extra: frameworks
|
|
75
|
+
Provides-Extra: gcp
|
|
76
|
+
Provides-Extra: observability
|
|
77
|
+
Provides-Extra: ops
|
|
78
|
+
Provides-Extra: security
|
|
79
|
+
Provides-Extra: test
|
|
80
|
+
License-File: LICENSE
|
|
81
|
+
Summary: Hexr AI Agent Platform SDK - SPIFFE-based identity and authentication
|
|
82
|
+
Keywords: ai,agents,spiffe,identity,authentication,zero-trust
|
|
83
|
+
Author-email: Hexr Team <sdk@hexr.dev>
|
|
84
|
+
Maintainer-email: Hexr Team <sdk@hexr.dev>
|
|
85
|
+
License: Proprietary - Source Available
|
|
86
|
+
Requires-Python: >=3.11, <3.14
|
|
87
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
88
|
+
Project-URL: Changelog, https://github.com/hexrdev/hexr/blob/main/sdk/python/CHANGELOG.md
|
|
89
|
+
Project-URL: Documentation, https://docs.hexr.dev/sdk/python
|
|
90
|
+
Project-URL: Homepage, https://github.com/hexrdev/hexr
|
|
91
|
+
Project-URL: Issues, https://github.com/hexrdev/hexr/issues
|
|
92
|
+
Project-URL: Repository, https://github.com/hexrdev/hexr
|
|
93
|
+
|
|
94
|
+
# Hexr SDK - Secure Multi-Agent AI Platform
|
|
95
|
+
|
|
96
|
+
[](https://www.python.org/downloads/)
|
|
97
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
98
|
+
[](#testing)
|
|
99
|
+
[](https://github.com/astral-sh/ruff)
|
|
100
|
+
|
|
101
|
+
**Transform your Python AI agents into production-ready containerized deployments with automatic SPIFFE identity management and cloud credential injection.**
|
|
102
|
+
|
|
103
|
+
Hexr SDK enables Fortune 500 enterprises to securely deploy multi-agent AI systems at scale with zero-trust architecture, automated cloud resource provisioning, and comprehensive observability.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 🚀 **Quick Start**
|
|
108
|
+
|
|
109
|
+
### Installation
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Install from the private PyPI mirror (current pivot distribution channel)
|
|
113
|
+
pip install "hexr-sdk[cli]" --extra-index-url https://pypi.hexr.cloud/simple/
|
|
114
|
+
|
|
115
|
+
# Or build the manylinux + macOS-arm64 wheels locally (air-gapped / pre-release)
|
|
116
|
+
git clone https://github.com/hexrdev/hexr.git
|
|
117
|
+
cd hexr/sdk/python
|
|
118
|
+
RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" uv build
|
|
119
|
+
pip install dist/hexr_sdk-*-cp311-cp311-*.whl
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Current released version:** `0.5.5` (2026-06-08, hybrid-pivot maintenance train). See [CHANGELOG.md](CHANGELOG.md) for the 0.5.0 → 0.5.5 release notes.
|
|
123
|
+
|
|
124
|
+
### Your First Agent
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
from hexr import hexr_agent, hexr_tool
|
|
128
|
+
from crewai import Agent, Task, Crew
|
|
129
|
+
|
|
130
|
+
@hexr_agent(
|
|
131
|
+
name="financial-analyst",
|
|
132
|
+
tenant="acme-corp",
|
|
133
|
+
resources=["aws_s3", "gcp_bigquery"]
|
|
134
|
+
)
|
|
135
|
+
def create_financial_analyst():
|
|
136
|
+
# Access cloud resources with automatic credential injection
|
|
137
|
+
s3_client = hexr_tool("aws_s3", bucket="financial-data")
|
|
138
|
+
bq_client = hexr_tool("gcp_bigquery", project_id="analytics-warehouse")
|
|
139
|
+
|
|
140
|
+
analyst = Agent(
|
|
141
|
+
role='Senior Financial Analyst',
|
|
142
|
+
goal='Analyze market trends and generate insights',
|
|
143
|
+
backstory='Expert in quantitative analysis and market research'
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
task = Task(
|
|
147
|
+
description='Generate quarterly financial report',
|
|
148
|
+
agent=analyst
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
crew = Crew(agents=[analyst], tasks=[task])
|
|
152
|
+
return crew.kickoff()
|
|
153
|
+
|
|
154
|
+
if __name__ == "__main__":
|
|
155
|
+
create_financial_analyst()
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Build & Deploy
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Build container image and Kubernetes manifests
|
|
162
|
+
hexr build financial_analyst.py --tenant acme-corp
|
|
163
|
+
|
|
164
|
+
# Push to container registry with security scanning
|
|
165
|
+
hexr push financial-analyst --registry harbor.company.com --scan
|
|
166
|
+
|
|
167
|
+
# Deploy to Kubernetes with SPIFFE identity
|
|
168
|
+
hexr deploy financial-analyst --env production --namespace acme-corp
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 🎯 **Key Features**
|
|
174
|
+
|
|
175
|
+
### � **Zero-Trust Security**
|
|
176
|
+
- **SPIFFE Identity**: Automatic service identity management with cryptographic attestation
|
|
177
|
+
- **Credential Injection**: Secure cloud credentials without hardcoded secrets
|
|
178
|
+
- **Network Isolation**: Kubernetes network policies for multi-tenant security
|
|
179
|
+
- **Vulnerability Scanning**: Trivy integration for container security assessment
|
|
180
|
+
|
|
181
|
+
### ☁️ **Multi-Cloud Support**
|
|
182
|
+
- **AWS**: S3, DynamoDB, Lambda, SQS, SNS with IAM role-based access
|
|
183
|
+
- **Google Cloud**: BigQuery, Cloud Storage, Pub/Sub with service account injection
|
|
184
|
+
- **Azure**: Storage, Cosmos DB, Service Bus with managed identity integration
|
|
185
|
+
- **On-Premises**: Support for private cloud and hybrid deployments
|
|
186
|
+
|
|
187
|
+
### 🤖 **AI Framework Integration**
|
|
188
|
+
- **CrewAI**: Multi-agent collaboration with role-based workflows
|
|
189
|
+
- **LangChain**: Chain-of-thought reasoning with memory persistence
|
|
190
|
+
- **AutoGen**: Conversational multi-agent systems with dynamic routing
|
|
191
|
+
- **StrandAgent**: Custom workflow orchestration with state management
|
|
192
|
+
|
|
193
|
+
### 🏗️ **Enterprise Architecture**
|
|
194
|
+
- **Multi-Tenancy**: Isolated namespaces with resource quotas and RBAC
|
|
195
|
+
- **Scalability**: Horizontal pod autoscaling based on workload metrics
|
|
196
|
+
- **Observability**: Prometheus metrics, structured logging, distributed tracing
|
|
197
|
+
- **GitOps Ready**: Kubernetes manifests compatible with ArgoCD and Flux
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## 📋 **Requirements**
|
|
202
|
+
|
|
203
|
+
### System Requirements
|
|
204
|
+
- **Python**: 3.11 or higher
|
|
205
|
+
- **Container Runtime**: Docker 20.10+ or containerd 1.6+
|
|
206
|
+
- **Kubernetes**: 1.24+ (for deployment)
|
|
207
|
+
- **Operating System**: Linux, macOS, Windows (WSL2)
|
|
208
|
+
|
|
209
|
+
### Cloud Prerequisites
|
|
210
|
+
- **SPIRE Server**: Deployed in Kubernetes cluster for identity management
|
|
211
|
+
- **Hexr Runtime**: Credential injection service (provided separately)
|
|
212
|
+
- **Container Registry**: Docker Hub, Harbor, ECR, GCR, or ACR
|
|
213
|
+
- **Cloud Accounts**: Configured service accounts with appropriate permissions
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 🛠️ **Installation & Setup**
|
|
218
|
+
|
|
219
|
+
### Development Environment
|
|
220
|
+
|
|
221
|
+
1. **Clone the repository:**
|
|
222
|
+
```bash
|
|
223
|
+
git clone https://github.com/hexrdev/hexr.git
|
|
224
|
+
cd hexr/sdk/python
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
2. **Set up virtual environment:**
|
|
228
|
+
```bash
|
|
229
|
+
# Using uv (recommended)
|
|
230
|
+
uv venv
|
|
231
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
232
|
+
|
|
233
|
+
# Or using standard venv
|
|
234
|
+
python -m venv .venv
|
|
235
|
+
source .venv/bin/activate
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
3. **Install dependencies:**
|
|
239
|
+
```bash
|
|
240
|
+
# Development installation (includes testing and linting tools)
|
|
241
|
+
pip install -e ".[dev]"
|
|
242
|
+
|
|
243
|
+
# Production installation
|
|
244
|
+
pip install -e .
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
4. **Configure IDE (VS Code):**
|
|
248
|
+
```bash
|
|
249
|
+
# Install Python extension and select interpreter
|
|
250
|
+
# Path: .venv/bin/python (or .venv\Scripts\python.exe on Windows)
|
|
251
|
+
# The project includes .vscode/settings.json for optimal development experience
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## 🧪 **Testing**
|
|
257
|
+
|
|
258
|
+
### Running Tests
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
# Run all integration tests (recommended)
|
|
262
|
+
python -m pytest tests/integration/ -v
|
|
263
|
+
|
|
264
|
+
# Run specific test categories
|
|
265
|
+
python -m pytest tests/integration/test_cli_workflow.py -v # CLI functionality
|
|
266
|
+
python -m pytest tests/integration/test_build_integration.py -v # Build pipeline
|
|
267
|
+
|
|
268
|
+
# Run with coverage reporting
|
|
269
|
+
python -m pytest tests/integration/ --cov=src/hexr --cov-report=html
|
|
270
|
+
|
|
271
|
+
# Run tests in parallel for faster execution
|
|
272
|
+
python -m pytest tests/integration/ -n auto
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Test Categories
|
|
276
|
+
|
|
277
|
+
#### **Integration Tests (12 tests)**
|
|
278
|
+
- ✅ **CLI Component Import** - Verify all SDK imports resolve correctly
|
|
279
|
+
- ✅ **Configuration Creation** - Test BuildConfig and PushConfig with enterprise parameters
|
|
280
|
+
- ✅ **Mock System Integration** - SPIFFE client and credential injection workflows
|
|
281
|
+
- ✅ **Framework Detection** - AST analysis for CrewAI, LangChain, AutoGen patterns
|
|
282
|
+
- ✅ **Build Pipeline** - Dockerfile generation and container building
|
|
283
|
+
- ✅ **Kubernetes Manifests** - Pod, Service, NetworkPolicy, RBAC generation
|
|
284
|
+
- ✅ **Circular Import Prevention** - Shared configuration architecture validation
|
|
285
|
+
|
|
286
|
+
#### **Unit Tests (Coming Soon)**
|
|
287
|
+
- AST analyzer components
|
|
288
|
+
- Mock system individual functions
|
|
289
|
+
- Utility functions and helpers
|
|
290
|
+
- Error handling and edge cases
|
|
291
|
+
|
|
292
|
+
### Test Environment Setup
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
# Install test dependencies
|
|
296
|
+
pip install pytest pytest-asyncio pytest-cov pytest-mock pytest-xdist
|
|
297
|
+
|
|
298
|
+
# Configure pytest (already included in pyproject.toml)
|
|
299
|
+
python -m pytest --version
|
|
300
|
+
python -m pytest --collect-only tests/integration/ # Show all available tests
|
|
301
|
+
```
|
|
302
|
+
- **Simulates**: File system monitoring and context management
|
|
303
|
+
- **Features**: Process hierarchy, subprocess role tracking, file events
|
|
304
|
+
- **Contract**: `platform/contracts/runtime/process-context-files.yaml`
|
|
305
|
+
|
|
306
|
+
### ✅ Kubernetes Auto-Registrar Mock
|
|
307
|
+
- **File**: `src/hexr/testing/mocks.py:MockKubernetesAPI`
|
|
308
|
+
- **Simulates**: Pod monitoring and SPIFFE registration
|
|
309
|
+
- **Features**: Annotation validation, pod lifecycle, Auto-Registrar simulation
|
|
310
|
+
- **Contract**: `platform/contracts/runtime/kubernetes-auto-registrar.yaml`
|
|
311
|
+
|
|
312
|
+
### ✅ Cloud Provider Client Mocks
|
|
313
|
+
- **Files**: `create_mock_aws_client`, `create_mock_gcp_client`, `create_mock_azure_client`
|
|
314
|
+
- **AWS Support**: S3, Bedrock Runtime
|
|
315
|
+
- **GCP Support**: BigQuery, Cloud Storage
|
|
316
|
+
- **Azure Support**: Storage, Key Vault, Cognitive Services
|
|
317
|
+
- **Features**: Realistic API responses, error simulation, operation tracking
|
|
318
|
+
|
|
319
|
+
## 📋 SDK Implementation Guide
|
|
320
|
+
|
|
321
|
+
### Basic Usage
|
|
322
|
+
```python
|
|
323
|
+
from hexr.sdk import create_agent_sdk
|
|
324
|
+
|
|
325
|
+
# Create main agent SDK
|
|
326
|
+
sdk = create_agent_sdk(
|
|
327
|
+
agent_name="financial-orchestrator",
|
|
328
|
+
tenant="corp-finance",
|
|
329
|
+
framework="crewai",
|
|
330
|
+
required_resources=["aws_s3", "gcp_bigquery"],
|
|
331
|
+
mock_mode=True # Use mocks during development
|
|
332
|
+
)
|
|
333
|
+
|
|
334
|
+
# Get authenticated cloud clients
|
|
335
|
+
s3_client = await sdk.get_aws_client("s3", region="us-west-2")
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## 🤝 **Contributing**
|
|
339
|
+
|
|
340
|
+
We welcome contributions from the community! Hexr SDK is open source and designed for collaborative development.
|
|
341
|
+
|
|
342
|
+
### Development Workflow
|
|
343
|
+
|
|
344
|
+
1. **Fork the repository** on GitHub
|
|
345
|
+
2. **Create a feature branch** from `main`
|
|
346
|
+
3. **Make your changes** with tests and documentation
|
|
347
|
+
4. **Run the test suite** to ensure quality
|
|
348
|
+
5. **Submit a pull request** with clear description
|
|
349
|
+
|
|
350
|
+
### Code Quality Standards
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
# Format code with ruff
|
|
354
|
+
python -m ruff format src/ tests/ examples/
|
|
355
|
+
|
|
356
|
+
# Run linting checks
|
|
357
|
+
python -m ruff check src/ tests/ examples/ --fix
|
|
358
|
+
|
|
359
|
+
# Type checking with mypy (optional)
|
|
360
|
+
python -m mypy src/hexr --ignore-missing-imports
|
|
361
|
+
|
|
362
|
+
# Run full test suite
|
|
363
|
+
python -m pytest tests/integration/ -v --cov=src/hexr
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### Contribution Guidelines
|
|
367
|
+
|
|
368
|
+
- **Tests Required**: All new features must include integration tests
|
|
369
|
+
- **Documentation**: Update README and docstrings for public APIs
|
|
370
|
+
- **Code Style**: Follow ruff formatting and PEP 8 conventions
|
|
371
|
+
- **Security**: No hardcoded credentials or security vulnerabilities
|
|
372
|
+
- **Performance**: Consider impact on build times and resource usage
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## 📄 **License**
|
|
377
|
+
|
|
378
|
+
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
|
|
379
|
+
|
|
380
|
+
The Apache 2.0 license allows for:
|
|
381
|
+
- ✅ **Commercial Use**: Use in proprietary enterprise applications
|
|
382
|
+
- ✅ **Modification**: Adapt the SDK for your specific requirements
|
|
383
|
+
- ✅ **Distribution**: Include in your software distributions
|
|
384
|
+
- ✅ **Patent Rights**: Protection against patent litigation
|
|
385
|
+
- ✅ **Private Use**: Use internally without disclosure requirements
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## 📊 **Statistics**
|
|
390
|
+
|
|
391
|
+
- **4,111+** lines of production code
|
|
392
|
+
- **12/12** integration tests passing (100% success rate)
|
|
393
|
+
- **729** lines of comprehensive mock system for development
|
|
394
|
+
- **4** AI frameworks supported (CrewAI ✅, LangChain 🔄, AutoGen 🔄, StrandAgent 🔄)
|
|
395
|
+
- **3** major cloud providers (AWS, GCP, Azure)
|
|
396
|
+
- **Zero** critical security vulnerabilities
|
|
397
|
+
- **Sub-5s** container build times
|
|
398
|
+
- **Sub-30s** deployment times to Kubernetes
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
*Built with ❤️ by the Hexr team. Empowering Fortune 500 enterprises to deploy AI agents securely at scale.*
|
|
403
|
+
3. Performance testing and optimization
|
|
404
|
+
4. Security penetration testing
|
|
405
|
+
|
|
406
|
+
## 🤝 Team Coordination
|
|
407
|
+
|
|
408
|
+
### SDK Development Process
|
|
409
|
+
- **Feature Development**: Use mocks for all new features
|
|
410
|
+
- **Testing**: Validate against mock contracts
|
|
411
|
+
- **Documentation**: Update contracts as requirements evolve
|
|
412
|
+
- **Integration**: Test with real Runtime services when available
|
|
413
|
+
|
|
414
|
+
### Runtime Development Process
|
|
415
|
+
- **Contract Review**: Understand SDK expectations from contracts
|
|
416
|
+
- **Implementation**: Build services matching contract specifications
|
|
417
|
+
- **Validation**: Use SDK test suite to verify compatibility
|
|
418
|
+
- **Deployment**: Roll out services to match SDK requirements
|
|
419
|
+
|
|
420
|
+
## 🔍 Troubleshooting
|
|
421
|
+
|
|
422
|
+
### Common Issues
|
|
423
|
+
```bash
|
|
424
|
+
# Import errors
|
|
425
|
+
export PYTHONPATH="${PYTHONPATH}:$(pwd)/src"
|
|
426
|
+
|
|
427
|
+
# Mock not working
|
|
428
|
+
export HEXR_MOCK_MODE=true
|
|
429
|
+
|
|
430
|
+
# Test failures
|
|
431
|
+
python -m pytest tests/test_mocks.py::TestMockSpiffeClient -v -s
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### Debug Mode
|
|
435
|
+
```python
|
|
436
|
+
from hexr.testing.mocks import reset_all_mocks, get_mock_statistics
|
|
437
|
+
|
|
438
|
+
reset_all_mocks() # Clean state
|
|
439
|
+
stats = get_mock_statistics() # Check activity
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
## 🏆 Success Criteria
|
|
445
|
+
|
|
446
|
+
✅ **SDK team can develop independently**
|
|
447
|
+
✅ **Complete Runtime dependency mocking**
|
|
448
|
+
✅ **Contract-driven development process**
|
|
449
|
+
✅ **Comprehensive test coverage**
|
|
450
|
+
✅ **Runtime team has clear specifications**
|
|
451
|
+
✅ **Seamless mock → production transition**
|
|
452
|
+
|
|
453
|
+
**Result**: Parallel development with no team blocking! 🚀
|
|
454
|
+
|
|
455
|
+
## Installation
|
|
456
|
+
|
|
457
|
+
```bash
|
|
458
|
+
pip install hexr-sdk
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
## Quick Start
|
|
462
|
+
|
|
463
|
+
```python
|
|
464
|
+
from hexr_sdk import HexrClient
|
|
465
|
+
|
|
466
|
+
# Initialize client with SPIFFE identity
|
|
467
|
+
client = HexrClient()
|
|
468
|
+
|
|
469
|
+
# Authenticate agent
|
|
470
|
+
identity = client.authenticate()
|
|
471
|
+
print(f"Agent ID: {identity.spiffe_id}")
|
|
472
|
+
|
|
473
|
+
# Communicate with other agents
|
|
474
|
+
response = client.call_agent("other-agent", {"message": "hello"})
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
## Development
|
|
478
|
+
|
|
479
|
+
```bash
|
|
480
|
+
# Install in development mode
|
|
481
|
+
pip install -e .
|
|
482
|
+
|
|
483
|
+
# Run tests
|
|
484
|
+
pytest tests/
|
|
485
|
+
|
|
486
|
+
# Build and publish
|
|
487
|
+
python setup.py sdist bdist_wheel
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
## Features
|
|
491
|
+
|
|
492
|
+
- ✅ SPIFFE/SPIRE integration
|
|
493
|
+
- ✅ Zero-trust agent authentication
|
|
494
|
+
- ✅ Encrypted agent-to-agent communication
|
|
495
|
+
- ✅ Multi-cloud support (AWS, GCP, Azure)
|
|
496
|
+
- 🚧 Kubernetes operator integration
|
|
497
|
+
- 🚧 Automatic identity rotation
|
|
498
|
+
|