igniter 0.4.3 → 0.5.0
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.
- checksums.yaml +4 -4
- data/README.md +217 -0
- data/docs/APPLICATION_V1.md +253 -0
- data/docs/CAPABILITIES_V1.md +207 -0
- data/docs/CONSENSUS_V1.md +477 -0
- data/docs/CONTENT_ADDRESSING_V1.md +221 -0
- data/docs/DATAFLOW_V1.md +274 -0
- data/docs/MESH_V1.md +732 -0
- data/docs/NODE_CACHE_V1.md +324 -0
- data/docs/PROACTIVE_AGENTS_V1.md +293 -0
- data/docs/SERVER_V1.md +200 -1
- data/docs/SKILLS_V1.md +213 -0
- data/docs/STORE_ADAPTERS.md +41 -13
- data/docs/TEMPORAL_V1.md +174 -0
- data/docs/TOOLS_V1.md +347 -0
- data/docs/TRANSCRIPTION_V1.md +403 -0
- data/examples/README.md +37 -0
- data/examples/consensus.rb +239 -0
- data/examples/dataflow.rb +308 -0
- data/examples/elocal_webhook.rb +1 -0
- data/examples/incremental.rb +142 -0
- data/examples/llm_tools.rb +237 -0
- data/examples/mesh.rb +239 -0
- data/examples/mesh_discovery.rb +267 -0
- data/examples/mesh_gossip.rb +162 -0
- data/examples/ringcentral_routing.rb +1 -1
- data/lib/igniter/agents/ai/alert_agent.rb +111 -0
- data/lib/igniter/agents/ai/chain_agent.rb +127 -0
- data/lib/igniter/agents/ai/critic_agent.rb +163 -0
- data/lib/igniter/agents/ai/evaluator_agent.rb +193 -0
- data/lib/igniter/agents/ai/evolution_agent.rb +286 -0
- data/lib/igniter/agents/ai/health_check_agent.rb +122 -0
- data/lib/igniter/agents/ai/observer_agent.rb +184 -0
- data/lib/igniter/agents/ai/planner_agent.rb +210 -0
- data/lib/igniter/agents/ai/router_agent.rb +131 -0
- data/lib/igniter/agents/ai/self_reflection_agent.rb +175 -0
- data/lib/igniter/agents/observability/metrics_agent.rb +130 -0
- data/lib/igniter/agents/pipeline/batch_processor_agent.rb +131 -0
- data/lib/igniter/agents/proactive_agent.rb +208 -0
- data/lib/igniter/agents/reliability/retry_agent.rb +99 -0
- data/lib/igniter/agents/scheduling/cron_agent.rb +110 -0
- data/lib/igniter/agents.rb +56 -0
- data/lib/igniter/application/app_config.rb +32 -0
- data/lib/igniter/application/autoloader.rb +18 -0
- data/lib/igniter/application/generator.rb +157 -0
- data/lib/igniter/application/scheduler.rb +109 -0
- data/lib/igniter/application/yml_loader.rb +39 -0
- data/lib/igniter/application.rb +174 -0
- data/lib/igniter/capabilities.rb +68 -0
- data/lib/igniter/compiler/validators/dependencies_validator.rb +50 -2
- data/lib/igniter/compiler/validators/remote_validator.rb +2 -0
- data/lib/igniter/consensus/cluster.rb +183 -0
- data/lib/igniter/consensus/errors.rb +14 -0
- data/lib/igniter/consensus/executors.rb +43 -0
- data/lib/igniter/consensus/node.rb +320 -0
- data/lib/igniter/consensus/read_query.rb +30 -0
- data/lib/igniter/consensus/state_machine.rb +58 -0
- data/lib/igniter/consensus.rb +58 -0
- data/lib/igniter/content_addressing.rb +133 -0
- data/lib/igniter/contract.rb +12 -0
- data/lib/igniter/dataflow/aggregate_operators.rb +147 -0
- data/lib/igniter/dataflow/aggregate_state.rb +77 -0
- data/lib/igniter/dataflow/diff.rb +37 -0
- data/lib/igniter/dataflow/diff_state.rb +81 -0
- data/lib/igniter/dataflow/incremental_collection_result.rb +39 -0
- data/lib/igniter/dataflow/window_filter.rb +48 -0
- data/lib/igniter/dataflow.rb +65 -0
- data/lib/igniter/dsl/contract_builder.rb +71 -7
- data/lib/igniter/executor.rb +60 -0
- data/lib/igniter/extensions/capabilities.rb +39 -0
- data/lib/igniter/extensions/content_addressing.rb +5 -0
- data/lib/igniter/extensions/dataflow.rb +117 -0
- data/lib/igniter/extensions/incremental.rb +50 -0
- data/lib/igniter/extensions/mesh.rb +31 -0
- data/lib/igniter/fingerprint.rb +43 -0
- data/lib/igniter/incremental/formatter.rb +81 -0
- data/lib/igniter/incremental/result.rb +69 -0
- data/lib/igniter/incremental/tracker.rb +108 -0
- data/lib/igniter/incremental.rb +50 -0
- data/lib/igniter/integrations/llm/config.rb +48 -4
- data/lib/igniter/integrations/llm/executor.rb +221 -28
- data/lib/igniter/integrations/llm/providers/anthropic.rb +37 -4
- data/lib/igniter/integrations/llm/providers/openai.rb +34 -5
- data/lib/igniter/integrations/llm/transcription/providers/assemblyai.rb +200 -0
- data/lib/igniter/integrations/llm/transcription/providers/base.rb +122 -0
- data/lib/igniter/integrations/llm/transcription/providers/deepgram.rb +162 -0
- data/lib/igniter/integrations/llm/transcription/providers/openai.rb +102 -0
- data/lib/igniter/integrations/llm/transcription/transcriber.rb +145 -0
- data/lib/igniter/integrations/llm/transcription/transcript_result.rb +29 -0
- data/lib/igniter/integrations/llm.rb +37 -1
- data/lib/igniter/memory/agent_memory.rb +104 -0
- data/lib/igniter/memory/episode.rb +29 -0
- data/lib/igniter/memory/fact.rb +27 -0
- data/lib/igniter/memory/memorable.rb +90 -0
- data/lib/igniter/memory/reflection_cycle.rb +96 -0
- data/lib/igniter/memory/reflection_record.rb +28 -0
- data/lib/igniter/memory/store.rb +115 -0
- data/lib/igniter/memory/stores/in_memory.rb +136 -0
- data/lib/igniter/memory/stores/sqlite.rb +284 -0
- data/lib/igniter/memory.rb +80 -0
- data/lib/igniter/mesh/announcer.rb +55 -0
- data/lib/igniter/mesh/config.rb +45 -0
- data/lib/igniter/mesh/discovery.rb +39 -0
- data/lib/igniter/mesh/errors.rb +31 -0
- data/lib/igniter/mesh/gossip.rb +47 -0
- data/lib/igniter/mesh/peer.rb +21 -0
- data/lib/igniter/mesh/peer_registry.rb +51 -0
- data/lib/igniter/mesh/poller.rb +77 -0
- data/lib/igniter/mesh/router.rb +109 -0
- data/lib/igniter/mesh.rb +85 -0
- data/lib/igniter/metrics/collector.rb +131 -0
- data/lib/igniter/metrics/prometheus_exporter.rb +104 -0
- data/lib/igniter/metrics/snapshot.rb +8 -0
- data/lib/igniter/metrics.rb +37 -0
- data/lib/igniter/model/aggregate_node.rb +34 -0
- data/lib/igniter/model/collection_node.rb +3 -2
- data/lib/igniter/model/compute_node.rb +13 -0
- data/lib/igniter/model/remote_node.rb +18 -2
- data/lib/igniter/node_cache.rb +231 -0
- data/lib/igniter/replication/bootstrapper.rb +61 -0
- data/lib/igniter/replication/bootstrappers/gem.rb +32 -0
- data/lib/igniter/replication/bootstrappers/git.rb +39 -0
- data/lib/igniter/replication/bootstrappers/tarball.rb +56 -0
- data/lib/igniter/replication/expansion_plan.rb +38 -0
- data/lib/igniter/replication/expansion_planner.rb +142 -0
- data/lib/igniter/replication/manifest.rb +45 -0
- data/lib/igniter/replication/network_topology.rb +123 -0
- data/lib/igniter/replication/node_role.rb +42 -0
- data/lib/igniter/replication/reflective_replication_agent.rb +238 -0
- data/lib/igniter/replication/replication_agent.rb +87 -0
- data/lib/igniter/replication/role_registry.rb +73 -0
- data/lib/igniter/replication/ssh_session.rb +77 -0
- data/lib/igniter/replication.rb +54 -0
- data/lib/igniter/runtime/cache.rb +35 -6
- data/lib/igniter/runtime/execution.rb +26 -2
- data/lib/igniter/runtime/input_validator.rb +6 -2
- data/lib/igniter/runtime/node_state.rb +7 -2
- data/lib/igniter/runtime/resolver.rb +323 -31
- data/lib/igniter/runtime/stores/redis_store.rb +41 -4
- data/lib/igniter/server/client.rb +44 -1
- data/lib/igniter/server/config.rb +13 -6
- data/lib/igniter/server/handlers/event_handler.rb +4 -0
- data/lib/igniter/server/handlers/execute_handler.rb +6 -0
- data/lib/igniter/server/handlers/liveness_handler.rb +20 -0
- data/lib/igniter/server/handlers/manifest_handler.rb +34 -0
- data/lib/igniter/server/handlers/metrics_handler.rb +51 -0
- data/lib/igniter/server/handlers/peers_handler.rb +115 -0
- data/lib/igniter/server/handlers/readiness_handler.rb +47 -0
- data/lib/igniter/server/http_server.rb +54 -17
- data/lib/igniter/server/router.rb +54 -21
- data/lib/igniter/server/server_logger.rb +52 -0
- data/lib/igniter/server.rb +6 -0
- data/lib/igniter/skill/feedback.rb +116 -0
- data/lib/igniter/skill/output_schema.rb +110 -0
- data/lib/igniter/skill.rb +218 -0
- data/lib/igniter/temporal.rb +84 -0
- data/lib/igniter/tool/discoverable.rb +151 -0
- data/lib/igniter/tool.rb +52 -0
- data/lib/igniter/tool_registry.rb +144 -0
- data/lib/igniter/version.rb +1 -1
- data/lib/igniter.rb +17 -0
- metadata +128 -1
data/lib/igniter/tool.rb
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Igniter
|
|
4
|
+
# Base class for AI-callable tools.
|
|
5
|
+
#
|
|
6
|
+
# Extends +Igniter::Executor+ with declarative metadata for LLM function-calling
|
|
7
|
+
# (Anthropic, OpenAI) and capability-based access guards.
|
|
8
|
+
# Shares the discovery DSL with +Igniter::Skill+ via +Tool::Discoverable+.
|
|
9
|
+
#
|
|
10
|
+
# == Defining a tool
|
|
11
|
+
#
|
|
12
|
+
# class SearchWeb < Igniter::Tool
|
|
13
|
+
# description "Search the internet for current information"
|
|
14
|
+
#
|
|
15
|
+
# param :query, type: :string, required: true, desc: "The search query"
|
|
16
|
+
# param :max_results, type: :integer, default: 5, desc: "Max results to return"
|
|
17
|
+
#
|
|
18
|
+
# requires_capability :web_access
|
|
19
|
+
#
|
|
20
|
+
# def call(query:, max_results: 5)
|
|
21
|
+
# [{ title: "...", url: "...", snippet: "..." }]
|
|
22
|
+
# end
|
|
23
|
+
# end
|
|
24
|
+
#
|
|
25
|
+
# == Schema generation
|
|
26
|
+
#
|
|
27
|
+
# SearchWeb.tool_name # => "search_web"
|
|
28
|
+
# SearchWeb.to_schema # => { name:, description:, parameters: { ... } }
|
|
29
|
+
# SearchWeb.to_schema(:anthropic) # => { name:, description:, input_schema: { ... } }
|
|
30
|
+
# SearchWeb.to_schema(:openai) # => { type: "function", function: { ... } }
|
|
31
|
+
#
|
|
32
|
+
# == Compatibility
|
|
33
|
+
#
|
|
34
|
+
# Tool inherits +Igniter::Executor+ — usable as a compute node in any Contract graph.
|
|
35
|
+
class Tool < Executor
|
|
36
|
+
# Raised when a tool or skill requires a capability the calling agent does not have.
|
|
37
|
+
# Also aliased as +Igniter::Skill::CapabilityError+.
|
|
38
|
+
class CapabilityError < Igniter::Error; end
|
|
39
|
+
|
|
40
|
+
require_relative "tool/discoverable"
|
|
41
|
+
include Discoverable
|
|
42
|
+
|
|
43
|
+
def self.inherited(subclass)
|
|
44
|
+
super
|
|
45
|
+
# Tool subclasses always start with empty params and capabilities —
|
|
46
|
+
# each concrete tool declares its own. Only the description carries forward.
|
|
47
|
+
subclass.instance_variable_set(:@tool_params, [])
|
|
48
|
+
subclass.instance_variable_set(:@required_capabilities, [].freeze)
|
|
49
|
+
subclass.instance_variable_set(:@tool_description, @tool_description)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "tool"
|
|
4
|
+
require_relative "skill"
|
|
5
|
+
|
|
6
|
+
module Igniter
|
|
7
|
+
# Global registry for Igniter::Tool and Igniter::Skill classes.
|
|
8
|
+
#
|
|
9
|
+
# Both Tools (atomic operations) and Skills (agentic sub-processes) share the
|
|
10
|
+
# same discovery interface and are registered the same way. The registry does
|
|
11
|
+
# not distinguish between them — from a caller's perspective both are callable
|
|
12
|
+
# units described by name, description, and a parameter schema.
|
|
13
|
+
#
|
|
14
|
+
# == Scopes
|
|
15
|
+
#
|
|
16
|
+
# Every entry belongs to one of three scopes:
|
|
17
|
+
# :bundled — shipped with the core library
|
|
18
|
+
# :managed — installed from an external registry or package manager
|
|
19
|
+
# :workspace — local, app-specific (default)
|
|
20
|
+
#
|
|
21
|
+
# Scope does not affect capability filtering or schema generation unless you
|
|
22
|
+
# pass +scope:+ explicitly. All existing calls without +scope:+ continue to
|
|
23
|
+
# work exactly as before.
|
|
24
|
+
#
|
|
25
|
+
# == Registration
|
|
26
|
+
#
|
|
27
|
+
# Igniter::ToolRegistry.register(SearchWeb, WriteFile, ResearchSkill)
|
|
28
|
+
# Igniter::ToolRegistry.register(WeatherTool, scope: :bundled)
|
|
29
|
+
#
|
|
30
|
+
# == Discovery
|
|
31
|
+
#
|
|
32
|
+
# Igniter::ToolRegistry.all
|
|
33
|
+
# # => [SearchWeb, WriteFile, ResearchSkill, WeatherTool]
|
|
34
|
+
#
|
|
35
|
+
# Igniter::ToolRegistry.all(scope: :bundled)
|
|
36
|
+
# # => [WeatherTool]
|
|
37
|
+
#
|
|
38
|
+
# Igniter::ToolRegistry.tools_for(capabilities: [:web_access])
|
|
39
|
+
# Igniter::ToolRegistry.tools_for(capabilities: [:web_access], scope: :workspace)
|
|
40
|
+
#
|
|
41
|
+
# == Schema generation
|
|
42
|
+
#
|
|
43
|
+
# Igniter::ToolRegistry.schemas(:anthropic)
|
|
44
|
+
# Igniter::ToolRegistry.schemas(:openai, capabilities: [:web_access], scope: :managed)
|
|
45
|
+
module ToolRegistry
|
|
46
|
+
# Valid scope identifiers, ordered from least to most specific.
|
|
47
|
+
SCOPES = %i[bundled managed workspace].freeze
|
|
48
|
+
|
|
49
|
+
# Internal store: { tool_name_string => { klass: Class, scope: Symbol } }
|
|
50
|
+
@tools = {}
|
|
51
|
+
|
|
52
|
+
class << self
|
|
53
|
+
# Register one or more Tool or Skill subclasses.
|
|
54
|
+
#
|
|
55
|
+
# @param tool_classes [Array<Class>] Tool or Skill subclasses
|
|
56
|
+
# @param scope [Symbol] :bundled, :managed, or :workspace (default)
|
|
57
|
+
# @raise [ArgumentError] if a class is not discoverable or scope is invalid
|
|
58
|
+
def register(*tool_classes, scope: :workspace) # rubocop:disable Metrics/MethodLength
|
|
59
|
+
unless SCOPES.include?(scope)
|
|
60
|
+
raise ArgumentError, "Invalid scope #{scope.inspect}. Must be one of #{SCOPES.inspect}"
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
tool_classes.flatten.each do |klass|
|
|
64
|
+
unless discoverable?(klass)
|
|
65
|
+
raise ArgumentError,
|
|
66
|
+
"#{klass.inspect} must be an Igniter::Tool or Igniter::Skill subclass"
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
@tools[klass.tool_name] = { klass: klass, scope: scope }
|
|
70
|
+
end
|
|
71
|
+
self
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Look up a tool or skill by its snake_case name.
|
|
75
|
+
# @param name [String, Symbol]
|
|
76
|
+
# @return [Class, nil]
|
|
77
|
+
def find(name)
|
|
78
|
+
@tools[name.to_s]&.fetch(:klass)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# All registered classes, optionally filtered by scope.
|
|
82
|
+
#
|
|
83
|
+
# @param scope [Symbol, nil] :bundled, :managed, :workspace, or nil for all
|
|
84
|
+
# @return [Array<Class>]
|
|
85
|
+
def all(scope: nil)
|
|
86
|
+
entries_for(scope).map { |e| e[:klass] }
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Classes whose required capabilities are fully covered by +capabilities+.
|
|
90
|
+
# Tools/skills with no required capabilities are always included.
|
|
91
|
+
#
|
|
92
|
+
# @param capabilities [Array<Symbol>]
|
|
93
|
+
# @param scope [Symbol, nil]
|
|
94
|
+
# @return [Array<Class>]
|
|
95
|
+
def tools_for(capabilities: [], scope: nil)
|
|
96
|
+
allowed = capabilities.map(&:to_sym).to_set
|
|
97
|
+
matching = entries_for(scope).select do |e|
|
|
98
|
+
e[:klass].required_capabilities.all? { |c| allowed.include?(c) }
|
|
99
|
+
end
|
|
100
|
+
matching.map { |e| e[:klass] }
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# Generate schemas for the given provider.
|
|
104
|
+
# Optionally filter by capabilities and/or scope.
|
|
105
|
+
#
|
|
106
|
+
# @param provider [Symbol] :anthropic, :openai, or nil for intermediate
|
|
107
|
+
# @param capabilities [Array<Symbol>] optional capability filter
|
|
108
|
+
# @param scope [Symbol, nil] optional scope filter
|
|
109
|
+
# @return [Array<Hash>]
|
|
110
|
+
def schemas(provider = nil, capabilities: nil, scope: nil)
|
|
111
|
+
list = if capabilities
|
|
112
|
+
tools_for(capabilities: capabilities, scope: scope)
|
|
113
|
+
else
|
|
114
|
+
all(scope: scope)
|
|
115
|
+
end
|
|
116
|
+
list.map { |klass| klass.to_schema(provider) }
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# Number of registered classes (across all scopes).
|
|
120
|
+
def size = @tools.size
|
|
121
|
+
|
|
122
|
+
# True if nothing is registered.
|
|
123
|
+
def empty? = @tools.empty?
|
|
124
|
+
|
|
125
|
+
# Remove all registrations (primarily for tests).
|
|
126
|
+
def clear!
|
|
127
|
+
@tools = {}
|
|
128
|
+
self
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
private
|
|
132
|
+
|
|
133
|
+
def entries_for(scope)
|
|
134
|
+
scope ? @tools.values.select { |e| e[:scope] == scope } : @tools.values
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
# A class is discoverable if it is a Tool or Skill (includes Tool::Discoverable).
|
|
138
|
+
def discoverable?(klass)
|
|
139
|
+
klass.is_a?(Class) &&
|
|
140
|
+
(klass < Igniter::Tool || klass < Igniter::Skill)
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end
|
data/lib/igniter/version.rb
CHANGED
data/lib/igniter.rb
CHANGED
|
@@ -30,6 +30,23 @@ module Igniter
|
|
|
30
30
|
@execution_store = store
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
+
# TTL cache backend for compute nodes. nil = disabled (default).
|
|
34
|
+
# Set to Igniter::NodeCache::Memory.new (or a Redis-backed equivalent).
|
|
35
|
+
def node_cache
|
|
36
|
+
defined?(Igniter::NodeCache) ? Igniter::NodeCache.cache : nil
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def node_cache=(cache)
|
|
40
|
+
require_relative "igniter/node_cache"
|
|
41
|
+
Igniter::NodeCache.cache = cache
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# When true, auto-creates a CoalescingLock alongside the configured node cache.
|
|
45
|
+
def node_coalescing=(enabled)
|
|
46
|
+
require_relative "igniter/node_cache"
|
|
47
|
+
Igniter::NodeCache.coalescing_lock = enabled ? Igniter::NodeCache::CoalescingLock.new : nil
|
|
48
|
+
end
|
|
49
|
+
|
|
33
50
|
def register_executor(key, executor_class, **metadata)
|
|
34
51
|
executor_registry.register(key, executor_class, **metadata)
|
|
35
52
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: igniter
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexander
|
|
@@ -50,17 +50,29 @@ files:
|
|
|
50
50
|
- LICENSE.txt
|
|
51
51
|
- README.md
|
|
52
52
|
- docs/API_V2.md
|
|
53
|
+
- docs/APPLICATION_V1.md
|
|
53
54
|
- docs/ARCHITECTURE_V2.md
|
|
54
55
|
- docs/BACKLOG.md
|
|
55
56
|
- docs/BRANCHES_V1.md
|
|
57
|
+
- docs/CAPABILITIES_V1.md
|
|
56
58
|
- docs/COLLECTIONS_V1.md
|
|
59
|
+
- docs/CONSENSUS_V1.md
|
|
60
|
+
- docs/CONTENT_ADDRESSING_V1.md
|
|
61
|
+
- docs/DATAFLOW_V1.md
|
|
57
62
|
- docs/DISTRIBUTED_CONTRACTS_V1.md
|
|
58
63
|
- docs/EXECUTION_MODEL_V2.md
|
|
59
64
|
- docs/IGNITER_CONCEPTS.md
|
|
60
65
|
- docs/LLM_V1.md
|
|
66
|
+
- docs/MESH_V1.md
|
|
67
|
+
- docs/NODE_CACHE_V1.md
|
|
61
68
|
- docs/PATTERNS.md
|
|
69
|
+
- docs/PROACTIVE_AGENTS_V1.md
|
|
62
70
|
- docs/SERVER_V1.md
|
|
71
|
+
- docs/SKILLS_V1.md
|
|
63
72
|
- docs/STORE_ADAPTERS.md
|
|
73
|
+
- docs/TEMPORAL_V1.md
|
|
74
|
+
- docs/TOOLS_V1.md
|
|
75
|
+
- docs/TRANSCRIPTION_V1.md
|
|
64
76
|
- examples/README.md
|
|
65
77
|
- examples/agents.rb
|
|
66
78
|
- examples/async_store.rb
|
|
@@ -68,13 +80,21 @@ files:
|
|
|
68
80
|
- examples/collection.rb
|
|
69
81
|
- examples/collection_partial_failure.rb
|
|
70
82
|
- examples/composition.rb
|
|
83
|
+
- examples/consensus.rb
|
|
84
|
+
- examples/dataflow.rb
|
|
71
85
|
- examples/diagnostics.rb
|
|
72
86
|
- examples/differential.rb
|
|
73
87
|
- examples/distributed_server.rb
|
|
74
88
|
- examples/distributed_workflow.rb
|
|
75
89
|
- examples/effects.rb
|
|
90
|
+
- examples/elocal_webhook.rb
|
|
91
|
+
- examples/incremental.rb
|
|
76
92
|
- examples/invariants.rb
|
|
93
|
+
- examples/llm_tools.rb
|
|
77
94
|
- examples/marketing_ergonomics.rb
|
|
95
|
+
- examples/mesh.rb
|
|
96
|
+
- examples/mesh_discovery.rb
|
|
97
|
+
- examples/mesh_gossip.rb
|
|
78
98
|
- examples/order_pipeline.rb
|
|
79
99
|
- examples/provenance.rb
|
|
80
100
|
- examples/ringcentral_routing.rb
|
|
@@ -86,6 +106,29 @@ files:
|
|
|
86
106
|
- lib/igniter/agent/ref.rb
|
|
87
107
|
- lib/igniter/agent/runner.rb
|
|
88
108
|
- lib/igniter/agent/state_holder.rb
|
|
109
|
+
- lib/igniter/agents.rb
|
|
110
|
+
- lib/igniter/agents/ai/alert_agent.rb
|
|
111
|
+
- lib/igniter/agents/ai/chain_agent.rb
|
|
112
|
+
- lib/igniter/agents/ai/critic_agent.rb
|
|
113
|
+
- lib/igniter/agents/ai/evaluator_agent.rb
|
|
114
|
+
- lib/igniter/agents/ai/evolution_agent.rb
|
|
115
|
+
- lib/igniter/agents/ai/health_check_agent.rb
|
|
116
|
+
- lib/igniter/agents/ai/observer_agent.rb
|
|
117
|
+
- lib/igniter/agents/ai/planner_agent.rb
|
|
118
|
+
- lib/igniter/agents/ai/router_agent.rb
|
|
119
|
+
- lib/igniter/agents/ai/self_reflection_agent.rb
|
|
120
|
+
- lib/igniter/agents/observability/metrics_agent.rb
|
|
121
|
+
- lib/igniter/agents/pipeline/batch_processor_agent.rb
|
|
122
|
+
- lib/igniter/agents/proactive_agent.rb
|
|
123
|
+
- lib/igniter/agents/reliability/retry_agent.rb
|
|
124
|
+
- lib/igniter/agents/scheduling/cron_agent.rb
|
|
125
|
+
- lib/igniter/application.rb
|
|
126
|
+
- lib/igniter/application/app_config.rb
|
|
127
|
+
- lib/igniter/application/autoloader.rb
|
|
128
|
+
- lib/igniter/application/generator.rb
|
|
129
|
+
- lib/igniter/application/scheduler.rb
|
|
130
|
+
- lib/igniter/application/yml_loader.rb
|
|
131
|
+
- lib/igniter/capabilities.rb
|
|
89
132
|
- lib/igniter/compiler.rb
|
|
90
133
|
- lib/igniter/compiler/compiled_graph.rb
|
|
91
134
|
- lib/igniter/compiler/graph_compiler.rb
|
|
@@ -100,7 +143,22 @@ files:
|
|
|
100
143
|
- lib/igniter/compiler/validators/remote_validator.rb
|
|
101
144
|
- lib/igniter/compiler/validators/type_compatibility_validator.rb
|
|
102
145
|
- lib/igniter/compiler/validators/uniqueness_validator.rb
|
|
146
|
+
- lib/igniter/consensus.rb
|
|
147
|
+
- lib/igniter/consensus/cluster.rb
|
|
148
|
+
- lib/igniter/consensus/errors.rb
|
|
149
|
+
- lib/igniter/consensus/executors.rb
|
|
150
|
+
- lib/igniter/consensus/node.rb
|
|
151
|
+
- lib/igniter/consensus/read_query.rb
|
|
152
|
+
- lib/igniter/consensus/state_machine.rb
|
|
153
|
+
- lib/igniter/content_addressing.rb
|
|
103
154
|
- lib/igniter/contract.rb
|
|
155
|
+
- lib/igniter/dataflow.rb
|
|
156
|
+
- lib/igniter/dataflow/aggregate_operators.rb
|
|
157
|
+
- lib/igniter/dataflow/aggregate_state.rb
|
|
158
|
+
- lib/igniter/dataflow/diff.rb
|
|
159
|
+
- lib/igniter/dataflow/diff_state.rb
|
|
160
|
+
- lib/igniter/dataflow/incremental_collection_result.rb
|
|
161
|
+
- lib/igniter/dataflow/window_filter.rb
|
|
104
162
|
- lib/igniter/diagnostics.rb
|
|
105
163
|
- lib/igniter/diagnostics/auditing/report/console_formatter.rb
|
|
106
164
|
- lib/igniter/diagnostics/auditing/report/markdown_formatter.rb
|
|
@@ -131,19 +189,29 @@ files:
|
|
|
131
189
|
- lib/igniter/extensions.rb
|
|
132
190
|
- lib/igniter/extensions/auditing.rb
|
|
133
191
|
- lib/igniter/extensions/auditing/timeline.rb
|
|
192
|
+
- lib/igniter/extensions/capabilities.rb
|
|
193
|
+
- lib/igniter/extensions/content_addressing.rb
|
|
194
|
+
- lib/igniter/extensions/dataflow.rb
|
|
134
195
|
- lib/igniter/extensions/differential.rb
|
|
135
196
|
- lib/igniter/extensions/execution_report.rb
|
|
197
|
+
- lib/igniter/extensions/incremental.rb
|
|
136
198
|
- lib/igniter/extensions/introspection.rb
|
|
137
199
|
- lib/igniter/extensions/introspection/graph_formatter.rb
|
|
138
200
|
- lib/igniter/extensions/introspection/plan_formatter.rb
|
|
139
201
|
- lib/igniter/extensions/introspection/runtime_formatter.rb
|
|
140
202
|
- lib/igniter/extensions/invariants.rb
|
|
203
|
+
- lib/igniter/extensions/mesh.rb
|
|
141
204
|
- lib/igniter/extensions/provenance.rb
|
|
142
205
|
- lib/igniter/extensions/reactive.rb
|
|
143
206
|
- lib/igniter/extensions/reactive/engine.rb
|
|
144
207
|
- lib/igniter/extensions/reactive/matcher.rb
|
|
145
208
|
- lib/igniter/extensions/reactive/reaction.rb
|
|
146
209
|
- lib/igniter/extensions/saga.rb
|
|
210
|
+
- lib/igniter/fingerprint.rb
|
|
211
|
+
- lib/igniter/incremental.rb
|
|
212
|
+
- lib/igniter/incremental/formatter.rb
|
|
213
|
+
- lib/igniter/incremental/result.rb
|
|
214
|
+
- lib/igniter/incremental/tracker.rb
|
|
147
215
|
- lib/igniter/integrations/agents.rb
|
|
148
216
|
- lib/igniter/integrations/llm.rb
|
|
149
217
|
- lib/igniter/integrations/llm/config.rb
|
|
@@ -153,6 +221,12 @@ files:
|
|
|
153
221
|
- lib/igniter/integrations/llm/providers/base.rb
|
|
154
222
|
- lib/igniter/integrations/llm/providers/ollama.rb
|
|
155
223
|
- lib/igniter/integrations/llm/providers/openai.rb
|
|
224
|
+
- lib/igniter/integrations/llm/transcription/providers/assemblyai.rb
|
|
225
|
+
- lib/igniter/integrations/llm/transcription/providers/base.rb
|
|
226
|
+
- lib/igniter/integrations/llm/transcription/providers/deepgram.rb
|
|
227
|
+
- lib/igniter/integrations/llm/transcription/providers/openai.rb
|
|
228
|
+
- lib/igniter/integrations/llm/transcription/transcriber.rb
|
|
229
|
+
- lib/igniter/integrations/llm/transcription/transcript_result.rb
|
|
156
230
|
- lib/igniter/integrations/rails.rb
|
|
157
231
|
- lib/igniter/integrations/rails/cable_adapter.rb
|
|
158
232
|
- lib/igniter/integrations/rails/contract_job.rb
|
|
@@ -161,7 +235,32 @@ files:
|
|
|
161
235
|
- lib/igniter/integrations/rails/railtie.rb
|
|
162
236
|
- lib/igniter/integrations/rails/webhook_concern.rb
|
|
163
237
|
- lib/igniter/invariant.rb
|
|
238
|
+
- lib/igniter/memory.rb
|
|
239
|
+
- lib/igniter/memory/agent_memory.rb
|
|
240
|
+
- lib/igniter/memory/episode.rb
|
|
241
|
+
- lib/igniter/memory/fact.rb
|
|
242
|
+
- lib/igniter/memory/memorable.rb
|
|
243
|
+
- lib/igniter/memory/reflection_cycle.rb
|
|
244
|
+
- lib/igniter/memory/reflection_record.rb
|
|
245
|
+
- lib/igniter/memory/store.rb
|
|
246
|
+
- lib/igniter/memory/stores/in_memory.rb
|
|
247
|
+
- lib/igniter/memory/stores/sqlite.rb
|
|
248
|
+
- lib/igniter/mesh.rb
|
|
249
|
+
- lib/igniter/mesh/announcer.rb
|
|
250
|
+
- lib/igniter/mesh/config.rb
|
|
251
|
+
- lib/igniter/mesh/discovery.rb
|
|
252
|
+
- lib/igniter/mesh/errors.rb
|
|
253
|
+
- lib/igniter/mesh/gossip.rb
|
|
254
|
+
- lib/igniter/mesh/peer.rb
|
|
255
|
+
- lib/igniter/mesh/peer_registry.rb
|
|
256
|
+
- lib/igniter/mesh/poller.rb
|
|
257
|
+
- lib/igniter/mesh/router.rb
|
|
258
|
+
- lib/igniter/metrics.rb
|
|
259
|
+
- lib/igniter/metrics/collector.rb
|
|
260
|
+
- lib/igniter/metrics/prometheus_exporter.rb
|
|
261
|
+
- lib/igniter/metrics/snapshot.rb
|
|
164
262
|
- lib/igniter/model.rb
|
|
263
|
+
- lib/igniter/model/aggregate_node.rb
|
|
165
264
|
- lib/igniter/model/await_node.rb
|
|
166
265
|
- lib/igniter/model/branch_node.rb
|
|
167
266
|
- lib/igniter/model/collection_node.rb
|
|
@@ -173,6 +272,7 @@ files:
|
|
|
173
272
|
- lib/igniter/model/node.rb
|
|
174
273
|
- lib/igniter/model/output_node.rb
|
|
175
274
|
- lib/igniter/model/remote_node.rb
|
|
275
|
+
- lib/igniter/node_cache.rb
|
|
176
276
|
- lib/igniter/property_testing.rb
|
|
177
277
|
- lib/igniter/property_testing/formatter.rb
|
|
178
278
|
- lib/igniter/property_testing/generators.rb
|
|
@@ -185,6 +285,20 @@ files:
|
|
|
185
285
|
- lib/igniter/provenance/node_trace.rb
|
|
186
286
|
- lib/igniter/provenance/text_formatter.rb
|
|
187
287
|
- lib/igniter/registry.rb
|
|
288
|
+
- lib/igniter/replication.rb
|
|
289
|
+
- lib/igniter/replication/bootstrapper.rb
|
|
290
|
+
- lib/igniter/replication/bootstrappers/gem.rb
|
|
291
|
+
- lib/igniter/replication/bootstrappers/git.rb
|
|
292
|
+
- lib/igniter/replication/bootstrappers/tarball.rb
|
|
293
|
+
- lib/igniter/replication/expansion_plan.rb
|
|
294
|
+
- lib/igniter/replication/expansion_planner.rb
|
|
295
|
+
- lib/igniter/replication/manifest.rb
|
|
296
|
+
- lib/igniter/replication/network_topology.rb
|
|
297
|
+
- lib/igniter/replication/node_role.rb
|
|
298
|
+
- lib/igniter/replication/reflective_replication_agent.rb
|
|
299
|
+
- lib/igniter/replication/replication_agent.rb
|
|
300
|
+
- lib/igniter/replication/role_registry.rb
|
|
301
|
+
- lib/igniter/replication/ssh_session.rb
|
|
188
302
|
- lib/igniter/runtime.rb
|
|
189
303
|
- lib/igniter/runtime/cache.rb
|
|
190
304
|
- lib/igniter/runtime/collection_result.rb
|
|
@@ -219,13 +333,26 @@ files:
|
|
|
219
333
|
- lib/igniter/server/handlers/event_handler.rb
|
|
220
334
|
- lib/igniter/server/handlers/execute_handler.rb
|
|
221
335
|
- lib/igniter/server/handlers/health_handler.rb
|
|
336
|
+
- lib/igniter/server/handlers/liveness_handler.rb
|
|
337
|
+
- lib/igniter/server/handlers/manifest_handler.rb
|
|
338
|
+
- lib/igniter/server/handlers/metrics_handler.rb
|
|
339
|
+
- lib/igniter/server/handlers/peers_handler.rb
|
|
340
|
+
- lib/igniter/server/handlers/readiness_handler.rb
|
|
222
341
|
- lib/igniter/server/handlers/status_handler.rb
|
|
223
342
|
- lib/igniter/server/http_server.rb
|
|
224
343
|
- lib/igniter/server/rack_app.rb
|
|
225
344
|
- lib/igniter/server/registry.rb
|
|
226
345
|
- lib/igniter/server/router.rb
|
|
346
|
+
- lib/igniter/server/server_logger.rb
|
|
347
|
+
- lib/igniter/skill.rb
|
|
348
|
+
- lib/igniter/skill/feedback.rb
|
|
349
|
+
- lib/igniter/skill/output_schema.rb
|
|
227
350
|
- lib/igniter/stream_loop.rb
|
|
228
351
|
- lib/igniter/supervisor.rb
|
|
352
|
+
- lib/igniter/temporal.rb
|
|
353
|
+
- lib/igniter/tool.rb
|
|
354
|
+
- lib/igniter/tool/discoverable.rb
|
|
355
|
+
- lib/igniter/tool_registry.rb
|
|
229
356
|
- lib/igniter/type_system.rb
|
|
230
357
|
- lib/igniter/version.rb
|
|
231
358
|
- sig/igniter.rbs
|