Module: Smith

Extended by:
Dry::Configurable
Defined in:
lib/smith.rb,
lib/smith/cli.rb,
lib/smith/tool.rb,
lib/smith/agent.rb,
lib/smith/error.rb,
lib/smith/event.rb,
lib/smith/tools.rb,
lib/smith/trace.rb,
lib/smith/types.rb,
lib/smith/budget.rb,
lib/smith/doctor.rb,
lib/smith/errors.rb,
lib/smith/events.rb,
lib/smith/models.rb,
lib/smith/context.rb,
lib/smith/pricing.rb,
lib/smith/railtie.rb,
lib/smith/version.rb,
lib/smith/workflow.rb,
lib/smith/artifacts.rb,
lib/smith/events/bus.rb,
lib/smith/guardrails.rb,
lib/smith/tool/policy.rb,
lib/smith/tools/think.rb,
lib/smith/doctor/check.rb,
lib/smith/tool/capture.rb,
lib/smith/trace/logger.rb,
lib/smith/trace/memory.rb,
lib/smith/workflow/dsl.rb,
lib/smith/budget/ledger.rb,
lib/smith/doctor/report.rb,
lib/smith/agent/registry.rb,
lib/smith/artifacts/file.rb,
lib/smith/doctor/printer.rb,
lib/smith/models/profile.rb,
lib/smith/workflow/claim.rb,
lib/smith/workflow/graph.rb,
lib/smith/agent/lifecycle.rb,
lib/smith/context/session.rb,
lib/smith/workflow/router.rb,
lib/smith/artifacts/memory.rb,
lib/smith/doctor/installer.rb,
lib/smith/models/inference.rb,
lib/smith/tools/web_search.rb,
lib/smith/guardrails/runner.rb,
lib/smith/models/normalizer.rb,
lib/smith/tools/url_fetcher.rb,
lib/smith/workflow/parallel.rb,
lib/smith/workflow/pipeline.rb,
lib/smith/budget/reservation.rb,
lib/smith/doctor/checks/live.rb,
lib/smith/tool/compatibility.rb,
lib/smith/workflow/execution.rb,
lib/smith/workflow/graph_dsl.rb,
lib/smith/budget/ledger_state.rb,
lib/smith/doctor/checks/rails.rb,
lib/smith/events/subscription.rb,
lib/smith/exponential_backoff.rb,
lib/smith/workflow/branch_env.rb,
lib/smith/workflow/durability.rb,
lib/smith/workflow/identifier.rb,
lib/smith/workflow/run_result.rb,
lib/smith/workflow/transition.rb,
lib/smith/persistence_adapters.rb,
lib/smith/trace/open_telemetry.rb,
lib/smith/workflow/persistence.rb,
lib/smith/workflow/usage_entry.rb,
lib/smith/events/step_completed.rb,
lib/smith/workflow/agent_result.rb,
lib/smith/workflow/graph/report.rb,
lib/smith/agent/registry_binding.rb,
lib/smith/artifacts/scoped_store.rb,
lib/smith/budget/amount_contract.rb,
lib/smith/budget/decimal_context.rb,
lib/smith/doctor/checks/baseline.rb,
lib/smith/workflow/graph/metrics.rb,
lib/smith/workflow/graph/targets.rb,
lib/smith/workflow/message_batch.rb,
lib/smith/workflow/prepared_step.rb,
lib/smith/context/state_injection.rb,
lib/smith/guardrails/url_verifier.rb,
lib/smith/tool/budget_enforcement.rb,
lib/smith/tool/capability_builder.rb,
lib/smith/doctor/checks/durability.rb,
lib/smith/providers/openai/routing.rb,
lib/smith/workflow/execution_frame.rb,
lib/smith/workflow/graph/reference.rb,
lib/smith/workflow/graph/validator.rb,
lib/smith/workflow/retry_execution.rb,
lib/smith/workflow/step_completion.rb,
lib/smith/workflow/string_snapshot.rb,
lib/smith/budget/ledger_publication.rb,
lib/smith/doctor/checks/persistence.rb,
lib/smith/workflow/fanout_execution.rb,
lib/smith/workflow/graph/diagnostic.rb,
lib/smith/workflow/nested_execution.rb,
lib/smith/workflow/worker_execution.rb,
lib/smith/persistence_adapters/retry.rb,
lib/smith/providers/openai/responses.rb,
lib/smith/workflow/event_integration.rb,
lib/smith/workflow/message_admission.rb,
lib/smith/budget/reservation_contract.rb,
lib/smith/context/observation_masking.rb,
lib/smith/doctor/checks/configuration.rb,
lib/smith/doctor/checks/serialization.rb,
lib/smith/persistence_adapters/memory.rb,
lib/smith/workflow/budget_integration.rb,
lib/smith/workflow/data_volume_policy.rb,
lib/smith/workflow/deterministic_step.rb,
lib/smith/workflow/graph/reachability.rb,
lib/smith/workflow/optimization_state.rb,
lib/smith/workflow/parallel_execution.rb,
lib/smith/agent/registry/introspection.rb,
lib/smith/budget/amount_representation.rb,
lib/smith/persistence_payload_conflict.rb,
lib/smith/workflow/definition_identity.rb,
lib/smith/workflow/evaluator_optimizer.rb,
lib/smith/workflow/orchestration_state.rb,
lib/smith/workflow/orchestrator_worker.rb,
lib/smith/budget/public_state_validator.rb,
lib/smith/doctor/checks/models_registry.rb,
lib/smith/doctor/checks/openai_api_mode.rb,
lib/smith/workflow/artifact_integration.rb,
lib/smith/workflow/deadline_enforcement.rb,
lib/smith/budget/ledger_state_transition.rb,
lib/smith/workflow/graph/diagnostic_path.rb,
lib/smith/workflow/graph/fanout_contract.rb,
lib/smith/workflow/guardrail_integration.rb,
lib/smith/workflow/parallel/cancellation.rb,
lib/smith/workflow/graph/contract_helpers.rb,
lib/smith/workflow/parallel_agent_binding.rb,
lib/smith/workflow/prepared_step_dispatch.rb,
lib/smith/workflow/prepared_step_recovery.rb,
lib/smith/workflow/split_step_persistence.rb,
lib/smith/agent/registry/mutation_boundary.rb,
lib/smith/persistence_adapters/cache_store.rb,
lib/smith/persistence_adapters/rails_cache.rb,
lib/smith/persistence_adapters/redis_store.rb,
lib/smith/workflow/deterministic_execution.rb,
lib/smith/workflow/graph/runtime_readiness.rb,
lib/smith/workflow/graph/state_diagnostics.rb,
lib/smith/workflow/parallel/root_execution.rb,
lib/smith/providers/openai/tools_extensions.rb,
lib/smith/workflow/message_value_normalizer.rb,
lib/smith/workflow/transition_actionability.rb,
lib/smith/doctor/checks/persistence_registry.rb,
lib/smith/workflow/execution_result_snapshot.rb,
lib/smith/workflow/graph/transition_contract.rb,
lib/smith/workflow/graph/transition_snapshot.rb,
lib/smith/workflow/parallel/nested_execution.rb,
lib/smith/workflow/graph/execution_successors.rb,
lib/smith/workflow/message_admission_boundary.rb,
lib/smith/workflow/parallel/execution_context.rb,
lib/generators/smith/install/install_generator.rb,
lib/smith/persistence_adapters/payload_version.rb,
lib/smith/workflow/graph/identifier_projection.rb,
lib/smith/workflow/graph/optimization_contract.rb,
lib/smith/workflow/execution_binding_resolution.rb,
lib/smith/workflow/graph/orchestration_contract.rb,
lib/smith/workflow/graph/transition_diagnostics.rb,
lib/smith/workflow/parallel/cancellation_signal.rb,
lib/smith/doctor/checks/persistence_capabilities.rb,
lib/smith/persistence_adapters/redis_exact_write.rb,
lib/smith/workflow/graph/retry_policy_diagnostic.rb,
lib/smith/workflow/prepared_step_execution_scope.rb,
lib/smith/workflow/graph/reachability_diagnostics.rb,
lib/smith/workflow/graph/runtime_readiness_report.rb,
lib/smith/workflow/prepared_step_execution_result.rb,
lib/smith/agent/registry/execution_binding_capture.rb,
lib/smith/persistence_adapters/active_record_store.rb,
lib/smith/persistence_adapters/redis_client_access.rb,
lib/smith/persistence_adapters/version_expectation.rb,
lib/smith/workflow/graph/runtime_readiness_metrics.rb,
lib/smith/workflow/split_step_persistence/boundary.rb,
lib/smith/workflow/split_step_persistence/payloads.rb,
lib/smith/workflow/split_step_persistence/recovery.rb,
lib/smith/workflow/split_step_persistence/execution.rb,
lib/smith/persistence_adapters/redis_versioned_write.rb,
lib/smith/workflow/definition_identity/class_methods.rb,
lib/smith/workflow/graph/runtime_binding_diagnostics.rb,
lib/smith/workflow/graph/runtime_readiness_traversal.rb,
lib/smith/workflow/split_step_persistence/checkpoint.rb,
lib/smith/workflow/graph/nested_readiness_diagnostics.rb,
lib/smith/workflow/split_step_persistence/inheritance.rb,
lib/smith/workflow/split_step_persistence/preparation.rb,
lib/smith/workflow/graph/transition_contract_attributes.rb,
lib/smith/persistence_adapters/active_record_exact_store.rb,
lib/smith/persistence_adapters/active_record_exact_write.rb,
lib/smith/workflow/prepared_step_execution_authorization.rb,
lib/smith/workflow/split_step_persistence/boundary_reset.rb,
lib/smith/workflow/split_step_persistence/dispatch_claim.rb,
lib/smith/workflow/split_step_persistence/state_snapshot.rb,
lib/smith/workflow/graph/runtime_readiness_report_builder.rb,
lib/smith/persistence_adapters/active_record_initial_write.rb,
lib/smith/workflow/split_step_persistence/checkpoint_state.rb,
lib/smith/workflow/graph/runtime_binding_diagnostic_builder.rb,
lib/smith/workflow/graph/transition_contract_configurations.rb,
lib/smith/workflow/split_step_persistence/dispatch_boundary.rb,
lib/smith/workflow/split_step_persistence/preparation_claim.rb,
lib/smith/workflow/split_step_persistence/recovery_boundary.rb,
lib/smith/workflow/split_step_persistence/subclass_boundary.rb,
lib/smith/persistence_adapters/active_record_exact_predicate.rb,
lib/smith/workflow/split_step_persistence/definition_boundary.rb,
lib/smith/workflow/split_step_persistence/preparation_payload.rb,
lib/smith/workflow/split_step_persistence/transition_contract.rb,
lib/smith/persistence_adapters/active_record_connection_errors.rb,
lib/smith/workflow/graph/transition_optimization_configuration.rb,
lib/smith/workflow/split_step_persistence/preparation_recovery.rb,
lib/smith/workflow/split_step_persistence/restart_safe_adapter.rb,
lib/smith/workflow/split_step_persistence/transaction_identity.rb,
lib/smith/workflow/split_step_persistence/dispatch_confirmation.rb,
lib/smith/workflow/split_step_persistence/dispatch_verification.rb,
lib/smith/workflow/split_step_persistence/execution_verification.rb,
lib/smith/workflow/split_step_persistence/recovery_class_methods.rb,
lib/smith/workflow/split_step_persistence/execution_authorization.rb,
lib/smith/workflow/split_step_persistence/replace_exact_signature.rb,
lib/smith/workflow/split_step_persistence/canonical_payload_digest.rb,
lib/smith/workflow/split_step_persistence/execution_result_capture.rb,
lib/smith/workflow/split_step_persistence/execution_binding_snapshot.rb,
lib/smith/workflow/split_step_persistence/execution_binding_collector.rb,
lib/smith/workflow/split_step_persistence/execution_workflow_snapshot.rb,
lib/smith/workflow/split_step_persistence/transition_contract_freezer.rb,
lib/smith/workflow/split_step_persistence/transition_contract_signature.rb,
lib/smith/workflow/split_step_persistence/transition_contract_structured_values.rb,
sig/smith.rbs

Defined Under Namespace

Modules: Artifacts, Budget, Doctor, Errors, Events, Models, PersistenceAdapters, Pricing, Providers, Tools, Trace, Types Classes: Agent, AgentError, AgentRegistryError, BlankAgentOutputError, BudgetExceeded, CLI, Context, DeadlineExceeded, DeterministicStepFailure, Error, Event, ExponentialBackoff, GuardrailFailed, Guardrails, InstallGenerator, MaxTransitionsExceeded, PersistenceIOError, PersistencePayloadConflict, PersistenceSchemaMismatch, PersistenceVersionConflict, Railtie, SeedMismatch, SerializationError, StepInProgressOnRestore, Tool, ToolGuardrailFailed, ToolPolicyDenied, UnresolvedTransitionError, Workflow, WorkflowError

Constant Summary collapse

VERSION =

Returns:

  • (String)
"0.5.0"
EXECUTION_SEMANTICS_VERSION =

Returns:

  • (String)
"1"

Class Method Summary collapse

Class Method Details

.artifactsObject



114
115
116
# File 'lib/smith.rb', line 114

def self.artifacts
  scoped_artifacts || config.artifact_store || (@_default_artifacts ||= Artifacts::Memory.new)
end

.artifacts=(store) ⇒ Object



118
119
120
# File 'lib/smith.rb', line 118

def self.artifacts=(store)
  config.artifact_store = store
end

.persistence_adapterObject



130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/smith.rb', line 130

def self.persistence_adapter
  raw_adapter = config.persistence_adapter
  raw_options = config.persistence_options || {}
  signature = persistence_signature(raw_adapter, raw_options, config.test_mode)

  if defined?(@_persistence_adapter_signature) && @_persistence_adapter_signature == signature
    return @_persistence_adapter
  end

  @_persistence_adapter_signature = signature
  @_persistence_adapter = resolve_persistence_adapter(raw_adapter, raw_options)
end

.scoped_artifactsObject



122
123
124
# File 'lib/smith.rb', line 122

def self.scoped_artifacts
  Thread.current[:smith_scoped_artifacts]
end

.scoped_artifacts=(store) ⇒ Object



126
127
128
# File 'lib/smith.rb', line 126

def self.scoped_artifacts=(store)
  Thread.current[:smith_scoped_artifacts] = store
end