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.
- {power_loop-5.2.1 → power_loop-5.2.2}/PKG-INFO +1 -1
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/__init__.py +1 -1
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/pipeline.py +7 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop.egg-info/PKG-INFO +1 -1
- {power_loop-5.2.1 → power_loop-5.2.2}/LICENSE +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/README.md +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/__init__.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/__init__.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/anthropic_factory.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/capabilities.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/interface.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/llm_factory.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/llm_tooling.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/llm_utils.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/_vendor/llm_client/multimodal.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/__init__.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/follow_up.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/sink.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/stateful_loop.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/system_prompt.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/agent/types.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/__init__.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/errors.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/event_payloads.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/events.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/handlers.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/hook_contexts.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/hooks.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/messages.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/protocols.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contracts/tools.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/__init__.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/_redact.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/jsonl_sink.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/logging_sink.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/mcp.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/metrics_sink.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/contrib/otel_sink.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/agent_context.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/events.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/hooks.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/phase.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/runner.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/core/state.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/py.typed +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/blackboard.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/budget.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/cancellation.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/compact.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/env.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/exec_backend.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/fold.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/fold_adapter.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/history_projector.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/history_sanitize.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/human_input.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/memory.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/notes.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/provider.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/representation.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/retry.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/runtime_state.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/session_store.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/skills.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/spec.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/__init__.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/backends/__init__.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/backends/mysql.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/backends/postgres.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/backends/sqlite.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/capabilities.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/db.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/dialect.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/factory.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/schema.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/store.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/store/types.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/structured.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/stub_provider.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/runtime/timers.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/__init__.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/blackboard.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/default_manifest.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/default_tools.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/registry.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/tools/spawn_agent.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/__init__.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/api.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/engine.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/introspect.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/journal.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/result.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/resume.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/runner.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/spec.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/subprocess_executor.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/tool.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop/workflow/worker.py +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop.egg-info/SOURCES.txt +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop.egg-info/dependency_links.txt +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop.egg-info/requires.txt +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/power_loop.egg-info/top_level.txt +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/pyproject.toml +0 -0
- {power_loop-5.2.1 → power_loop-5.2.2}/setup.cfg +0 -0
|
@@ -15,7 +15,7 @@ Stability tiers
|
|
|
15
15
|
无版本承诺,可随时变更或删除。
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
|
-
__version__ = "5.2.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|