sbxloop 0.6.3__tar.gz → 0.6.4__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 (61) hide show
  1. {sbxloop-0.6.3 → sbxloop-0.6.4}/PKG-INFO +1 -1
  2. sbxloop-0.6.3/src/sbxloop/_vendor/sbxloop_worker-0.6.3-py3-none-any.whl → sbxloop-0.6.4/src/sbxloop/_vendor/sbxloop_worker-0.6.4-py3-none-any.whl +0 -0
  3. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/_version.py +2 -2
  4. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/cli/app.py +3 -0
  5. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/config.py +6 -0
  6. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/daemon/discord.py +353 -170
  7. sbxloop-0.6.4/src/sbxloop/daemon/discord_format.py +752 -0
  8. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/daemon/store.py +91 -44
  9. {sbxloop-0.6.3 → sbxloop-0.6.4}/.gitignore +0 -0
  10. {sbxloop-0.6.3 → sbxloop-0.6.4}/README.md +0 -0
  11. {sbxloop-0.6.3 → sbxloop-0.6.4}/hatch_build.py +0 -0
  12. {sbxloop-0.6.3 → sbxloop-0.6.4}/pyproject.toml +0 -0
  13. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/__init__.py +0 -0
  14. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/cli/__init__.py +0 -0
  15. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/cli/doctor.py +0 -0
  16. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/cli/models.py +0 -0
  17. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/cli/tui.py +0 -0
  18. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/daemon/__init__.py +0 -0
  19. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/daemon/backlog.py +0 -0
  20. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/daemon/github.py +0 -0
  21. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/daemon/loop.py +0 -0
  22. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/daemon/model.py +0 -0
  23. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/daemon/sources.py +0 -0
  24. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/deliver.py +0 -0
  25. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/__init__.py +0 -0
  26. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/engine.py +0 -0
  27. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/model.py +0 -0
  28. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/phases.py +0 -0
  29. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/prompts/__init__.py +0 -0
  30. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/prompts/decompose.md +0 -0
  31. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/prompts/execute.md +0 -0
  32. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/prompts/plan.md +0 -0
  33. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/prompts/scrutinize.md +0 -0
  34. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/prompts/steer.md +0 -0
  35. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/prompts/validate.md +0 -0
  36. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/engine/store.py +0 -0
  37. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/errors.py +0 -0
  38. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/events.py +0 -0
  39. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/gh/__init__.py +0 -0
  40. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/gh/ops.py +0 -0
  41. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/gh/reporter.py +0 -0
  42. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/hostgit.py +0 -0
  43. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/ids.py +0 -0
  44. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/policy.py +0 -0
  45. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/py.typed +0 -0
  46. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/sbx/__init__.py +0 -0
  47. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/sbx/bake.py +0 -0
  48. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/sbx/cli.py +0 -0
  49. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/sbx/conformance.py +0 -0
  50. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/sbx/models.py +0 -0
  51. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/sbx/pair.py +0 -0
  52. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/sbx/parse.py +0 -0
  53. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/sbx/provision.py +0 -0
  54. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/sbx/prune.py +0 -0
  55. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/sbx/sandbox.py +0 -0
  56. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/sbx/secretstate.py +0 -0
  57. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/toolchains.py +0 -0
  58. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/verifylint.py +0 -0
  59. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/worker/__init__.py +0 -0
  60. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/worker/client.py +0 -0
  61. {sbxloop-0.6.3 → sbxloop-0.6.4}/src/sbxloop/worker/wheel.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: sbxloop
3
- Version: 0.6.3
3
+ Version: 0.6.4
4
4
  Summary: Agentic loop orchestration on Docker Sandboxes (sbx) with isolated credential domains
5
5
  Project-URL: Homepage, https://github.com/brettbergin/sbxloop
6
6
  Project-URL: Repository, https://github.com/brettbergin/sbxloop
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.6.3'
22
- __version_tuple__ = version_tuple = (0, 6, 3)
21
+ __version__ = version = '0.6.4'
22
+ __version_tuple__ = version_tuple = (0, 6, 4)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1648,6 +1648,9 @@ mem_warn = 90.0
1648
1648
  # thread_per_run = true
1649
1649
  # chronology_level = "normal" # quiet | normal | verbose
1650
1650
  # max_message_chars = 1900
1651
+ # embeds = true # headline / finished / status as embed cards
1652
+ # status_line = true # one per-run message edited as tasks progress
1653
+ # tool_batch_lines = 8 # consecutive tool calls per code block
1651
1654
  """
1652
1655
 
1653
1656
 
@@ -365,6 +365,12 @@ class DiscordConfig(_ConfigModel):
365
365
  chronology_level: ChronologyLevel = "normal"
366
366
  # Discord's hard cap is 2000; leave headroom for wrappers.
367
367
  max_message_chars: int = Field(default=1900, ge=200, le=2000)
368
+ # Rich output: embed cards for the run headline, finished report and
369
+ # `!sbx status`; a per-run status message edited in place as tasks
370
+ # progress; consecutive tool calls batched into one code block.
371
+ embeds: bool = True
372
+ status_line: bool = True
373
+ tool_batch_lines: int = Field(default=8, ge=1, le=40)
368
374
 
369
375
  @property
370
376
  def enabled(self) -> bool: