bindu 0.3.14__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.
- bindu-0.3.14/.gitignore +194 -0
- bindu-0.3.14/PKG-INFO +351 -0
- bindu-0.3.14/README.md +301 -0
- bindu-0.3.14/bindu/__init__.py +6 -0
- bindu-0.3.14/bindu/common/__init__.py +19 -0
- bindu-0.3.14/bindu/common/models.py +168 -0
- bindu-0.3.14/bindu/common/protocol/__init__.py +30 -0
- bindu-0.3.14/bindu/common/protocol/types.py +1843 -0
- bindu-0.3.14/bindu/common/types.py +27 -0
- bindu-0.3.14/bindu/extensions/__init__.py +47 -0
- bindu-0.3.14/bindu/extensions/did/__init__.py +52 -0
- bindu-0.3.14/bindu/extensions/did/did_agent_extension.py +432 -0
- bindu-0.3.14/bindu/extensions/did/validation.py +170 -0
- bindu-0.3.14/bindu/extensions/x402/__init__.py +50 -0
- bindu-0.3.14/bindu/observability/__init__.py +82 -0
- bindu-0.3.14/bindu/observability/openinference.py +412 -0
- bindu-0.3.14/bindu/penguin/__init__.py +29 -0
- bindu-0.3.14/bindu/penguin/bindufy.py +438 -0
- bindu-0.3.14/bindu/penguin/config_validator.py +306 -0
- bindu-0.3.14/bindu/penguin/manifest.py +383 -0
- bindu-0.3.14/bindu/server/__init__.py +29 -0
- bindu-0.3.14/bindu/server/applications.py +331 -0
- bindu-0.3.14/bindu/server/endpoints/__init__.py +48 -0
- bindu-0.3.14/bindu/server/endpoints/a2a_protocol.py +80 -0
- bindu-0.3.14/bindu/server/endpoints/agent_card.py +73 -0
- bindu-0.3.14/bindu/server/endpoints/did_endpoints.py +86 -0
- bindu-0.3.14/bindu/server/endpoints/static_files.py +121 -0
- bindu-0.3.14/bindu/server/middleware/__init__.py +54 -0
- bindu-0.3.14/bindu/server/middleware/auth0.py +66 -0
- bindu-0.3.14/bindu/server/middleware/base.py +244 -0
- bindu-0.3.14/bindu/server/middleware/cognito.py +153 -0
- bindu-0.3.14/bindu/server/scheduler/__init__.py +59 -0
- bindu-0.3.14/bindu/server/scheduler/base.py +83 -0
- bindu-0.3.14/bindu/server/scheduler/memory_scheduler.py +83 -0
- bindu-0.3.14/bindu/server/scheduler/redis_scheduler.py +176 -0
- bindu-0.3.14/bindu/server/static/agent.html +72 -0
- bindu-0.3.14/bindu/server/static/chat.html +81 -0
- bindu-0.3.14/bindu/server/static/css/custom.css +89 -0
- bindu-0.3.14/bindu/server/static/js/agent.js +342 -0
- bindu-0.3.14/bindu/server/static/js/api.js +426 -0
- bindu-0.3.14/bindu/server/static/js/chat.js +451 -0
- bindu-0.3.14/bindu/server/static/js/common.js +1446 -0
- bindu-0.3.14/bindu/server/static/js/head-loader.js +51 -0
- bindu-0.3.14/bindu/server/static/js/storage.js +421 -0
- bindu-0.3.14/bindu/server/static/storage.html +85 -0
- bindu-0.3.14/bindu/server/storage/__init__.py +49 -0
- bindu-0.3.14/bindu/server/storage/base.py +209 -0
- bindu-0.3.14/bindu/server/storage/memory_storage.py +469 -0
- bindu-0.3.14/bindu/server/task_manager.py +724 -0
- bindu-0.3.14/bindu/server/workers/__init__.py +26 -0
- bindu-0.3.14/bindu/server/workers/base.py +236 -0
- bindu-0.3.14/bindu/server/workers/manifest_worker.py +720 -0
- bindu-0.3.14/bindu/settings.py +469 -0
- bindu-0.3.14/bindu/utils/__init__.py +15 -0
- bindu-0.3.14/bindu/utils/auth_utils.py +229 -0
- bindu-0.3.14/bindu/utils/display.py +120 -0
- bindu-0.3.14/bindu/utils/logging.py +137 -0
- bindu-0.3.14/bindu/utils/notifications.py +152 -0
- bindu-0.3.14/bindu/utils/request_utils.py +65 -0
- bindu-0.3.14/bindu/utils/security.py +32 -0
- bindu-0.3.14/bindu/utils/task_telemetry.py +292 -0
- bindu-0.3.14/bindu/utils/worker_utils.py +237 -0
- bindu-0.3.14/pyproject.toml +111 -0
- bindu-0.3.14/tests/README.md +218 -0
bindu-0.3.14/.gitignore
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*.cover
|
|
49
|
+
*.py,cover
|
|
50
|
+
.hypothesis/
|
|
51
|
+
.pytest_cache/
|
|
52
|
+
cover/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
.pybuilder/
|
|
76
|
+
target/
|
|
77
|
+
|
|
78
|
+
# Jupyter Notebook
|
|
79
|
+
.ipynb_checkpoints
|
|
80
|
+
|
|
81
|
+
# IPython
|
|
82
|
+
profile_default/
|
|
83
|
+
ipython_config.py
|
|
84
|
+
|
|
85
|
+
# pyenv
|
|
86
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
87
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
88
|
+
# .python-version
|
|
89
|
+
|
|
90
|
+
# pipenv
|
|
91
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
92
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
93
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
94
|
+
# install all needed dependencies.
|
|
95
|
+
#Pipfile.lock
|
|
96
|
+
|
|
97
|
+
# UV
|
|
98
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
99
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
100
|
+
# commonly ignored for libraries.
|
|
101
|
+
#uv.lock
|
|
102
|
+
|
|
103
|
+
# poetry
|
|
104
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
105
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
106
|
+
# commonly ignored for libraries.
|
|
107
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
108
|
+
#poetry.lock
|
|
109
|
+
|
|
110
|
+
# pdm
|
|
111
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
112
|
+
#pdm.lock
|
|
113
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
114
|
+
# in version control.
|
|
115
|
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
|
116
|
+
.pdm.toml
|
|
117
|
+
.pdm-python
|
|
118
|
+
.pdm-build/
|
|
119
|
+
|
|
120
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
121
|
+
__pypackages__/
|
|
122
|
+
|
|
123
|
+
# Celery stuff
|
|
124
|
+
celerybeat-schedule
|
|
125
|
+
celerybeat.pid
|
|
126
|
+
|
|
127
|
+
# SageMath parsed files
|
|
128
|
+
*.sage.py
|
|
129
|
+
|
|
130
|
+
# Environments
|
|
131
|
+
.env
|
|
132
|
+
.venv
|
|
133
|
+
env/
|
|
134
|
+
venv/
|
|
135
|
+
ENV/
|
|
136
|
+
env.bak/
|
|
137
|
+
venv.bak/
|
|
138
|
+
|
|
139
|
+
# Spyder project settings
|
|
140
|
+
.spyderproject
|
|
141
|
+
.spyproject
|
|
142
|
+
|
|
143
|
+
# Rope project settings
|
|
144
|
+
.ropeproject
|
|
145
|
+
|
|
146
|
+
# mkdocs documentation
|
|
147
|
+
/site
|
|
148
|
+
|
|
149
|
+
# mypy
|
|
150
|
+
.mypy_cache/
|
|
151
|
+
.dmypy.json
|
|
152
|
+
dmypy.json
|
|
153
|
+
|
|
154
|
+
# Pyre type checker
|
|
155
|
+
.pyre/
|
|
156
|
+
|
|
157
|
+
# pytype static type analyzer
|
|
158
|
+
.pytype/
|
|
159
|
+
|
|
160
|
+
# Cython debug symbols
|
|
161
|
+
cython_debug/
|
|
162
|
+
|
|
163
|
+
# PyCharm
|
|
164
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
165
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
166
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
167
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
168
|
+
#.idea/
|
|
169
|
+
|
|
170
|
+
# Ruff stuff:
|
|
171
|
+
.ruff_cache/
|
|
172
|
+
|
|
173
|
+
# PyPI configuration file
|
|
174
|
+
.pypirc
|
|
175
|
+
.DS_Store
|
|
176
|
+
|
|
177
|
+
# bindu project files
|
|
178
|
+
bindu-project/*
|
|
179
|
+
bindu-project_private_key.json
|
|
180
|
+
bindu_project_certificates/*
|
|
181
|
+
bindu_project_private_key.json
|
|
182
|
+
|
|
183
|
+
# Examples directory - exclude all generated files
|
|
184
|
+
examples/.pebbling/*
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
examples/.pebbling/private.pem
|
|
188
|
+
examples/.pebbling/public.pem
|
|
189
|
+
|
|
190
|
+
# Security scanning baselines (tracked for audit)
|
|
191
|
+
# .secrets.baseline
|
|
192
|
+
# .bandit.baseline
|
|
193
|
+
examples/.pebbling/private.pem
|
|
194
|
+
examples/.pebbling/public.pem
|
bindu-0.3.14/PKG-INFO
ADDED
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: bindu
|
|
3
|
+
Version: 0.3.14
|
|
4
|
+
Summary: A protocol framework for agent-to-agent communication
|
|
5
|
+
Author-email: Raahul Dutta <raahul@saptha.me>
|
|
6
|
+
License: MIT
|
|
7
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
8
|
+
Classifier: Operating System :: OS Independent
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Requires-Python: <3.13,>=3.12
|
|
11
|
+
Requires-Dist: aiofiles>=24.1.0
|
|
12
|
+
Requires-Dist: base58>=2.1.1
|
|
13
|
+
Requires-Dist: cryptography>=44.0.2
|
|
14
|
+
Requires-Dist: didkit>=0.3.3
|
|
15
|
+
Requires-Dist: loguru>=0.7.3
|
|
16
|
+
Requires-Dist: opentelemetry-api>=1.35.0
|
|
17
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.35.0
|
|
18
|
+
Requires-Dist: opentelemetry-exporter-otlp>=1.35.0
|
|
19
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.56b0
|
|
20
|
+
Requires-Dist: opentelemetry-instrumentation-httpx>=0.56b0
|
|
21
|
+
Requires-Dist: opentelemetry-sdk>=1.35.0
|
|
22
|
+
Requires-Dist: orjson>=3.10.18
|
|
23
|
+
Requires-Dist: pipreqs>=0.5.0
|
|
24
|
+
Requires-Dist: psycopg2-binary>=2.9.10
|
|
25
|
+
Requires-Dist: pydantic>=1.8.2
|
|
26
|
+
Requires-Dist: pyjwt[crypto]>=2.8.0
|
|
27
|
+
Requires-Dist: pyperclip>=1.11.0
|
|
28
|
+
Requires-Dist: pyyaml>=6.0.2
|
|
29
|
+
Requires-Dist: redis>=6.4.0
|
|
30
|
+
Requires-Dist: requests>=2.31.0
|
|
31
|
+
Requires-Dist: rich>=13.0.0
|
|
32
|
+
Requires-Dist: sqlalchemy>=2.0.43
|
|
33
|
+
Requires-Dist: starlette>=0.48.0
|
|
34
|
+
Requires-Dist: twine>=6.1.0
|
|
35
|
+
Requires-Dist: ty>=0.0.1a14
|
|
36
|
+
Requires-Dist: types-requests>=2.32.0.20250328
|
|
37
|
+
Requires-Dist: uvicorn>=0.15.0
|
|
38
|
+
Requires-Dist: uvx<2.0
|
|
39
|
+
Requires-Dist: x402>=0.2.1
|
|
40
|
+
Provides-Extra: dev
|
|
41
|
+
Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
|
|
42
|
+
Requires-Dist: pytest-asyncio>=0.26.0; extra == 'dev'
|
|
43
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
|
|
44
|
+
Requires-Dist: pytest-timeout>=2.2.0; extra == 'dev'
|
|
45
|
+
Requires-Dist: pytest-xdist>=3.0.0; extra == 'dev'
|
|
46
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
47
|
+
Provides-Extra: examples
|
|
48
|
+
Requires-Dist: pyperclip>=1.8.2; extra == 'examples'
|
|
49
|
+
Description-Content-Type: text/markdown
|
|
50
|
+
|
|
51
|
+
<p align="center">
|
|
52
|
+
<img src="assets/bindu-logo.svg" alt="bindu Logo" width="200">
|
|
53
|
+
</p>
|
|
54
|
+
|
|
55
|
+
<h1 align="center"> bindu </h1>
|
|
56
|
+
|
|
57
|
+
[](https://opensource.org/licenses/MIT)
|
|
58
|
+
[](https://hits.sh/github.com/bindu-ai/pebble/)
|
|
59
|
+
[](https://www.python.org/downloads/)
|
|
60
|
+
[](https://github.com/bindu-ai/pebble/actions/workflows/release.yml)
|
|
61
|
+
[](https://coveralls.io/github/bindu-ai/pebble?branch=v0.1.0.5)
|
|
62
|
+
[](https://badge.fury.io/py/bindu)
|
|
63
|
+
[](https://pypi.org/project/bindu/)
|
|
64
|
+
[](https://github.com/bindu-ai/pebble/pulls)
|
|
65
|
+
[](https://discord.gg/Fr6rcRJa)
|
|
66
|
+
[](https://docs.bindu.ai)
|
|
67
|
+
[](https://github.com/bindu-ai/pebble/stargazers)
|
|
68
|
+
|
|
69
|
+
โจ Imagine a world where AI agents collaborate effortlessly and securelyโno passport ๐ซ, no boundaries ๐.
|
|
70
|
+
|
|
71
|
+
Thatโs bindu ๐ป.An open source, secured protocol for agent-to-agent communication.
|
|
72
|
+
|
|
73
|
+
๐ Powered by Decentralised Identifiers (DIDs) ๐, secured conversations with mutual TLS (mTLS) ๐, and a lightweight yet powerful communication protocol built on JSON-RPC 2.0 โก๏ธโbindu is paving the way for the next generation of collaborative AI systems. ๐๐ค
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
## ๐ Features
|
|
77
|
+
|
|
78
|
+
bindu helps your AI agents talk to each other seamlessly:
|
|
79
|
+
|
|
80
|
+
๐ **Super Secure** - Your agents exchange secrets safely (with built-in mTLS)
|
|
81
|
+
|
|
82
|
+
๐งฉ **Plug-and-Play** - Just decorate your agent and it's ready to communicate
|
|
83
|
+
|
|
84
|
+
โก **Lightning Fast** - Quick connections without the weight
|
|
85
|
+
|
|
86
|
+
๐ **Works Everywhere** - Connect any agents, regardless of their programming language
|
|
87
|
+
|
|
88
|
+
๐ **Reliable Communication** - Messages always arrive correctly and in order
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## ๐ฆ Installation
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Using pip
|
|
95
|
+
pip install bindu
|
|
96
|
+
|
|
97
|
+
# Using uv (recommended)
|
|
98
|
+
uv add bindu
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## ๐ Quick Start
|
|
102
|
+
|
|
103
|
+
### ๐ช Quick Start with Cookiecutter Template
|
|
104
|
+
|
|
105
|
+
The fastest way to get started with bindu is using our cookiecutter template:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Create a new bindu project
|
|
109
|
+
uv tool run cookiecutter cookiecutter-bindu/
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Follow the interactive prompts:
|
|
113
|
+
```
|
|
114
|
+
[1/4] name (pebble_project): my_weather_agent
|
|
115
|
+
[2/4] description (): A weather forecasting agent
|
|
116
|
+
[3/4] bindu_email (): your.email@example.com
|
|
117
|
+
[4/4] Select agent_framework
|
|
118
|
+
1 - none
|
|
119
|
+
2 - agno
|
|
120
|
+
3 - crew
|
|
121
|
+
4 - langchain
|
|
122
|
+
Choose from [1/2/3/4] (1): 2
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
After project creation:
|
|
126
|
+
```bash
|
|
127
|
+
๐ Project created successfully!
|
|
128
|
+
|
|
129
|
+
๐ป Welcome to bindu โ powered by the bindu CLI.
|
|
130
|
+
Next steps:
|
|
131
|
+
1๏ธโฃ cd 'my_weather_agent'
|
|
132
|
+
2๏ธโฃ Set it up using uv: ๐ฆ
|
|
133
|
+
uv sync
|
|
134
|
+
3๏ธโฃ Run your agent locally: ๐ป
|
|
135
|
+
PYTHONPATH=src python3 -m my_weather_agent
|
|
136
|
+
or
|
|
137
|
+
python3 src/<filename.py>
|
|
138
|
+
4๏ธโฃ Deploy your agent: ๐
|
|
139
|
+
pebble launch
|
|
140
|
+
|
|
141
|
+
๐ค Selected agent framework: agno
|
|
142
|
+
Need help? See README.md for details. โจ
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Setup and run your agent:**
|
|
146
|
+
```bash
|
|
147
|
+
# Navigate to your project
|
|
148
|
+
cd my_weather_agent
|
|
149
|
+
|
|
150
|
+
# Create virtual environment
|
|
151
|
+
uv venv --python 3.12.9
|
|
152
|
+
source .venv/bin/activate
|
|
153
|
+
|
|
154
|
+
# Install dependencies
|
|
155
|
+
uv sync
|
|
156
|
+
|
|
157
|
+
# Run your agent
|
|
158
|
+
uv run src/pebble_agent.py
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Your agent will start with full bindu capabilities:
|
|
162
|
+
- โ
Automatic DID identity generation
|
|
163
|
+
- โ
Security setup with mTLS certificates
|
|
164
|
+
- โ
Agent manifest creation
|
|
165
|
+
- โ
Local server running on http://localhost:8030
|
|
166
|
+
- โ
OpenInference observability integration
|
|
167
|
+
|
|
168
|
+
> ๐ **Template Repository**: [cookiecutter-bindu](https://github.com/bindu-ai/cookiecutter-bindu)
|
|
169
|
+
|
|
170
|
+
### Manual Setup - bindufy an Agent
|
|
171
|
+
|
|
172
|
+
```python
|
|
173
|
+
from bindu import bindufy
|
|
174
|
+
|
|
175
|
+
@bindufy(name="My Agent", description="A simple agent", version="1.0.0")
|
|
176
|
+
def my_agent(message: str) -> str:
|
|
177
|
+
return "Hello, Agent!"
|
|
178
|
+
|
|
179
|
+
# You're now ready to communicate securely between agents!
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### bindufy a [Agno](https://github.com/agno-ai/agno) Agent
|
|
183
|
+
|
|
184
|
+
```python
|
|
185
|
+
from bindu import bindufy
|
|
186
|
+
from agno.agent import Agent
|
|
187
|
+
from agno.models.openai import OpenAIChat
|
|
188
|
+
|
|
189
|
+
@bindufy(name="Agno Agent", description="A helpful assistant", version="1.0.0")
|
|
190
|
+
def agno_agent(message: str) -> str:
|
|
191
|
+
agent = Agent(
|
|
192
|
+
model=OpenAIChat(id="gpt-4o"),
|
|
193
|
+
instructions="You are a helpful assistant.",
|
|
194
|
+
)
|
|
195
|
+
result = agent.run(message)
|
|
196
|
+
return result.to_dict()["content"]
|
|
197
|
+
|
|
198
|
+
# You're now ready to communicate securely between agents!
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## ๐ฅ Agent in Action
|
|
202
|
+
<img src="./pebble-cli.gif" alt="Agent Demo" width="640">
|
|
203
|
+
|
|
204
|
+
## ๐ Interactive Diagrams
|
|
205
|
+
|
|
206
|
+
<table>
|
|
207
|
+
<tr>
|
|
208
|
+
<td>
|
|
209
|
+
|
|
210
|
+
**๐ Sequence Diagram**
|
|
211
|
+
[](https://www.mermaidchart.com/app/projects/818fccf7-4d32-4f82-8a5f-006808d90e34/diagrams/89f06b06-fe7c-4c8f-ab91-20eb0146fc0f/version/v0.1/edit)
|
|
212
|
+
|
|
213
|
+
Open the interactive version of this sequence diagram in MermaidChart
|
|
214
|
+
|
|
215
|
+
</td>
|
|
216
|
+
<td>
|
|
217
|
+
|
|
218
|
+
**๐๏ธ Orchestration Diagram**
|
|
219
|
+
[](https://www.mermaidchart.com/app/projects/818fccf7-4d32-4f82-8a5f-006808d90e34/diagrams/143c8f38-3810-4404-898c-cceb59b39670/version/v0.1/edit)
|
|
220
|
+
|
|
221
|
+
Open the interactive version of this orchestration diagram in MermaidChart
|
|
222
|
+
|
|
223
|
+
</td>
|
|
224
|
+
</tr>
|
|
225
|
+
</table>
|
|
226
|
+
|
|
227
|
+
## ๐ ๏ธ Supported Agent Frameworks
|
|
228
|
+
|
|
229
|
+
bindu is tested and integrated with popular agent frameworks:
|
|
230
|
+
|
|
231
|
+
- โ
[Agno](https://github.com/agno-ai/agno)
|
|
232
|
+
- ๐ CrewAI (Coming soon)
|
|
233
|
+
- ๐ AutoGen (Coming soon)
|
|
234
|
+
- ๐ LangChain (Coming soon)
|
|
235
|
+
- ๐ LlamaIndex (Coming soon)
|
|
236
|
+
|
|
237
|
+
Want integration with your favorite framework? Let us know on [Discord](https://discord.gg/Fr6rcRJa)!
|
|
238
|
+
|
|
239
|
+
## ๐ Documentation
|
|
240
|
+
|
|
241
|
+
For comprehensive documentation, visit [docs.bindu.ai](https://docs.bindu.ai)
|
|
242
|
+
|
|
243
|
+
## ๐งช Testing
|
|
244
|
+
|
|
245
|
+
bindu is thoroughly tested with a test coverage of over 83%:
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
# Run tests with coverage
|
|
249
|
+
make test
|
|
250
|
+
make coverage
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
## ๐ค Contributing
|
|
254
|
+
|
|
255
|
+
We welcome contributions! Here's how to get started:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
# Clone the repository
|
|
259
|
+
git clone https://github.com/bindu-ai/pebble.git
|
|
260
|
+
cd pebble
|
|
261
|
+
|
|
262
|
+
# Install development dependencies
|
|
263
|
+
uv sync --dev
|
|
264
|
+
|
|
265
|
+
# Install pre-commit hooks
|
|
266
|
+
pre-commit install
|
|
267
|
+
|
|
268
|
+
# Run tests
|
|
269
|
+
make test
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
Please see our [Contributing Guidelines](.github/CONTRIBUTING.md) for more details.
|
|
273
|
+
|
|
274
|
+
## ๐ฅ Maintainers
|
|
275
|
+
|
|
276
|
+
For more details about maintainership, including how to become a maintainer, see our [MAINTAINERS.md](MAINTAINERS.md) file.
|
|
277
|
+
|
|
278
|
+
## ๐ License
|
|
279
|
+
|
|
280
|
+
bindu is proudly open-source and licensed under the [MIT License](https://choosealicense.com/licenses/mit/).
|
|
281
|
+
|
|
282
|
+
## ๐ป Example Use Cases
|
|
283
|
+
|
|
284
|
+
bindu is ideal for:
|
|
285
|
+
|
|
286
|
+
- **Multi-Agent Collaboration**: Enable efficient, secure teamwork between LLM-driven agents.
|
|
287
|
+
- **Decentralized Autonomous Systems**: Build reliable decentralized AI networks.
|
|
288
|
+
- **Secure Agent Ecosystems**: Create ecosystems where agents from different providers interact seamlessly.
|
|
289
|
+
- **Distributed AI Workflows**: Coordinate agents across distributed computing environments.
|
|
290
|
+
|
|
291
|
+
## ๐ Community
|
|
292
|
+
|
|
293
|
+
We ๐ contributions! Whether you're fixing bugs, improving documentation, or building demos โ your contributions make bindu better.
|
|
294
|
+
|
|
295
|
+
- Join our [Discord](https://discord.gg/Fr6rcRJa) for discussions and support
|
|
296
|
+
- Star the repository if you find it useful!
|
|
297
|
+
|
|
298
|
+
## ๐ง Roadmap
|
|
299
|
+
|
|
300
|
+
Here's what's next for bindu:
|
|
301
|
+
|
|
302
|
+
- [ ] GRPC transport support
|
|
303
|
+
- [ ] Integration with [Hibiscus](https://github.com/bindu-ai/hibiscus) (DiD - Decentralized Identifiers, mTLS)
|
|
304
|
+
- [ ] Detailed tutorials and guides
|
|
305
|
+
- [ ] Expanded multi-framework support
|
|
306
|
+
|
|
307
|
+
Suggest features or contribute by joining our [Discord](https://discord.gg/Fr6rcRJa)!
|
|
308
|
+
|
|
309
|
+
## FAQ
|
|
310
|
+
|
|
311
|
+
**Can bindu be deployed locally?**
|
|
312
|
+
Yes! bindu supports local development as well as cloud-based deployments.
|
|
313
|
+
|
|
314
|
+
## Security:
|
|
315
|
+
curl --request POST \
|
|
316
|
+
--url https://dev-tlzrol0zsxw40ujx.us.auth0.com/oauth/token \
|
|
317
|
+
--header 'content-type: application/json' \
|
|
318
|
+
--data '{"client_id":"GGLemeiKL6MfXD7Hy4L4mtz8WNIhRtkS","client_secret":"zXcdPIQRAM9iHzABZtcfaN_2iICW4pfuoyUChIcVDF5488ejtyKG_U_PyWj9kpJT","audience":"https://dev-tlzrol0zsxw40ujx.us.auth0.com/api/v2/","grant_type":"client_credentials"}' \
|
|
319
|
+
| jq -r '.access_token'
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
Standard JSON-RPC (-32700 to -32603)
|
|
323
|
+
โโ -32700: Parse error
|
|
324
|
+
โโ -32600: Invalid Request
|
|
325
|
+
โโ -32601: Method not found
|
|
326
|
+
โโ -32602: Invalid params
|
|
327
|
+
โโ -32603: Internal error
|
|
328
|
+
|
|
329
|
+
A2A Official (-32001 to -32007)
|
|
330
|
+
โโ -32001: TaskNotFoundError โ
|
|
331
|
+
โโ -32002: TaskNotCancelableError โ
|
|
332
|
+
โโ -32003: PushNotificationNotSupportedError โ
|
|
333
|
+
โโ -32004: UnsupportedOperationError โ
|
|
334
|
+
โโ -32005: ContentTypeNotSupportedError โ
|
|
335
|
+
โโ -32006: InvalidAgentResponseError โ
|
|
336
|
+
โโ -32007: AuthenticatedExtendedCardNotConfiguredError โ
|
|
337
|
+
|
|
338
|
+
Bindu Extensions (-32008 to -32099)
|
|
339
|
+
โโ -32008: TaskImmutableError (custom)
|
|
340
|
+
โโ -32009 to -32013: Authentication errors
|
|
341
|
+
โโ -32020 to -32021: Context errors
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
## โญ Star History
|
|
345
|
+
|
|
346
|
+
[](https://star-history.com/#bindu-ai/pebble&Date)
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
Built with โค๏ธ by the bindu team from Amsterdam ๐ท.
|
|
350
|
+
|
|
351
|
+
Happy bindu! ๐ป๐โจ
|