Module: SignalWire
- Defined in:
- lib/signalwire/runtime.rb,
lib/signalwire.rb,
lib/signalwire/logging.rb,
lib/signalwire/version.rb,
lib/signalwire/relay/call.rb,
lib/signalwire/pom/section.rb,
lib/signalwire/swml/schema.rb,
lib/signalwire/relay/action.rb,
lib/signalwire/relay/client.rb,
lib/signalwire/swml/service.rb,
lib/signalwire/relay/message.rb,
lib/signalwire/swml/document.rb,
lib/signalwire/prefabs/survey.rb,
lib/signalwire/prefabs/faq_bot.rb,
lib/signalwire/relay/constants.rb,
lib/signalwire/rest/pagination.rb,
lib/signalwire/agent/agent_base.rb,
lib/signalwire/datamap/data_map.rb,
lib/signalwire/rest/http_client.rb,
lib/signalwire/rest/rest_client.rb,
lib/signalwire/utils/serverless.rb,
lib/signalwire/prefabs/concierge.rb,
lib/signalwire/relay/relay_event.rb,
lib/signalwire/skills/skill_base.rb,
lib/signalwire/utils/schema_utils.rb,
lib/signalwire/core/logging_config.rb,
lib/signalwire/rest/namespaces/mfa.rb,
lib/signalwire/server/agent_server.rb,
lib/signalwire/skills/builtin/joke.rb,
lib/signalwire/skills/builtin/math.rb,
lib/signalwire/utils/url_validator.rb,
lib/signalwire/prefabs/receptionist.rb,
lib/signalwire/rest/namespaces/chat.rb,
lib/signalwire/rest/namespaces/logs.rb,
lib/signalwire/skills/skill_manager.rb,
lib/signalwire/prefabs/info_gatherer.rb,
lib/signalwire/rest/namespaces/video.rb,
lib/signalwire/skills/builtin/spider.rb,
lib/signalwire/skills/skill_registry.rb,
lib/signalwire/swaig/function_result.rb,
lib/signalwire/rest/namespaces/compat.rb,
lib/signalwire/rest/namespaces/fabric.rb,
lib/signalwire/rest/namespaces/lookup.rb,
lib/signalwire/rest/namespaces/pubsub.rb,
lib/signalwire/rest/namespaces/queues.rb,
lib/signalwire/pom/prompt_object_model.rb,
lib/signalwire/rest/namespaces/calling.rb,
lib/signalwire/rest/namespaces/project.rb,
lib/signalwire/rest/phone_call_handler.rb,
lib/signalwire/skills/builtin/datetime.rb,
lib/signalwire/contexts/context_builder.rb,
lib/signalwire/rest/namespaces/registry.rb,
lib/signalwire/security/session_manager.rb,
lib/signalwire/rest/namespaces/addresses.rb,
lib/signalwire/serverless/lambda_handler.rb,
lib/signalwire/skills/builtin/datasphere.rb,
lib/signalwire/skills/builtin/web_search.rb,
lib/signalwire/rest/namespaces/datasphere.rb,
lib/signalwire/rest/namespaces/recordings.rb,
lib/signalwire/security/webhook_validator.rb,
lib/signalwire/skills/builtin/google_maps.rb,
lib/signalwire/skills/builtin/mcp_gateway.rb,
lib/signalwire/skills/builtin/weather_api.rb,
lib/signalwire/rest/namespaces/short_codes.rb,
lib/signalwire/rest/namespaces/sip_profile.rb,
lib/signalwire/security/webhook_middleware.rb,
lib/signalwire/skills/builtin/claude_skills.rb,
lib/signalwire/skills/builtin/custom_skills.rb,
lib/signalwire/skills/builtin/info_gatherer.rb,
lib/signalwire/skills/builtin/swml_transfer.rb,
lib/signalwire/rest/namespaces/number_groups.rb,
lib/signalwire/rest/namespaces/phone_numbers.rb,
lib/signalwire/skills/builtin/wikipedia_search.rb,
lib/signalwire/rest/namespaces/imported_numbers.rb,
lib/signalwire/rest/namespaces/verified_callers.rb,
lib/signalwire/skills/builtin/api_ninjas_trivia.rb,
lib/signalwire/skills/builtin/native_vector_search.rb,
lib/signalwire/skills/builtin/play_background_file.rb,
lib/signalwire/skills/builtin/datasphere_serverless.rb
Overview
Copyright © 2025 SignalWire
Licensed under the MIT License. See LICENSE file in the project root for full license information.
Defined Under Namespace
Modules: Contexts, Core, Logging, POM, Prefabs, REST, Relay, Runtime, SWML, Security, Serverless, Skills, Swaig, Utils Classes: AgentBase, AgentServer, DataMap
Constant Summary collapse
- VERSION =
'2.0.0'
Class Method Summary collapse
-
.add_skill_directory(path) ⇒ void
Add a directory to search for skills.
-
.list_skills_with_params ⇒ Hash{String => Hash}
Get complete schema for all available skills, including parameter metadata.
-
.register_skill(skill_class) ⇒ void
Register a custom skill class with the global skill registry.
-
.RestClient(*args, **kwargs) ⇒ SignalWire::REST::RestClient
Construct a REST::RestClient instance.
Class Method Details
.add_skill_directory(path) ⇒ void
This method returns an undefined value.
Add a directory to search for skills.
Mirrors Python’s “signalwire.add_skill_directory(path)“ — delegates to the singleton SignalWire::Skills::SkillRegistry instance so third-party skill collections can be registered by path. Subsequent calls accumulate (de-duplicated) into a shared external paths list.
83 84 85 86 |
# File 'lib/signalwire.rb', line 83 def add_skill_directory(path) require_relative 'signalwire/skills/skill_registry' _signalwire_singleton_registry.add_skill_directory(path) end |
.list_skills_with_params ⇒ Hash{String => Hash}
Get complete schema for all available skills, including parameter metadata.
Mirrors Python’s “signalwire.list_skills_with_params()“. Keys are skill names; values describe metadata + parameter schema. Useful for GUI configuration tools, API documentation, or programmatic skill discovery.
96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/signalwire.rb', line 96 def list_skills_with_params require_relative 'signalwire/skills/skill_registry' if Skills::SkillRegistry.respond_to?(:get_all_skills_schema) Skills::SkillRegistry.get_all_skills_schema else # Fallback: list_skills returns names; pair them with empty params. Skills::SkillRegistry.list_skills.each_with_object({}) do |name, h| h[name] = { 'name' => name, 'parameters' => {} } end end end |
.register_skill(skill_class) ⇒ void
This method returns an undefined value.
Register a custom skill class with the global skill registry.
Mirrors Python’s “signalwire.register_skill(skill_class)“ — the Ruby singleton registry stores factories by name. The class is expected to expose a “::skill_name“ (or “SKILL_NAME“ constant) so we can derive the registration key.
60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/signalwire.rb', line 60 def register_skill(skill_class) require_relative 'signalwire/skills/skill_registry' name = if skill_class.respond_to?(:skill_name) skill_class.skill_name elsif skill_class.const_defined?(:SKILL_NAME) skill_class.const_get(:SKILL_NAME) else raise ArgumentError, "skill class #{skill_class} must define ::skill_name or SKILL_NAME" end Skills::SkillRegistry.register_skill(name, ->(params) { skill_class.new(params) }) end |
.RestClient(*args, **kwargs) ⇒ SignalWire::REST::RestClient
Construct a SignalWire::REST::RestClient instance.
Mirrors Python’s top-level “signalwire.RestClient(*args, **kwargs)“ factory — a thin wrapper that lazy-imports “signalwire.rest.RestClient“ and instantiates it. Supports both positional credentials (matching Go-style “RestClient(project, token, host)“) and keyword credentials (Ruby-idiomatic).
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/signalwire.rb', line 40 def RestClient(*args, **kwargs) require_relative 'signalwire/rest/rest_client' if args.length >= 3 && kwargs.empty? REST::RestClient.new(project: args[0], token: args[1], host: args[2]) elsif !args.empty? && kwargs.empty? raise ArgumentError, 'positional form requires (project, token, host)' else REST::RestClient.new(**kwargs) end end |