vystak-channel-runtime 0.2.0__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.
- vystak_channel_runtime-0.2.0/.gitignore +45 -0
- vystak_channel_runtime-0.2.0/PKG-INFO +43 -0
- vystak_channel_runtime-0.2.0/README.md +8 -0
- vystak_channel_runtime-0.2.0/pyproject.toml +60 -0
- vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/__init__.py +65 -0
- vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/agent_client.py +499 -0
- vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/delivery.py +31 -0
- vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/heartbeat.py +39 -0
- vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/launcher.py +114 -0
- vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/runtime.py +411 -0
- vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/store.py +579 -0
- vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/telemetry.py +91 -0
- vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/test_endpoint.py +50 -0
- vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/types.py +82 -0
- vystak_channel_runtime-0.2.0/tests/conftest.py +22 -0
- vystak_channel_runtime-0.2.0/tests/test_agent_client.py +371 -0
- vystak_channel_runtime-0.2.0/tests/test_delivery.py +14 -0
- vystak_channel_runtime-0.2.0/tests/test_delivery_receiver.py +90 -0
- vystak_channel_runtime-0.2.0/tests/test_heartbeat_ack.py +49 -0
- vystak_channel_runtime-0.2.0/tests/test_launcher.py +47 -0
- vystak_channel_runtime-0.2.0/tests/test_runtime.py +470 -0
- vystak_channel_runtime-0.2.0/tests/test_store.py +281 -0
- vystak_channel_runtime-0.2.0/tests/test_telemetry.py +73 -0
- vystak_channel_runtime-0.2.0/tests/test_test_endpoint.py +64 -0
- vystak_channel_runtime-0.2.0/tests/test_types.py +71 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.egg-info/
|
|
6
|
+
dist/
|
|
7
|
+
build/
|
|
8
|
+
.eggs/
|
|
9
|
+
*.egg
|
|
10
|
+
.venv/
|
|
11
|
+
.pytest_cache/
|
|
12
|
+
.ruff_cache/
|
|
13
|
+
.pyright/
|
|
14
|
+
|
|
15
|
+
# TypeScript
|
|
16
|
+
node_modules/
|
|
17
|
+
*.tsbuildinfo
|
|
18
|
+
coverage/
|
|
19
|
+
|
|
20
|
+
# IDE
|
|
21
|
+
.idea/
|
|
22
|
+
.vscode/
|
|
23
|
+
*.swp
|
|
24
|
+
*.swo
|
|
25
|
+
*~
|
|
26
|
+
|
|
27
|
+
# OS
|
|
28
|
+
.DS_Store
|
|
29
|
+
Thumbs.db
|
|
30
|
+
|
|
31
|
+
# Environment
|
|
32
|
+
.env
|
|
33
|
+
.env.local
|
|
34
|
+
|
|
35
|
+
# Vystak generated output (was .agentstack/ before rename)
|
|
36
|
+
.vystak/
|
|
37
|
+
.agentstack/
|
|
38
|
+
|
|
39
|
+
# Bundled templates copied into vystak-cli wheel at build time (build hook output)
|
|
40
|
+
packages/python/vystak-cli/src/vystak_cli/templates/
|
|
41
|
+
|
|
42
|
+
# Tooling workspaces (brainstorm sessions, local agent state)
|
|
43
|
+
.superpowers/
|
|
44
|
+
.worktrees/
|
|
45
|
+
.claude/
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vystak-channel-runtime
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Vystak channel runtime — shared base for all channel containers
|
|
5
|
+
Project-URL: Homepage, https://vystak.dev
|
|
6
|
+
Project-URL: Repository, https://github.com/vystak/vystak
|
|
7
|
+
Author-email: Anatoliy Kolodkin <11351966+akolodkin@users.noreply.github.com>
|
|
8
|
+
License-Expression: Apache-2.0
|
|
9
|
+
Keywords: agent,channel,runtime,vystak
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Requires-Dist: aiosqlite>=0.20
|
|
21
|
+
Requires-Dist: asyncpg>=0.29
|
|
22
|
+
Requires-Dist: croniter>=2.0
|
|
23
|
+
Requires-Dist: httpx>=0.27
|
|
24
|
+
Requires-Dist: nats-py>=2.6
|
|
25
|
+
Requires-Dist: opentelemetry-api>=1.27
|
|
26
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.27
|
|
27
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.48b0
|
|
28
|
+
Requires-Dist: opentelemetry-instrumentation-httpx>=0.48b0
|
|
29
|
+
Requires-Dist: opentelemetry-sdk>=1.27
|
|
30
|
+
Requires-Dist: pydantic>=2.7
|
|
31
|
+
Requires-Dist: vystak>=0.1.0
|
|
32
|
+
Provides-Extra: test-endpoint
|
|
33
|
+
Requires-Dist: fastapi>=0.110; extra == 'test-endpoint'
|
|
34
|
+
Description-Content-Type: text/markdown
|
|
35
|
+
|
|
36
|
+
# vystak-channel-runtime
|
|
37
|
+
|
|
38
|
+
Shared runtime base for Vystak channel containers. Defines `ChannelRuntime`
|
|
39
|
+
(template-method message lifecycle), `AgentClient` (A2A default impl),
|
|
40
|
+
and `ChannelStore` (SQLite + Postgres + in-memory).
|
|
41
|
+
|
|
42
|
+
Imported by `vystak-channel-slack`, `vystak-channel-chat`,
|
|
43
|
+
`vystak-channel-discord` inside their generated containers.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# vystak-channel-runtime
|
|
2
|
+
|
|
3
|
+
Shared runtime base for Vystak channel containers. Defines `ChannelRuntime`
|
|
4
|
+
(template-method message lifecycle), `AgentClient` (A2A default impl),
|
|
5
|
+
and `ChannelStore` (SQLite + Postgres + in-memory).
|
|
6
|
+
|
|
7
|
+
Imported by `vystak-channel-slack`, `vystak-channel-chat`,
|
|
8
|
+
`vystak-channel-discord` inside their generated containers.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "vystak-channel-runtime"
|
|
3
|
+
dynamic = ["version"]
|
|
4
|
+
description = "Vystak channel runtime — shared base for all channel containers"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.11"
|
|
7
|
+
license = "Apache-2.0"
|
|
8
|
+
authors = [
|
|
9
|
+
{ name = "Anatoliy Kolodkin", email = "11351966+akolodkin@users.noreply.github.com" },
|
|
10
|
+
]
|
|
11
|
+
keywords = ["vystak", "channel", "runtime", "agent"]
|
|
12
|
+
classifiers = [
|
|
13
|
+
"Development Status :: 3 - Alpha",
|
|
14
|
+
"Intended Audience :: Developers",
|
|
15
|
+
"License :: OSI Approved :: Apache Software License",
|
|
16
|
+
"Operating System :: OS Independent",
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3.11",
|
|
19
|
+
"Programming Language :: Python :: 3.12",
|
|
20
|
+
"Programming Language :: Python :: 3.13",
|
|
21
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
22
|
+
]
|
|
23
|
+
dependencies = [
|
|
24
|
+
"vystak>=0.1.0",
|
|
25
|
+
"httpx>=0.27",
|
|
26
|
+
"aiosqlite>=0.20",
|
|
27
|
+
"asyncpg>=0.29",
|
|
28
|
+
"pydantic>=2.7",
|
|
29
|
+
"nats-py>=2.6",
|
|
30
|
+
"croniter>=2.0",
|
|
31
|
+
"opentelemetry-api>=1.27",
|
|
32
|
+
"opentelemetry-sdk>=1.27",
|
|
33
|
+
"opentelemetry-exporter-otlp-proto-grpc>=1.27",
|
|
34
|
+
"opentelemetry-instrumentation-fastapi>=0.48b0",
|
|
35
|
+
"opentelemetry-instrumentation-httpx>=0.48b0",
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
[project.optional-dependencies]
|
|
39
|
+
test-endpoint = ["fastapi>=0.110"]
|
|
40
|
+
|
|
41
|
+
[project.urls]
|
|
42
|
+
Homepage = "https://vystak.dev"
|
|
43
|
+
Repository = "https://github.com/vystak/vystak"
|
|
44
|
+
|
|
45
|
+
[build-system]
|
|
46
|
+
requires = ["hatchling", "hatch-vcs"]
|
|
47
|
+
build-backend = "hatchling.build"
|
|
48
|
+
|
|
49
|
+
[tool.hatch.build.targets.wheel]
|
|
50
|
+
packages = ["src/vystak_channel_runtime"]
|
|
51
|
+
|
|
52
|
+
[tool.hatch.version]
|
|
53
|
+
source = "vcs"
|
|
54
|
+
raw-options = {root = "../../.."}
|
|
55
|
+
|
|
56
|
+
[tool.uv.sources]
|
|
57
|
+
vystak = { workspace = true }
|
|
58
|
+
|
|
59
|
+
[tool.pytest.ini_options]
|
|
60
|
+
asyncio_mode = "auto"
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"""Vystak channel runtime — shared base for channel containers."""
|
|
2
|
+
|
|
3
|
+
from importlib.metadata import version as _pkg_version
|
|
4
|
+
|
|
5
|
+
from vystak_channel_runtime.agent_client import A2AAgentClient, AgentClient
|
|
6
|
+
from vystak_channel_runtime.launcher import build_runtime, launch
|
|
7
|
+
from vystak_channel_runtime.runtime import ChannelRuntime
|
|
8
|
+
from vystak_channel_runtime.store import (
|
|
9
|
+
ChannelStore,
|
|
10
|
+
MemoryChannelStore,
|
|
11
|
+
PostgresChannelStore,
|
|
12
|
+
SqliteChannelStore,
|
|
13
|
+
make_channel_store,
|
|
14
|
+
)
|
|
15
|
+
from vystak_channel_runtime.test_endpoint import build_test_app, is_test_endpoint_enabled
|
|
16
|
+
from vystak_channel_runtime.types import (
|
|
17
|
+
AgentCallError,
|
|
18
|
+
AgentChunk,
|
|
19
|
+
AgentReply,
|
|
20
|
+
InboundEvent,
|
|
21
|
+
Message,
|
|
22
|
+
SkipEvent,
|
|
23
|
+
ThreadBinding,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def runtime_version() -> str:
|
|
28
|
+
"""Return the installed version of vystak-channel-runtime."""
|
|
29
|
+
try:
|
|
30
|
+
return _pkg_version("vystak-channel-runtime")
|
|
31
|
+
except Exception:
|
|
32
|
+
return "0.1.0"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def channel_package_version(name: str) -> str:
|
|
36
|
+
"""Return the installed version of the named channel package."""
|
|
37
|
+
try:
|
|
38
|
+
return _pkg_version(name)
|
|
39
|
+
except Exception:
|
|
40
|
+
return "0.1.0"
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
__all__ = [
|
|
44
|
+
"A2AAgentClient",
|
|
45
|
+
"build_runtime",
|
|
46
|
+
"build_test_app",
|
|
47
|
+
"channel_package_version",
|
|
48
|
+
"is_test_endpoint_enabled",
|
|
49
|
+
"launch",
|
|
50
|
+
"AgentCallError",
|
|
51
|
+
"AgentChunk",
|
|
52
|
+
"AgentClient",
|
|
53
|
+
"AgentReply",
|
|
54
|
+
"ChannelRuntime",
|
|
55
|
+
"ChannelStore",
|
|
56
|
+
"InboundEvent",
|
|
57
|
+
"MemoryChannelStore",
|
|
58
|
+
"Message",
|
|
59
|
+
"PostgresChannelStore",
|
|
60
|
+
"runtime_version",
|
|
61
|
+
"SkipEvent",
|
|
62
|
+
"SqliteChannelStore",
|
|
63
|
+
"ThreadBinding",
|
|
64
|
+
"make_channel_store",
|
|
65
|
+
]
|