power-loop 5.2.1__tar.gz → 5.2.2__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 (104) hide show
  1. {power_loop-5.2.1 → power_loop-5.2.2}/PKG-INFO +1 -1
  2. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/__init__.py +1 -1
  3. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/pipeline.py +7 -0
  4. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop.egg-info/PKG-INFO +1 -1
  5. {power_loop-5.2.1 → power_loop-5.2.2}/LICENSE +0 -0
  6. {power_loop-5.2.1 → power_loop-5.2.2}/README.md +0 -0
  7. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/__init__.py +0 -0
  8. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/__init__.py +0 -0
  9. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/anthropic_factory.py +0 -0
  10. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/capabilities.py +0 -0
  11. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/interface.py +0 -0
  12. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/llm_factory.py +0 -0
  13. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/llm_tooling.py +0 -0
  14. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/llm_utils.py +0 -0
  15. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/multimodal.py +0 -0
  16. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/__init__.py +0 -0
  17. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/follow_up.py +0 -0
  18. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/sink.py +0 -0
  19. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/stateful_loop.py +0 -0
  20. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/system_prompt.py +0 -0
  21. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/types.py +0 -0
  22. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/__init__.py +0 -0
  23. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/errors.py +0 -0
  24. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/event_payloads.py +0 -0
  25. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/events.py +0 -0
  26. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/handlers.py +0 -0
  27. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/hook_contexts.py +0 -0
  28. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/hooks.py +0 -0
  29. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/messages.py +0 -0
  30. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/protocols.py +0 -0
  31. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/tools.py +0 -0
  32. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/__init__.py +0 -0
  33. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/_redact.py +0 -0
  34. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/jsonl_sink.py +0 -0
  35. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/logging_sink.py +0 -0
  36. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/mcp.py +0 -0
  37. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/metrics_sink.py +0 -0
  38. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/otel_sink.py +0 -0
  39. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/agent_context.py +0 -0
  40. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/events.py +0 -0
  41. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/hooks.py +0 -0
  42. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/phase.py +0 -0
  43. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/runner.py +0 -0
  44. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/state.py +0 -0
  45. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/py.typed +0 -0
  46. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/blackboard.py +0 -0
  47. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/budget.py +0 -0
  48. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/cancellation.py +0 -0
  49. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/compact.py +0 -0
  50. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/env.py +0 -0
  51. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/exec_backend.py +0 -0
  52. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/fold.py +0 -0
  53. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/fold_adapter.py +0 -0
  54. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/history_projector.py +0 -0
  55. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/history_sanitize.py +0 -0
  56. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/human_input.py +0 -0
  57. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/memory.py +0 -0
  58. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/notes.py +0 -0
  59. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/provider.py +0 -0
  60. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/representation.py +0 -0
  61. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/retry.py +0 -0
  62. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/runtime_state.py +0 -0
  63. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/session_store.py +0 -0
  64. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/skills.py +0 -0
  65. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/spec.py +0 -0
  66. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/__init__.py +0 -0
  67. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/backends/__init__.py +0 -0
  68. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/backends/mysql.py +0 -0
  69. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/backends/postgres.py +0 -0
  70. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/backends/sqlite.py +0 -0
  71. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/capabilities.py +0 -0
  72. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/db.py +0 -0
  73. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/dialect.py +0 -0
  74. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/factory.py +0 -0
  75. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/schema.py +0 -0
  76. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/store.py +0 -0
  77. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/types.py +0 -0
  78. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/structured.py +0 -0
  79. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/stub_provider.py +0 -0
  80. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/timers.py +0 -0
  81. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/__init__.py +0 -0
  82. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/blackboard.py +0 -0
  83. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/default_manifest.py +0 -0
  84. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/default_tools.py +0 -0
  85. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/registry.py +0 -0
  86. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/spawn_agent.py +0 -0
  87. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/__init__.py +0 -0
  88. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/api.py +0 -0
  89. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/engine.py +0 -0
  90. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/introspect.py +0 -0
  91. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/journal.py +0 -0
  92. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/result.py +0 -0
  93. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/resume.py +0 -0
  94. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/runner.py +0 -0
  95. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/spec.py +0 -0
  96. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/subprocess_executor.py +0 -0
  97. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/tool.py +0 -0
  98. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/worker.py +0 -0
  99. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop.egg-info/SOURCES.txt +0 -0
  100. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop.egg-info/dependency_links.txt +0 -0
  101. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop.egg-info/requires.txt +0 -0
  102. {power_loop-5.2.1 → power_loop-5.2.2}/power_loop.egg-info/top_level.txt +0 -0
  103. {power_loop-5.2.1 → power_loop-5.2.2}/pyproject.toml +0 -0
  104. {power_loop-5.2.1 → power_loop-5.2.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: power-loop
3
- Version: 5.2.1
3
+ Version: 5.2.2
4
4
  Summary: Embeddable agent execution kernel — LLM loop, hooks, events, tools, dynamic sub-agents.
5
5
  Author-email: zhangran <zhangran24@126.com>
6
6
  License: MIT
@@ -15,7 +15,7 @@ Stability tiers
15
15
  无版本承诺,可随时变更或删除。
16
16
  """
17
17
 
18
- __version__ = "5.2.1"
18
+ __version__ = "5.2.2"
19
19
 
20
20
  # Public LLM contract (SDK-free) re-exported so callers (e.g. writing llm.* hooks or
21
21
  # a custom LLMService) don't reach into the internal vendored transport package (H3.4).
@@ -1420,6 +1420,13 @@ class AgentPipeline:
1420
1420
  used_todo=used_todo,
1421
1421
  )
1422
1422
  await self.hooks.run_typed_async(HookPoint.ROUND_END, round_end)
1423
+ # Per-round usage row for TOOL rounds too. This was only emitted on the
1424
+ # no-tools paths above, so an agent session (where nearly every round calls
1425
+ # tools) persisted usage for just its final round — a 34-round leaf showed
1426
+ # exactly one usage_rounds row. Totals were never wrong (session_stats bumps
1427
+ # from the run's in-memory aggregate at end-of-send); what was missing is the
1428
+ # per-round breakdown this table exists for.
1429
+ await self._emit_sink(self.sink.on_round_ended, round_idx, usage=usage)
1423
1430
 
1424
1431
  if not used_todo:
1425
1432
  self.rounds_since_todo += 1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: power-loop
3
- Version: 5.2.1
3
+ Version: 5.2.2
4
4
  Summary: Embeddable agent execution kernel — LLM loop, hooks, events, tools, dynamic sub-agents.
5
5
  Author-email: zhangran <zhangran24@126.com>
6
6
  License: MIT
File without changes
File without changes
File without changes
File without changes