Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
109 lines (101 loc) · 2.65 KB
/
Copy pathpyproject.toml
File metadata and controls
109 lines (101 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
[project]
name = "kaos-harness"
version = "2.1.1"
description = "KAOS — Kernel for Agent Orchestration & Sandboxing. Isolated, auditable, portable agent runtimes backed by SQLite."
readme = "README.md"
license = "MIT"
authors = [
{ name = "Danilo Canivel" },
]
requires-python = ">=3.11"
# Base install = the small clean version: flight recorder (VFS, checkpoints,
# events, blobs) + brain (memory, skills, shared log) + the CLI around them.
# Everything heavier lives behind an extra — see [project.optional-dependencies].
dependencies = [
"click>=8.1",
"zstandard>=0.22",
"pyyaml>=6.0",
"rich>=13.0",
]
[project.optional-dependencies]
# feature extras (v2.0) — `kaos <cmd>` tells you which extra it needs
mcp = [
# mcp 2.x removed the low-level Server.list_tools()/call_tool() decorator
# API this server is written against; caught by the v2.0 clean-install test
"mcp>=1.0,<2",
]
router = [
"httpx>=0.27",
]
agent-sdk = [
# the in-process provider recommended when running alongside an active
# Claude Code session (no CLI subprocess quota contention)
"claude-agent-sdk>=0.2",
]
ui = [
"textual>=0.50",
# web dashboard (kaos ui / kaos demo) — previously undeclared, worked only
# via mcp's transitive deps; caught by the v2.0 clean-install test
"starlette>=0.37",
"uvicorn>=0.29",
]
eval = [
# the falsifiable-probe harness is pure stdlib today; the extra exists so
# the surface is named and its future deps have a home
]
all = [
"kaos-harness[mcp,router,ui,eval,agent-sdk]",
]
# tooling extras
dev = [
"pytest>=8.0",
"pytest-asyncio>=0.23",
"pytest-cov>=5.0",
"ruff>=0.4",
"kaos-harness[all]",
]
fuse = [
"fusepy>=3.0",
]
benchmarks = [
"numpy>=1.24",
]
[project.urls]
Homepage = "https://canivel.github.io/kaos/"
Repository = "https://github.com/canivel/kaos"
Changelog = "https://github.com/canivel/kaos/blob/main/CHANGELOG.md"
[project.scripts]
kaos = "kaos.cli.main:main"
kaos-hook = "kaos.hook:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["kaos"]
[tool.hatch.build.targets.sdist]
# keep the sdist lean — the repo carries demo GIFs, papers, and bench results
# that pushed the default sdist to 141 MB (PyPI caps files at 100 MB)
include = [
"kaos",
"tests",
"conftest.py",
"README.md",
"CHANGELOG.md",
"LICENSE",
"kaos.yaml.example",
]
exclude = [
"benchmarks",
"docs",
"blog",
"*.gif",
"*.png",
"*.pdf",
"*.db",
]
[tool.ruff]
target-version = "py311"
line-length = 100
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]