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.
Files changed (162) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +217 -0
  3. data/docs/APPLICATION_V1.md +253 -0
  4. data/docs/CAPABILITIES_V1.md +207 -0
  5. data/docs/CONSENSUS_V1.md +477 -0
  6. data/docs/CONTENT_ADDRESSING_V1.md +221 -0
  7. data/docs/DATAFLOW_V1.md +274 -0
  8. data/docs/MESH_V1.md +732 -0
  9. data/docs/NODE_CACHE_V1.md +324 -0
  10. data/docs/PROACTIVE_AGENTS_V1.md +293 -0
  11. data/docs/SERVER_V1.md +200 -1
  12. data/docs/SKILLS_V1.md +213 -0
  13. data/docs/STORE_ADAPTERS.md +41 -13
  14. data/docs/TEMPORAL_V1.md +174 -0
  15. data/docs/TOOLS_V1.md +347 -0
  16. data/docs/TRANSCRIPTION_V1.md +403 -0
  17. data/examples/README.md +37 -0
  18. data/examples/consensus.rb +239 -0
  19. data/examples/dataflow.rb +308 -0
  20. data/examples/elocal_webhook.rb +1 -0
  21. data/examples/incremental.rb +142 -0
  22. data/examples/llm_tools.rb +237 -0
  23. data/examples/mesh.rb +239 -0
  24. data/examples/mesh_discovery.rb +267 -0
  25. data/examples/mesh_gossip.rb +162 -0
  26. data/examples/ringcentral_routing.rb +1 -1
  27. data/lib/igniter/agents/ai/alert_agent.rb +111 -0
  28. data/lib/igniter/agents/ai/chain_agent.rb +127 -0
  29. data/lib/igniter/agents/ai/critic_agent.rb +163 -0
  30. data/lib/igniter/agents/ai/evaluator_agent.rb +193 -0
  31. data/lib/igniter/agents/ai/evolution_agent.rb +286 -0
  32. data/lib/igniter/agents/ai/health_check_agent.rb +122 -0
  33. data/lib/igniter/agents/ai/observer_agent.rb +184 -0
  34. data/lib/igniter/agents/ai/planner_agent.rb +210 -0
  35. data/lib/igniter/agents/ai/router_agent.rb +131 -0
  36. data/lib/igniter/agents/ai/self_reflection_agent.rb +175 -0
  37. data/lib/igniter/agents/observability/metrics_agent.rb +130 -0
  38. data/lib/igniter/agents/pipeline/batch_processor_agent.rb +131 -0
  39. data/lib/igniter/agents/proactive_agent.rb +208 -0
  40. data/lib/igniter/agents/reliability/retry_agent.rb +99 -0
  41. data/lib/igniter/agents/scheduling/cron_agent.rb +110 -0
  42. data/lib/igniter/agents.rb +56 -0
  43. data/lib/igniter/application/app_config.rb +32 -0
  44. data/lib/igniter/application/autoloader.rb +18 -0
  45. data/lib/igniter/application/generator.rb +157 -0
  46. data/lib/igniter/application/scheduler.rb +109 -0
  47. data/lib/igniter/application/yml_loader.rb +39 -0
  48. data/lib/igniter/application.rb +174 -0
  49. data/lib/igniter/capabilities.rb +68 -0
  50. data/lib/igniter/compiler/validators/dependencies_validator.rb +50 -2
  51. data/lib/igniter/compiler/validators/remote_validator.rb +2 -0
  52. data/lib/igniter/consensus/cluster.rb +183 -0
  53. data/lib/igniter/consensus/errors.rb +14 -0
  54. data/lib/igniter/consensus/executors.rb +43 -0
  55. data/lib/igniter/consensus/node.rb +320 -0
  56. data/lib/igniter/consensus/read_query.rb +30 -0
  57. data/lib/igniter/consensus/state_machine.rb +58 -0
  58. data/lib/igniter/consensus.rb +58 -0
  59. data/lib/igniter/content_addressing.rb +133 -0
  60. data/lib/igniter/contract.rb +12 -0
  61. data/lib/igniter/dataflow/aggregate_operators.rb +147 -0
  62. data/lib/igniter/dataflow/aggregate_state.rb +77 -0
  63. data/lib/igniter/dataflow/diff.rb +37 -0
  64. data/lib/igniter/dataflow/diff_state.rb +81 -0
  65. data/lib/igniter/dataflow/incremental_collection_result.rb +39 -0
  66. data/lib/igniter/dataflow/window_filter.rb +48 -0
  67. data/lib/igniter/dataflow.rb +65 -0
  68. data/lib/igniter/dsl/contract_builder.rb +71 -7
  69. data/lib/igniter/executor.rb +60 -0
  70. data/lib/igniter/extensions/capabilities.rb +39 -0
  71. data/lib/igniter/extensions/content_addressing.rb +5 -0
  72. data/lib/igniter/extensions/dataflow.rb +117 -0
  73. data/lib/igniter/extensions/incremental.rb +50 -0
  74. data/lib/igniter/extensions/mesh.rb +31 -0
  75. data/lib/igniter/fingerprint.rb +43 -0
  76. data/lib/igniter/incremental/formatter.rb +81 -0
  77. data/lib/igniter/incremental/result.rb +69 -0
  78. data/lib/igniter/incremental/tracker.rb +108 -0
  79. data/lib/igniter/incremental.rb +50 -0
  80. data/lib/igniter/integrations/llm/config.rb +48 -4
  81. data/lib/igniter/integrations/llm/executor.rb +221 -28
  82. data/lib/igniter/integrations/llm/providers/anthropic.rb +37 -4
  83. data/lib/igniter/integrations/llm/providers/openai.rb +34 -5
  84. data/lib/igniter/integrations/llm/transcription/providers/assemblyai.rb +200 -0
  85. data/lib/igniter/integrations/llm/transcription/providers/base.rb +122 -0
  86. data/lib/igniter/integrations/llm/transcription/providers/deepgram.rb +162 -0
  87. data/lib/igniter/integrations/llm/transcription/providers/openai.rb +102 -0
  88. data/lib/igniter/integrations/llm/transcription/transcriber.rb +145 -0
  89. data/lib/igniter/integrations/llm/transcription/transcript_result.rb +29 -0
  90. data/lib/igniter/integrations/llm.rb +37 -1
  91. data/lib/igniter/memory/agent_memory.rb +104 -0
  92. data/lib/igniter/memory/episode.rb +29 -0
  93. data/lib/igniter/memory/fact.rb +27 -0
  94. data/lib/igniter/memory/memorable.rb +90 -0
  95. data/lib/igniter/memory/reflection_cycle.rb +96 -0
  96. data/lib/igniter/memory/reflection_record.rb +28 -0
  97. data/lib/igniter/memory/store.rb +115 -0
  98. data/lib/igniter/memory/stores/in_memory.rb +136 -0
  99. data/lib/igniter/memory/stores/sqlite.rb +284 -0
  100. data/lib/igniter/memory.rb +80 -0
  101. data/lib/igniter/mesh/announcer.rb +55 -0
  102. data/lib/igniter/mesh/config.rb +45 -0
  103. data/lib/igniter/mesh/discovery.rb +39 -0
  104. data/lib/igniter/mesh/errors.rb +31 -0
  105. data/lib/igniter/mesh/gossip.rb +47 -0
  106. data/lib/igniter/mesh/peer.rb +21 -0
  107. data/lib/igniter/mesh/peer_registry.rb +51 -0
  108. data/lib/igniter/mesh/poller.rb +77 -0
  109. data/lib/igniter/mesh/router.rb +109 -0
  110. data/lib/igniter/mesh.rb +85 -0
  111. data/lib/igniter/metrics/collector.rb +131 -0
  112. data/lib/igniter/metrics/prometheus_exporter.rb +104 -0
  113. data/lib/igniter/metrics/snapshot.rb +8 -0
  114. data/lib/igniter/metrics.rb +37 -0
  115. data/lib/igniter/model/aggregate_node.rb +34 -0
  116. data/lib/igniter/model/collection_node.rb +3 -2
  117. data/lib/igniter/model/compute_node.rb +13 -0
  118. data/lib/igniter/model/remote_node.rb +18 -2
  119. data/lib/igniter/node_cache.rb +231 -0
  120. data/lib/igniter/replication/bootstrapper.rb +61 -0
  121. data/lib/igniter/replication/bootstrappers/gem.rb +32 -0
  122. data/lib/igniter/replication/bootstrappers/git.rb +39 -0
  123. data/lib/igniter/replication/bootstrappers/tarball.rb +56 -0
  124. data/lib/igniter/replication/expansion_plan.rb +38 -0
  125. data/lib/igniter/replication/expansion_planner.rb +142 -0
  126. data/lib/igniter/replication/manifest.rb +45 -0
  127. data/lib/igniter/replication/network_topology.rb +123 -0
  128. data/lib/igniter/replication/node_role.rb +42 -0
  129. data/lib/igniter/replication/reflective_replication_agent.rb +238 -0
  130. data/lib/igniter/replication/replication_agent.rb +87 -0
  131. data/lib/igniter/replication/role_registry.rb +73 -0
  132. data/lib/igniter/replication/ssh_session.rb +77 -0
  133. data/lib/igniter/replication.rb +54 -0
  134. data/lib/igniter/runtime/cache.rb +35 -6
  135. data/lib/igniter/runtime/execution.rb +26 -2
  136. data/lib/igniter/runtime/input_validator.rb +6 -2
  137. data/lib/igniter/runtime/node_state.rb +7 -2
  138. data/lib/igniter/runtime/resolver.rb +323 -31
  139. data/lib/igniter/runtime/stores/redis_store.rb +41 -4
  140. data/lib/igniter/server/client.rb +44 -1
  141. data/lib/igniter/server/config.rb +13 -6
  142. data/lib/igniter/server/handlers/event_handler.rb +4 -0
  143. data/lib/igniter/server/handlers/execute_handler.rb +6 -0
  144. data/lib/igniter/server/handlers/liveness_handler.rb +20 -0
  145. data/lib/igniter/server/handlers/manifest_handler.rb +34 -0
  146. data/lib/igniter/server/handlers/metrics_handler.rb +51 -0
  147. data/lib/igniter/server/handlers/peers_handler.rb +115 -0
  148. data/lib/igniter/server/handlers/readiness_handler.rb +47 -0
  149. data/lib/igniter/server/http_server.rb +54 -17
  150. data/lib/igniter/server/router.rb +54 -21
  151. data/lib/igniter/server/server_logger.rb +52 -0
  152. data/lib/igniter/server.rb +6 -0
  153. data/lib/igniter/skill/feedback.rb +116 -0
  154. data/lib/igniter/skill/output_schema.rb +110 -0
  155. data/lib/igniter/skill.rb +218 -0
  156. data/lib/igniter/temporal.rb +84 -0
  157. data/lib/igniter/tool/discoverable.rb +151 -0
  158. data/lib/igniter/tool.rb +52 -0
  159. data/lib/igniter/tool_registry.rb +144 -0
  160. data/lib/igniter/version.rb +1 -1
  161. data/lib/igniter.rb +17 -0
  162. metadata +128 -1
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Igniter
4
- VERSION = "0.4.3"
4
+ VERSION = "0.5.0"
5
5
  end
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.3
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