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.
Files changed (25) hide show
  1. vystak_channel_runtime-0.2.0/.gitignore +45 -0
  2. vystak_channel_runtime-0.2.0/PKG-INFO +43 -0
  3. vystak_channel_runtime-0.2.0/README.md +8 -0
  4. vystak_channel_runtime-0.2.0/pyproject.toml +60 -0
  5. vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/__init__.py +65 -0
  6. vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/agent_client.py +499 -0
  7. vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/delivery.py +31 -0
  8. vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/heartbeat.py +39 -0
  9. vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/launcher.py +114 -0
  10. vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/runtime.py +411 -0
  11. vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/store.py +579 -0
  12. vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/telemetry.py +91 -0
  13. vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/test_endpoint.py +50 -0
  14. vystak_channel_runtime-0.2.0/src/vystak_channel_runtime/types.py +82 -0
  15. vystak_channel_runtime-0.2.0/tests/conftest.py +22 -0
  16. vystak_channel_runtime-0.2.0/tests/test_agent_client.py +371 -0
  17. vystak_channel_runtime-0.2.0/tests/test_delivery.py +14 -0
  18. vystak_channel_runtime-0.2.0/tests/test_delivery_receiver.py +90 -0
  19. vystak_channel_runtime-0.2.0/tests/test_heartbeat_ack.py +49 -0
  20. vystak_channel_runtime-0.2.0/tests/test_launcher.py +47 -0
  21. vystak_channel_runtime-0.2.0/tests/test_runtime.py +470 -0
  22. vystak_channel_runtime-0.2.0/tests/test_store.py +281 -0
  23. vystak_channel_runtime-0.2.0/tests/test_telemetry.py +73 -0
  24. vystak_channel_runtime-0.2.0/tests/test_test_endpoint.py +64 -0
  25. 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
+ ]