igniter 0.5.1 → 0.5.2

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 (1132) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +169 -215
  3. data/docs/README.md +12 -15
  4. data/docs/assets/README.md +8 -0
  5. data/docs/concepts/README.md +18 -0
  6. data/docs/concepts/igniter.md +119 -0
  7. data/docs/dev/README.md +48 -0
  8. data/docs/dev/agent-orchestra-dna.md +271 -0
  9. data/docs/dev/ai-agents-target-plan.md +178 -0
  10. data/docs/dev/application-target-plan.md +45 -0
  11. data/docs/dev/application-web-integration.md +59 -0
  12. data/docs/dev/application-web-poc-pattern-guide.md +167 -0
  13. data/docs/dev/architect-supervisor-bootstrap.md +322 -0
  14. data/docs/dev/architecture.md +20 -0
  15. data/docs/dev/cluster-target-plan.md +43 -0
  16. data/docs/dev/contract-persistence-target-plan.md +426 -0
  17. data/docs/dev/current-runtime-snapshot.md +73 -0
  18. data/docs/dev/data-ownership.md +29 -0
  19. data/docs/dev/document-rotation.md +51 -0
  20. data/docs/dev/embed-target-plan.md +51 -0
  21. data/docs/dev/execution-model.md +324 -0
  22. data/docs/dev/igniter-web-dsl-sketch.md +151 -0
  23. data/docs/dev/igniter-web-target-plan.md +56 -0
  24. data/docs/dev/mcp-adapter-package-spec.md +81 -0
  25. data/docs/dev/module-system.md +46 -0
  26. data/docs/dev/package-map.md +112 -0
  27. data/docs/guide/README.md +77 -0
  28. data/docs/guide/ai-and-tools.md +33 -0
  29. data/docs/guide/api-and-runtime.md +38 -0
  30. data/docs/guide/app.md +45 -0
  31. data/docs/guide/application-capsules.md +139 -0
  32. data/docs/guide/application-showcase-portfolio.md +181 -0
  33. data/docs/guide/cli.md +70 -0
  34. data/docs/guide/cluster.md +55 -0
  35. data/docs/guide/configuration.md +31 -0
  36. data/docs/guide/contract-class-dsl.md +154 -0
  37. data/docs/guide/core-runtime-features.md +34 -0
  38. data/docs/guide/core.md +43 -0
  39. data/docs/guide/credentials.md +51 -0
  40. data/docs/guide/deployment-modes.md +63 -0
  41. data/docs/guide/distributed-workflows.md +21 -0
  42. data/docs/guide/getting-started.md +49 -0
  43. data/docs/guide/how-tos.md +33 -0
  44. data/docs/guide/igniter-lang-foundation.md +133 -0
  45. data/docs/guide/integrations.md +47 -0
  46. data/docs/guide/interactive-app-structure.md +91 -0
  47. data/docs/guide/store-adapters.md +183 -0
  48. data/docs/research/README.md +131 -0
  49. data/docs/research/contract-persistence-landing-zone.md +126 -0
  50. data/docs/research/contract-persistence-organic-model.md +279 -0
  51. data/docs/research/contract-persistence-organic-model.ru.md +277 -0
  52. data/docs/research/horizon-protocol.md +180 -0
  53. data/docs/research/igniter-lang-convergence-report.md +338 -0
  54. data/docs/research/project-status-horizon-report.md +363 -0
  55. data/docs/research/vision-handoff-protocol.md +141 -0
  56. data/docs/research/wizard-type-spec-architecture.md +293 -0
  57. data/docs/research/wizard-type-spec-research-request.md +134 -0
  58. data/docs/store/README.md +7 -0
  59. data/docs/store/convergence-audit.md +901 -0
  60. data/examples/README.md +148 -65
  61. data/examples/catalog.rb +1374 -300
  62. data/examples/cluster/incident_workflow.rb +70 -0
  63. data/examples/cluster/incidents.rb +63 -0
  64. data/examples/cluster/mesh_diagnostics.rb +89 -0
  65. data/examples/cluster/remediation.rb +63 -0
  66. data/examples/cluster/routing.rb +65 -0
  67. data/examples/contracts/aggregates.rb +39 -0
  68. data/examples/contracts/auditing.rb +35 -0
  69. data/examples/contracts/basic_pricing.rb +31 -0
  70. data/examples/contracts/branching.rb +36 -0
  71. data/examples/contracts/build_effect_executor_pack.rb +88 -0
  72. data/examples/contracts/build_your_own_pack.rb +82 -0
  73. data/examples/contracts/capabilities.rb +34 -0
  74. data/examples/contracts/class_callable.rb +45 -0
  75. data/examples/contracts/class_pricing.rb +32 -0
  76. data/examples/contracts/collection.rb +44 -0
  77. data/examples/contracts/commerce.rb +44 -0
  78. data/examples/contracts/compose_your_own_packs.rb +110 -0
  79. data/examples/contracts/composition.rb +61 -0
  80. data/examples/contracts/content_addressing.rb +33 -0
  81. data/examples/contracts/contractable_service.rb +43 -0
  82. data/examples/contracts/contractable_shadow.rb +69 -0
  83. data/examples/contracts/create_pack.rb +105 -0
  84. data/examples/contracts/dataflow.rb +57 -0
  85. data/examples/contracts/debug.rb +32 -0
  86. data/examples/contracts/debug_pack_authoring.rb +31 -0
  87. data/examples/contracts/diagnostics.rb +33 -0
  88. data/examples/contracts/differential.rb +97 -0
  89. data/examples/contracts/effects.rb +34 -0
  90. data/examples/contracts/embed_class_registration.rb +40 -0
  91. data/examples/contracts/embed_human_sugar.rb +106 -0
  92. data/examples/contracts/formula.rb +32 -0
  93. data/examples/contracts/incremental.rb +44 -0
  94. data/examples/contracts/introspection.rb +48 -0
  95. data/examples/contracts/invariants.rb +54 -0
  96. data/examples/contracts/journal.rb +37 -0
  97. data/examples/contracts/lang_foundation.rb +37 -0
  98. data/examples/contracts/mcp.rb +62 -0
  99. data/examples/contracts/mcp_host.rb +55 -0
  100. data/examples/contracts/mcp_server.rb +25 -0
  101. data/examples/contracts/piecewise.rb +30 -0
  102. data/examples/contracts/provenance.rb +55 -0
  103. data/examples/contracts/reactive.rb +62 -0
  104. data/examples/contracts/saga.rb +56 -0
  105. data/examples/contracts/scale.rb +30 -0
  106. data/examples/contracts/step_result.rb +58 -0
  107. data/examples/run.rb +9 -9
  108. data/lib/igniter/cluster.rb +3 -0
  109. data/lib/igniter/contract.rb +3 -0
  110. data/lib/igniter/monorepo_packages.rb +8 -9
  111. data/lib/igniter/version.rb +5 -0
  112. data/lib/igniter/web.rb +3 -0
  113. data/lib/igniter.rb +46 -54
  114. data/packages/igniter-agents/README.md +37 -15
  115. data/packages/igniter-agents/lib/igniter/agents/agent_definition.rb +26 -0
  116. data/packages/igniter-agents/lib/igniter/agents/agent_run.rb +47 -0
  117. data/packages/igniter-agents/lib/igniter/agents/agent_turn.rb +34 -0
  118. data/packages/igniter-agents/lib/igniter/agents/runner.rb +56 -0
  119. data/packages/igniter-agents/lib/igniter/agents/tool_call.rb +26 -0
  120. data/packages/igniter-agents/lib/igniter/agents/trace_event.rb +24 -0
  121. data/packages/igniter-agents/lib/igniter/agents.rb +25 -15
  122. data/packages/igniter-agents/lib/igniter-agents.rb +0 -4
  123. data/packages/igniter-ai/README.md +35 -13
  124. data/packages/igniter-ai/lib/igniter/ai/client.rb +18 -0
  125. data/packages/igniter-ai/lib/igniter/ai/error.rb +14 -0
  126. data/packages/igniter-ai/lib/igniter/ai/model_request.rb +28 -0
  127. data/packages/igniter-ai/lib/igniter/ai/model_response.rb +31 -0
  128. data/packages/igniter-ai/lib/igniter/ai/providers/fake.rb +24 -0
  129. data/packages/igniter-ai/lib/igniter/ai/providers/openai_responses.rb +100 -0
  130. data/packages/igniter-ai/lib/igniter/ai/providers/recorded.rb +40 -0
  131. data/packages/igniter-ai/lib/igniter/ai/usage.rb +32 -0
  132. data/packages/igniter-ai/lib/igniter/ai.rb +14 -84
  133. data/packages/igniter-application/README.md +194 -0
  134. data/packages/igniter-application/lib/igniter/application/agent_definition.rb +38 -0
  135. data/packages/igniter-application/lib/igniter/application/agent_registry.rb +33 -0
  136. data/packages/igniter-application/lib/igniter/application/agent_runtime.rb +29 -0
  137. data/packages/igniter-application/lib/igniter/application/agents_builder.rb +26 -0
  138. data/packages/igniter-application/lib/igniter/application/ai_builder.rb +26 -0
  139. data/packages/igniter-application/lib/igniter/application/ai_provider_definition.rb +59 -0
  140. data/packages/igniter-application/lib/igniter/application/ai_registry.rb +34 -0
  141. data/packages/igniter-application/lib/igniter/application/application_assembly_plan.rb +67 -0
  142. data/packages/igniter-application/lib/igniter/application/application_blueprint.rb +227 -0
  143. data/packages/igniter-application/lib/igniter/application/application_capsule_report.rb +61 -0
  144. data/packages/igniter-application/lib/igniter/application/application_composition_report.rb +161 -0
  145. data/packages/igniter-application/lib/igniter/application/application_handoff_manifest.rb +100 -0
  146. data/packages/igniter-application/lib/igniter/application/application_host_activation_commit_readiness.rb +182 -0
  147. data/packages/igniter-application/lib/igniter/application/application_host_activation_dry_run_result.rb +190 -0
  148. data/packages/igniter-application/lib/igniter/application/application_host_activation_ledger_commit.rb +285 -0
  149. data/packages/igniter-application/lib/igniter/application/application_host_activation_ledger_verification.rb +301 -0
  150. data/packages/igniter-application/lib/igniter/application/application_host_activation_operation_digest.rb +68 -0
  151. data/packages/igniter-application/lib/igniter/application/application_host_activation_plan.rb +200 -0
  152. data/packages/igniter-application/lib/igniter/application/application_host_activation_plan_verification.rb +140 -0
  153. data/packages/igniter-application/lib/igniter/application/application_host_activation_readiness.rb +226 -0
  154. data/packages/igniter-application/lib/igniter/application/application_host_activation_receipt.rb +151 -0
  155. data/packages/igniter-application/lib/igniter/application/application_layout.rb +91 -0
  156. data/packages/igniter-application/lib/igniter/application/application_load_path.rb +38 -0
  157. data/packages/igniter-application/lib/igniter/application/application_load_report.rb +74 -0
  158. data/packages/igniter-application/lib/igniter/application/application_manifest.rb +65 -0
  159. data/packages/igniter-application/lib/igniter/application/application_structure_entry.rb +58 -0
  160. data/packages/igniter-application/lib/igniter/application/application_structure_plan.rb +128 -0
  161. data/packages/igniter-application/lib/igniter/application/application_transfer_applied_verification.rb +301 -0
  162. data/packages/igniter-application/lib/igniter/application/application_transfer_apply_plan.rb +167 -0
  163. data/packages/igniter-application/lib/igniter/application/application_transfer_apply_result.rb +321 -0
  164. data/packages/igniter-application/lib/igniter/application/application_transfer_bundle_artifact.rb +160 -0
  165. data/packages/igniter-application/lib/igniter/application/application_transfer_bundle_plan.rb +125 -0
  166. data/packages/igniter-application/lib/igniter/application/application_transfer_bundle_verification.rb +154 -0
  167. data/packages/igniter-application/lib/igniter/application/application_transfer_intake_plan.rb +195 -0
  168. data/packages/igniter-application/lib/igniter/application/application_transfer_inventory.rb +153 -0
  169. data/packages/igniter-application/lib/igniter/application/application_transfer_readiness.rb +260 -0
  170. data/packages/igniter-application/lib/igniter/application/application_transfer_receipt.rb +179 -0
  171. data/packages/igniter-application/lib/igniter/application/artifact_reference.rb +39 -0
  172. data/packages/igniter-application/lib/igniter/application/boot_phase.rb +27 -0
  173. data/packages/igniter-application/lib/igniter/application/boot_plan.rb +55 -0
  174. data/packages/igniter-application/lib/igniter/application/boot_report.rb +70 -0
  175. data/packages/igniter-application/lib/igniter/application/capsule_builder.rb +396 -0
  176. data/packages/igniter-application/lib/igniter/application/capsule_export.rb +26 -0
  177. data/packages/igniter-application/lib/igniter/application/capsule_import.rb +38 -0
  178. data/packages/igniter-application/lib/igniter/application/collection_invoker.rb +54 -0
  179. data/packages/igniter-application/lib/igniter/application/collection_transport_adapter.rb +37 -0
  180. data/packages/igniter-application/lib/igniter/application/compose_invoker.rb +51 -0
  181. data/packages/igniter-application/lib/igniter/application/compose_transport_adapter.rb +34 -0
  182. data/packages/igniter-application/lib/igniter/application/config.rb +86 -0
  183. data/packages/igniter-application/lib/igniter/application/config_builder.rb +69 -0
  184. data/packages/igniter-application/lib/igniter/application/contract_registry.rb +30 -0
  185. data/packages/igniter-application/lib/igniter/application/credential_definition.rb +65 -0
  186. data/packages/igniter-application/lib/igniter/application/credential_store.rb +68 -0
  187. data/packages/igniter-application/lib/igniter/application/embedded_host.rb +23 -0
  188. data/packages/igniter-application/lib/igniter/application/environment.rb +1071 -0
  189. data/packages/igniter-application/lib/igniter/application/feature_slice.rb +61 -0
  190. data/packages/igniter-application/lib/igniter/application/feature_slice_report.rb +43 -0
  191. data/packages/igniter-application/lib/igniter/application/file_backed_host_activation_ledger_adapter.rb +138 -0
  192. data/packages/igniter-application/lib/igniter/application/file_backed_installed_capsule_registry.rb +132 -0
  193. data/packages/igniter-application/lib/igniter/application/flow_declaration.rb +62 -0
  194. data/packages/igniter-application/lib/igniter/application/flow_event.rb +50 -0
  195. data/packages/igniter-application/lib/igniter/application/flow_session_snapshot.rb +98 -0
  196. data/packages/igniter-application/lib/igniter/application/installed_capsule_entry.rb +47 -0
  197. data/packages/igniter-application/lib/igniter/application/interface.rb +11 -0
  198. data/packages/igniter-application/lib/igniter/application/kernel.rb +385 -0
  199. data/packages/igniter-application/lib/igniter/application/lifecycle_plan_step.rb +38 -0
  200. data/packages/igniter-application/lib/igniter/application/manual_loader.rb +18 -0
  201. data/packages/igniter-application/lib/igniter/application/manual_scheduler.rb +15 -0
  202. data/packages/igniter-application/lib/igniter/application/memory_session_store.rb +33 -0
  203. data/packages/igniter-application/lib/igniter/application/missing_credential_error.rb +23 -0
  204. data/packages/igniter-application/lib/igniter/application/mount_intent.rb +48 -0
  205. data/packages/igniter-application/lib/igniter/application/mount_registration.rb +49 -0
  206. data/packages/igniter-application/lib/igniter/application/pending_action.rb +39 -0
  207. data/packages/igniter-application/lib/igniter/application/pending_input.rb +45 -0
  208. data/packages/igniter-application/lib/igniter/application/plan_executor.rb +93 -0
  209. data/packages/igniter-application/lib/igniter/application/profile.rb +178 -0
  210. data/packages/igniter-application/lib/igniter/application/provider.rb +19 -0
  211. data/packages/igniter-application/lib/igniter/application/provider_lifecycle_report.rb +72 -0
  212. data/packages/igniter-application/lib/igniter/application/provider_lifecycle_result.rb +54 -0
  213. data/packages/igniter-application/lib/igniter/application/provider_registration.rb +19 -0
  214. data/packages/igniter-application/lib/igniter/application/rack_host.rb +311 -0
  215. data/packages/igniter-application/lib/igniter/application/seam_lifecycle_result.rb +62 -0
  216. data/packages/igniter-application/lib/igniter/application/service_definition.rb +25 -0
  217. data/packages/igniter-application/lib/igniter/application/service_registry.rb +58 -0
  218. data/packages/igniter-application/lib/igniter/application/session_entry.rb +46 -0
  219. data/packages/igniter-application/lib/igniter/application/shutdown_plan.rb +45 -0
  220. data/packages/igniter-application/lib/igniter/application/shutdown_report.rb +54 -0
  221. data/packages/igniter-application/lib/igniter/application/snapshot.rb +35 -0
  222. data/packages/igniter-application/lib/igniter/application/transport_request.rb +40 -0
  223. data/packages/igniter-application/lib/igniter/application/transport_response.rb +22 -0
  224. data/packages/igniter-application/lib/igniter/application.rb +354 -0
  225. data/packages/igniter-application/lib/igniter-application.rb +3 -0
  226. data/packages/igniter-cluster/README.md +112 -5
  227. data/packages/igniter-cluster/lib/igniter/cluster/active_incident_set.rb +40 -0
  228. data/packages/igniter-cluster/lib/igniter/cluster/admission_policy.rb +158 -0
  229. data/packages/igniter-cluster/lib/igniter/cluster/admission_result.rb +47 -0
  230. data/packages/igniter-cluster/lib/igniter/cluster/capability_catalog.rb +66 -0
  231. data/packages/igniter-cluster/lib/igniter/cluster/capability_definition.rb +42 -0
  232. data/packages/igniter-cluster/lib/igniter/cluster/capability_query.rb +162 -0
  233. data/packages/igniter-cluster/lib/igniter/cluster/capability_router.rb +11 -0
  234. data/packages/igniter-cluster/lib/igniter/cluster/cluster_diagnostics_executor.rb +184 -0
  235. data/packages/igniter-cluster/lib/igniter/cluster/cluster_diagnostics_report.rb +49 -0
  236. data/packages/igniter-cluster/lib/igniter/cluster/cluster_event.rb +34 -0
  237. data/packages/igniter-cluster/lib/igniter/cluster/cluster_event_log.rb +27 -0
  238. data/packages/igniter-cluster/lib/igniter/cluster/cluster_incident.rb +42 -0
  239. data/packages/igniter-cluster/lib/igniter/cluster/decision_explanation.rb +31 -0
  240. data/packages/igniter-cluster/lib/igniter/cluster/direct_placement.rb +11 -0
  241. data/packages/igniter-cluster/lib/igniter/cluster/discovery_feed.rb +22 -0
  242. data/packages/igniter-cluster/lib/igniter/cluster/environment.rb +380 -0
  243. data/packages/igniter-cluster/lib/igniter/cluster/errors.rb +9 -0
  244. data/packages/igniter-cluster/lib/igniter/cluster/failover_plan.rb +45 -0
  245. data/packages/igniter-cluster/lib/igniter/cluster/failover_step.rb +32 -0
  246. data/packages/igniter-cluster/lib/igniter/cluster/health_policy.rb +124 -0
  247. data/packages/igniter-cluster/lib/igniter/cluster/incident_action.rb +49 -0
  248. data/packages/igniter-cluster/lib/igniter/cluster/incident_entry.rb +98 -0
  249. data/packages/igniter-cluster/lib/igniter/cluster/incident_executor.rb +145 -0
  250. data/packages/igniter-cluster/lib/igniter/cluster/incident_workflow.rb +64 -0
  251. data/packages/igniter-cluster/lib/igniter/cluster/kernel.rb +75 -0
  252. data/packages/igniter-cluster/lib/igniter/cluster/kernel_seams.rb +249 -0
  253. data/packages/igniter-cluster/lib/igniter/cluster/lease_grant.rb +40 -0
  254. data/packages/igniter-cluster/lib/igniter/cluster/lease_plan.rb +40 -0
  255. data/packages/igniter-cluster/lib/igniter/cluster/lease_policy.rb +96 -0
  256. data/packages/igniter-cluster/lib/igniter/cluster/membership_delta.rb +36 -0
  257. data/packages/igniter-cluster/lib/igniter/cluster/membership_feed.rb +24 -0
  258. data/packages/igniter-cluster/lib/igniter/cluster/membership_projection.rb +45 -0
  259. data/packages/igniter-cluster/lib/igniter/cluster/membership_snapshot.rb +64 -0
  260. data/packages/igniter-cluster/lib/igniter/cluster/memory_incident_registry.rb +169 -0
  261. data/packages/igniter-cluster/lib/igniter/cluster/memory_peer_registry.rb +24 -0
  262. data/packages/igniter-cluster/lib/igniter/cluster/mesh_admission.rb +24 -0
  263. data/packages/igniter-cluster/lib/igniter/cluster/mesh_admission_result.rb +40 -0
  264. data/packages/igniter-cluster/lib/igniter/cluster/mesh_execution_attempt.rb +51 -0
  265. data/packages/igniter-cluster/lib/igniter/cluster/mesh_execution_request.rb +71 -0
  266. data/packages/igniter-cluster/lib/igniter/cluster/mesh_execution_response.rb +28 -0
  267. data/packages/igniter-cluster/lib/igniter/cluster/mesh_execution_trace.rb +32 -0
  268. data/packages/igniter-cluster/lib/igniter/cluster/mesh_executor.rb +497 -0
  269. data/packages/igniter-cluster/lib/igniter/cluster/mesh_membership.rb +89 -0
  270. data/packages/igniter-cluster/lib/igniter/cluster/mesh_membership_event.rb +32 -0
  271. data/packages/igniter-cluster/lib/igniter/cluster/mesh_membership_source.rb +49 -0
  272. data/packages/igniter-cluster/lib/igniter/cluster/mesh_retry_policy.rb +42 -0
  273. data/packages/igniter-cluster/lib/igniter/cluster/mesh_trust_policy.rb +131 -0
  274. data/packages/igniter-cluster/lib/igniter/cluster/operator_timeline.rb +33 -0
  275. data/packages/igniter-cluster/lib/igniter/cluster/ownership_claim.rb +30 -0
  276. data/packages/igniter-cluster/lib/igniter/cluster/ownership_plan.rb +40 -0
  277. data/packages/igniter-cluster/lib/igniter/cluster/ownership_policy.rb +100 -0
  278. data/packages/igniter-cluster/lib/igniter/cluster/peer.rb +86 -0
  279. data/packages/igniter-cluster/lib/igniter/cluster/peer_discovery.rb +62 -0
  280. data/packages/igniter-cluster/lib/igniter/cluster/peer_health.rb +55 -0
  281. data/packages/igniter-cluster/lib/igniter/cluster/peer_profile.rb +102 -0
  282. data/packages/igniter-cluster/lib/igniter/cluster/peer_topology.rb +62 -0
  283. data/packages/igniter-cluster/lib/igniter/cluster/peer_view.rb +42 -0
  284. data/packages/igniter-cluster/lib/igniter/cluster/permissive_admission.rb +11 -0
  285. data/packages/igniter-cluster/lib/igniter/cluster/placement_decision.rb +38 -0
  286. data/packages/igniter-cluster/lib/igniter/cluster/placement_policy.rb +131 -0
  287. data/packages/igniter-cluster/lib/igniter/cluster/plan_action_result.rb +72 -0
  288. data/packages/igniter-cluster/lib/igniter/cluster/plan_execution_report.rb +57 -0
  289. data/packages/igniter-cluster/lib/igniter/cluster/plan_executor.rb +314 -0
  290. data/packages/igniter-cluster/lib/igniter/cluster/policy_admission.rb +18 -0
  291. data/packages/igniter-cluster/lib/igniter/cluster/policy_placement.rb +69 -0
  292. data/packages/igniter-cluster/lib/igniter/cluster/policy_router.rb +70 -0
  293. data/packages/igniter-cluster/lib/igniter/cluster/profile.rb +97 -0
  294. data/packages/igniter-cluster/lib/igniter/cluster/projection_executor.rb +42 -0
  295. data/packages/igniter-cluster/lib/igniter/cluster/projection_policy.rb +107 -0
  296. data/packages/igniter-cluster/lib/igniter/cluster/projection_report.rb +35 -0
  297. data/packages/igniter-cluster/lib/igniter/cluster/projection_stage.rb +32 -0
  298. data/packages/igniter-cluster/lib/igniter/cluster/rebalance_move.rb +30 -0
  299. data/packages/igniter-cluster/lib/igniter/cluster/rebalance_plan.rb +40 -0
  300. data/packages/igniter-cluster/lib/igniter/cluster/recovery_timeline.rb +33 -0
  301. data/packages/igniter-cluster/lib/igniter/cluster/registry_membership_source.rb +97 -0
  302. data/packages/igniter-cluster/lib/igniter/cluster/remediation_plan.rb +45 -0
  303. data/packages/igniter-cluster/lib/igniter/cluster/remediation_policy.rb +119 -0
  304. data/packages/igniter-cluster/lib/igniter/cluster/remediation_step.rb +44 -0
  305. data/packages/igniter-cluster/lib/igniter/cluster/route.rb +34 -0
  306. data/packages/igniter-cluster/lib/igniter/cluster/route_policy.rb +104 -0
  307. data/packages/igniter-cluster/lib/igniter/cluster/route_request.rb +61 -0
  308. data/packages/igniter-cluster/lib/igniter/cluster/topology_policy.rb +154 -0
  309. data/packages/igniter-cluster/lib/igniter/cluster/transport_adapter.rb +53 -0
  310. data/packages/igniter-cluster/lib/igniter/cluster.rb +94 -57
  311. data/packages/igniter-contracts/README.md +239 -0
  312. data/packages/igniter-contracts/lib/igniter/contracts/api.rb +92 -0
  313. data/packages/igniter-contracts/lib/igniter/contracts/assembly/baseline_pack.rb +141 -0
  314. data/packages/igniter-contracts/lib/igniter/contracts/assembly/const_pack.rb +29 -0
  315. data/packages/igniter-contracts/lib/igniter/contracts/assembly/dsl_keyword.rb +21 -0
  316. data/packages/igniter-contracts/lib/igniter/contracts/assembly/hook_result_policies.rb +47 -0
  317. data/packages/igniter-contracts/lib/igniter/contracts/assembly/hook_spec.rb +73 -0
  318. data/packages/igniter-contracts/lib/igniter/contracts/assembly/hook_specs.rb +74 -0
  319. data/packages/igniter-contracts/lib/igniter/contracts/assembly/kernel.rb +220 -0
  320. data/packages/igniter-contracts/lib/igniter/contracts/assembly/node_type.rb +26 -0
  321. data/packages/igniter-contracts/lib/igniter/contracts/assembly/ordered_registry.rb +55 -0
  322. data/packages/igniter-contracts/lib/igniter/contracts/assembly/pack.rb +13 -0
  323. data/packages/igniter-contracts/lib/igniter/contracts/assembly/pack_manifest.rb +131 -0
  324. data/packages/igniter-contracts/lib/igniter/contracts/assembly/path_access.rb +76 -0
  325. data/packages/igniter-contracts/lib/igniter/contracts/assembly/profile.rb +133 -0
  326. data/packages/igniter-contracts/lib/igniter/contracts/assembly/project_pack.rb +42 -0
  327. data/packages/igniter-contracts/lib/igniter/contracts/assembly/registry.rb +57 -0
  328. data/packages/igniter-contracts/lib/igniter/contracts/assembly/step_result_pack.rb +42 -0
  329. data/packages/igniter-contracts/lib/igniter/contracts/assembly.rb +18 -0
  330. data/packages/igniter-contracts/lib/igniter/contracts/contract.rb +135 -0
  331. data/packages/igniter-contracts/lib/igniter/contracts/contractable.rb +288 -0
  332. data/packages/igniter-contracts/lib/igniter/contracts/environment.rb +51 -0
  333. data/packages/igniter-contracts/lib/igniter/contracts/errors.rb +47 -0
  334. data/packages/igniter-contracts/lib/igniter/contracts/execution/baseline_normalizers.rb +23 -0
  335. data/packages/igniter-contracts/lib/igniter/contracts/execution/baseline_runtime.rb +55 -0
  336. data/packages/igniter-contracts/lib/igniter/contracts/execution/baseline_validators.rb +113 -0
  337. data/packages/igniter-contracts/lib/igniter/contracts/execution/builder.rb +43 -0
  338. data/packages/igniter-contracts/lib/igniter/contracts/execution/compilation_report.rb +46 -0
  339. data/packages/igniter-contracts/lib/igniter/contracts/execution/compiled_graph.rb +21 -0
  340. data/packages/igniter-contracts/lib/igniter/contracts/execution/compiler.rb +66 -0
  341. data/packages/igniter-contracts/lib/igniter/contracts/execution/const_runtime.rb +15 -0
  342. data/packages/igniter-contracts/lib/igniter/contracts/execution/diagnostics.rb +24 -0
  343. data/packages/igniter-contracts/lib/igniter/contracts/execution/diagnostics_report.rb +40 -0
  344. data/packages/igniter-contracts/lib/igniter/contracts/execution/diagnostics_section.rb +37 -0
  345. data/packages/igniter-contracts/lib/igniter/contracts/execution/effect_invocation.rb +26 -0
  346. data/packages/igniter-contracts/lib/igniter/contracts/execution/execution_request.rb +28 -0
  347. data/packages/igniter-contracts/lib/igniter/contracts/execution/execution_result.rb +32 -0
  348. data/packages/igniter-contracts/lib/igniter/contracts/execution/inline_executor.rb +19 -0
  349. data/packages/igniter-contracts/lib/igniter/contracts/execution/mutable_named_values.rb +52 -0
  350. data/packages/igniter-contracts/lib/igniter/contracts/execution/named_values.rb +48 -0
  351. data/packages/igniter-contracts/lib/igniter/contracts/execution/operation.rb +42 -0
  352. data/packages/igniter-contracts/lib/igniter/contracts/execution/runtime.rb +43 -0
  353. data/packages/igniter-contracts/lib/igniter/contracts/execution/step_result.rb +51 -0
  354. data/packages/igniter-contracts/lib/igniter/contracts/execution/step_result_diagnostics.rb +35 -0
  355. data/packages/igniter-contracts/lib/igniter/contracts/execution/step_result_runtime.rb +51 -0
  356. data/packages/igniter-contracts/lib/igniter/contracts/execution/step_result_validators.rb +44 -0
  357. data/packages/igniter-contracts/lib/igniter/contracts/execution/structured_dump.rb +49 -0
  358. data/packages/igniter-contracts/lib/igniter/contracts/execution/validation_finding.rb +28 -0
  359. data/packages/igniter-contracts/lib/igniter/contracts/execution/validation_report.rb +46 -0
  360. data/packages/igniter-contracts/lib/igniter/contracts/execution.rb +28 -0
  361. data/packages/igniter-contracts/lib/igniter/contracts.rb +54 -0
  362. data/packages/igniter-contracts/lib/igniter/lang/backend.rb +19 -0
  363. data/packages/igniter-contracts/lib/igniter/lang/backends/ruby.rb +42 -0
  364. data/packages/igniter-contracts/lib/igniter/lang/diagnostic_payload.rb +174 -0
  365. data/packages/igniter-contracts/lib/igniter/lang/metadata_carrier_manifest.rb +112 -0
  366. data/packages/igniter-contracts/lib/igniter/lang/metadata_manifest.rb +128 -0
  367. data/packages/igniter-contracts/lib/igniter/lang/receipt_payload.rb +152 -0
  368. data/packages/igniter-contracts/lib/igniter/lang/schema_compatibility_diagnostic.rb +300 -0
  369. data/packages/igniter-contracts/lib/igniter/lang/types.rb +84 -0
  370. data/packages/igniter-contracts/lib/igniter/lang/verification_report.rb +226 -0
  371. data/packages/igniter-contracts/lib/igniter/lang.rb +27 -0
  372. data/packages/igniter-contracts/lib/igniter-contracts.rb +3 -0
  373. data/packages/igniter-embed/README.md +360 -0
  374. data/packages/igniter-embed/lib/igniter/embed/config.rb +155 -0
  375. data/packages/igniter-embed/lib/igniter/embed/container.rb +165 -0
  376. data/packages/igniter-embed/lib/igniter/embed/contract_handle.rb +23 -0
  377. data/packages/igniter-embed/lib/igniter/embed/contract_naming.rb +38 -0
  378. data/packages/igniter-embed/lib/igniter/embed/contractable/acceptance.rb +52 -0
  379. data/packages/igniter-embed/lib/igniter/embed/contractable/adapters.rb +33 -0
  380. data/packages/igniter-embed/lib/igniter/embed/contractable/config.rb +234 -0
  381. data/packages/igniter-embed/lib/igniter/embed/contractable/runner.rb +393 -0
  382. data/packages/igniter-embed/lib/igniter/embed/contractable/sugar_builder.rb +145 -0
  383. data/packages/igniter-embed/lib/igniter/embed/contractable.rb +29 -0
  384. data/packages/igniter-embed/lib/igniter/embed/contracts_builder.rb +54 -0
  385. data/packages/igniter-embed/lib/igniter/embed/errors.rb +14 -0
  386. data/packages/igniter-embed/lib/igniter/embed/execution_envelope.rb +50 -0
  387. data/packages/igniter-embed/lib/igniter/embed/host_builder.rb +39 -0
  388. data/packages/igniter-embed/lib/igniter/embed/rails.rb +21 -0
  389. data/packages/igniter-embed/lib/igniter/embed/registry.rb +78 -0
  390. data/packages/igniter-embed/lib/igniter/embed/sugar_expansion.rb +152 -0
  391. data/packages/igniter-embed/lib/igniter/embed.rb +38 -0
  392. data/packages/igniter-embed/lib/igniter-embed.rb +3 -0
  393. data/packages/igniter-extensions/README.md +364 -4
  394. data/packages/igniter-extensions/lib/igniter/extensions/contracts/aggregate_pack.rb +103 -0
  395. data/packages/igniter-extensions/lib/igniter/extensions/contracts/audit/builder.rb +132 -0
  396. data/packages/igniter-extensions/lib/igniter/extensions/contracts/audit/event.rb +34 -0
  397. data/packages/igniter-extensions/lib/igniter/extensions/contracts/audit/snapshot.rb +44 -0
  398. data/packages/igniter-extensions/lib/igniter/extensions/contracts/audit_pack.rb +60 -0
  399. data/packages/igniter-extensions/lib/igniter/extensions/contracts/branch_pack.rb +199 -0
  400. data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities/declaration.rb +31 -0
  401. data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities/error.rb +35 -0
  402. data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities/policy.rb +20 -0
  403. data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities/report.rb +47 -0
  404. data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities/violation.rb +30 -0
  405. data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities_pack.rb +146 -0
  406. data/packages/igniter-extensions/lib/igniter/extensions/contracts/collection_pack.rb +212 -0
  407. data/packages/igniter-extensions/lib/igniter/extensions/contracts/commerce_pack.rb +91 -0
  408. data/packages/igniter-extensions/lib/igniter/extensions/contracts/compose_pack.rb +213 -0
  409. data/packages/igniter-extensions/lib/igniter/extensions/contracts/content_addressing/cache.rb +59 -0
  410. data/packages/igniter-extensions/lib/igniter/extensions/contracts/content_addressing/content_key.rb +63 -0
  411. data/packages/igniter-extensions/lib/igniter/extensions/contracts/content_addressing/declaration.rb +47 -0
  412. data/packages/igniter-extensions/lib/igniter/extensions/contracts/content_addressing_pack.rb +90 -0
  413. data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/profile.rb +196 -0
  414. data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/report.rb +85 -0
  415. data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/scaffold.rb +461 -0
  416. data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/scope.rb +79 -0
  417. data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/wizard.rb +269 -0
  418. data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/workflow.rb +189 -0
  419. data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/workflow_step.rb +51 -0
  420. data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/write_result.rb +48 -0
  421. data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/write_step.rb +63 -0
  422. data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/writer.rb +131 -0
  423. data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator_pack.rb +128 -0
  424. data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/aggregate_operators.rb +119 -0
  425. data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/aggregate_state.rb +60 -0
  426. data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/builder.rb +66 -0
  427. data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/collection_result.rb +70 -0
  428. data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/diff.rb +37 -0
  429. data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/item_result.rb +44 -0
  430. data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/result.rb +58 -0
  431. data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/session.rb +173 -0
  432. data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/window_filter.rb +49 -0
  433. data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow_pack.rb +66 -0
  434. data/packages/igniter-extensions/lib/igniter/extensions/contracts/debug/pack_audit.rb +181 -0
  435. data/packages/igniter-extensions/lib/igniter/extensions/contracts/debug/pack_snapshot.rb +46 -0
  436. data/packages/igniter-extensions/lib/igniter/extensions/contracts/debug/profile_snapshot.rb +50 -0
  437. data/packages/igniter-extensions/lib/igniter/extensions/contracts/debug/report.rb +50 -0
  438. data/packages/igniter-extensions/lib/igniter/extensions/contracts/debug_pack.rb +115 -0
  439. data/packages/igniter-extensions/lib/igniter/extensions/contracts/differential/divergence.rb +37 -0
  440. data/packages/igniter-extensions/lib/igniter/extensions/contracts/differential/formatter.rb +85 -0
  441. data/packages/igniter-extensions/lib/igniter/extensions/contracts/differential/report.rb +83 -0
  442. data/packages/igniter-extensions/lib/igniter/extensions/contracts/differential/runner.rb +136 -0
  443. data/packages/igniter-extensions/lib/igniter/extensions/contracts/differential_pack.rb +61 -0
  444. data/packages/igniter-extensions/lib/igniter/extensions/contracts/execution_report_pack.rb +38 -0
  445. data/packages/igniter-extensions/lib/igniter/extensions/contracts/incremental/formatter.rb +60 -0
  446. data/packages/igniter-extensions/lib/igniter/extensions/contracts/incremental/node_state.rb +30 -0
  447. data/packages/igniter-extensions/lib/igniter/extensions/contracts/incremental/result.rb +65 -0
  448. data/packages/igniter-extensions/lib/igniter/extensions/contracts/incremental/session.rb +146 -0
  449. data/packages/igniter-extensions/lib/igniter/extensions/contracts/incremental_pack.rb +40 -0
  450. data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/builder.rb +27 -0
  451. data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/cases_report.rb +47 -0
  452. data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/error.rb +34 -0
  453. data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/invariant.rb +30 -0
  454. data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/report.rb +45 -0
  455. data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/suite.rb +36 -0
  456. data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/violation.rb +39 -0
  457. data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants_pack.rb +88 -0
  458. data/packages/igniter-extensions/lib/igniter/extensions/contracts/journal_pack.rb +55 -0
  459. data/packages/igniter-extensions/lib/igniter/extensions/contracts/language/formula_pack.rb +185 -0
  460. data/packages/igniter-extensions/lib/igniter/extensions/contracts/language/piecewise_pack.rb +166 -0
  461. data/packages/igniter-extensions/lib/igniter/extensions/contracts/language/scale_pack.rb +147 -0
  462. data/packages/igniter-extensions/lib/igniter/extensions/contracts/lookup_pack.rb +50 -0
  463. data/packages/igniter-extensions/lib/igniter/extensions/contracts/mcp/creator_session.rb +105 -0
  464. data/packages/igniter-extensions/lib/igniter/extensions/contracts/mcp/tool_argument.rb +35 -0
  465. data/packages/igniter-extensions/lib/igniter/extensions/contracts/mcp/tool_definition.rb +33 -0
  466. data/packages/igniter-extensions/lib/igniter/extensions/contracts/mcp/tool_result.rb +28 -0
  467. data/packages/igniter-extensions/lib/igniter/extensions/contracts/mcp_pack.rb +335 -0
  468. data/packages/igniter-extensions/lib/igniter/extensions/contracts/provenance/builder.rb +80 -0
  469. data/packages/igniter-extensions/lib/igniter/extensions/contracts/provenance/lineage.rb +59 -0
  470. data/packages/igniter-extensions/lib/igniter/extensions/contracts/provenance/node_trace.rb +53 -0
  471. data/packages/igniter-extensions/lib/igniter/extensions/contracts/provenance/text_formatter.rb +62 -0
  472. data/packages/igniter-extensions/lib/igniter/extensions/contracts/provenance_pack.rb +52 -0
  473. data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/builder.rb +43 -0
  474. data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/dispatch_result.rb +59 -0
  475. data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/engine.rb +79 -0
  476. data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/event.rb +36 -0
  477. data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/matcher.rb +20 -0
  478. data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/plan.rb +58 -0
  479. data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/subscription.rb +29 -0
  480. data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive_pack.rb +169 -0
  481. data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/compensation.rb +25 -0
  482. data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/compensation_record.rb +28 -0
  483. data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/compensation_set.rb +47 -0
  484. data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/formatter.rb +39 -0
  485. data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/result.rb +56 -0
  486. data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/runner.rb +124 -0
  487. data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga_pack.rb +56 -0
  488. data/packages/igniter-extensions/lib/igniter/extensions/contracts.rb +445 -0
  489. data/packages/igniter-extensions/lib/igniter/extensions.rb +0 -2
  490. data/packages/igniter-hub/README.md +25 -0
  491. data/packages/igniter-hub/lib/igniter/hub/catalog_entry.rb +35 -0
  492. data/packages/igniter-hub/lib/igniter/hub/local_catalog.rb +51 -0
  493. data/packages/igniter-hub/lib/igniter/hub.rb +16 -0
  494. data/packages/igniter-hub/lib/igniter-hub.rb +3 -0
  495. data/packages/igniter-mcp-adapter/README.md +65 -0
  496. data/packages/igniter-mcp-adapter/exe/igniter-mcp-adapter +6 -0
  497. data/packages/igniter-mcp-adapter/lib/igniter/mcp/adapter/host.rb +226 -0
  498. data/packages/igniter-mcp-adapter/lib/igniter/mcp/adapter/server.rb +148 -0
  499. data/packages/igniter-mcp-adapter/lib/igniter/mcp/adapter.rb +40 -0
  500. data/packages/igniter-mcp-adapter/lib/igniter-mcp-adapter.rb +5 -0
  501. data/packages/igniter-web/README.md +539 -0
  502. data/packages/igniter-web/lib/igniter/web/api.rb +49 -0
  503. data/packages/igniter-web/lib/igniter/web/application.rb +99 -0
  504. data/packages/igniter-web/lib/igniter/web/application_web_mount.rb +162 -0
  505. data/packages/igniter-web/lib/igniter/web/arbre.rb +41 -0
  506. data/packages/igniter-web/lib/igniter/web/component.rb +103 -0
  507. data/packages/igniter-web/lib/igniter/web/components/view_action_node.rb +38 -0
  508. data/packages/igniter-web/lib/igniter/web/components/view_ask_node.rb +52 -0
  509. data/packages/igniter-web/lib/igniter/web/components/view_chat_node.rb +34 -0
  510. data/packages/igniter-web/lib/igniter/web/components/view_compare_node.rb +41 -0
  511. data/packages/igniter-web/lib/igniter/web/components/view_node.rb +30 -0
  512. data/packages/igniter-web/lib/igniter/web/components/view_screen.rb +34 -0
  513. data/packages/igniter-web/lib/igniter/web/components/view_stream_node.rb +32 -0
  514. data/packages/igniter-web/lib/igniter/web/components/view_zone.rb +26 -0
  515. data/packages/igniter-web/lib/igniter/web/components.rb +10 -0
  516. data/packages/igniter-web/lib/igniter/web/composer.rb +84 -0
  517. data/packages/igniter-web/lib/igniter/web/composition_finding.rb +16 -0
  518. data/packages/igniter-web/lib/igniter/web/composition_policy.rb +88 -0
  519. data/packages/igniter-web/lib/igniter/web/composition_preset.rb +131 -0
  520. data/packages/igniter-web/lib/igniter/web/composition_result.rb +27 -0
  521. data/packages/igniter-web/lib/igniter/web/flow_interaction_adapter.rb +104 -0
  522. data/packages/igniter-web/lib/igniter/web/flow_surface_projection.rb +121 -0
  523. data/packages/igniter-web/lib/igniter/web/interaction_target.rb +50 -0
  524. data/packages/igniter-web/lib/igniter/web/mount_context.rb +80 -0
  525. data/packages/igniter-web/lib/igniter/web/page.rb +110 -0
  526. data/packages/igniter-web/lib/igniter/web/record.rb +54 -0
  527. data/packages/igniter-web/lib/igniter/web/screen_spec.rb +109 -0
  528. data/packages/igniter-web/lib/igniter/web/surface_manifest.rb +370 -0
  529. data/packages/igniter-web/lib/igniter/web/surface_structure.rb +57 -0
  530. data/packages/igniter-web/lib/igniter/web/view_graph.rb +25 -0
  531. data/packages/igniter-web/lib/igniter/web/view_graph_renderer.rb +63 -0
  532. data/packages/igniter-web/lib/igniter/web/view_node.rb +37 -0
  533. data/packages/igniter-web/lib/igniter/web.rb +107 -0
  534. data/packages/igniter-web/lib/igniter-web.rb +3 -0
  535. metadata +531 -641
  536. data/bin/igniter-stack +0 -94
  537. data/examples/agent_orchestration.rb +0 -76
  538. data/examples/agents.rb +0 -151
  539. data/examples/async_store.rb +0 -47
  540. data/examples/basic_pricing.rb +0 -27
  541. data/examples/collection.rb +0 -43
  542. data/examples/collection_partial_failure.rb +0 -50
  543. data/examples/composition.rb +0 -39
  544. data/examples/consensus.rb +0 -241
  545. data/examples/dataflow.rb +0 -309
  546. data/examples/diagnostics.rb +0 -28
  547. data/examples/differential.rb +0 -161
  548. data/examples/distributed_server.rb +0 -94
  549. data/examples/distributed_workflow.rb +0 -52
  550. data/examples/effects.rb +0 -185
  551. data/examples/elocal_webhook.rb +0 -1
  552. data/examples/incremental.rb +0 -143
  553. data/examples/introspection.rb +0 -49
  554. data/examples/invariants.rb +0 -180
  555. data/examples/llm_tools.rb +0 -237
  556. data/examples/marketing_ergonomics.rb +0 -57
  557. data/examples/mesh.rb +0 -241
  558. data/examples/mesh_discovery.rb +0 -287
  559. data/examples/mesh_gossip.rb +0 -164
  560. data/examples/order_pipeline.rb +0 -163
  561. data/examples/provenance.rb +0 -122
  562. data/examples/reactive_auditing.rb +0 -50
  563. data/examples/ringcentral_routing.rb +0 -269
  564. data/examples/saga.rb +0 -110
  565. data/lib/igniter/stack.rb +0 -5
  566. data/packages/igniter-agents/lib/igniter/agent/mailbox.rb +0 -96
  567. data/packages/igniter-agents/lib/igniter/agent/message.rb +0 -21
  568. data/packages/igniter-agents/lib/igniter/agent/ref.rb +0 -87
  569. data/packages/igniter-agents/lib/igniter/agent/runner.rb +0 -141
  570. data/packages/igniter-agents/lib/igniter/agent/state_holder.rb +0 -23
  571. data/packages/igniter-agents/lib/igniter/agent.rb +0 -161
  572. data/packages/igniter-agents/lib/igniter/agents/observability/metrics_agent.rb +0 -130
  573. data/packages/igniter-agents/lib/igniter/agents/pipeline/batch_processor_agent.rb +0 -131
  574. data/packages/igniter-agents/lib/igniter/agents/proactive/alert_agent.rb +0 -111
  575. data/packages/igniter-agents/lib/igniter/agents/proactive/health_check_agent.rb +0 -122
  576. data/packages/igniter-agents/lib/igniter/agents/proactive_agent.rb +0 -208
  577. data/packages/igniter-agents/lib/igniter/agents/reliability/retry_agent.rb +0 -99
  578. data/packages/igniter-agents/lib/igniter/agents/scheduling/cron_agent.rb +0 -110
  579. data/packages/igniter-agents/lib/igniter/ai/agents/chain_agent.rb +0 -129
  580. data/packages/igniter-agents/lib/igniter/ai/agents/critic_agent.rb +0 -165
  581. data/packages/igniter-agents/lib/igniter/ai/agents/evaluator_agent.rb +0 -195
  582. data/packages/igniter-agents/lib/igniter/ai/agents/evolution_agent.rb +0 -288
  583. data/packages/igniter-agents/lib/igniter/ai/agents/observer_agent.rb +0 -186
  584. data/packages/igniter-agents/lib/igniter/ai/agents/planner_agent.rb +0 -212
  585. data/packages/igniter-agents/lib/igniter/ai/agents/router_agent.rb +0 -133
  586. data/packages/igniter-agents/lib/igniter/ai/agents/self_reflection_agent.rb +0 -177
  587. data/packages/igniter-agents/lib/igniter/ai/agents.rb +0 -25
  588. data/packages/igniter-agents/lib/igniter/registry.rb +0 -69
  589. data/packages/igniter-agents/lib/igniter/runtime/registry_agent_adapter.rb +0 -102
  590. data/packages/igniter-agents/lib/igniter/supervisor.rb +0 -170
  591. data/packages/igniter-ai/lib/igniter/ai/config.rb +0 -113
  592. data/packages/igniter-ai/lib/igniter/ai/context.rb +0 -74
  593. data/packages/igniter-ai/lib/igniter/ai/executor.rb +0 -352
  594. data/packages/igniter-ai/lib/igniter/ai/providers/anthropic.rb +0 -181
  595. data/packages/igniter-ai/lib/igniter/ai/providers/base.rb +0 -33
  596. data/packages/igniter-ai/lib/igniter/ai/providers/ollama.rb +0 -137
  597. data/packages/igniter-ai/lib/igniter/ai/providers/openai.rb +0 -182
  598. data/packages/igniter-ai/lib/igniter/ai/skill/feedback.rb +0 -116
  599. data/packages/igniter-ai/lib/igniter/ai/skill/output_schema.rb +0 -110
  600. data/packages/igniter-ai/lib/igniter/ai/skill/runtime_contract.rb +0 -87
  601. data/packages/igniter-ai/lib/igniter/ai/skill.rb +0 -107
  602. data/packages/igniter-ai/lib/igniter/ai/tool_registry.rb +0 -79
  603. data/packages/igniter-ai/lib/igniter/ai/transcription/providers/assemblyai.rb +0 -200
  604. data/packages/igniter-ai/lib/igniter/ai/transcription/providers/base.rb +0 -122
  605. data/packages/igniter-ai/lib/igniter/ai/transcription/providers/deepgram.rb +0 -162
  606. data/packages/igniter-ai/lib/igniter/ai/transcription/providers/openai.rb +0 -102
  607. data/packages/igniter-ai/lib/igniter/ai/transcription/transcriber.rb +0 -145
  608. data/packages/igniter-ai/lib/igniter/ai/transcription/transcript_result.rb +0 -29
  609. data/packages/igniter-app/README.md +0 -19
  610. data/packages/igniter-app/lib/igniter/app/app_config.rb +0 -43
  611. data/packages/igniter-app/lib/igniter/app/app_host.rb +0 -56
  612. data/packages/igniter-app/lib/igniter/app/app_host_config.rb +0 -27
  613. data/packages/igniter-app/lib/igniter/app/app_host_pack.rb +0 -13
  614. data/packages/igniter-app/lib/igniter/app/autoloader.rb +0 -18
  615. data/packages/igniter-app/lib/igniter/app/cluster_app_host.rb +0 -95
  616. data/packages/igniter-app/lib/igniter/app/cluster_app_host_config.rb +0 -78
  617. data/packages/igniter-app/lib/igniter/app/credentials/config_loader.rb +0 -152
  618. data/packages/igniter-app/lib/igniter/app/credentials/credential.rb +0 -48
  619. data/packages/igniter-app/lib/igniter/app/credentials/credential_policy.rb +0 -38
  620. data/packages/igniter-app/lib/igniter/app/credentials/events/credential_event.rb +0 -179
  621. data/packages/igniter-app/lib/igniter/app/credentials/events.rb +0 -12
  622. data/packages/igniter-app/lib/igniter/app/credentials/lease_request.rb +0 -153
  623. data/packages/igniter-app/lib/igniter/app/credentials/policies/ephemeral_lease_policy.rb +0 -35
  624. data/packages/igniter-app/lib/igniter/app/credentials/policies/local_only_policy.rb +0 -33
  625. data/packages/igniter-app/lib/igniter/app/credentials/policies.rb +0 -13
  626. data/packages/igniter-app/lib/igniter/app/credentials/store.rb +0 -21
  627. data/packages/igniter-app/lib/igniter/app/credentials/stores/file_store.rb +0 -114
  628. data/packages/igniter-app/lib/igniter/app/credentials/trail.rb +0 -254
  629. data/packages/igniter-app/lib/igniter/app/credentials.rb +0 -20
  630. data/packages/igniter-app/lib/igniter/app/dev_output_sync.rb +0 -4
  631. data/packages/igniter-app/lib/igniter/app/diagnostics/app_host_contributor.rb +0 -71
  632. data/packages/igniter-app/lib/igniter/app/diagnostics/cluster_app_host_contributor.rb +0 -97
  633. data/packages/igniter-app/lib/igniter/app/diagnostics/credential_contributor.rb +0 -66
  634. data/packages/igniter-app/lib/igniter/app/diagnostics/evolution_contributor.rb +0 -74
  635. data/packages/igniter-app/lib/igniter/app/diagnostics/ignite_contributor.rb +0 -121
  636. data/packages/igniter-app/lib/igniter/app/diagnostics/loader_contributor.rb +0 -68
  637. data/packages/igniter-app/lib/igniter/app/diagnostics/orchestration_contributor.rb +0 -200
  638. data/packages/igniter-app/lib/igniter/app/diagnostics/runtime_contributor.rb +0 -68
  639. data/packages/igniter-app/lib/igniter/app/diagnostics/scheduler_contributor.rb +0 -72
  640. data/packages/igniter-app/lib/igniter/app/diagnostics/sdk_contributor.rb +0 -284
  641. data/packages/igniter-app/lib/igniter/app/diagnostics.rb +0 -62
  642. data/packages/igniter-app/lib/igniter/app/evolution/approval_decision.rb +0 -115
  643. data/packages/igniter-app/lib/igniter/app/evolution/approval_request.rb +0 -36
  644. data/packages/igniter-app/lib/igniter/app/evolution/plan.rb +0 -72
  645. data/packages/igniter-app/lib/igniter/app/evolution/planner.rb +0 -85
  646. data/packages/igniter-app/lib/igniter/app/evolution/result.rb +0 -45
  647. data/packages/igniter-app/lib/igniter/app/evolution/runner.rb +0 -102
  648. data/packages/igniter-app/lib/igniter/app/evolution/store.rb +0 -21
  649. data/packages/igniter-app/lib/igniter/app/evolution/stores/file_store.rb +0 -241
  650. data/packages/igniter-app/lib/igniter/app/evolution/trail.rb +0 -108
  651. data/packages/igniter-app/lib/igniter/app/evolution.rb +0 -11
  652. data/packages/igniter-app/lib/igniter/app/filesystem_loader_adapter.rb +0 -21
  653. data/packages/igniter-app/lib/igniter/app/generator.rb +0 -636
  654. data/packages/igniter-app/lib/igniter/app/generators/cluster.rb +0 -1367
  655. data/packages/igniter-app/lib/igniter/app/generators/dashboard.rb +0 -152
  656. data/packages/igniter-app/lib/igniter/app/generators/playground.rb +0 -1227
  657. data/packages/igniter-app/lib/igniter/app/generators/templates/dashboard/README.md.erb +0 -37
  658. data/packages/igniter-app/lib/igniter/app/generators/templates/dashboard/app.rb.erb +0 -19
  659. data/packages/igniter-app/lib/igniter/app/generators/templates/dashboard/contexts/home_context.rb.erb +0 -54
  660. data/packages/igniter-app/lib/igniter/app/generators/templates/dashboard/frontend/application.js.erb +0 -3
  661. data/packages/igniter-app/lib/igniter/app/generators/templates/dashboard/spec/dashboard_app_spec.rb.erb +0 -79
  662. data/packages/igniter-app/lib/igniter/app/generators/templates/dashboard/support/stack_overview.rb.erb +0 -23
  663. data/packages/igniter-app/lib/igniter/app/generators/templates/dashboard/web/handlers/home_handler.rb.erb +0 -27
  664. data/packages/igniter-app/lib/igniter/app/generators/templates/dashboard/web/views/home_page.arb.erb +0 -44
  665. data/packages/igniter-app/lib/igniter/app/generators/templates/dashboard/web/views/home_page.rb.erb +0 -56
  666. data/packages/igniter-app/lib/igniter/app/generators/templates/dashboard/web/views/layout.arb.erb +0 -17
  667. data/packages/igniter-app/lib/igniter/app/host_adapter.rb +0 -26
  668. data/packages/igniter-app/lib/igniter/app/host_config.rb +0 -40
  669. data/packages/igniter-app/lib/igniter/app/host_registry.rb +0 -43
  670. data/packages/igniter-app/lib/igniter/app/loader_adapter.rb +0 -15
  671. data/packages/igniter-app/lib/igniter/app/loader_pack.rb +0 -8
  672. data/packages/igniter-app/lib/igniter/app/loader_registry.rb +0 -39
  673. data/packages/igniter-app/lib/igniter/app/observability/operator_action_handler.rb +0 -147
  674. data/packages/igniter-app/lib/igniter/app/observability/operator_console_handler.rb +0 -747
  675. data/packages/igniter-app/lib/igniter/app/observability/operator_overview_handler.rb +0 -350
  676. data/packages/igniter-app/lib/igniter/app/observability.rb +0 -5
  677. data/packages/igniter-app/lib/igniter/app/observability_pack.rb +0 -71
  678. data/packages/igniter-app/lib/igniter/app/operator/dispatcher.rb +0 -40
  679. data/packages/igniter-app/lib/igniter/app/operator/handler_registry.rb +0 -40
  680. data/packages/igniter-app/lib/igniter/app/operator/handler_result.rb +0 -67
  681. data/packages/igniter-app/lib/igniter/app/operator/handlers/base.rb +0 -79
  682. data/packages/igniter-app/lib/igniter/app/operator/handlers/ignite_handler.rb +0 -108
  683. data/packages/igniter-app/lib/igniter/app/operator/handlers/orchestration_handler.rb +0 -33
  684. data/packages/igniter-app/lib/igniter/app/operator/handlers.rb +0 -5
  685. data/packages/igniter-app/lib/igniter/app/operator/lifecycle_contract.rb +0 -55
  686. data/packages/igniter-app/lib/igniter/app/operator/policy.rb +0 -157
  687. data/packages/igniter-app/lib/igniter/app/operator.rb +0 -17
  688. data/packages/igniter-app/lib/igniter/app/orchestration/action_result_builder.rb +0 -65
  689. data/packages/igniter-app/lib/igniter/app/orchestration/followup_request.rb +0 -36
  690. data/packages/igniter-app/lib/igniter/app/orchestration/handler_registry.rb +0 -58
  691. data/packages/igniter-app/lib/igniter/app/orchestration/handlers.rb +0 -106
  692. data/packages/igniter-app/lib/igniter/app/orchestration/inbox.rb +0 -283
  693. data/packages/igniter-app/lib/igniter/app/orchestration/inbox_query.rb +0 -293
  694. data/packages/igniter-app/lib/igniter/app/orchestration/lane_registry.rb +0 -100
  695. data/packages/igniter-app/lib/igniter/app/orchestration/operator_query.rb +0 -449
  696. data/packages/igniter-app/lib/igniter/app/orchestration/plan.rb +0 -68
  697. data/packages/igniter-app/lib/igniter/app/orchestration/planner.rb +0 -89
  698. data/packages/igniter-app/lib/igniter/app/orchestration/policies.rb +0 -125
  699. data/packages/igniter-app/lib/igniter/app/orchestration/policy_registry.rb +0 -63
  700. data/packages/igniter-app/lib/igniter/app/orchestration/result.rb +0 -43
  701. data/packages/igniter-app/lib/igniter/app/orchestration/routing_registry.rb +0 -43
  702. data/packages/igniter-app/lib/igniter/app/orchestration/runner.rb +0 -50
  703. data/packages/igniter-app/lib/igniter/app/orchestration/runtime_event_query.rb +0 -205
  704. data/packages/igniter-app/lib/igniter/app/orchestration/runtime_overview_builder.rb +0 -286
  705. data/packages/igniter-app/lib/igniter/app/orchestration/runtime_query_overview_builder.rb +0 -20
  706. data/packages/igniter-app/lib/igniter/app/orchestration/runtime_result_builder.rb +0 -23
  707. data/packages/igniter-app/lib/igniter/app/orchestration.rb +0 -113
  708. data/packages/igniter-app/lib/igniter/app/runtime.rb +0 -4
  709. data/packages/igniter-app/lib/igniter/app/runtime_context.rb +0 -101
  710. data/packages/igniter-app/lib/igniter/app/runtime_pack.rb +0 -16
  711. data/packages/igniter-app/lib/igniter/app/scaffold_pack.rb +0 -6
  712. data/packages/igniter-app/lib/igniter/app/scheduler.rb +0 -109
  713. data/packages/igniter-app/lib/igniter/app/scheduler_adapter.rb +0 -17
  714. data/packages/igniter-app/lib/igniter/app/scheduler_pack.rb +0 -8
  715. data/packages/igniter-app/lib/igniter/app/scheduler_registry.rb +0 -39
  716. data/packages/igniter-app/lib/igniter/app/stack.rb +0 -1726
  717. data/packages/igniter-app/lib/igniter/app/stack_pack.rb +0 -3
  718. data/packages/igniter-app/lib/igniter/app/threaded_scheduler_adapter.rb +0 -35
  719. data/packages/igniter-app/lib/igniter/app/yml_loader.rb +0 -43
  720. data/packages/igniter-app/lib/igniter/app.rb +0 -2367
  721. data/packages/igniter-app/lib/igniter/ignite/bootstrap_agent.rb +0 -334
  722. data/packages/igniter-app/lib/igniter/ignite/bootstrap_target.rb +0 -79
  723. data/packages/igniter-app/lib/igniter/ignite/deployment_intent.rb +0 -82
  724. data/packages/igniter-app/lib/igniter/ignite/ignition_agent.rb +0 -1011
  725. data/packages/igniter-app/lib/igniter/ignite/ignition_plan.rb +0 -83
  726. data/packages/igniter-app/lib/igniter/ignite/ignition_report.rb +0 -144
  727. data/packages/igniter-app/lib/igniter/ignite/store.rb +0 -19
  728. data/packages/igniter-app/lib/igniter/ignite/stores/file_store.rb +0 -112
  729. data/packages/igniter-app/lib/igniter/ignite/trail.rb +0 -215
  730. data/packages/igniter-app/lib/igniter/ignite.rb +0 -11
  731. data/packages/igniter-app/lib/igniter-app.rb +0 -5
  732. data/packages/igniter-cluster/lib/igniter/cluster/agent_route_resolver.rb +0 -58
  733. data/packages/igniter-cluster/lib/igniter/cluster/consensus/cluster.rb +0 -187
  734. data/packages/igniter-cluster/lib/igniter/cluster/consensus/errors.rb +0 -16
  735. data/packages/igniter-cluster/lib/igniter/cluster/consensus/executors.rb +0 -45
  736. data/packages/igniter-cluster/lib/igniter/cluster/consensus/node.rb +0 -322
  737. data/packages/igniter-cluster/lib/igniter/cluster/consensus/read_query.rb +0 -32
  738. data/packages/igniter-cluster/lib/igniter/cluster/consensus/state_machine.rb +0 -60
  739. data/packages/igniter-cluster/lib/igniter/cluster/consensus.rb +0 -18
  740. data/packages/igniter-cluster/lib/igniter/cluster/diagnostics/governance_contributor.rb +0 -90
  741. data/packages/igniter-cluster/lib/igniter/cluster/diagnostics/identity_contributor.rb +0 -98
  742. data/packages/igniter-cluster/lib/igniter/cluster/diagnostics/routing_contributor.rb +0 -674
  743. data/packages/igniter-cluster/lib/igniter/cluster/diagnostics.rb +0 -24
  744. data/packages/igniter-cluster/lib/igniter/cluster/events/envelope.rb +0 -136
  745. data/packages/igniter-cluster/lib/igniter/cluster/events/hook_support.rb +0 -33
  746. data/packages/igniter-cluster/lib/igniter/cluster/events/log.rb +0 -102
  747. data/packages/igniter-cluster/lib/igniter/cluster/events/projection_feed.rb +0 -98
  748. data/packages/igniter-cluster/lib/igniter/cluster/events/read_model_projector.rb +0 -32
  749. data/packages/igniter-cluster/lib/igniter/cluster/events.rb +0 -131
  750. data/packages/igniter-cluster/lib/igniter/cluster/governance/admission_decision.rb +0 -41
  751. data/packages/igniter-cluster/lib/igniter/cluster/governance/admission_policy.rb +0 -66
  752. data/packages/igniter-cluster/lib/igniter/cluster/governance/admission_queue.rb +0 -88
  753. data/packages/igniter-cluster/lib/igniter/cluster/governance/admission_request.rb +0 -62
  754. data/packages/igniter-cluster/lib/igniter/cluster/governance/admission_workflow.rb +0 -214
  755. data/packages/igniter-cluster/lib/igniter/cluster/governance/checkpoint.rb +0 -141
  756. data/packages/igniter-cluster/lib/igniter/cluster/governance/compaction_record.rb +0 -33
  757. data/packages/igniter-cluster/lib/igniter/cluster/governance/stores/checkpoint_store.rb +0 -89
  758. data/packages/igniter-cluster/lib/igniter/cluster/governance/stores/file_store.rb +0 -249
  759. data/packages/igniter-cluster/lib/igniter/cluster/governance/trail.rb +0 -164
  760. data/packages/igniter-cluster/lib/igniter/cluster/governance.rb +0 -12
  761. data/packages/igniter-cluster/lib/igniter/cluster/identity/capability_attestation.rb +0 -114
  762. data/packages/igniter-cluster/lib/igniter/cluster/identity/manifest.rb +0 -139
  763. data/packages/igniter-cluster/lib/igniter/cluster/identity/node_identity.rb +0 -106
  764. data/packages/igniter-cluster/lib/igniter/cluster/identity.rb +0 -5
  765. data/packages/igniter-cluster/lib/igniter/cluster/mesh/announcer.rb +0 -88
  766. data/packages/igniter-cluster/lib/igniter/cluster/mesh/checkpoint_gossip.rb +0 -60
  767. data/packages/igniter-cluster/lib/igniter/cluster/mesh/config.rb +0 -146
  768. data/packages/igniter-cluster/lib/igniter/cluster/mesh/discovery.rb +0 -44
  769. data/packages/igniter-cluster/lib/igniter/cluster/mesh/errors.rb +0 -36
  770. data/packages/igniter-cluster/lib/igniter/cluster/mesh/gossip.rb +0 -62
  771. data/packages/igniter-cluster/lib/igniter/cluster/mesh/mesh_ql.rb +0 -470
  772. data/packages/igniter-cluster/lib/igniter/cluster/mesh/node_observation.rb +0 -281
  773. data/packages/igniter-cluster/lib/igniter/cluster/mesh/observation_query.rb +0 -284
  774. data/packages/igniter-cluster/lib/igniter/cluster/mesh/peer.rb +0 -51
  775. data/packages/igniter-cluster/lib/igniter/cluster/mesh/peer_capacity_report.rb +0 -42
  776. data/packages/igniter-cluster/lib/igniter/cluster/mesh/peer_identity_envelope.rb +0 -158
  777. data/packages/igniter-cluster/lib/igniter/cluster/mesh/peer_metadata.rb +0 -122
  778. data/packages/igniter-cluster/lib/igniter/cluster/mesh/peer_registry.rb +0 -81
  779. data/packages/igniter-cluster/lib/igniter/cluster/mesh/placement_decision.rb +0 -64
  780. data/packages/igniter-cluster/lib/igniter/cluster/mesh/placement_planner.rb +0 -154
  781. data/packages/igniter-cluster/lib/igniter/cluster/mesh/placement_policy.rb +0 -103
  782. data/packages/igniter-cluster/lib/igniter/cluster/mesh/poller.rb +0 -92
  783. data/packages/igniter-cluster/lib/igniter/cluster/mesh/rebalance_plan.rb +0 -66
  784. data/packages/igniter-cluster/lib/igniter/cluster/mesh/rebalance_planner.rb +0 -153
  785. data/packages/igniter-cluster/lib/igniter/cluster/mesh/repair_loop.rb +0 -169
  786. data/packages/igniter-cluster/lib/igniter/cluster/mesh/router.rb +0 -306
  787. data/packages/igniter-cluster/lib/igniter/cluster/mesh/workload_signal.rb +0 -46
  788. data/packages/igniter-cluster/lib/igniter/cluster/mesh/workload_tracker.rb +0 -215
  789. data/packages/igniter-cluster/lib/igniter/cluster/mesh.rb +0 -452
  790. data/packages/igniter-cluster/lib/igniter/cluster/ownership/claim.rb +0 -69
  791. data/packages/igniter-cluster/lib/igniter/cluster/ownership/errors.rb +0 -19
  792. data/packages/igniter-cluster/lib/igniter/cluster/ownership/owner_client.rb +0 -76
  793. data/packages/igniter-cluster/lib/igniter/cluster/ownership/registry.rb +0 -98
  794. data/packages/igniter-cluster/lib/igniter/cluster/ownership/resolver.rb +0 -62
  795. data/packages/igniter-cluster/lib/igniter/cluster/ownership.rb +0 -81
  796. data/packages/igniter-cluster/lib/igniter/cluster/projection_store.rb +0 -62
  797. data/packages/igniter-cluster/lib/igniter/cluster/rag/chunk.rb +0 -49
  798. data/packages/igniter-cluster/lib/igniter/cluster/rag/fanout_retriever.rb +0 -93
  799. data/packages/igniter-cluster/lib/igniter/cluster/rag/knowledge_shard.rb +0 -140
  800. data/packages/igniter-cluster/lib/igniter/cluster/rag/net_http_adapter.rb +0 -85
  801. data/packages/igniter-cluster/lib/igniter/cluster/rag/ranker.rb +0 -46
  802. data/packages/igniter-cluster/lib/igniter/cluster/rag/retrieval_query.rb +0 -30
  803. data/packages/igniter-cluster/lib/igniter/cluster/rag/retrieval_result.rb +0 -77
  804. data/packages/igniter-cluster/lib/igniter/cluster/rag.rb +0 -38
  805. data/packages/igniter-cluster/lib/igniter/cluster/remote_adapter.rb +0 -101
  806. data/packages/igniter-cluster/lib/igniter/cluster/replication/bootstrapper.rb +0 -63
  807. data/packages/igniter-cluster/lib/igniter/cluster/replication/bootstrappers/gem.rb +0 -39
  808. data/packages/igniter-cluster/lib/igniter/cluster/replication/bootstrappers/git.rb +0 -46
  809. data/packages/igniter-cluster/lib/igniter/cluster/replication/bootstrappers/tarball.rb +0 -62
  810. data/packages/igniter-cluster/lib/igniter/cluster/replication/capability_query.rb +0 -675
  811. data/packages/igniter-cluster/lib/igniter/cluster/replication/expansion_plan.rb +0 -40
  812. data/packages/igniter-cluster/lib/igniter/cluster/replication/expansion_planner.rb +0 -154
  813. data/packages/igniter-cluster/lib/igniter/cluster/replication/manifest.rb +0 -47
  814. data/packages/igniter-cluster/lib/igniter/cluster/replication/network_topology.rb +0 -150
  815. data/packages/igniter-cluster/lib/igniter/cluster/replication/node_profile.rb +0 -134
  816. data/packages/igniter-cluster/lib/igniter/cluster/replication/reflective_replication_agent.rb +0 -259
  817. data/packages/igniter-cluster/lib/igniter/cluster/replication/replication_agent.rb +0 -89
  818. data/packages/igniter-cluster/lib/igniter/cluster/replication/ssh_session.rb +0 -79
  819. data/packages/igniter-cluster/lib/igniter/cluster/replication.rb +0 -38
  820. data/packages/igniter-cluster/lib/igniter/cluster/routed_agent_adapter.rb +0 -79
  821. data/packages/igniter-cluster/lib/igniter/cluster/routing_plan_executor.rb +0 -427
  822. data/packages/igniter-cluster/lib/igniter/cluster/routing_plan_result.rb +0 -38
  823. data/packages/igniter-cluster/lib/igniter/cluster/trust/admission_plan.rb +0 -34
  824. data/packages/igniter-cluster/lib/igniter/cluster/trust/admission_planner.rb +0 -76
  825. data/packages/igniter-cluster/lib/igniter/cluster/trust/admission_result.rb +0 -34
  826. data/packages/igniter-cluster/lib/igniter/cluster/trust/admission_runner.rb +0 -125
  827. data/packages/igniter-cluster/lib/igniter/cluster/trust/trust_assessment.rb +0 -37
  828. data/packages/igniter-cluster/lib/igniter/cluster/trust/trust_store.rb +0 -58
  829. data/packages/igniter-cluster/lib/igniter/cluster/trust/verifier.rb +0 -80
  830. data/packages/igniter-cluster/lib/igniter/cluster/trust.rb +0 -9
  831. data/packages/igniter-core/README.md +0 -21
  832. data/packages/igniter-core/lib/igniter/core/capabilities.rb +0 -70
  833. data/packages/igniter-core/lib/igniter/core/compiler/compiled_graph.rb +0 -218
  834. data/packages/igniter-core/lib/igniter/core/compiler/graph_compiler.rb +0 -70
  835. data/packages/igniter-core/lib/igniter/core/compiler/type_resolver.rb +0 -54
  836. data/packages/igniter-core/lib/igniter/core/compiler/validation_context.rb +0 -61
  837. data/packages/igniter-core/lib/igniter/core/compiler/validation_pipeline.rb +0 -33
  838. data/packages/igniter-core/lib/igniter/core/compiler/validator.rb +0 -19
  839. data/packages/igniter-core/lib/igniter/core/compiler/validators/agent_validator.rb +0 -142
  840. data/packages/igniter-core/lib/igniter/core/compiler/validators/await_validator.rb +0 -53
  841. data/packages/igniter-core/lib/igniter/core/compiler/validators/callable_validator.rb +0 -125
  842. data/packages/igniter-core/lib/igniter/core/compiler/validators/dependencies_validator.rb +0 -280
  843. data/packages/igniter-core/lib/igniter/core/compiler/validators/outputs_validator.rb +0 -66
  844. data/packages/igniter-core/lib/igniter/core/compiler/validators/remote_validator.rb +0 -60
  845. data/packages/igniter-core/lib/igniter/core/compiler/validators/type_compatibility_validator.rb +0 -84
  846. data/packages/igniter-core/lib/igniter/core/compiler/validators/uniqueness_validator.rb +0 -60
  847. data/packages/igniter-core/lib/igniter/core/compiler.rb +0 -21
  848. data/packages/igniter-core/lib/igniter/core/content_addressing.rb +0 -133
  849. data/packages/igniter-core/lib/igniter/core/contract.rb +0 -398
  850. data/packages/igniter-core/lib/igniter/core/dataflow/aggregate_operators.rb +0 -147
  851. data/packages/igniter-core/lib/igniter/core/dataflow/aggregate_state.rb +0 -77
  852. data/packages/igniter-core/lib/igniter/core/dataflow/diff.rb +0 -37
  853. data/packages/igniter-core/lib/igniter/core/dataflow/diff_state.rb +0 -81
  854. data/packages/igniter-core/lib/igniter/core/dataflow/incremental_collection_result.rb +0 -39
  855. data/packages/igniter-core/lib/igniter/core/dataflow/window_filter.rb +0 -48
  856. data/packages/igniter-core/lib/igniter/core/dataflow.rb +0 -65
  857. data/packages/igniter-core/lib/igniter/core/diagnostics/agent_contributor.rb +0 -241
  858. data/packages/igniter-core/lib/igniter/core/diagnostics/auditing/report/console_formatter.rb +0 -80
  859. data/packages/igniter-core/lib/igniter/core/diagnostics/auditing/report/markdown_formatter.rb +0 -22
  860. data/packages/igniter-core/lib/igniter/core/diagnostics/capability_contributor.rb +0 -162
  861. data/packages/igniter-core/lib/igniter/core/diagnostics/introspection/formatters/mermaid_formatter.rb +0 -58
  862. data/packages/igniter-core/lib/igniter/core/diagnostics/introspection/formatters/text_tree_formatter.rb +0 -44
  863. data/packages/igniter-core/lib/igniter/core/diagnostics/orchestration_contributor.rb +0 -75
  864. data/packages/igniter-core/lib/igniter/core/diagnostics/report.rb +0 -424
  865. data/packages/igniter-core/lib/igniter/core/diagnostics.rb +0 -58
  866. data/packages/igniter-core/lib/igniter/core/differential/divergence.rb +0 -29
  867. data/packages/igniter-core/lib/igniter/core/differential/formatter.rb +0 -96
  868. data/packages/igniter-core/lib/igniter/core/differential/report.rb +0 -86
  869. data/packages/igniter-core/lib/igniter/core/differential/runner.rb +0 -130
  870. data/packages/igniter-core/lib/igniter/core/differential.rb +0 -51
  871. data/packages/igniter-core/lib/igniter/core/dsl/contract_builder.rb +0 -652
  872. data/packages/igniter-core/lib/igniter/core/dsl/schema_builder.rb +0 -73
  873. data/packages/igniter-core/lib/igniter/core/dsl.rb +0 -9
  874. data/packages/igniter-core/lib/igniter/core/dto/record.rb +0 -189
  875. data/packages/igniter-core/lib/igniter/core/dto.rb +0 -8
  876. data/packages/igniter-core/lib/igniter/core/effect.rb +0 -95
  877. data/packages/igniter-core/lib/igniter/core/effect_registry.rb +0 -78
  878. data/packages/igniter-core/lib/igniter/core/errors.rb +0 -102
  879. data/packages/igniter-core/lib/igniter/core/events/bus.rb +0 -44
  880. data/packages/igniter-core/lib/igniter/core/events/event.rb +0 -82
  881. data/packages/igniter-core/lib/igniter/core/events.rb +0 -9
  882. data/packages/igniter-core/lib/igniter/core/execution_report/builder.rb +0 -54
  883. data/packages/igniter-core/lib/igniter/core/execution_report/formatter.rb +0 -50
  884. data/packages/igniter-core/lib/igniter/core/execution_report/node_entry.rb +0 -24
  885. data/packages/igniter-core/lib/igniter/core/execution_report/report.rb +0 -65
  886. data/packages/igniter-core/lib/igniter/core/execution_report.rb +0 -32
  887. data/packages/igniter-core/lib/igniter/core/executor.rb +0 -134
  888. data/packages/igniter-core/lib/igniter/core/executor_registry.rb +0 -44
  889. data/packages/igniter-core/lib/igniter/core/extensions/auditing/timeline.rb +0 -103
  890. data/packages/igniter-core/lib/igniter/core/extensions/auditing.rb +0 -10
  891. data/packages/igniter-core/lib/igniter/core/extensions/introspection/graph_formatter.rb +0 -134
  892. data/packages/igniter-core/lib/igniter/core/extensions/introspection/plan_formatter.rb +0 -85
  893. data/packages/igniter-core/lib/igniter/core/extensions/introspection/runtime_formatter.rb +0 -143
  894. data/packages/igniter-core/lib/igniter/core/extensions/introspection.rb +0 -12
  895. data/packages/igniter-core/lib/igniter/core/extensions/invariants.rb +0 -70
  896. data/packages/igniter-core/lib/igniter/core/extensions/reactive/engine.rb +0 -83
  897. data/packages/igniter-core/lib/igniter/core/extensions/reactive/matcher.rb +0 -21
  898. data/packages/igniter-core/lib/igniter/core/extensions/reactive/reaction.rb +0 -18
  899. data/packages/igniter-core/lib/igniter/core/extensions/reactive.rb +0 -12
  900. data/packages/igniter-core/lib/igniter/core/extensions.rb +0 -10
  901. data/packages/igniter-core/lib/igniter/core/fingerprint.rb +0 -43
  902. data/packages/igniter-core/lib/igniter/core/incremental/formatter.rb +0 -81
  903. data/packages/igniter-core/lib/igniter/core/incremental/result.rb +0 -69
  904. data/packages/igniter-core/lib/igniter/core/incremental/tracker.rb +0 -108
  905. data/packages/igniter-core/lib/igniter/core/incremental.rb +0 -50
  906. data/packages/igniter-core/lib/igniter/core/invariant.rb +0 -50
  907. data/packages/igniter-core/lib/igniter/core/memory/agent_memory.rb +0 -104
  908. data/packages/igniter-core/lib/igniter/core/memory/episode.rb +0 -29
  909. data/packages/igniter-core/lib/igniter/core/memory/fact.rb +0 -27
  910. data/packages/igniter-core/lib/igniter/core/memory/memorable.rb +0 -90
  911. data/packages/igniter-core/lib/igniter/core/memory/reflection_cycle.rb +0 -96
  912. data/packages/igniter-core/lib/igniter/core/memory/reflection_record.rb +0 -28
  913. data/packages/igniter-core/lib/igniter/core/memory/store.rb +0 -115
  914. data/packages/igniter-core/lib/igniter/core/memory/stores/in_memory.rb +0 -136
  915. data/packages/igniter-core/lib/igniter/core/memory/stores/sqlite.rb +0 -286
  916. data/packages/igniter-core/lib/igniter/core/memory.rb +0 -80
  917. data/packages/igniter-core/lib/igniter/core/metrics/collector.rb +0 -131
  918. data/packages/igniter-core/lib/igniter/core/metrics/prometheus_exporter.rb +0 -104
  919. data/packages/igniter-core/lib/igniter/core/metrics/snapshot.rb +0 -8
  920. data/packages/igniter-core/lib/igniter/core/metrics.rb +0 -37
  921. data/packages/igniter-core/lib/igniter/core/model/agent_interaction_contract.rb +0 -172
  922. data/packages/igniter-core/lib/igniter/core/model/agent_node.rb +0 -86
  923. data/packages/igniter-core/lib/igniter/core/model/aggregate_node.rb +0 -34
  924. data/packages/igniter-core/lib/igniter/core/model/await_node.rb +0 -21
  925. data/packages/igniter-core/lib/igniter/core/model/branch_node.rb +0 -82
  926. data/packages/igniter-core/lib/igniter/core/model/collection_node.rb +0 -32
  927. data/packages/igniter-core/lib/igniter/core/model/composition_node.rb +0 -22
  928. data/packages/igniter-core/lib/igniter/core/model/compute_node.rb +0 -90
  929. data/packages/igniter-core/lib/igniter/core/model/effect_node.rb +0 -37
  930. data/packages/igniter-core/lib/igniter/core/model/graph.rb +0 -15
  931. data/packages/igniter-core/lib/igniter/core/model/input_node.rb +0 -27
  932. data/packages/igniter-core/lib/igniter/core/model/node.rb +0 -22
  933. data/packages/igniter-core/lib/igniter/core/model/output_node.rb +0 -41
  934. data/packages/igniter-core/lib/igniter/core/model/remote_node.rb +0 -91
  935. data/packages/igniter-core/lib/igniter/core/model.rb +0 -20
  936. data/packages/igniter-core/lib/igniter/core/node_cache.rb +0 -231
  937. data/packages/igniter-core/lib/igniter/core/property_testing/formatter.rb +0 -66
  938. data/packages/igniter-core/lib/igniter/core/property_testing/generators.rb +0 -115
  939. data/packages/igniter-core/lib/igniter/core/property_testing/result.rb +0 -45
  940. data/packages/igniter-core/lib/igniter/core/property_testing/run.rb +0 -43
  941. data/packages/igniter-core/lib/igniter/core/property_testing/runner.rb +0 -47
  942. data/packages/igniter-core/lib/igniter/core/property_testing.rb +0 -64
  943. data/packages/igniter-core/lib/igniter/core/provenance/builder.rb +0 -126
  944. data/packages/igniter-core/lib/igniter/core/provenance/lineage.rb +0 -82
  945. data/packages/igniter-core/lib/igniter/core/provenance/node_trace.rb +0 -65
  946. data/packages/igniter-core/lib/igniter/core/provenance/text_formatter.rb +0 -70
  947. data/packages/igniter-core/lib/igniter/core/provenance.rb +0 -29
  948. data/packages/igniter-core/lib/igniter/core/runtime/agent_adapter.rb +0 -41
  949. data/packages/igniter-core/lib/igniter/core/runtime/agent_result_contract.rb +0 -91
  950. data/packages/igniter-core/lib/igniter/core/runtime/agent_route.rb +0 -60
  951. data/packages/igniter-core/lib/igniter/core/runtime/agent_route_resolver.rb +0 -26
  952. data/packages/igniter-core/lib/igniter/core/runtime/agent_session.rb +0 -922
  953. data/packages/igniter-core/lib/igniter/core/runtime/agent_session_query.rb +0 -379
  954. data/packages/igniter-core/lib/igniter/core/runtime/agent_transport.rb +0 -30
  955. data/packages/igniter-core/lib/igniter/core/runtime/cache.rb +0 -129
  956. data/packages/igniter-core/lib/igniter/core/runtime/collection_result.rb +0 -111
  957. data/packages/igniter-core/lib/igniter/core/runtime/deferred_result.rb +0 -66
  958. data/packages/igniter-core/lib/igniter/core/runtime/execution.rb +0 -913
  959. data/packages/igniter-core/lib/igniter/core/runtime/input_validator.rb +0 -129
  960. data/packages/igniter-core/lib/igniter/core/runtime/invalidator.rb +0 -52
  961. data/packages/igniter-core/lib/igniter/core/runtime/job_worker.rb +0 -39
  962. data/packages/igniter-core/lib/igniter/core/runtime/node_state.rb +0 -58
  963. data/packages/igniter-core/lib/igniter/core/runtime/orchestration_overview.rb +0 -213
  964. data/packages/igniter-core/lib/igniter/core/runtime/orchestration_runtime_state.rb +0 -176
  965. data/packages/igniter-core/lib/igniter/core/runtime/orchestration_transition_query.rb +0 -208
  966. data/packages/igniter-core/lib/igniter/core/runtime/planner.rb +0 -301
  967. data/packages/igniter-core/lib/igniter/core/runtime/proxy_agent_adapter.rb +0 -124
  968. data/packages/igniter-core/lib/igniter/core/runtime/remote_adapter.rb +0 -26
  969. data/packages/igniter-core/lib/igniter/core/runtime/resolver.rb +0 -951
  970. data/packages/igniter-core/lib/igniter/core/runtime/result.rb +0 -119
  971. data/packages/igniter-core/lib/igniter/core/runtime/runner_factory.rb +0 -20
  972. data/packages/igniter-core/lib/igniter/core/runtime/runners/inline_runner.rb +0 -21
  973. data/packages/igniter-core/lib/igniter/core/runtime/runners/store_runner.rb +0 -29
  974. data/packages/igniter-core/lib/igniter/core/runtime/runners/thread_pool_runner.rb +0 -37
  975. data/packages/igniter-core/lib/igniter/core/runtime/stores/active_record_store.rb +0 -53
  976. data/packages/igniter-core/lib/igniter/core/runtime/stores/file_store.rb +0 -91
  977. data/packages/igniter-core/lib/igniter/core/runtime/stores/memory_store.rb +0 -93
  978. data/packages/igniter-core/lib/igniter/core/runtime/stores/redis_store.rb +0 -93
  979. data/packages/igniter-core/lib/igniter/core/runtime/stores/sqlite_store.rb +0 -155
  980. data/packages/igniter-core/lib/igniter/core/runtime/stream_result.rb +0 -171
  981. data/packages/igniter-core/lib/igniter/core/runtime.rb +0 -41
  982. data/packages/igniter-core/lib/igniter/core/saga/compensation.rb +0 -31
  983. data/packages/igniter-core/lib/igniter/core/saga/compensation_record.rb +0 -20
  984. data/packages/igniter-core/lib/igniter/core/saga/executor.rb +0 -85
  985. data/packages/igniter-core/lib/igniter/core/saga/formatter.rb +0 -49
  986. data/packages/igniter-core/lib/igniter/core/saga/result.rb +0 -47
  987. data/packages/igniter-core/lib/igniter/core/saga.rb +0 -56
  988. data/packages/igniter-core/lib/igniter/core/stream_loop.rb +0 -80
  989. data/packages/igniter-core/lib/igniter/core/temporal.rb +0 -84
  990. data/packages/igniter-core/lib/igniter/core/tool/discoverable.rb +0 -151
  991. data/packages/igniter-core/lib/igniter/core/tool.rb +0 -56
  992. data/packages/igniter-core/lib/igniter/core/type_system.rb +0 -44
  993. data/packages/igniter-core/lib/igniter/core/version.rb +0 -5
  994. data/packages/igniter-core/lib/igniter/core.rb +0 -23
  995. data/packages/igniter-core/lib/igniter-core.rb +0 -3
  996. data/packages/igniter-extensions/lib/igniter/extensions/auditing.rb +0 -3
  997. data/packages/igniter-extensions/lib/igniter/extensions/capabilities.rb +0 -39
  998. data/packages/igniter-extensions/lib/igniter/extensions/content_addressing.rb +0 -5
  999. data/packages/igniter-extensions/lib/igniter/extensions/dataflow.rb +0 -117
  1000. data/packages/igniter-extensions/lib/igniter/extensions/differential.rb +0 -114
  1001. data/packages/igniter-extensions/lib/igniter/extensions/execution_report.rb +0 -27
  1002. data/packages/igniter-extensions/lib/igniter/extensions/incremental.rb +0 -50
  1003. data/packages/igniter-extensions/lib/igniter/extensions/introspection.rb +0 -3
  1004. data/packages/igniter-extensions/lib/igniter/extensions/invariants.rb +0 -3
  1005. data/packages/igniter-extensions/lib/igniter/extensions/provenance.rb +0 -45
  1006. data/packages/igniter-extensions/lib/igniter/extensions/reactive.rb +0 -3
  1007. data/packages/igniter-extensions/lib/igniter/extensions/saga.rb +0 -74
  1008. data/packages/igniter-frontend/README.md +0 -224
  1009. data/packages/igniter-frontend/lib/igniter/frontend/app.rb +0 -90
  1010. data/packages/igniter-frontend/lib/igniter/frontend/app_access.rb +0 -36
  1011. data/packages/igniter-frontend/lib/igniter/frontend/arbre/component.rb +0 -120
  1012. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/action_group.rb +0 -53
  1013. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/badge.rb +0 -91
  1014. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/boolean.rb +0 -53
  1015. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/breadcrumbs.rb +0 -71
  1016. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/card.rb +0 -114
  1017. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/conversation_panel.rb +0 -61
  1018. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/datetime.rb +0 -42
  1019. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/display_value_support.rb +0 -38
  1020. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/empty_state.rb +0 -39
  1021. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/event_list.rb +0 -44
  1022. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/filters.rb +0 -183
  1023. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/indicator.rb +0 -59
  1024. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/json_panel.rb +0 -36
  1025. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/key_value_list.rb +0 -40
  1026. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/loading_state.rb +0 -43
  1027. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/metric_grid.rb +0 -37
  1028. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/number.rb +0 -53
  1029. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/page_header.rb +0 -53
  1030. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/pagination.rb +0 -143
  1031. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/panel.rb +0 -67
  1032. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/percentage.rb +0 -79
  1033. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/resource_list.rb +0 -38
  1034. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/scenario_card.rb +0 -48
  1035. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/shell_columns.rb +0 -67
  1036. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/sidebar_shell.rb +0 -106
  1037. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/table_with.rb +0 -203
  1038. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/tabs.rb +0 -147
  1039. data/packages/igniter-frontend/lib/igniter/frontend/arbre/components/viz.rb +0 -185
  1040. data/packages/igniter-frontend/lib/igniter/frontend/arbre/page.rb +0 -74
  1041. data/packages/igniter-frontend/lib/igniter/frontend/arbre/raw_text_node.rb +0 -40
  1042. data/packages/igniter-frontend/lib/igniter/frontend/arbre/template_page.rb +0 -243
  1043. data/packages/igniter-frontend/lib/igniter/frontend/arbre.rb +0 -48
  1044. data/packages/igniter-frontend/lib/igniter/frontend/arbre_page.rb +0 -7
  1045. data/packages/igniter-frontend/lib/igniter/frontend/assets.rb +0 -101
  1046. data/packages/igniter-frontend/lib/igniter/frontend/builder.rb +0 -124
  1047. data/packages/igniter-frontend/lib/igniter/frontend/component.rb +0 -24
  1048. data/packages/igniter-frontend/lib/igniter/frontend/components.rb +0 -7
  1049. data/packages/igniter-frontend/lib/igniter/frontend/context.rb +0 -53
  1050. data/packages/igniter-frontend/lib/igniter/frontend/form_builder.rb +0 -63
  1051. data/packages/igniter-frontend/lib/igniter/frontend/handler.rb +0 -92
  1052. data/packages/igniter-frontend/lib/igniter/frontend/javascript.rb +0 -353
  1053. data/packages/igniter-frontend/lib/igniter/frontend/page.rb +0 -24
  1054. data/packages/igniter-frontend/lib/igniter/frontend/request.rb +0 -61
  1055. data/packages/igniter-frontend/lib/igniter/frontend/response.rb +0 -67
  1056. data/packages/igniter-frontend/lib/igniter/frontend/tailwind/realtime/adapters.rb +0 -226
  1057. data/packages/igniter-frontend/lib/igniter/frontend/tailwind/realtime/presets.rb +0 -147
  1058. data/packages/igniter-frontend/lib/igniter/frontend/tailwind/realtime.rb +0 -259
  1059. data/packages/igniter-frontend/lib/igniter/frontend/tailwind/surfaces.rb +0 -1074
  1060. data/packages/igniter-frontend/lib/igniter/frontend/tailwind/ui.rb +0 -1438
  1061. data/packages/igniter-frontend/lib/igniter/frontend/tailwind.rb +0 -180
  1062. data/packages/igniter-frontend/lib/igniter/frontend/version.rb +0 -9
  1063. data/packages/igniter-frontend/lib/igniter/frontend.rb +0 -35
  1064. data/packages/igniter-frontend/lib/igniter-frontend.rb +0 -3
  1065. data/packages/igniter-rails/README.md +0 -96
  1066. data/packages/igniter-rails/lib/igniter/plugins/rails/cable_adapter.rb +0 -49
  1067. data/packages/igniter-rails/lib/igniter/plugins/rails/contract_job.rb +0 -76
  1068. data/packages/igniter-rails/lib/igniter/plugins/rails/generators/contract/contract_generator.rb +0 -22
  1069. data/packages/igniter-rails/lib/igniter/plugins/rails/generators/contract/templates/contract.rb.tt +0 -22
  1070. data/packages/igniter-rails/lib/igniter/plugins/rails/generators/install/install_generator.rb +0 -33
  1071. data/packages/igniter-rails/lib/igniter/plugins/rails/generators/install/templates/igniter.rb.tt +0 -16
  1072. data/packages/igniter-rails/lib/igniter/plugins/rails/railtie.rb +0 -25
  1073. data/packages/igniter-rails/lib/igniter/plugins/rails/webhook_concern.rb +0 -49
  1074. data/packages/igniter-rails/lib/igniter/plugins/rails.rb +0 -12
  1075. data/packages/igniter-rails/lib/igniter-rails.rb +0 -3
  1076. data/packages/igniter-schema-rendering/README.md +0 -27
  1077. data/packages/igniter-schema-rendering/lib/igniter/schema_rendering/page.rb +0 -35
  1078. data/packages/igniter-schema-rendering/lib/igniter/schema_rendering/patcher.rb +0 -47
  1079. data/packages/igniter-schema-rendering/lib/igniter/schema_rendering/renderer.rb +0 -268
  1080. data/packages/igniter-schema-rendering/lib/igniter/schema_rendering/schema.rb +0 -172
  1081. data/packages/igniter-schema-rendering/lib/igniter/schema_rendering/store.rb +0 -53
  1082. data/packages/igniter-schema-rendering/lib/igniter/schema_rendering/submission_normalizer.rb +0 -117
  1083. data/packages/igniter-schema-rendering/lib/igniter/schema_rendering/submission_processor.rb +0 -91
  1084. data/packages/igniter-schema-rendering/lib/igniter/schema_rendering/submission_validator.rb +0 -62
  1085. data/packages/igniter-schema-rendering/lib/igniter/schema_rendering/version.rb +0 -9
  1086. data/packages/igniter-schema-rendering/lib/igniter/schema_rendering.rb +0 -20
  1087. data/packages/igniter-schema-rendering/lib/igniter-schema-rendering.rb +0 -3
  1088. data/packages/igniter-sdk/README.md +0 -25
  1089. data/packages/igniter-sdk/lib/igniter/sdk/channels/base.rb +0 -84
  1090. data/packages/igniter-sdk/lib/igniter/sdk/channels/delivery_result.rb +0 -61
  1091. data/packages/igniter-sdk/lib/igniter/sdk/channels/message.rb +0 -101
  1092. data/packages/igniter-sdk/lib/igniter/sdk/channels/telegram.rb +0 -161
  1093. data/packages/igniter-sdk/lib/igniter/sdk/channels/webhook.rb +0 -213
  1094. data/packages/igniter-sdk/lib/igniter/sdk/channels.rb +0 -17
  1095. data/packages/igniter-sdk/lib/igniter/sdk/data/store.rb +0 -31
  1096. data/packages/igniter-sdk/lib/igniter/sdk/data/stores/file.rb +0 -113
  1097. data/packages/igniter-sdk/lib/igniter/sdk/data/stores/in_memory.rb +0 -63
  1098. data/packages/igniter-sdk/lib/igniter/sdk/data/stores/sqlite.rb +0 -144
  1099. data/packages/igniter-sdk/lib/igniter/sdk/data.rb +0 -34
  1100. data/packages/igniter-sdk/lib/igniter/sdk/tools/agent_bootstrap_tool.rb +0 -151
  1101. data/packages/igniter-sdk/lib/igniter/sdk/tools/local_workflow_selector_tool.rb +0 -269
  1102. data/packages/igniter-sdk/lib/igniter/sdk/tools/system_discovery_tool.rb +0 -198
  1103. data/packages/igniter-sdk/lib/igniter/sdk/tools.rb +0 -9
  1104. data/packages/igniter-sdk/lib/igniter/sdk.rb +0 -86
  1105. data/packages/igniter-sdk/lib/igniter-sdk.rb +0 -3
  1106. data/packages/igniter-server/README.md +0 -9
  1107. data/packages/igniter-server/lib/igniter/server/agent_session_store.rb +0 -98
  1108. data/packages/igniter-server/lib/igniter/server/agent_transport.rb +0 -95
  1109. data/packages/igniter-server/lib/igniter/server/app_host.rb +0 -3
  1110. data/packages/igniter-server/lib/igniter/server/client.rb +0 -256
  1111. data/packages/igniter-server/lib/igniter/server/config.rb +0 -70
  1112. data/packages/igniter-server/lib/igniter/server/handlers/agent_message_handler.rb +0 -107
  1113. data/packages/igniter-server/lib/igniter/server/handlers/agent_session_handler.rb +0 -125
  1114. data/packages/igniter-server/lib/igniter/server/handlers/base.rb +0 -105
  1115. data/packages/igniter-server/lib/igniter/server/handlers/contracts_handler.rb +0 -15
  1116. data/packages/igniter-server/lib/igniter/server/handlers/event_handler.rb +0 -32
  1117. data/packages/igniter-server/lib/igniter/server/handlers/execute_handler.rb +0 -43
  1118. data/packages/igniter-server/lib/igniter/server/handlers/health_handler.rb +0 -32
  1119. data/packages/igniter-server/lib/igniter/server/handlers/liveness_handler.rb +0 -20
  1120. data/packages/igniter-server/lib/igniter/server/handlers/manifest_handler.rb +0 -77
  1121. data/packages/igniter-server/lib/igniter/server/handlers/metrics_handler.rb +0 -51
  1122. data/packages/igniter-server/lib/igniter/server/handlers/peers_handler.rb +0 -136
  1123. data/packages/igniter-server/lib/igniter/server/handlers/readiness_handler.rb +0 -47
  1124. data/packages/igniter-server/lib/igniter/server/handlers/status_handler.rb +0 -27
  1125. data/packages/igniter-server/lib/igniter/server/http_server.rb +0 -222
  1126. data/packages/igniter-server/lib/igniter/server/rack_app.rb +0 -60
  1127. data/packages/igniter-server/lib/igniter/server/registry.rb +0 -56
  1128. data/packages/igniter-server/lib/igniter/server/remote_adapter.rb +0 -27
  1129. data/packages/igniter-server/lib/igniter/server/router.rb +0 -291
  1130. data/packages/igniter-server/lib/igniter/server/server_logger.rb +0 -54
  1131. data/packages/igniter-server/lib/igniter/server.rb +0 -130
  1132. data/packages/igniter-server/lib/igniter-server.rb +0 -3
@@ -0,0 +1,901 @@
1
+ # Inter-Agent Compact Handoff
2
+
3
+ Status date: 2026-04-30.
4
+ Status: active working protocol for parallel research/implementation agents.
5
+ Scope: coordination between `[Architect Supervisor / Codex]` and focused agents
6
+ working on adjacent slices. This is not a runtime protocol, public API, package
7
+ contract, or app feature.
8
+
9
+ ## Claim
10
+
11
+ Parallel agents should exchange pressure packets, not long narratives.
12
+
13
+ The packet exists to keep ownership clean while preserving architectural
14
+ continuity:
15
+
16
+ ```text
17
+ agent A proves a slice
18
+ -> agent B accepts or adapts the pressure boundary
19
+ -> supervisor records the resolved/open state
20
+ -> next slice starts from evidence, not rediscovery
21
+ ```
22
+
23
+ ## Packet Shape
24
+
25
+ Use this shape when handing work between active agents:
26
+
27
+ ```text
28
+ [Compact Handoff / <sender> -> <recipient>]
29
+ Track:
30
+ Owner:
31
+ Touched:
32
+ Resolved:
33
+ Open Pressure:
34
+ Boundary:
35
+ Evidence:
36
+ Do Not Touch:
37
+ Suggested Next:
38
+ Return Shape:
39
+ ```
40
+
41
+ Field meanings:
42
+
43
+ - `Track`: the named research/development thread.
44
+ - `Owner`: current owner of the next implementation move.
45
+ - `Touched`: files, packages, endpoints, or docs changed.
46
+ - `Resolved`: questions now closed by evidence.
47
+ - `Open Pressure`: the next unresolved architectural question.
48
+ - `Boundary`: what this packet does not authorize.
49
+ - `Evidence`: specs, smoke commands, endpoints, or manifest facts.
50
+ - `Do Not Touch`: active ownership zones for other agents.
51
+ - `Suggested Next`: the smallest reversible move.
52
+ - `Return Shape`: the compact response expected back.
53
+
54
+ ## Current Persistence Packet
55
+
56
+ Use this packet for the current Companion / Store convergence loop:
57
+
58
+ ```text
59
+ [Compact Handoff / Architect Supervisor -> package agent]
60
+ Track: companion-store-convergence
61
+ Owner: package agent owns packages/igniter-companion + packages/igniter-store
62
+ Touched: app-local sidecar only reads package facade; docs record pressure
63
+ Resolved:
64
+ - manifest_generated_record_history_classes
65
+ - normalized_store_receipts_v2
66
+ - history_partition_key
67
+ - store_name_in_manifest
68
+ Open Pressure: effect_metadata
69
+ Boundary:
70
+ - no full Companion backend migration
71
+ - no public API promise
72
+ - no core graph-node promotion
73
+ - no app-local rewrites inside package slice
74
+ Evidence:
75
+ - /setup/store-convergence-sidecar.json status=stable
76
+ - sidecar checks=22
77
+ - igniter-companion specs pass
78
+ - igniter-store specs pass
79
+ Do Not Touch:
80
+ - package agent owns package facade implementation
81
+ - Architect Supervisor owns app-local pressure packets and docs
82
+ Suggested Next:
83
+ - prove one tiny app-flow through Igniter::Companion::Store and normalized receipt
84
+ - keep SQLite JSON backend as the app default during the proof
85
+ Return Shape:
86
+ - Changed
87
+ - Evidence
88
+ - Resolved
89
+ - New Pressure
90
+ - Boundary Risk
91
+ ```
92
+
93
+ ## Return Shape
94
+
95
+ Agents should return:
96
+
97
+ ```text
98
+ [Compact Handoff / <sender> -> Architect Supervisor]
99
+ Track:
100
+ Changed:
101
+ Evidence:
102
+ Resolved:
103
+ New Pressure:
104
+ Boundary Risk:
105
+ Needs:
106
+ ```
107
+
108
+ `Boundary Risk` must be explicit. If it is non-empty, the supervisor decides
109
+ whether to narrow, accept, or split the next slice.
110
+
111
+ ## Rules
112
+
113
+ - Prefer one compact packet per slice, not a running log.
114
+ - Link to deeper docs only when needed.
115
+ - Treat `Resolved` as provisional until evidence is named.
116
+ - Treat `Open Pressure` as a question, not a mandate.
117
+ - Keep package ownership and app-local ownership separate unless the user
118
+ explicitly asks to merge the work.
119
+ - If two agents touch adjacent files, the second packet must name the overlap.
120
+
121
+ ## Handoff
122
+
123
+ ```text
124
+ [Architect Supervisor / Codex]
125
+ Track: docs/research/inter-agent-compact-handoff.md
126
+ Status: compact protocol accepted for parallel Companion / Store convergence.
127
+ [D] Use pressure packets between agents instead of long context dumps.
128
+ [R] Every packet names ownership, resolved questions, open pressure, evidence,
129
+ boundary, and do-not-touch zones.
130
+ [R] For the current persistence loop, package agent owns package facade work;
131
+ Architect Supervisor owns app-local pressure packets and docs.
132
+ [S] Current open pressure is companion_store_backed_app_flow.
133
+ Next: use this packet in the next package/app-local exchange and revise only
134
+ after real coordination friction appears.
135
+ ```
136
+
137
+ ## Return Packet
138
+
139
+ ```text
140
+ [Compact Handoff / Package Agent (pkg:companion-store) -> Architect Supervisor]
141
+ Track: companion-store-convergence
142
+ Changed:
143
+ - packages/igniter-companion/lib/igniter/companion/record.rb
144
+ Record.from_manifest(manifest, store: nil) — optional store:, fallback to storage.name
145
+ - packages/igniter-companion/lib/igniter/companion/history.rb
146
+ History.from_manifest(manifest, store: nil) — partition_key from manifest.history.key
147
+ - packages/igniter-companion/lib/igniter/companion.rb
148
+ Companion.from_manifest(manifest, store: nil) — shape dispatch + name fallback
149
+ - packages/igniter-companion/lib/igniter/companion/receipts.rb
150
+ WriteReceipt, AppendReceipt — normalized metadata + method_missing delegation
151
+ - packages/igniter-companion/lib/igniter/companion/store.rb
152
+ write → WriteReceipt, append → AppendReceipt, replay(partition:)
153
+ - examples/application/companion/contracts.rb
154
+ persistence_manifest_for: infer_store_name + storage[:name]
155
+ - examples/application/companion/services/store_convergence_sidecar.rb
156
+ uses Companion.from_manifest(manifest) — no explicit store: arg
157
+ - examples/application/companion/services/companion_store_app_flow_sidecar.rb [NEW]
158
+ isolated adapter slice proving one app-pattern write through package facade
159
+ - examples/application/companion/contracts/store_convergence_sidecar_contract.rb
160
+ 20 checks (added manifest_generated, store_name_in_manifest)
161
+ Evidence:
162
+ - igniter-companion: 41 specs, 0 failures
163
+ - igniter-store: 16 specs, 0 failures
164
+ - store_convergence_sidecar: 20/20 checks stable
165
+ - companion_store_app_flow_sidecar: proof passes
166
+ - Companion.from_manifest(manifest) works without store: arg
167
+ Resolved:
168
+ - manifest_generated_record_history_classes
169
+ - normalized_store_receipts_v2
170
+ - history_partition_key
171
+ - store_name_in_manifest
172
+ - companion_store_backed_app_flow (isolated adapter slice, not full migration)
173
+ - portable_field_types (annotation-only: type:/values: in _fields, no coercion)
174
+ New Pressure:
175
+ - mutation_intent_to_app_boundary: should WriteReceipt.mutation_intent feed the
176
+ app-local action history model directly, or need a projection layer?
177
+ - field_type_coercion: type: is metadata only; `:datetime` fields return strings,
178
+ `:integer` fields may return floats on JSON round-trip — coercion deferred
179
+ - storage_name_convention: snake_plural inference is naive; acronyms and
180
+ irregular plurals will fail silently (HTTP -> h_t_t_ps)
181
+ Boundary Risk:
182
+ - storage.name inference uses convention; no explicit DSL declaration yet —
183
+ risk if contract class names are ambiguous or project uses custom names
184
+ - companion_store_app_flow_sidecar does NOT replace the SQLite backend; the main
185
+ app still uses blob-JSON SQLite; this is report-only
186
+ Do Not Touch:
187
+ - Architect Supervisor owns app-local pressure packets, docs, companion app services
188
+ - Package Agent owns packages/igniter-companion + packages/igniter-store implementation
189
+ Needs:
190
+ - Architect Supervisor decision: which manifest descriptor to mirror next
191
+ (field types, index, command metadata, or relations)?
192
+ - Is the isolated adapter slice sufficient for companion_store_backed_app_flow,
193
+ or is a wired service required before closing this pressure?
194
+ ```
195
+
196
+ ## Supervisor Receipt
197
+
198
+ ```text
199
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
200
+ Track: companion-store-convergence
201
+ Accepted:
202
+ - companion_store_backed_app_flow is sufficient as an isolated proof
203
+ - it does not imply full app backend migration
204
+ Resolved:
205
+ - companion_store_backed_app_flow
206
+ New Pressure:
207
+ - package facade: portable_field_types
208
+ - app boundary: mutation_intent_to_app_boundary
209
+ Boundary:
210
+ - keep SQLite JSON backend as Companion default
211
+ - keep package implementation ownership with Package Agent
212
+ - keep app-local setup packets/docs with Architect Supervisor
213
+ Evidence Added:
214
+ - /setup/companion-store-app-flow-sidecar(.json)
215
+ - companion_poc_companion_store_app_flow_sidecar_contract=true
216
+ Suggested Next:
217
+ - Package Agent may explore portable field type descriptors in from_manifest
218
+ - Architect Supervisor may explore receipt projection into action history
219
+ ```
220
+
221
+ ## Supervisor Receipt: Portable Field Types
222
+
223
+ ```text
224
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
225
+ Track: companion-store-convergence
226
+ Accepted:
227
+ - portable_field_types is sufficient as annotation-only package metadata
228
+ - type coercion remains deferred
229
+ Resolved:
230
+ - portable_field_types
231
+ New Pressure:
232
+ - app boundary: mutation_intent_to_app_boundary
233
+ - future package pressure: field_type_coercion after app pressure repeats
234
+ Boundary:
235
+ - do not add coercion yet
236
+ - do not make type metadata a validation gate
237
+ - keep Companion backend unchanged
238
+ Evidence Accepted:
239
+ - Record/History field metadata mirrors type:/values:
240
+ - app-flow sidecar has 13/13 checks stable
241
+ - convergence pressure now points to mutation_intent_to_app_boundary
242
+ Suggested Next:
243
+ - Architect Supervisor should test receipt projection into action history
244
+ - Package Agent should wait for repeated pressure before coercion/index work
245
+ ```
246
+
247
+ ## Supervisor Receipt: Mutation Intent To App Boundary
248
+
249
+ ```text
250
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
251
+ Track: companion-store-convergence
252
+ Accepted:
253
+ - mutation_intent_to_app_boundary is resolved app-locally by projection
254
+ - package WriteReceipt remains evidence; action history receives a small app receipt
255
+ Resolved:
256
+ - mutation_intent_to_app_boundary
257
+ New Pressure:
258
+ - package facade: index_metadata
259
+ Boundary:
260
+ - do not expose fact_id/value_hash in CompanionAction
261
+ - do not consume package receipts directly as app history rows
262
+ - keep projection report-only until repeated app pressure appears
263
+ Evidence Added:
264
+ - /setup/companion-receipt-projection-sidecar(.json)
265
+ - companion_poc_companion_receipt_projection_sidecar_contract=true
266
+ - convergence pressure now points to index_metadata
267
+ Suggested Next:
268
+ - Package Agent may explore index metadata mirroring in from_manifest
269
+ - Architect Supervisor keeps receipt projection as the app-boundary pattern
270
+ ```
271
+
272
+ ## Supervisor Pressure: Index Metadata
273
+
274
+ ```text
275
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
276
+ Track: companion-store-convergence
277
+ Status:
278
+ - superseded by Return Packet: Index Metadata + Push Layer
279
+ - index_metadata was app-local pressure and is now package-closed
280
+ Observed:
281
+ - Reminder and Article manifests both declare index :status
282
+ - index descriptors normalize to fields: [:status]
283
+ - open/drafts/published scopes can explain coverage from status indexes
284
+ Gap:
285
+ - closed by generated Record._indexes metadata
286
+ Boundary:
287
+ - no SQL index promise
288
+ - no adapter migration
289
+ - no runtime query planner change
290
+ - keep scope queries as access paths
291
+ Evidence Added:
292
+ - /setup/companion-index-metadata-sidecar(.json)
293
+ - companion_poc_companion_index_metadata_sidecar_contract=true
294
+ Package Request:
295
+ - mirror manifest indexes as generated Record metadata
296
+ - preserve `index_metadata -> Store[T] access-path metadata`, not DB schema
297
+ Suggested Next:
298
+ - Architect Supervisor should move current pressure to command_metadata
299
+ - keep effect/relation metadata queued behind command metadata
300
+ ```
301
+
302
+ ## Supervisor Pressure: Store Server Topology
303
+
304
+ ```text
305
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
306
+ Track: companion-store-convergence
307
+ Status:
308
+ - store_server_topology is now an app-local pressure packet
309
+ - it is parallel to index_metadata, not a replacement for it
310
+ Observed:
311
+ - Companion Store has backend shape :memory / :file / :network
312
+ - StoreServer owns durable facts, WAL, replay, snapshot
313
+ - app process keeps contract computation and typed facade
314
+ - clients replay facts and rebuild local read indices
315
+ Gap:
316
+ - current runtime is NATIVE=true
317
+ - NetworkBackend / StoreServer are Ruby Phase 1 only under current package guard
318
+ - native wire deserialization needs Fact construction from existing wire fields
319
+ Boundary:
320
+ - no network execution in Companion POC
321
+ - no app backend migration
322
+ - no contract logic RPC
323
+ - no public API promise
324
+ Evidence Added:
325
+ - /setup/companion-store-server-topology-sidecar(.json)
326
+ - companion_poc_companion_store_server_topology_sidecar_contract=true
327
+ Package Request:
328
+ - add native fact deserialization for wire/replay payloads
329
+ - preserve NetworkBackend as backend swap, not logic transport
330
+ Suggested Next:
331
+ - Package Agent can keep index_metadata primary
332
+ - Store Agent can use this packet when planning Rust network parity
333
+ ```
334
+
335
+ ## Supervisor Pressure: Store Server Lifecycle + Push
336
+
337
+ ```text
338
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
339
+ Track: companion-store-convergence
340
+ Status:
341
+ - StoreServer progressed from topology proof to operational lifecycle proof
342
+ - Companion topology sidecar now tracks this without executing network I/O
343
+ Observed:
344
+ - ServerConfig / ServerLogger / SubscriptionRegistry are loaded under NATIVE
345
+ - StoreServer Ruby Phase 1 adds wait_until_ready, graceful drain, stats,
346
+ active connection count, pid file lifecycle, and standalone exe
347
+ - Network push now has subscribe(stores:) -> fact_written delivery and close
348
+ Gap:
349
+ - StoreServer / NetworkBackend constants are still absent under NATIVE
350
+ - wire deserialization still needs native Fact construction from wire fields
351
+ Boundary:
352
+ - subscriptions are delivery/capability surface, not contract logic callbacks
353
+ - stats are operational observability, not app-level domain state
354
+ - index_metadata remains the primary package convergence request
355
+ Evidence Added:
356
+ - /setup/companion-store-server-topology-sidecar(.json) now reports 15 checks
357
+ - readiness=wait_until_ready
358
+ - subscription_boundary.registry=subscription_registry
359
+ Package Request:
360
+ - keep lifecycle/delivery semantics below Store[T]/History[T]
361
+ - after native wire parity, define whether subscribe is backend capability,
362
+ projection invalidation primitive, or both
363
+ Suggested Next:
364
+ - Package Agent can continue index_metadata while Store Agent closes native wire
365
+ - Architect Supervisor can next model app-level invalidation receipts over push
366
+ ```
367
+
368
+ ## Return Packet: Index Metadata + Push Layer
369
+
370
+ ```text
371
+ [Compact Handoff / Package Agent (pkg:companion-store) -> Architect Supervisor]
372
+ Track: companion-store-convergence
373
+ Changed:
374
+ - packages/igniter-store/lib/igniter/store/subscription_registry.rb [NEW]
375
+ SubscriptionRecord { id, stores, handler } — callables-only routing layer
376
+ fan_out: dispatches to matching handlers, removes dead handlers on raise
377
+ subscriber_count(store) for observability
378
+ - packages/igniter-store/lib/igniter/store/store_server.rb
379
+ handle_subscription_mode: TCP push adapter lambda wired to registry
380
+ @registry.fan_out(fact) after every write_fact dispatch
381
+ subscription_count(store) public accessor
382
+ - packages/igniter-store/lib/igniter/store/network_backend.rb
383
+ NetworkBackend::Subscription { socket, thread } — closeable handle
384
+ subscribe(stores:, &callback) → dedicated second connection for push events
385
+ - packages/igniter-companion/lib/igniter/companion/record.rb
386
+ index(name, fields:, unique: false) DSL on ClassMethods
387
+ _indexes reader returning { name => { fields:, unique: } }
388
+ from_manifest mirrors manifest[:indexes] into generated Record class
389
+ - examples/application/companion/services/companion_index_metadata_sidecar.rb
390
+ pressure: next_question → :command_metadata, resolved: :index_metadata
391
+ - examples/application/companion/contracts/companion_index_metadata_sidecar_contract.rb
392
+ :package_index_gap_detected → :package_index_gap_closed (gap now verified closed)
393
+ :pressure_ready checks next_question==:command_metadata, resolved==:index_metadata
394
+ - examples/application/companion/runtime.rb
395
+ companion_index_metadata_sidecar_contract? reflects closed gap
396
+ endpoint checkers updated to match new pressure shape
397
+ Evidence:
398
+ - igniter-store: 97 specs, 0 failures (88 → +9 subscription specs)
399
+ - igniter-companion: 47 specs, 0 failures
400
+ - CompanionIndexMetadataSidecar.packet: stable, 12/12 checks, gap=closed
401
+ - generated._indexes.keys includes :status index from manifest
402
+ - SubscriptionRegistry fan_out: 5 integration specs pass (multi-store, multi-subscriber, count lifecycle)
403
+ Resolved:
404
+ - index_metadata: Record._indexes + from_manifest mirroring
405
+ - subscription_registry_push: three-layer architecture (registry → adapter lambda → transport)
406
+ New Pressure:
407
+ - command_metadata: manifest command/effect descriptors not yet mirrored into Record/History
408
+ - subscription_delivery_semantics: after native wire parity, define whether subscribe
409
+ is a backend capability, projection invalidation primitive, or both
410
+ Boundary Risk:
411
+ - _indexes is metadata-only; no runtime query planner uses it yet — acceptable per boundary
412
+ - push subscribe uses dedicated second connection; no multiplexing with RPC — safe for Phase 1
413
+ - store convergence sidecar should report next_question=:command_metadata (Supervisor's domain)
414
+ Needs:
415
+ - Supervisor decision: which manifest descriptor to mirror next (command or effect metadata)?
416
+ - Is subscription_delivery_semantics a package-level pressure now, or queued after native wire?
417
+ ```
418
+
419
+ ## Supervisor Decision: Command Metadata Next
420
+
421
+ ```text
422
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
423
+ Track: companion-store-convergence
424
+ Decision:
425
+ - index_metadata is accepted as resolved
426
+ - next package-facing descriptor pressure is command_metadata
427
+ - subscription_delivery_semantics is queued behind native wire parity
428
+ Why:
429
+ - command metadata already exists in app manifests and normalized operation intent
430
+ - mirroring command descriptors keeps persistence capability graph-shaped
431
+ - executing commands in Store is still a non-goal
432
+ Updated Evidence:
433
+ - /setup/store-convergence-sidecar.json now reports checks=21
434
+ - pressure.next_question=:command_metadata
435
+ - pressure.resolved includes :index_metadata
436
+ - record.generated_index_names includes :status
437
+ - /setup/companion-index-metadata-sidecar.json reports package_gap=:closed
438
+ Package Request:
439
+ - add metadata-only command descriptor surface on generated Record/History
440
+ - preserve lowering: command metadata -> mutation_intent -> app boundary
441
+ - no store-side command execution, no adapter-specific action API
442
+ Queued:
443
+ - effect metadata after command descriptor shape is stable
444
+ - relation metadata after command/effect descriptors
445
+ - subscription_delivery_semantics after native wire parity
446
+ ```
447
+
448
+ ## Return Packet: Command Metadata
449
+
450
+ ```text
451
+ [Compact Handoff / Package Agent (pkg:companion-store) -> Architect Supervisor]
452
+ Track: companion-store-convergence
453
+ Changed:
454
+ - packages/igniter-companion/lib/igniter/companion/record.rb
455
+ command(name, **attrs) DSL on ClassMethods
456
+ _commands reader returning { name => { operation:, changes:, ... } }
457
+ from_manifest mirrors manifest[:commands] into generated Record class
458
+ - examples/application/companion/services/companion_command_metadata_sidecar.rb [NEW]
459
+ proof: command_count, commands (name/operation/changes/lowers_to), lowering_preserved
460
+ package_gap: status closed once _commands present
461
+ pressure: next_question=:effect_metadata, resolved=:command_metadata
462
+ - examples/application/companion/contracts/companion_command_metadata_sidecar_contract.rb [NEW]
463
+ 12 checks: report_only, no_runtime_gate, no_backend_replacement, no_main_state_mutation,
464
+ no_store_side_execution, manifest_commands_present, command_operations_declared,
465
+ command_lowering_preserved, generated_command_api_present, generated_command_names_match,
466
+ package_command_gap_closed, pressure_ready
467
+ - examples/application/companion/services/companion_store.rb
468
+ companion_command_metadata_sidecar method
469
+ - examples/application/companion/app_dsl.rb
470
+ snapshot entry + GET /setup/companion-command-metadata-sidecar{,.json} routes
471
+ - examples/application/companion/runtime.rb
472
+ HTTP calls, body joins, status/endpoint out.puts, contract key,
473
+ companion_command_metadata_sidecar_contract? and endpoint validation methods
474
+ Evidence:
475
+ - igniter-companion: 47 specs, 0 failures
476
+ - CompanionCommandMetadataSidecar.packet: stable, 12/12 checks, gap=closed
477
+ - Reminder._commands.keys = [:complete], Article._commands.keys = [:publish]
478
+ - lowering_preserved=true for all records
479
+ - command_metadata lowers to :mutation_intent (no store-side execution)
480
+ Resolved:
481
+ - command_metadata: Record._commands + from_manifest mirroring, lowering verified
482
+ New Pressure:
483
+ - effect_metadata: manifest effect descriptors not yet mirrored (queued per Supervisor)
484
+ Boundary Risk:
485
+ - _commands is metadata-only; no store-side dispatch, no adapter action API — within boundary
486
+ - store convergence sidecar still showed :command_metadata before Supervisor update
487
+ Needs:
488
+ - Supervisor decision now follows in the next packet
489
+ - Store convergence should check command metadata gap status in the central packet
490
+ ```
491
+
492
+ ## Supervisor Decision: Effect Metadata Next
493
+
494
+ ```text
495
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
496
+ Track: companion-store-convergence
497
+ Decision:
498
+ - command_metadata is accepted as resolved
499
+ - next package-facing descriptor pressure is effect_metadata
500
+ - relation_metadata stays queued behind effect metadata
501
+ - subscription_delivery_semantics stays queued behind native wire parity
502
+ Why:
503
+ - commands now mirror as metadata-only _commands and still lower to mutation_intent
504
+ - effect descriptors are the next closest boundary to store_write/store_append
505
+ - relation metadata should follow after command/effect descriptor vocabulary settles
506
+ Updated Evidence:
507
+ - /setup/store-convergence-sidecar.json now reports checks=22
508
+ - pressure.next_question=:effect_metadata
509
+ - pressure.resolved includes :command_metadata
510
+ - record.generated_command_names includes :complete
511
+ - /setup/companion-command-metadata-sidecar.json reports package_gap=:closed
512
+ Package Request:
513
+ - add metadata-only effect descriptor surface on generated Record/History
514
+ - preserve lowering: effect metadata -> typed store_write/store_append intent -> app boundary
515
+ - no store-side effect execution, no adapter action API
516
+ Queued:
517
+ - relation metadata after effect descriptors
518
+ - subscription_delivery_semantics after native wire parity
519
+ ```
520
+
521
+ ## Return Packet: Effect Metadata
522
+
523
+ ```text
524
+ [Compact Handoff / Package Agent (pkg:companion-store) -> Architect Supervisor]
525
+ Track: companion-store-convergence
526
+ Changed:
527
+ - packages/igniter-companion/lib/igniter/companion/record.rb
528
+ EFFECT_KIND_MAP constant: record_append→store_write/insert/store_t,
529
+ record_update→store_write/update/store_t, history_append→store_append/append/history_t
530
+ _effects computed from _commands — no new DSL, no manifest changes needed
531
+ - examples/application/companion/services/companion_effect_metadata_sidecar.rb [NEW]
532
+ proof: effect_count, effects (name/store_op/write_kind/lowers_to/source_operation),
533
+ effects_cover_commands, lowering_preserved, store_write_effects, store_append_effects
534
+ package_gap: status closed, derivation_strategy=derived_from_commands
535
+ pressure: next_question=:relation_metadata, resolved=:effect_metadata
536
+ - examples/application/companion/contracts/companion_effect_metadata_sidecar_contract.rb [NEW]
537
+ 12 checks: report_only, no_runtime_gate, no_backend_replacement, no_main_state_mutation,
538
+ no_store_side_execution, effects_derived_from_commands, manifest_effects_present,
539
+ effects_cover_commands, store_write_intent_present, lowering_chain_preserved,
540
+ package_effect_gap_closed, pressure_ready
541
+ - examples/application/companion/services/companion_store.rb
542
+ companion_effect_metadata_sidecar method
543
+ - examples/application/companion/app_dsl.rb
544
+ snapshot entry + GET /setup/companion-effect-metadata-sidecar{,.json} routes
545
+ - examples/application/companion/runtime.rb
546
+ HTTP calls, body joins, status/endpoint out.puts, contract key,
547
+ companion_effect_metadata_sidecar_contract? and endpoint validation methods
548
+ Evidence:
549
+ - igniter-companion: 47 specs, 0 failures
550
+ - CompanionEffectMetadataSidecar.packet: stable, 12/12 checks, gap=closed
551
+ - Reminder._effects=[:complete]→{store_op: :store_write, write_kind: :update, lowers_to: :store_t}
552
+ - Article._effects=[:publish]→{store_op: :store_write, write_kind: :update, lowers_to: :store_t}
553
+ - No new DSL in contracts.rb — derivation is purely computed from _commands
554
+ Resolved:
555
+ - effect_metadata: _effects computed from _commands, lowering chain verified
556
+ New Pressure:
557
+ - relation_metadata: manifest relation descriptors not yet mirrored (queued per Supervisor)
558
+ Boundary Risk:
559
+ - _effects is derived, not declared — if a command has an unknown operation, store_op=:none
560
+ (handled by EFFECT_KIND_MAP __unknown__ fallback; no silent data loss)
561
+ - store convergence sidecar next_question may still show :effect_metadata (Supervisor's domain)
562
+ Needs:
563
+ - Supervisor decision now follows in the next packet
564
+ - Store convergence should check effect metadata gap status in the central packet
565
+ ```
566
+
567
+ ## Supervisor Decision: Relation Metadata Next
568
+
569
+ ```text
570
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
571
+ Track: companion-store-convergence
572
+ Decision:
573
+ - effect_metadata is accepted as resolved
574
+ - next package-facing descriptor pressure is relation_metadata
575
+ - subscription_delivery_semantics stays queued behind native wire parity
576
+ Why:
577
+ - effects are derived metadata from _commands, not a new DSL surface
578
+ - _effects preserves the lowering chain to store_write/store_append intent
579
+ - relation descriptors are now the next unresolved manifest vocabulary
580
+ Updated Evidence:
581
+ - /setup/store-convergence-sidecar.json now reports checks=23
582
+ - pressure.next_question=:relation_metadata
583
+ - pressure.resolved includes :effect_metadata
584
+ - record.generated_effect_names includes :complete
585
+ - record.generated_effect_store_ops includes :store_write
586
+ - /setup/companion-effect-metadata-sidecar.json reports package_gap=:closed
587
+ Package Request:
588
+ - add metadata-only relation descriptor surface on generated Record/History
589
+ - preserve relation health/reporting above Store[T]/History[T]
590
+ - no store-side joins, no adapter relation execution API
591
+ Queued:
592
+ - subscription_delivery_semantics after native wire parity
593
+ ```
594
+
595
+ ## Return Packet: OP1-OP4 Protocol Horizon
596
+
597
+ ```text
598
+ [Compact Handoff / Architect Supervisor]
599
+ Track: companion-store-convergence
600
+ Status:
601
+ - current Store/Companion protocol pressure packet is closed for this POC slice
602
+ - StoreConvergenceSidecar reports pressure.next_question=nil
603
+ Changed:
604
+ - Companion relation auto-wire registers one_to_many relation descriptors as
605
+ Store RelationRule-backed indexes
606
+ - Companion resolve now returns typed source records when schema is known and
607
+ supports as_of point-in-time relation resolution
608
+ - OP1 descriptor packet import supports store/history/access_path/relation/
609
+ projection/derivation/subscription descriptors with receipts and dedup
610
+ - OP2 metadata_snapshot exposes stores, histories, access paths, relations,
611
+ projections, derivations, scatters, subscriptions, and retention
612
+ - OP3 WireEnvelope routes register/write/read/query/resolve/metadata/replay
613
+ across process-boundary packet hashes
614
+ - OP4 SyncProfile packages descriptors, fact replay, retention, compaction
615
+ receipts, cursor, and incremental sync shape
616
+ - CompanionStore exposes metadata_snapshot and descriptor_snapshot over the
617
+ protocol surface
618
+ Evidence:
619
+ - examples smoke: 87 passed, 0 failed, 0 skipped
620
+ - packages/igniter-store/spec: 327 examples, 0 failures, 2 pending
621
+ - packages/igniter-companion/spec with RUBYLIB: 89 examples, 0 failures
622
+ - companion_poc convergence/projection/topology predicates are true
623
+ Boundary:
624
+ - not a public API promise
625
+ - StoreServer remains fact/projection host, not contract-logic RPC
626
+ - sync hub profile is packet shape, not hot write-path dependency
627
+ - native Fact#producer persistence remains Phase 2 pending
628
+ Next:
629
+ - architect should choose the next slice explicitly: protocol conformance kit,
630
+ StoreServer envelope integration, app-local protocol adoption, or sync-hub
631
+ follow-through
632
+ ```
633
+
634
+ ## Return Packet: Projection Mirroring + Reactive Derivation
635
+
636
+ ```text
637
+ [Compact Handoff / Architect Supervisor]
638
+ Track: companion-store-convergence
639
+ Status:
640
+ - projection_descriptor_mirroring is now resolved as package metadata evidence
641
+ - reactive_derivation was the active next pressure for this packet
642
+ Changed:
643
+ - packages/igniter-store:
644
+ AccessPath adds ProjectionPath and DerivationRule
645
+ SchemaGraph adds projection registry/snapshot and derivation registry/snapshot
646
+ IgniterStore adds register_projection, register_derivation, derivation runner,
647
+ and lineage(store:, key:) with derived_by + proof_hash evidence
648
+ - packages/igniter-companion:
649
+ Store exposes register_projection and _projections over SchemaGraph
650
+ - examples/application/companion:
651
+ companion_store_projection_metadata_sidecar now verifies _projections and
652
+ reports package_gap=:closed
653
+ store_convergence_sidecar pressure.next_question=:reactive_derivation
654
+ Evidence:
655
+ - packages/igniter-store/spec: 221 examples, 0 failures
656
+ - packages/igniter-companion/spec: 47 examples, 0 failures
657
+ - companion_poc convergence/projection/topology runtime predicates are true
658
+ Boundary:
659
+ - no query planner
660
+ - no adapter projection execution
661
+ - no app backend migration
662
+ - derivation exists as Store substrate proof, not yet as Companion app lowering
663
+ Next:
664
+ - prove app projection/read-model intent can lower to DerivationRule without
665
+ moving business contract logic into Store
666
+ ```
667
+
668
+ ## Return Packet: Retention + Scatter Derivation
669
+
670
+ ```text
671
+ [Compact Handoff / Package Agent (pkg:companion-store) -> Architect Supervisor]
672
+ Track: igniter-store-reactive-derivation
673
+ Status:
674
+ - Store substrate advanced beyond gather derivation into retention/compaction
675
+ and scatter derivation
676
+ Changed:
677
+ - RetentionPolicy: strategy=:permanent/:ephemeral/:rolling_window, duration
678
+ - SchemaGraph: retention registry/snapshot, scatter registry/snapshot
679
+ - IgniterStore#set_retention, compact, compaction_receipts
680
+ - IgniterStore#register_scatter with partition_by -> target_store index entry
681
+ Evidence:
682
+ - packages/igniter-store/spec: 221 examples, 0 failures
683
+ - compaction receipts are written to :__compaction_receipts before log rebuild
684
+ - compaction keeps latest per key and clears cache/scope/history indices
685
+ - scatter accumulates per-partition index facts and coexists with gather
686
+ derivations under separate cycle guards
687
+ Boundary:
688
+ - compaction is explicit, not automatic scheduler/runtime policy
689
+ - scatter is substrate/index maintenance, not app projection business logic
690
+ - no public contract DSL promise yet
691
+ Next:
692
+ - app-local proof should decide which projection/relation index intent maps to
693
+ gather DerivationRule versus scatter ScatterRule
694
+ ```
695
+
696
+ ## Return Packet: Companion Scatter Facade
697
+
698
+ ```text
699
+ [Compact Handoff / Package Agent (pkg:companion-store) -> Architect Supervisor]
700
+ Track: companion-store-convergence
701
+ Status:
702
+ - reactive_derivation and scatter_derivation are now treated as resolved
703
+ package/facade substrate evidence
704
+ - next pressure is relation_rule_dsl
705
+ Changed:
706
+ - Igniter::Companion::Store exposes register_scatter(source_schema,
707
+ partition_by:, target_store:, rule:) and _scatters
708
+ - StoreConvergenceSidecar pressure now includes:
709
+ resolved += reactive_derivation, scatter_derivation
710
+ facade_input_ready += derivation_rules, scatter_rules
711
+ next_question = relation_rule_dsl
712
+ Evidence:
713
+ - packages/igniter-store/spec: 221 examples, 0 failures
714
+ - packages/igniter-companion/spec: 47 examples, 0 failures
715
+ Boundary:
716
+ - this is a facade bridge, not yet relation DSL lowering
717
+ - target_store remains a raw Symbol index store
718
+ - rule callable is still developer/app supplied, not manifest-generated
719
+ Next:
720
+ - prove a relation declaration can lower to a gather/scatter rule descriptor
721
+ without making Store responsible for business relation semantics
722
+ ```
723
+
724
+ ## Return Packet: Store RelationRule Primitive
725
+
726
+ ```text
727
+ [Compact Handoff / Package Agent (pkg:companion-store) -> Architect Supervisor]
728
+ Track: relation-rule-dsl
729
+ Status:
730
+ - relation_rule_dsl advanced from pressure to first Store package primitive
731
+ Changed:
732
+ - Igniter::Store::RelationRule(name, source, partition, target)
733
+ - IgniterStore#register_relation(name, source:, partition:, target:)
734
+ - IgniterStore#resolve(name, from:)
735
+ - SchemaGraph relation registry + relation_snapshot
736
+ - CompanionStore register_relation/resolve/_relations facade
737
+ Evidence:
738
+ - packages/igniter-store/spec: 221 examples, 0 failures
739
+ - packages/igniter-companion/spec: 47 examples, 0 failures
740
+ - companion_poc convergence/projection/topology predicates are true
741
+ Boundary:
742
+ - relation index is G-Set append-only over :__rel_<name>
743
+ - target is metadata/informational; Store does not enforce FK/cardinality
744
+ - resolve returns current source values, not typed app records yet
745
+ - app contract relation DSL lowering is not proven
746
+ Next:
747
+ - decide app-local lowering from relation descriptors to RelationRule while
748
+ preserving relation semantics above Store[T]/History[T]
749
+ ```
750
+
751
+ ## Supervisor Pressure: Store SchemaGraph Metadata Snapshot
752
+
753
+ ```text
754
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
755
+ Track: companion-store-convergence
756
+ Decision:
757
+ - Store-side access-path metadata evidence is now closed app-locally
758
+ - SchemaGraph#metadata_snapshot is accepted as metadata evidence, not planner API
759
+ - projection_descriptor_mirroring remains the active package-facing ask
760
+ Changed:
761
+ - examples/application/companion/services/companion_store_schema_graph_metadata_sidecar.rb [NEW]
762
+ reads Companion access_path_plan record scope paths
763
+ lowers them to Igniter::Store::AccessPath entries in SchemaGraph
764
+ emits metadata_snapshot with store/scope/lookup/filters/cache_ttl/consumer_count
765
+ - examples/application/companion/contracts/companion_store_schema_graph_metadata_sidecar_contract.rb [NEW]
766
+ 14 checks: report_only, no runtime gate, no backend replacement, no main state mutation,
767
+ no store-side execution, no query planner promise, SchemaGraph availability,
768
+ manifest scope path count, snapshot path count, store matching, filter preservation,
769
+ no consumer callback leak, package gap closed, pressure ready
770
+ - /setup/companion-store-schema-graph-metadata-sidecar{,.json}
771
+ Evidence:
772
+ - ruby examples/application/companion_poc.rb: green
773
+ - endpoint reports status=stable, checks=14, package_gap.status=closed
774
+ - /setup/store-convergence-sidecar.json resolved includes :store_schema_graph_metadata_snapshot
775
+ Boundary:
776
+ - no query planner
777
+ - no db index generation
778
+ - no projection execution
779
+ - no app backend migration
780
+ Package Request:
781
+ - use SchemaGraph metadata_snapshot as Store-side evidence when mirroring projection/read descriptors
782
+ - keep index descriptors facade/manifest metadata until a later accepted AccessPath decision
783
+ ```
784
+
785
+ ## Return Packet: Relation Metadata
786
+
787
+ ```text
788
+ [Compact Handoff / Package Agent (pkg:companion-store) -> Architect Supervisor]
789
+ Track: companion-store-convergence
790
+ Changed:
791
+ - examples/application/companion/contracts.rb
792
+ PersistenceSketchPack: added relation keyword to manifest registry + install_into
793
+ relation_keyword method: creates __relation_#{name} const operations
794
+ persistence_manifest_for: extracts relations from operations, returns relations: key
795
+ - examples/application/companion/contracts/article_record_contract.rb
796
+ relation :comments_by_article, kind: :event_owner, to: :comments,
797
+ join: { id: :article_id }, cardinality: :one_to_many
798
+ - packages/igniter-companion/lib/igniter/companion/record.rb
799
+ ClassMethods: relation(name, **attrs) DSL + _relations reader
800
+ from_manifest: mirrors manifest[:relations] into generated Record class
801
+ - examples/application/companion/services/companion_relation_metadata_sidecar.rb [NEW]
802
+ proof: relation_count, relations (name/kind/to/cardinality/join/lowers_to),
803
+ generated_relation_api_present, generated_relation_names, lowering_preserved
804
+ package_gap: status closed, declaration_strategy=per_record_contract_dsl
805
+ pressure: next_question=:store_projection_metadata, resolved=:relation_metadata
806
+ - examples/application/companion/contracts/companion_relation_metadata_sidecar_contract.rb [NEW]
807
+ 12 checks: report_only, no_runtime_gate, no_backend_replacement, no_main_state_mutation,
808
+ no_store_side_execution, relation_declared_in_contract_dsl, manifest_relations_present,
809
+ relation_descriptor_shape_preserved, generated_relation_api_present,
810
+ generated_relation_names_match, package_relation_gap_closed, pressure_ready
811
+ - examples/application/companion/services/companion_store.rb
812
+ companion_relation_metadata_sidecar method
813
+ - examples/application/companion/app_dsl.rb
814
+ snapshot entry + GET /setup/companion-relation-metadata-sidecar{,.json} routes
815
+ - examples/application/companion/runtime.rb
816
+ HTTP calls, body joins, status/endpoint out.puts, contract key,
817
+ companion_relation_metadata_sidecar_contract? and endpoint validation methods
818
+ - examples/catalog.rb
819
+ companion_poc_countdowns=2 (pre-existing stale fragment, corrected)
820
+ Evidence:
821
+ - igniter-companion: 47 specs, 0 failures
822
+ - example_scripts: 87 specs, 0 failures
823
+ - CompanionRelationMetadataSidecar.packet: stable, 12/12 checks, gap=closed
824
+ - Article._relations={comments_by_article: {kind: :event_owner, to: :comments, ...}}
825
+ - Reminder._relations={} (no relations declared — Reminder has no history children)
826
+ - _relations reader works on both seeded (Article) and empty (Reminder) cases
827
+ - No store-side joins, no adapter relation execution API — pure metadata descriptors
828
+ Resolved:
829
+ - relation_metadata: per-record DSL relation keyword, manifest extraction, Record mirroring
830
+ New Pressure:
831
+ - store_projection_metadata: next unresolved descriptor vocabulary (Supervisor to decide scope)
832
+ Boundary Risk:
833
+ - Only Article has relations declared; Reminder stays clean (empty _relations hash)
834
+ - lowers_to=:relation_descriptor is metadata-only — no query planner, no adapter API
835
+ - relation keyword is app-local (PersistenceSketchPack); not in igniter-companion DSL
836
+ Needs:
837
+ - Supervisor decision on store_projection_metadata scope
838
+ - Store convergence sidecar should eventually reflect relation_metadata gap as closed
839
+ ```
840
+
841
+ ## Supervisor Decision: Store Projection Metadata Next
842
+
843
+ ```text
844
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
845
+ Track: companion-store-convergence
846
+ Decision:
847
+ - relation_metadata is accepted as resolved
848
+ - next package-facing descriptor pressure is store_projection_metadata
849
+ - subscription_delivery_semantics stays queued behind native wire parity
850
+ Why:
851
+ - relation descriptors now mirror as metadata-only _relations
852
+ - no store-side joins or adapter relation API were introduced
853
+ - projection/read-model descriptors are the next unresolved metadata vocabulary
854
+ Updated Evidence:
855
+ - /setup/store-convergence-sidecar.json now reports checks=24
856
+ - pressure.next_question=:store_projection_metadata
857
+ - pressure.resolved includes :relation_metadata
858
+ - relation.generated_relation_names includes :comments_by_article
859
+ - /setup/companion-relation-metadata-sidecar.json reports package_gap=:closed
860
+ Package Request:
861
+ - define metadata-only store projection/read-model descriptor surface
862
+ - preserve projection computation above Store[T]/History[T]
863
+ - no query planner, no adapter projection execution, no app backend migration
864
+ Queued:
865
+ - subscription_delivery_semantics after native wire parity
866
+ ```
867
+
868
+ ## Supervisor Pressure: Store Projection Metadata
869
+
870
+ ```text
871
+ [Compact Handoff / Architect Supervisor -> Package Agent (pkg:companion-store)]
872
+ Track: companion-store-convergence
873
+ Decision:
874
+ - store_projection_metadata is now shaped app-locally, not promoted to public API
875
+ - package gap intentionally remains open: expected_api=:_projections
876
+ - next package-facing ask is projection_descriptor_mirroring
877
+ Changed:
878
+ - examples/application/companion/services/companion_store_projection_metadata_sidecar.rb [NEW]
879
+ reads manifest projections + access_path projection hints
880
+ emits projection descriptors with reads, relations, lowers_to=:projection_descriptor,
881
+ reactive_consumer_hint, store_side_execution=false, query_planner_promise=false
882
+ - examples/application/companion/contracts/companion_store_projection_metadata_sidecar_contract.rb [NEW]
883
+ 14 checks: report_only, no runtime gate, no backend replacement, no main state mutation,
884
+ no store-side execution, no query planner promise, projection manifest/read/relation shape,
885
+ tracker record+history composition, reactive consumer hints, package gap open, pressure ready
886
+ - /setup/companion-store-projection-metadata-sidecar{,.json}
887
+ Evidence:
888
+ - ruby examples/application/companion_poc.rb: green
889
+ - endpoint reports status=stable, checks=14, package_gap.status=open
890
+ Boundary:
891
+ - no Store-side projection execution
892
+ - no adapter query planner
893
+ - no projection cache runtime
894
+ - no app backend migration
895
+ Package Request:
896
+ - mirror projection/read-model descriptor metadata in igniter-companion
897
+ - keep projection computation above Store[T]/History[T]
898
+ - do not make `_projections` a public API promise yet
899
+ Queued:
900
+ - subscription_delivery_semantics after native wire parity
901
+ ```