boundflow-charter 0.1.0.dev122__tar.gz → 0.1.0.dev128__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 (57) hide show
  1. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/PKG-INFO +17 -6
  2. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/README.md +16 -5
  3. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/boundflow_charter.egg-info/PKG-INFO +17 -6
  4. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/pyproject.toml +1 -1
  5. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/LICENSE +0 -0
  6. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/boundflow_charter.egg-info/SOURCES.txt +0 -0
  7. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/boundflow_charter.egg-info/dependency_links.txt +0 -0
  8. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/boundflow_charter.egg-info/entry_points.txt +0 -0
  9. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/boundflow_charter.egg-info/requires.txt +0 -0
  10. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/boundflow_charter.egg-info/top_level.txt +0 -0
  11. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/__init__.py +0 -0
  12. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/artifact.py +0 -0
  13. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/cli.py +0 -0
  14. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/compile.py +0 -0
  15. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/config/__init__.py +0 -0
  16. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/config/agent.py +0 -0
  17. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/config/lifecycle.py +0 -0
  18. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/config/loader.py +0 -0
  19. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/config/runtime.py +0 -0
  20. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/config/worker.py +0 -0
  21. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/console.py +0 -0
  22. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/harness/__init__.py +0 -0
  23. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/harness/callbacks.py +0 -0
  24. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/harness/capabilities.py +0 -0
  25. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/harness/durable.py +0 -0
  26. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/harness/gates.py +0 -0
  27. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/harness/metering.py +0 -0
  28. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/harness/middleware.py +0 -0
  29. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/mcp/__init__.py +0 -0
  30. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/mcp/client.py +0 -0
  31. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/notify.py +0 -0
  32. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/policy.py +0 -0
  33. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/provisioning/__init__.py +0 -0
  34. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/provisioning/apply.py +0 -0
  35. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/trace.py +0 -0
  36. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/ui.py +0 -0
  37. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/worker.py +0 -0
  38. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/workflows/loop.py +0 -0
  39. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/workflows/spawning.py +0 -0
  40. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/charter/workflows/subagents.py +0 -0
  41. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/setup.cfg +0 -0
  42. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_agent_config.py +0 -0
  43. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_apply.py +0 -0
  44. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_artifact.py +0 -0
  45. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_cli.py +0 -0
  46. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_compile.py +0 -0
  47. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_console.py +0 -0
  48. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_docs.py +0 -0
  49. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_harness.py +0 -0
  50. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_harness_bounds.py +0 -0
  51. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_loader.py +0 -0
  52. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_loop.py +0 -0
  53. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_mcp_live.py +0 -0
  54. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_spawning.py +0 -0
  55. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_subagents.py +0 -0
  56. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_trace.py +0 -0
  57. {boundflow_charter-0.1.0.dev122 → boundflow_charter-0.1.0.dev128}/tests/test_worker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boundflow-charter
3
- Version: 0.1.0.dev122
3
+ Version: 0.1.0.dev128
4
4
  Summary: Declarative, governed agents on BoundFlow — objective, tools, and policy as YAML.
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Homepage, https://github.com/boundflow/charter
@@ -40,6 +40,8 @@ Dynamic: license-file
40
40
 
41
41
  **The easiest way to build and manage production-ready agents.**
42
42
 
43
+ ![The Charter console: the fleet with an agent parked on an approval, the decision waiting on a human, and the policy and run history behind it](docs/console.gif)
44
+
43
45
  > **Pre-alpha, and in the open early.** The design is settled enough to read and
44
46
  > argue with; the code is not settled enough to run anything you care about.
45
47
  > Expect the configuration format to change.
@@ -463,16 +465,25 @@ decisions behind it, and [examples/](examples/) for complete configurations.
463
465
 
464
466
  ```bash
465
467
  python -m venv .venv
466
- .venv/bin/pip install -e ../boundflow/sdk/python # your BoundFlow checkout
467
- .venv/bin/pip install -e '.[dev]'
468
+ .venv/bin/pip install -e '.[dev,ui,otel]'
468
469
  .venv/bin/pytest
469
470
  ```
470
471
 
471
- End-to-end tests require a BoundFlow control plane and are excluded by default:
472
+ `boundflow` comes from PyPI; add `--pre --upgrade boundflow` to track its main, which
473
+ is what CI's second unit job does.
474
+
475
+ End-to-end tests need a control plane, and skip themselves without one. The compose
476
+ file CI uses runs the published image:
472
477
 
473
478
  ```bash
474
- docker compose -f ../boundflow/docker-compose.dist.yml up -d
475
- export BOUNDFLOW_API_KEY=<...>
479
+ docker compose -f .github/boundflow.compose.yml up -d --wait
480
+ key=$(docker compose -f .github/boundflow.compose.yml run --rm server \
481
+ -mode=provision -name=dev | awk '/^api_key/{print $NF}')
482
+
483
+ export BOUNDFLOW_API_KEY=$key
484
+ export BOUNDFLOW_SERVER_ADDRESS=http://localhost:50051
485
+ export BOUNDFLOW_WORKER_ADDRESS=http://localhost:50052
486
+ export CHARTER_STORE_URL=postgres://charter:charter@localhost:5434/charter
476
487
  pytest tests/e2e
477
488
  ```
478
489
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  **The easiest way to build and manage production-ready agents.**
4
4
 
5
+ ![The Charter console: the fleet with an agent parked on an approval, the decision waiting on a human, and the policy and run history behind it](docs/console.gif)
6
+
5
7
  > **Pre-alpha, and in the open early.** The design is settled enough to read and
6
8
  > argue with; the code is not settled enough to run anything you care about.
7
9
  > Expect the configuration format to change.
@@ -425,16 +427,25 @@ decisions behind it, and [examples/](examples/) for complete configurations.
425
427
 
426
428
  ```bash
427
429
  python -m venv .venv
428
- .venv/bin/pip install -e ../boundflow/sdk/python # your BoundFlow checkout
429
- .venv/bin/pip install -e '.[dev]'
430
+ .venv/bin/pip install -e '.[dev,ui,otel]'
430
431
  .venv/bin/pytest
431
432
  ```
432
433
 
433
- End-to-end tests require a BoundFlow control plane and are excluded by default:
434
+ `boundflow` comes from PyPI; add `--pre --upgrade boundflow` to track its main, which
435
+ is what CI's second unit job does.
436
+
437
+ End-to-end tests need a control plane, and skip themselves without one. The compose
438
+ file CI uses runs the published image:
434
439
 
435
440
  ```bash
436
- docker compose -f ../boundflow/docker-compose.dist.yml up -d
437
- export BOUNDFLOW_API_KEY=<...>
441
+ docker compose -f .github/boundflow.compose.yml up -d --wait
442
+ key=$(docker compose -f .github/boundflow.compose.yml run --rm server \
443
+ -mode=provision -name=dev | awk '/^api_key/{print $NF}')
444
+
445
+ export BOUNDFLOW_API_KEY=$key
446
+ export BOUNDFLOW_SERVER_ADDRESS=http://localhost:50051
447
+ export BOUNDFLOW_WORKER_ADDRESS=http://localhost:50052
448
+ export CHARTER_STORE_URL=postgres://charter:charter@localhost:5434/charter
438
449
  pytest tests/e2e
439
450
  ```
440
451
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boundflow-charter
3
- Version: 0.1.0.dev122
3
+ Version: 0.1.0.dev128
4
4
  Summary: Declarative, governed agents on BoundFlow — objective, tools, and policy as YAML.
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Homepage, https://github.com/boundflow/charter
@@ -40,6 +40,8 @@ Dynamic: license-file
40
40
 
41
41
  **The easiest way to build and manage production-ready agents.**
42
42
 
43
+ ![The Charter console: the fleet with an agent parked on an approval, the decision waiting on a human, and the policy and run history behind it](docs/console.gif)
44
+
43
45
  > **Pre-alpha, and in the open early.** The design is settled enough to read and
44
46
  > argue with; the code is not settled enough to run anything you care about.
45
47
  > Expect the configuration format to change.
@@ -463,16 +465,25 @@ decisions behind it, and [examples/](examples/) for complete configurations.
463
465
 
464
466
  ```bash
465
467
  python -m venv .venv
466
- .venv/bin/pip install -e ../boundflow/sdk/python # your BoundFlow checkout
467
- .venv/bin/pip install -e '.[dev]'
468
+ .venv/bin/pip install -e '.[dev,ui,otel]'
468
469
  .venv/bin/pytest
469
470
  ```
470
471
 
471
- End-to-end tests require a BoundFlow control plane and are excluded by default:
472
+ `boundflow` comes from PyPI; add `--pre --upgrade boundflow` to track its main, which
473
+ is what CI's second unit job does.
474
+
475
+ End-to-end tests need a control plane, and skip themselves without one. The compose
476
+ file CI uses runs the published image:
472
477
 
473
478
  ```bash
474
- docker compose -f ../boundflow/docker-compose.dist.yml up -d
475
- export BOUNDFLOW_API_KEY=<...>
479
+ docker compose -f .github/boundflow.compose.yml up -d --wait
480
+ key=$(docker compose -f .github/boundflow.compose.yml run --rm server \
481
+ -mode=provision -name=dev | awk '/^api_key/{print $NF}')
482
+
483
+ export BOUNDFLOW_API_KEY=$key
484
+ export BOUNDFLOW_SERVER_ADDRESS=http://localhost:50051
485
+ export BOUNDFLOW_WORKER_ADDRESS=http://localhost:50052
486
+ export CHARTER_STORE_URL=postgres://charter:charter@localhost:5434/charter
476
487
  pytest tests/e2e
477
488
  ```
478
489
 
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
  # apiVersion stay `charter`. PyPI refuses the bare name, and the prefix is how this
8
8
  # is branded anyway.
9
9
  name = "boundflow-charter"
10
- version = "0.1.0.dev122"
10
+ version = "0.1.0.dev128"
11
11
  description = "Declarative, governed agents on BoundFlow — objective, tools, and policy as YAML."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"