Module: Phronomy
- Defined in:
- lib/phronomy.rb,
lib/phronomy/eval.rb,
lib/phronomy/agent.rb,
lib/phronomy/event.rb,
lib/phronomy/metrics.rb,
lib/phronomy/testing.rb,
lib/phronomy/version.rb,
lib/phronomy/runnable.rb,
lib/phronomy/workflow.rb,
lib/phronomy/tools/mcp.rb,
lib/phronomy/agent/base.rb,
lib/phronomy/diagnostics.rb,
lib/phronomy/engine/task.rb,
lib/phronomy/eval/runner.rb,
lib/phronomy/eval/scorer.rb,
lib/phronomy/filter/base.rb,
lib/phronomy/llm_adapter.rb,
lib/phronomy/token_usage.rb,
lib/phronomy/tools/agent.rb,
lib/phronomy/agent/runner.rb,
lib/phronomy/eval/dataset.rb,
lib/phronomy/eval/metrics.rb,
lib/phronomy/tracing/base.rb,
lib/phronomy/vector_store.rb,
lib/phronomy/configuration.rb,
lib/phronomy/output_parser.rb,
lib/phronomy/engine/runtime.rb,
lib/phronomy/eval/eval_case.rb,
lib/phronomy/eval/comparison.rb,
lib/phronomy/workflow_runner.rb,
lib/phronomy/eval/eval_result.rb,
lib/phronomy/eval/scorer/base.rb,
lib/phronomy/knowledge_source.rb,
lib/phronomy/llm_adapter/base.rb,
lib/phronomy/state_store/base.rb,
lib/phronomy/workflow_context.rb,
lib/phronomy/engine/event_loop.rb,
lib/phronomy/engine/task_group.rb,
lib/phronomy/vector_store/base.rb,
lib/phronomy/agent/shared_state.rb,
lib/phronomy/engine/fsm_session.rb,
lib/phronomy/generator_verifier.rb,
lib/phronomy/invocation_context.rb,
lib/phronomy/output_parser/base.rb,
lib/phronomy/testing/fake_clock.rb,
lib/phronomy/agent/tool_executor.rb,
lib/phronomy/engine/task/backend.rb,
lib/phronomy/multi_agent/handoff.rb,
lib/phronomy/tools/vector_search.rb,
lib/phronomy/tracing/null_tracer.rb,
lib/phronomy/llm_adapter/ruby_llm.rb,
lib/phronomy/eval/scorer/llm_judge.rb,
lib/phronomy/state_store/in_memory.rb,
lib/phronomy/vector_store/pgvector.rb,
lib/phronomy/testing/fake_scheduler.rb,
lib/phronomy/vector_store/in_memory.rb,
lib/phronomy/eval/scorer/exact_match.rb,
lib/phronomy/tracing/langfuse_tracer.rb,
lib/phronomy/agent/concerns/retryable.rb,
lib/phronomy/agent/invocation_context.rb,
lib/phronomy/agent/invocation_session.rb,
lib/phronomy/engine/runtime/scheduler.rb,
lib/phronomy/multi_agent/orchestrator.rb,
lib/phronomy/vector_store/loader/base.rb,
lib/phronomy/agent/concerns/filterable.rb,
lib/phronomy/engine/task/fiber_backend.rb,
lib/phronomy/output_parser/json_parser.rb,
lib/phronomy/testing/scheduler_helpers.rb,
lib/phronomy/vector_store/redis_search.rb,
lib/phronomy/engine/runtime/timer_queue.rb,
lib/phronomy/engine/task/mapped_backend.rb,
lib/phronomy/engine/task/thread_backend.rb,
lib/phronomy/vector_store/async_backend.rb,
lib/phronomy/vector_store/splitter/base.rb,
lib/phronomy/agent/phase_machine_builder.rb,
lib/phronomy/agent/tool_call_intercepted.rb,
lib/phronomy/engine/concurrency/deadline.rb,
lib/phronomy/eval/scorer/includes_scorer.rb,
lib/phronomy/agent/context/knowledge/base.rb,
lib/phronomy/engine/runtime/task_registry.rb,
lib/phronomy/engine/runtime/timer_service.rb,
lib/phronomy/engine/task/deferred_backend.rb,
lib/phronomy/llm_context_window/assembler.rb,
lib/phronomy/multi_agent/team_coordinator.rb,
lib/phronomy/vector_store/embeddings/base.rb,
lib/phronomy/agent/context/capability/base.rb,
lib/phronomy/engine/runtime/fake_scheduler.rb,
lib/phronomy/engine/task/immediate_backend.rb,
lib/phronomy/tracing/open_telemetry_tracer.rb,
lib/phronomy/engine/concurrency/async_queue.rb,
lib/phronomy/engine/runtime/runtime_metrics.rb,
lib/phronomy/filter/prompt_injection_filter.rb,
lib/phronomy/multi_agent/parallel_tool_chat.rb,
lib/phronomy/vector_store/loader/csv_loader.rb,
lib/phronomy/workflow/phase_machine_builder.rb,
lib/phronomy/agent/before_completion_context.rb,
lib/phronomy/engine/runtime/thread_scheduler.rb,
lib/phronomy/llm_context_window/token_budget.rb,
lib/phronomy/output_parser/structured_parser.rb,
lib/phronomy/agent/concerns/before_completion.rb,
lib/phronomy/agent/concerns/error_translation.rb,
lib/phronomy/agent/suspended_session_registry.rb,
lib/phronomy/engine/concurrency/gate_registry.rb,
lib/phronomy/engine/concurrency/pool_registry.rb,
lib/phronomy/llm_context_window/token_estimator.rb,
lib/phronomy/engine/concurrency/concurrency_gate.rb,
lib/phronomy/vector_store/loader/markdown_loader.rb,
lib/phronomy/agent/context/capability/scope_policy.rb,
lib/phronomy/engine/concurrency/cancellation_scope.rb,
lib/phronomy/engine/concurrency/cancellation_token.rb,
lib/phronomy/vector_store/loader/plain_text_loader.rb,
lib/phronomy/engine/runtime/deterministic_scheduler.rb,
lib/phronomy/engine/runtime/scheduler_timer_adapter.rb,
lib/phronomy/agent/context/knowledge/entity_knowledge.rb,
lib/phronomy/agent/context/knowledge/static_knowledge.rb,
lib/phronomy/engine/concurrency/blocking_adapter_pool.rb,
lib/phronomy/llm_context_window/context_version_cache.rb,
lib/phronomy/vector_store/splitter/recursive_splitter.rb,
lib/phronomy/agent/context/instruction/prompt_template.rb,
lib/phronomy/vector_store/splitter/fixed_size_splitter.rb,
lib/phronomy/vector_store/embeddings/ruby_llm_embeddings.rb
Defined Under Namespace
Modules: Agent, Concurrency, Diagnostics, Eval, Filter, KnowledgeSource, LLMAdapter, LlmContextWindow, Metrics, MultiAgent, OutputParser, Runnable, StateStore, Testing, Tools, Tracing, VectorStore, WorkflowContext Classes: ActionTimeoutError, AuthenticationError, BackpressureError, CancellationError, Configuration, ConfigurationError, ContextLengthError, Error, Event, EventLoop, FSMSession, FilterBlockError, GeneratorVerifier, HandoffError, InvocationContext, LowConfidenceError, ParseError, PoolShutdownError, RateLimitError, RecursionLimitError, Runtime, SchedulerReentrancyError, ScopeTimeoutError, Task, TaskGroup, TimeoutError, TokenUsage, ToolError, TransportError, Workflow, WorkflowContextOwnershipError, WorkflowRunner
Constant Summary collapse
- VERSION =
"0.11.1"
Class Method Summary collapse
- .configuration ⇒ Object
- .configure {|configuration| ... } ⇒ Object
-
.reset_configuration! ⇒ Object
Resets the global Phronomy configuration to defaults.
-
.reset_runtime! ⇒ Object
Resets all Phronomy runtime state: configuration and the EventLoop singleton (if running).
-
.with_configuration {|config| ... } ⇒ Object
Yields the current Configuration object, then restores the original configuration on exit (even if the block raises).
Class Method Details
.configuration ⇒ Object
133 134 135 |
# File 'lib/phronomy.rb', line 133 def configuration @configuration ||= Configuration.new end |
.configure {|configuration| ... } ⇒ Object
137 138 139 |
# File 'lib/phronomy.rb', line 137 def configure yield configuration end |
.reset_configuration! ⇒ Object
Resets the global Phronomy configuration to defaults.
Intended for test suites only. Calling this in a production process will drop all runtime configuration (tracer, model, tokenizer, etc.) globally and immediately affect all subsequent agent and workflow calls.
Parallel test suites warning: When tests run in parallel (e.g.
parallel_tests or parallel_rspec), reset_configuration! in one
worker will clear configuration shared with other workers in the same
process. Prefer process-isolation strategies (forked workers) over
thread-based parallelism when using this method.
Typical usage in a sequential test suite:
after { Phronomy.reset_configuration! }
155 156 157 |
# File 'lib/phronomy.rb', line 155 def reset_configuration! @configuration = Configuration.new end |
.reset_runtime! ⇒ Object
Resets all Phronomy runtime state: configuration and the EventLoop singleton (if running).
Intended for test suites only. Stops any running EventLoop thread, clears the EventLoop singleton, and resets configuration to defaults. Call once before/after each example to ensure test isolation.
188 189 190 191 192 193 194 195 196 197 198 199 200 |
# File 'lib/phronomy.rb', line 188 def reset_runtime! # Do NOT stop the EventLoop here. Since Phase 2, all Agent#invoke calls # go through FSMSession + EventLoop. Stopping and restarting the EventLoop # on every after(:each) hook would add thread creation overhead per test. # run_via_event_loop and _invoke_via_fsm restart it lazily if it was reset. # # Preserve event_loop_stop_grace_seconds from the current configuration # so that test suites that set it to 0 (for fast teardown) keep that value # across configuration resets. prev_grace = @configuration&.event_loop_stop_grace_seconds @configuration = Configuration.new @configuration.event_loop_stop_grace_seconds = prev_grace if prev_grace end |
.with_configuration {|config| ... } ⇒ Object
Yields the current Configuration object, then restores the original configuration on exit (even if the block raises).
Intended for test helpers that need to temporarily override settings without permanently mutating the global configuration.
171 172 173 174 175 176 |
# File 'lib/phronomy.rb', line 171 def with_configuration original = @configuration&.dup yield configuration ensure @configuration = original end |