igniter 0.5.0 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -3
- data/README.md +150 -658
- data/docs/README.md +59 -0
- data/docs/assets/README.md +8 -0
- data/docs/concepts/README.md +18 -0
- data/docs/concepts/igniter.md +119 -0
- data/docs/dev/README.md +48 -0
- data/docs/dev/agent-orchestra-dna.md +271 -0
- data/docs/dev/ai-agents-target-plan.md +178 -0
- data/docs/dev/application-target-plan.md +45 -0
- data/docs/dev/application-web-integration.md +59 -0
- data/docs/dev/application-web-poc-pattern-guide.md +167 -0
- data/docs/dev/architect-supervisor-bootstrap.md +322 -0
- data/docs/dev/architecture.md +20 -0
- data/docs/dev/cluster-target-plan.md +43 -0
- data/docs/dev/contract-persistence-target-plan.md +426 -0
- data/docs/dev/current-runtime-snapshot.md +73 -0
- data/docs/dev/data-ownership.md +29 -0
- data/docs/dev/document-rotation.md +51 -0
- data/docs/dev/embed-target-plan.md +51 -0
- data/docs/dev/igniter-web-dsl-sketch.md +151 -0
- data/docs/dev/igniter-web-target-plan.md +56 -0
- data/docs/dev/mcp-adapter-package-spec.md +81 -0
- data/docs/dev/module-system.md +46 -0
- data/docs/dev/package-map.md +112 -0
- data/docs/guide/README.md +77 -0
- data/docs/guide/ai-and-tools.md +33 -0
- data/docs/guide/api-and-runtime.md +38 -0
- data/docs/guide/app.md +45 -0
- data/docs/guide/application-capsules.md +139 -0
- data/docs/guide/application-showcase-portfolio.md +181 -0
- data/docs/guide/cli.md +70 -0
- data/docs/guide/cluster.md +55 -0
- data/docs/guide/configuration.md +31 -0
- data/docs/guide/contract-class-dsl.md +154 -0
- data/docs/guide/core-runtime-features.md +34 -0
- data/docs/guide/core.md +43 -0
- data/docs/guide/credentials.md +51 -0
- data/docs/guide/deployment-modes.md +63 -0
- data/docs/guide/distributed-workflows.md +21 -0
- data/docs/guide/getting-started.md +49 -0
- data/docs/guide/how-tos.md +33 -0
- data/docs/guide/igniter-lang-foundation.md +133 -0
- data/docs/guide/integrations.md +47 -0
- data/docs/guide/interactive-app-structure.md +91 -0
- data/docs/guide/store-adapters.md +183 -0
- data/docs/research/README.md +131 -0
- data/docs/research/contract-persistence-landing-zone.md +126 -0
- data/docs/research/contract-persistence-organic-model.md +279 -0
- data/docs/research/contract-persistence-organic-model.ru.md +277 -0
- data/docs/research/horizon-protocol.md +180 -0
- data/docs/research/igniter-lang-convergence-report.md +338 -0
- data/docs/research/project-status-horizon-report.md +363 -0
- data/docs/research/vision-handoff-protocol.md +141 -0
- data/docs/research/wizard-type-spec-architecture.md +293 -0
- data/docs/research/wizard-type-spec-research-request.md +134 -0
- data/docs/store/README.md +7 -0
- data/docs/store/convergence-audit.md +901 -0
- data/examples/README.md +152 -344
- data/examples/catalog.rb +1486 -0
- data/examples/cluster/incident_workflow.rb +70 -0
- data/examples/cluster/incidents.rb +63 -0
- data/examples/cluster/mesh_diagnostics.rb +89 -0
- data/examples/cluster/remediation.rb +63 -0
- data/examples/cluster/routing.rb +65 -0
- data/examples/contracts/aggregates.rb +39 -0
- data/examples/contracts/auditing.rb +35 -0
- data/examples/contracts/basic_pricing.rb +31 -0
- data/examples/contracts/branching.rb +36 -0
- data/examples/contracts/build_effect_executor_pack.rb +88 -0
- data/examples/contracts/build_your_own_pack.rb +82 -0
- data/examples/contracts/capabilities.rb +34 -0
- data/examples/contracts/class_callable.rb +45 -0
- data/examples/contracts/class_pricing.rb +32 -0
- data/examples/contracts/collection.rb +44 -0
- data/examples/contracts/commerce.rb +44 -0
- data/examples/contracts/compose_your_own_packs.rb +110 -0
- data/examples/contracts/composition.rb +61 -0
- data/examples/contracts/content_addressing.rb +33 -0
- data/examples/contracts/contractable_service.rb +43 -0
- data/examples/contracts/contractable_shadow.rb +69 -0
- data/examples/contracts/create_pack.rb +105 -0
- data/examples/contracts/dataflow.rb +57 -0
- data/examples/contracts/debug.rb +32 -0
- data/examples/contracts/debug_pack_authoring.rb +31 -0
- data/examples/contracts/diagnostics.rb +33 -0
- data/examples/contracts/differential.rb +97 -0
- data/examples/contracts/effects.rb +34 -0
- data/examples/contracts/embed_class_registration.rb +40 -0
- data/examples/contracts/embed_human_sugar.rb +106 -0
- data/examples/contracts/formula.rb +32 -0
- data/examples/contracts/incremental.rb +44 -0
- data/examples/contracts/introspection.rb +48 -0
- data/examples/contracts/invariants.rb +54 -0
- data/examples/contracts/journal.rb +37 -0
- data/examples/contracts/lang_foundation.rb +37 -0
- data/examples/contracts/mcp.rb +62 -0
- data/examples/contracts/mcp_host.rb +55 -0
- data/examples/contracts/mcp_server.rb +25 -0
- data/examples/contracts/piecewise.rb +30 -0
- data/examples/contracts/provenance.rb +55 -0
- data/examples/contracts/reactive.rb +62 -0
- data/examples/contracts/saga.rb +56 -0
- data/examples/contracts/scale.rb +30 -0
- data/examples/contracts/step_result.rb +58 -0
- data/examples/run.rb +163 -0
- data/lib/igniter/cluster.rb +3 -0
- data/lib/igniter/contract.rb +1 -326
- data/lib/igniter/monorepo_packages.rb +16 -0
- data/lib/igniter/version.rb +1 -1
- data/lib/igniter/web.rb +3 -0
- data/lib/igniter.rb +51 -43
- data/packages/igniter-agents/README.md +44 -0
- data/packages/igniter-agents/lib/igniter/agents/agent_definition.rb +26 -0
- data/packages/igniter-agents/lib/igniter/agents/agent_run.rb +47 -0
- data/packages/igniter-agents/lib/igniter/agents/agent_turn.rb +34 -0
- data/packages/igniter-agents/lib/igniter/agents/runner.rb +56 -0
- data/packages/igniter-agents/lib/igniter/agents/tool_call.rb +26 -0
- data/packages/igniter-agents/lib/igniter/agents/trace_event.rb +24 -0
- data/packages/igniter-agents/lib/igniter/agents.rb +33 -0
- data/packages/igniter-agents/lib/igniter-agents.rb +3 -0
- data/packages/igniter-ai/README.md +42 -0
- data/packages/igniter-ai/lib/igniter/ai/client.rb +18 -0
- data/packages/igniter-ai/lib/igniter/ai/error.rb +14 -0
- data/packages/igniter-ai/lib/igniter/ai/model_request.rb +28 -0
- data/packages/igniter-ai/lib/igniter/ai/model_response.rb +31 -0
- data/packages/igniter-ai/lib/igniter/ai/providers/fake.rb +24 -0
- data/packages/igniter-ai/lib/igniter/ai/providers/openai_responses.rb +100 -0
- data/packages/igniter-ai/lib/igniter/ai/providers/recorded.rb +40 -0
- data/packages/igniter-ai/lib/igniter/ai/usage.rb +32 -0
- data/packages/igniter-ai/lib/igniter/ai.rb +28 -0
- data/packages/igniter-ai/lib/igniter-ai.rb +3 -0
- data/packages/igniter-application/README.md +194 -0
- data/packages/igniter-application/lib/igniter/application/agent_definition.rb +38 -0
- data/packages/igniter-application/lib/igniter/application/agent_registry.rb +33 -0
- data/packages/igniter-application/lib/igniter/application/agent_runtime.rb +29 -0
- data/packages/igniter-application/lib/igniter/application/agents_builder.rb +26 -0
- data/packages/igniter-application/lib/igniter/application/ai_builder.rb +26 -0
- data/packages/igniter-application/lib/igniter/application/ai_provider_definition.rb +59 -0
- data/packages/igniter-application/lib/igniter/application/ai_registry.rb +34 -0
- data/packages/igniter-application/lib/igniter/application/application_assembly_plan.rb +67 -0
- data/packages/igniter-application/lib/igniter/application/application_blueprint.rb +227 -0
- data/packages/igniter-application/lib/igniter/application/application_capsule_report.rb +61 -0
- data/packages/igniter-application/lib/igniter/application/application_composition_report.rb +161 -0
- data/packages/igniter-application/lib/igniter/application/application_handoff_manifest.rb +100 -0
- data/packages/igniter-application/lib/igniter/application/application_host_activation_commit_readiness.rb +182 -0
- data/packages/igniter-application/lib/igniter/application/application_host_activation_dry_run_result.rb +190 -0
- data/packages/igniter-application/lib/igniter/application/application_host_activation_ledger_commit.rb +285 -0
- data/packages/igniter-application/lib/igniter/application/application_host_activation_ledger_verification.rb +301 -0
- data/packages/igniter-application/lib/igniter/application/application_host_activation_operation_digest.rb +68 -0
- data/packages/igniter-application/lib/igniter/application/application_host_activation_plan.rb +200 -0
- data/packages/igniter-application/lib/igniter/application/application_host_activation_plan_verification.rb +140 -0
- data/packages/igniter-application/lib/igniter/application/application_host_activation_readiness.rb +226 -0
- data/packages/igniter-application/lib/igniter/application/application_host_activation_receipt.rb +151 -0
- data/packages/igniter-application/lib/igniter/application/application_layout.rb +91 -0
- data/packages/igniter-application/lib/igniter/application/application_load_path.rb +38 -0
- data/packages/igniter-application/lib/igniter/application/application_load_report.rb +74 -0
- data/packages/igniter-application/lib/igniter/application/application_manifest.rb +65 -0
- data/packages/igniter-application/lib/igniter/application/application_structure_entry.rb +58 -0
- data/packages/igniter-application/lib/igniter/application/application_structure_plan.rb +128 -0
- data/packages/igniter-application/lib/igniter/application/application_transfer_applied_verification.rb +301 -0
- data/packages/igniter-application/lib/igniter/application/application_transfer_apply_plan.rb +167 -0
- data/packages/igniter-application/lib/igniter/application/application_transfer_apply_result.rb +321 -0
- data/packages/igniter-application/lib/igniter/application/application_transfer_bundle_artifact.rb +160 -0
- data/packages/igniter-application/lib/igniter/application/application_transfer_bundle_plan.rb +125 -0
- data/packages/igniter-application/lib/igniter/application/application_transfer_bundle_verification.rb +154 -0
- data/packages/igniter-application/lib/igniter/application/application_transfer_intake_plan.rb +195 -0
- data/packages/igniter-application/lib/igniter/application/application_transfer_inventory.rb +153 -0
- data/packages/igniter-application/lib/igniter/application/application_transfer_readiness.rb +260 -0
- data/packages/igniter-application/lib/igniter/application/application_transfer_receipt.rb +179 -0
- data/packages/igniter-application/lib/igniter/application/artifact_reference.rb +39 -0
- data/packages/igniter-application/lib/igniter/application/boot_phase.rb +27 -0
- data/packages/igniter-application/lib/igniter/application/boot_plan.rb +55 -0
- data/packages/igniter-application/lib/igniter/application/boot_report.rb +70 -0
- data/packages/igniter-application/lib/igniter/application/capsule_builder.rb +396 -0
- data/packages/igniter-application/lib/igniter/application/capsule_export.rb +26 -0
- data/packages/igniter-application/lib/igniter/application/capsule_import.rb +38 -0
- data/packages/igniter-application/lib/igniter/application/collection_invoker.rb +54 -0
- data/packages/igniter-application/lib/igniter/application/collection_transport_adapter.rb +37 -0
- data/packages/igniter-application/lib/igniter/application/compose_invoker.rb +51 -0
- data/packages/igniter-application/lib/igniter/application/compose_transport_adapter.rb +34 -0
- data/packages/igniter-application/lib/igniter/application/config.rb +86 -0
- data/packages/igniter-application/lib/igniter/application/config_builder.rb +69 -0
- data/packages/igniter-application/lib/igniter/application/contract_registry.rb +30 -0
- data/packages/igniter-application/lib/igniter/application/credential_definition.rb +65 -0
- data/packages/igniter-application/lib/igniter/application/credential_store.rb +68 -0
- data/packages/igniter-application/lib/igniter/application/embedded_host.rb +23 -0
- data/packages/igniter-application/lib/igniter/application/environment.rb +1071 -0
- data/packages/igniter-application/lib/igniter/application/feature_slice.rb +61 -0
- data/packages/igniter-application/lib/igniter/application/feature_slice_report.rb +43 -0
- data/packages/igniter-application/lib/igniter/application/file_backed_host_activation_ledger_adapter.rb +138 -0
- data/packages/igniter-application/lib/igniter/application/file_backed_installed_capsule_registry.rb +132 -0
- data/packages/igniter-application/lib/igniter/application/flow_declaration.rb +62 -0
- data/packages/igniter-application/lib/igniter/application/flow_event.rb +50 -0
- data/packages/igniter-application/lib/igniter/application/flow_session_snapshot.rb +98 -0
- data/packages/igniter-application/lib/igniter/application/installed_capsule_entry.rb +47 -0
- data/packages/igniter-application/lib/igniter/application/interface.rb +11 -0
- data/packages/igniter-application/lib/igniter/application/kernel.rb +385 -0
- data/packages/igniter-application/lib/igniter/application/lifecycle_plan_step.rb +38 -0
- data/packages/igniter-application/lib/igniter/application/manual_loader.rb +18 -0
- data/packages/igniter-application/lib/igniter/application/manual_scheduler.rb +15 -0
- data/packages/igniter-application/lib/igniter/application/memory_session_store.rb +33 -0
- data/packages/igniter-application/lib/igniter/application/missing_credential_error.rb +23 -0
- data/packages/igniter-application/lib/igniter/application/mount_intent.rb +48 -0
- data/packages/igniter-application/lib/igniter/application/mount_registration.rb +49 -0
- data/packages/igniter-application/lib/igniter/application/pending_action.rb +39 -0
- data/packages/igniter-application/lib/igniter/application/pending_input.rb +45 -0
- data/packages/igniter-application/lib/igniter/application/plan_executor.rb +93 -0
- data/packages/igniter-application/lib/igniter/application/profile.rb +178 -0
- data/packages/igniter-application/lib/igniter/application/provider.rb +19 -0
- data/packages/igniter-application/lib/igniter/application/provider_lifecycle_report.rb +72 -0
- data/packages/igniter-application/lib/igniter/application/provider_lifecycle_result.rb +54 -0
- data/packages/igniter-application/lib/igniter/application/provider_registration.rb +19 -0
- data/packages/igniter-application/lib/igniter/application/rack_host.rb +311 -0
- data/packages/igniter-application/lib/igniter/application/seam_lifecycle_result.rb +62 -0
- data/packages/igniter-application/lib/igniter/application/service_definition.rb +25 -0
- data/packages/igniter-application/lib/igniter/application/service_registry.rb +58 -0
- data/packages/igniter-application/lib/igniter/application/session_entry.rb +46 -0
- data/packages/igniter-application/lib/igniter/application/shutdown_plan.rb +45 -0
- data/packages/igniter-application/lib/igniter/application/shutdown_report.rb +54 -0
- data/packages/igniter-application/lib/igniter/application/snapshot.rb +35 -0
- data/packages/igniter-application/lib/igniter/application/transport_request.rb +40 -0
- data/packages/igniter-application/lib/igniter/application/transport_response.rb +22 -0
- data/packages/igniter-application/lib/igniter/application.rb +354 -0
- data/packages/igniter-application/lib/igniter-application.rb +3 -0
- data/packages/igniter-cluster/README.md +116 -0
- data/packages/igniter-cluster/lib/igniter/cluster/active_incident_set.rb +40 -0
- data/packages/igniter-cluster/lib/igniter/cluster/admission_policy.rb +158 -0
- data/packages/igniter-cluster/lib/igniter/cluster/admission_result.rb +47 -0
- data/packages/igniter-cluster/lib/igniter/cluster/capability_catalog.rb +66 -0
- data/packages/igniter-cluster/lib/igniter/cluster/capability_definition.rb +42 -0
- data/packages/igniter-cluster/lib/igniter/cluster/capability_query.rb +162 -0
- data/packages/igniter-cluster/lib/igniter/cluster/capability_router.rb +11 -0
- data/packages/igniter-cluster/lib/igniter/cluster/cluster_diagnostics_executor.rb +184 -0
- data/packages/igniter-cluster/lib/igniter/cluster/cluster_diagnostics_report.rb +49 -0
- data/packages/igniter-cluster/lib/igniter/cluster/cluster_event.rb +34 -0
- data/packages/igniter-cluster/lib/igniter/cluster/cluster_event_log.rb +27 -0
- data/packages/igniter-cluster/lib/igniter/cluster/cluster_incident.rb +42 -0
- data/packages/igniter-cluster/lib/igniter/cluster/decision_explanation.rb +31 -0
- data/packages/igniter-cluster/lib/igniter/cluster/direct_placement.rb +11 -0
- data/packages/igniter-cluster/lib/igniter/cluster/discovery_feed.rb +22 -0
- data/packages/igniter-cluster/lib/igniter/cluster/environment.rb +380 -0
- data/packages/igniter-cluster/lib/igniter/cluster/errors.rb +9 -0
- data/packages/igniter-cluster/lib/igniter/cluster/failover_plan.rb +45 -0
- data/packages/igniter-cluster/lib/igniter/cluster/failover_step.rb +32 -0
- data/packages/igniter-cluster/lib/igniter/cluster/health_policy.rb +124 -0
- data/packages/igniter-cluster/lib/igniter/cluster/incident_action.rb +49 -0
- data/packages/igniter-cluster/lib/igniter/cluster/incident_entry.rb +98 -0
- data/packages/igniter-cluster/lib/igniter/cluster/incident_executor.rb +145 -0
- data/packages/igniter-cluster/lib/igniter/cluster/incident_workflow.rb +64 -0
- data/packages/igniter-cluster/lib/igniter/cluster/kernel.rb +75 -0
- data/packages/igniter-cluster/lib/igniter/cluster/kernel_seams.rb +249 -0
- data/packages/igniter-cluster/lib/igniter/cluster/lease_grant.rb +40 -0
- data/packages/igniter-cluster/lib/igniter/cluster/lease_plan.rb +40 -0
- data/packages/igniter-cluster/lib/igniter/cluster/lease_policy.rb +96 -0
- data/packages/igniter-cluster/lib/igniter/cluster/membership_delta.rb +36 -0
- data/packages/igniter-cluster/lib/igniter/cluster/membership_feed.rb +24 -0
- data/packages/igniter-cluster/lib/igniter/cluster/membership_projection.rb +45 -0
- data/packages/igniter-cluster/lib/igniter/cluster/membership_snapshot.rb +64 -0
- data/packages/igniter-cluster/lib/igniter/cluster/memory_incident_registry.rb +169 -0
- data/packages/igniter-cluster/lib/igniter/cluster/memory_peer_registry.rb +24 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_admission.rb +24 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_admission_result.rb +40 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_execution_attempt.rb +51 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_execution_request.rb +71 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_execution_response.rb +28 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_execution_trace.rb +32 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_executor.rb +497 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_membership.rb +89 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_membership_event.rb +32 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_membership_source.rb +49 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_retry_policy.rb +42 -0
- data/packages/igniter-cluster/lib/igniter/cluster/mesh_trust_policy.rb +131 -0
- data/packages/igniter-cluster/lib/igniter/cluster/operator_timeline.rb +33 -0
- data/packages/igniter-cluster/lib/igniter/cluster/ownership_claim.rb +30 -0
- data/packages/igniter-cluster/lib/igniter/cluster/ownership_plan.rb +40 -0
- data/packages/igniter-cluster/lib/igniter/cluster/ownership_policy.rb +100 -0
- data/packages/igniter-cluster/lib/igniter/cluster/peer.rb +86 -0
- data/packages/igniter-cluster/lib/igniter/cluster/peer_discovery.rb +62 -0
- data/packages/igniter-cluster/lib/igniter/cluster/peer_health.rb +55 -0
- data/packages/igniter-cluster/lib/igniter/cluster/peer_profile.rb +102 -0
- data/packages/igniter-cluster/lib/igniter/cluster/peer_topology.rb +62 -0
- data/packages/igniter-cluster/lib/igniter/cluster/peer_view.rb +42 -0
- data/packages/igniter-cluster/lib/igniter/cluster/permissive_admission.rb +11 -0
- data/packages/igniter-cluster/lib/igniter/cluster/placement_decision.rb +38 -0
- data/packages/igniter-cluster/lib/igniter/cluster/placement_policy.rb +131 -0
- data/packages/igniter-cluster/lib/igniter/cluster/plan_action_result.rb +72 -0
- data/packages/igniter-cluster/lib/igniter/cluster/plan_execution_report.rb +57 -0
- data/packages/igniter-cluster/lib/igniter/cluster/plan_executor.rb +314 -0
- data/packages/igniter-cluster/lib/igniter/cluster/policy_admission.rb +18 -0
- data/packages/igniter-cluster/lib/igniter/cluster/policy_placement.rb +69 -0
- data/packages/igniter-cluster/lib/igniter/cluster/policy_router.rb +70 -0
- data/packages/igniter-cluster/lib/igniter/cluster/profile.rb +97 -0
- data/packages/igniter-cluster/lib/igniter/cluster/projection_executor.rb +42 -0
- data/packages/igniter-cluster/lib/igniter/cluster/projection_policy.rb +107 -0
- data/packages/igniter-cluster/lib/igniter/cluster/projection_report.rb +35 -0
- data/packages/igniter-cluster/lib/igniter/cluster/projection_stage.rb +32 -0
- data/packages/igniter-cluster/lib/igniter/cluster/rebalance_move.rb +30 -0
- data/packages/igniter-cluster/lib/igniter/cluster/rebalance_plan.rb +40 -0
- data/packages/igniter-cluster/lib/igniter/cluster/recovery_timeline.rb +33 -0
- data/packages/igniter-cluster/lib/igniter/cluster/registry_membership_source.rb +97 -0
- data/packages/igniter-cluster/lib/igniter/cluster/remediation_plan.rb +45 -0
- data/packages/igniter-cluster/lib/igniter/cluster/remediation_policy.rb +119 -0
- data/packages/igniter-cluster/lib/igniter/cluster/remediation_step.rb +44 -0
- data/packages/igniter-cluster/lib/igniter/cluster/route.rb +34 -0
- data/packages/igniter-cluster/lib/igniter/cluster/route_policy.rb +104 -0
- data/packages/igniter-cluster/lib/igniter/cluster/route_request.rb +61 -0
- data/packages/igniter-cluster/lib/igniter/cluster/topology_policy.rb +154 -0
- data/packages/igniter-cluster/lib/igniter/cluster/transport_adapter.rb +53 -0
- data/packages/igniter-cluster/lib/igniter/cluster.rb +108 -0
- data/packages/igniter-cluster/lib/igniter-cluster.rb +3 -0
- data/packages/igniter-contracts/README.md +239 -0
- data/packages/igniter-contracts/lib/igniter/contracts/api.rb +92 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/baseline_pack.rb +141 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/const_pack.rb +29 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/dsl_keyword.rb +21 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/hook_result_policies.rb +47 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/hook_spec.rb +73 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/hook_specs.rb +74 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/kernel.rb +220 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/node_type.rb +26 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/ordered_registry.rb +55 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/pack.rb +13 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/pack_manifest.rb +131 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/path_access.rb +76 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/profile.rb +133 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/project_pack.rb +42 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/registry.rb +57 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly/step_result_pack.rb +42 -0
- data/packages/igniter-contracts/lib/igniter/contracts/assembly.rb +18 -0
- data/packages/igniter-contracts/lib/igniter/contracts/contract.rb +135 -0
- data/packages/igniter-contracts/lib/igniter/contracts/contractable.rb +288 -0
- data/packages/igniter-contracts/lib/igniter/contracts/environment.rb +51 -0
- data/packages/igniter-contracts/lib/igniter/contracts/errors.rb +47 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/baseline_normalizers.rb +23 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/baseline_runtime.rb +55 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/baseline_validators.rb +113 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/builder.rb +43 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/compilation_report.rb +46 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/compiled_graph.rb +21 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/compiler.rb +66 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/const_runtime.rb +15 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/diagnostics.rb +24 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/diagnostics_report.rb +40 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/diagnostics_section.rb +37 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/effect_invocation.rb +26 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/execution_request.rb +28 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/execution_result.rb +32 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/inline_executor.rb +19 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/mutable_named_values.rb +52 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/named_values.rb +48 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/operation.rb +42 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/runtime.rb +43 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/step_result.rb +51 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/step_result_diagnostics.rb +35 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/step_result_runtime.rb +51 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/step_result_validators.rb +44 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/structured_dump.rb +49 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/validation_finding.rb +28 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution/validation_report.rb +46 -0
- data/packages/igniter-contracts/lib/igniter/contracts/execution.rb +28 -0
- data/packages/igniter-contracts/lib/igniter/contracts.rb +54 -0
- data/packages/igniter-contracts/lib/igniter/lang/backend.rb +19 -0
- data/packages/igniter-contracts/lib/igniter/lang/backends/ruby.rb +42 -0
- data/packages/igniter-contracts/lib/igniter/lang/diagnostic_payload.rb +174 -0
- data/packages/igniter-contracts/lib/igniter/lang/metadata_carrier_manifest.rb +112 -0
- data/packages/igniter-contracts/lib/igniter/lang/metadata_manifest.rb +128 -0
- data/packages/igniter-contracts/lib/igniter/lang/receipt_payload.rb +152 -0
- data/packages/igniter-contracts/lib/igniter/lang/schema_compatibility_diagnostic.rb +300 -0
- data/packages/igniter-contracts/lib/igniter/lang/types.rb +84 -0
- data/packages/igniter-contracts/lib/igniter/lang/verification_report.rb +226 -0
- data/packages/igniter-contracts/lib/igniter/lang.rb +27 -0
- data/packages/igniter-contracts/lib/igniter-contracts.rb +3 -0
- data/packages/igniter-embed/README.md +360 -0
- data/packages/igniter-embed/lib/igniter/embed/config.rb +155 -0
- data/packages/igniter-embed/lib/igniter/embed/container.rb +165 -0
- data/packages/igniter-embed/lib/igniter/embed/contract_handle.rb +23 -0
- data/packages/igniter-embed/lib/igniter/embed/contract_naming.rb +38 -0
- data/packages/igniter-embed/lib/igniter/embed/contractable/acceptance.rb +52 -0
- data/packages/igniter-embed/lib/igniter/embed/contractable/adapters.rb +33 -0
- data/packages/igniter-embed/lib/igniter/embed/contractable/config.rb +234 -0
- data/packages/igniter-embed/lib/igniter/embed/contractable/runner.rb +393 -0
- data/packages/igniter-embed/lib/igniter/embed/contractable/sugar_builder.rb +145 -0
- data/packages/igniter-embed/lib/igniter/embed/contractable.rb +29 -0
- data/packages/igniter-embed/lib/igniter/embed/contracts_builder.rb +54 -0
- data/packages/igniter-embed/lib/igniter/embed/errors.rb +14 -0
- data/packages/igniter-embed/lib/igniter/embed/execution_envelope.rb +50 -0
- data/packages/igniter-embed/lib/igniter/embed/host_builder.rb +39 -0
- data/packages/igniter-embed/lib/igniter/embed/rails.rb +21 -0
- data/packages/igniter-embed/lib/igniter/embed/registry.rb +78 -0
- data/packages/igniter-embed/lib/igniter/embed/sugar_expansion.rb +152 -0
- data/packages/igniter-embed/lib/igniter/embed.rb +38 -0
- data/packages/igniter-embed/lib/igniter-embed.rb +3 -0
- data/packages/igniter-extensions/README.md +381 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/aggregate_pack.rb +103 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/audit/builder.rb +132 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/audit/event.rb +34 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/audit/snapshot.rb +44 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/audit_pack.rb +60 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/branch_pack.rb +199 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities/declaration.rb +31 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities/error.rb +35 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities/policy.rb +20 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities/report.rb +47 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities/violation.rb +30 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/capabilities_pack.rb +146 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/collection_pack.rb +212 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/commerce_pack.rb +91 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/compose_pack.rb +213 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/content_addressing/cache.rb +59 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/content_addressing/content_key.rb +63 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/content_addressing/declaration.rb +47 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/content_addressing_pack.rb +90 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/profile.rb +196 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/report.rb +85 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/scaffold.rb +461 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/scope.rb +79 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/wizard.rb +269 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/workflow.rb +189 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/workflow_step.rb +51 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/write_result.rb +48 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/write_step.rb +63 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator/writer.rb +131 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/creator_pack.rb +128 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/aggregate_operators.rb +119 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/aggregate_state.rb +60 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/builder.rb +66 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/collection_result.rb +70 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/diff.rb +37 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/item_result.rb +44 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/result.rb +58 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/session.rb +173 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow/window_filter.rb +49 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/dataflow_pack.rb +66 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/debug/pack_audit.rb +181 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/debug/pack_snapshot.rb +46 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/debug/profile_snapshot.rb +50 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/debug/report.rb +50 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/debug_pack.rb +115 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/differential/divergence.rb +37 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/differential/formatter.rb +85 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/differential/report.rb +83 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/differential/runner.rb +136 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/differential_pack.rb +61 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/execution_report_pack.rb +38 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/incremental/formatter.rb +60 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/incremental/node_state.rb +30 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/incremental/result.rb +65 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/incremental/session.rb +146 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/incremental_pack.rb +40 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/builder.rb +27 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/cases_report.rb +47 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/error.rb +34 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/invariant.rb +30 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/report.rb +45 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/suite.rb +36 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants/violation.rb +39 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/invariants_pack.rb +88 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/journal_pack.rb +55 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/language/formula_pack.rb +185 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/language/piecewise_pack.rb +166 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/language/scale_pack.rb +147 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/lookup_pack.rb +50 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/mcp/creator_session.rb +105 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/mcp/tool_argument.rb +35 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/mcp/tool_definition.rb +33 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/mcp/tool_result.rb +28 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/mcp_pack.rb +335 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/provenance/builder.rb +80 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/provenance/lineage.rb +59 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/provenance/node_trace.rb +53 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/provenance/text_formatter.rb +62 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/provenance_pack.rb +52 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/builder.rb +43 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/dispatch_result.rb +59 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/engine.rb +79 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/event.rb +36 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/matcher.rb +20 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/plan.rb +58 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive/subscription.rb +29 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/reactive_pack.rb +169 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/compensation.rb +25 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/compensation_record.rb +28 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/compensation_set.rb +47 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/formatter.rb +39 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/result.rb +56 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga/runner.rb +124 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts/saga_pack.rb +56 -0
- data/packages/igniter-extensions/lib/igniter/extensions/contracts.rb +445 -0
- data/packages/igniter-extensions/lib/igniter/extensions.rb +6 -0
- data/packages/igniter-extensions/lib/igniter-extensions.rb +3 -0
- data/packages/igniter-hub/README.md +25 -0
- data/packages/igniter-hub/lib/igniter/hub/catalog_entry.rb +35 -0
- data/packages/igniter-hub/lib/igniter/hub/local_catalog.rb +51 -0
- data/packages/igniter-hub/lib/igniter/hub.rb +16 -0
- data/packages/igniter-hub/lib/igniter-hub.rb +3 -0
- data/packages/igniter-mcp-adapter/README.md +65 -0
- data/packages/igniter-mcp-adapter/exe/igniter-mcp-adapter +6 -0
- data/packages/igniter-mcp-adapter/lib/igniter/mcp/adapter/host.rb +226 -0
- data/packages/igniter-mcp-adapter/lib/igniter/mcp/adapter/server.rb +148 -0
- data/packages/igniter-mcp-adapter/lib/igniter/mcp/adapter.rb +40 -0
- data/packages/igniter-mcp-adapter/lib/igniter-mcp-adapter.rb +5 -0
- data/packages/igniter-web/README.md +539 -0
- data/packages/igniter-web/lib/igniter/web/api.rb +49 -0
- data/packages/igniter-web/lib/igniter/web/application.rb +99 -0
- data/packages/igniter-web/lib/igniter/web/application_web_mount.rb +162 -0
- data/packages/igniter-web/lib/igniter/web/arbre.rb +41 -0
- data/packages/igniter-web/lib/igniter/web/component.rb +103 -0
- data/packages/igniter-web/lib/igniter/web/components/view_action_node.rb +38 -0
- data/packages/igniter-web/lib/igniter/web/components/view_ask_node.rb +52 -0
- data/packages/igniter-web/lib/igniter/web/components/view_chat_node.rb +34 -0
- data/packages/igniter-web/lib/igniter/web/components/view_compare_node.rb +41 -0
- data/packages/igniter-web/lib/igniter/web/components/view_node.rb +30 -0
- data/packages/igniter-web/lib/igniter/web/components/view_screen.rb +34 -0
- data/packages/igniter-web/lib/igniter/web/components/view_stream_node.rb +32 -0
- data/packages/igniter-web/lib/igniter/web/components/view_zone.rb +26 -0
- data/packages/igniter-web/lib/igniter/web/components.rb +10 -0
- data/packages/igniter-web/lib/igniter/web/composer.rb +84 -0
- data/packages/igniter-web/lib/igniter/web/composition_finding.rb +16 -0
- data/packages/igniter-web/lib/igniter/web/composition_policy.rb +88 -0
- data/packages/igniter-web/lib/igniter/web/composition_preset.rb +131 -0
- data/packages/igniter-web/lib/igniter/web/composition_result.rb +27 -0
- data/packages/igniter-web/lib/igniter/web/flow_interaction_adapter.rb +104 -0
- data/packages/igniter-web/lib/igniter/web/flow_surface_projection.rb +121 -0
- data/packages/igniter-web/lib/igniter/web/interaction_target.rb +50 -0
- data/packages/igniter-web/lib/igniter/web/mount_context.rb +80 -0
- data/packages/igniter-web/lib/igniter/web/page.rb +110 -0
- data/packages/igniter-web/lib/igniter/web/record.rb +54 -0
- data/packages/igniter-web/lib/igniter/web/screen_spec.rb +109 -0
- data/packages/igniter-web/lib/igniter/web/surface_manifest.rb +370 -0
- data/packages/igniter-web/lib/igniter/web/surface_structure.rb +57 -0
- data/packages/igniter-web/lib/igniter/web/view_graph.rb +25 -0
- data/packages/igniter-web/lib/igniter/web/view_graph_renderer.rb +63 -0
- data/packages/igniter-web/lib/igniter/web/view_node.rb +37 -0
- data/packages/igniter-web/lib/igniter/web.rb +107 -0
- data/packages/igniter-web/lib/igniter-web.rb +3 -0
- metadata +547 -308
- data/docs/API_V2.md +0 -537
- data/docs/APPLICATION_V1.md +0 -253
- data/docs/ARCHITECTURE_V2.md +0 -317
- data/docs/BACKLOG.md +0 -166
- data/docs/BRANCHES_V1.md +0 -213
- data/docs/CAPABILITIES_V1.md +0 -207
- data/docs/COLLECTIONS_V1.md +0 -303
- data/docs/CONSENSUS_V1.md +0 -477
- data/docs/CONTENT_ADDRESSING_V1.md +0 -221
- data/docs/DATAFLOW_V1.md +0 -274
- data/docs/DISTRIBUTED_CONTRACTS_V1.md +0 -493
- data/docs/IGNITER_CONCEPTS.md +0 -81
- data/docs/LLM_V1.md +0 -335
- data/docs/MESH_V1.md +0 -732
- data/docs/NODE_CACHE_V1.md +0 -324
- data/docs/PATTERNS.md +0 -411
- data/docs/PROACTIVE_AGENTS_V1.md +0 -293
- data/docs/SERVER_V1.md +0 -512
- data/docs/SKILLS_V1.md +0 -213
- data/docs/STORE_ADAPTERS.md +0 -154
- data/docs/TEMPORAL_V1.md +0 -174
- data/docs/TOOLS_V1.md +0 -347
- data/docs/TRANSCRIPTION_V1.md +0 -403
- data/examples/agents.rb +0 -150
- data/examples/async_store.rb +0 -47
- data/examples/basic_pricing.rb +0 -27
- data/examples/collection.rb +0 -43
- data/examples/collection_partial_failure.rb +0 -50
- data/examples/composition.rb +0 -39
- data/examples/consensus.rb +0 -239
- data/examples/dataflow.rb +0 -308
- data/examples/diagnostics.rb +0 -28
- data/examples/differential.rb +0 -161
- data/examples/distributed_server.rb +0 -94
- data/examples/distributed_workflow.rb +0 -52
- data/examples/effects.rb +0 -184
- data/examples/elocal_webhook.rb +0 -1
- data/examples/incremental.rb +0 -142
- data/examples/invariants.rb +0 -179
- data/examples/llm_tools.rb +0 -237
- data/examples/marketing_ergonomics.rb +0 -57
- data/examples/mesh.rb +0 -239
- data/examples/mesh_discovery.rb +0 -267
- data/examples/mesh_gossip.rb +0 -162
- data/examples/order_pipeline.rb +0 -163
- data/examples/provenance.rb +0 -122
- data/examples/ringcentral_routing.rb +0 -269
- data/examples/saga.rb +0 -110
- data/lib/igniter/agent/mailbox.rb +0 -96
- data/lib/igniter/agent/message.rb +0 -21
- data/lib/igniter/agent/ref.rb +0 -86
- data/lib/igniter/agent/runner.rb +0 -129
- data/lib/igniter/agent/state_holder.rb +0 -23
- data/lib/igniter/agent.rb +0 -155
- data/lib/igniter/agents/ai/alert_agent.rb +0 -111
- data/lib/igniter/agents/ai/chain_agent.rb +0 -127
- data/lib/igniter/agents/ai/critic_agent.rb +0 -163
- data/lib/igniter/agents/ai/evaluator_agent.rb +0 -193
- data/lib/igniter/agents/ai/evolution_agent.rb +0 -286
- data/lib/igniter/agents/ai/health_check_agent.rb +0 -122
- data/lib/igniter/agents/ai/observer_agent.rb +0 -184
- data/lib/igniter/agents/ai/planner_agent.rb +0 -210
- data/lib/igniter/agents/ai/router_agent.rb +0 -131
- data/lib/igniter/agents/ai/self_reflection_agent.rb +0 -175
- data/lib/igniter/agents/observability/metrics_agent.rb +0 -130
- data/lib/igniter/agents/pipeline/batch_processor_agent.rb +0 -131
- data/lib/igniter/agents/proactive_agent.rb +0 -208
- data/lib/igniter/agents/reliability/retry_agent.rb +0 -99
- data/lib/igniter/agents/scheduling/cron_agent.rb +0 -110
- data/lib/igniter/agents.rb +0 -56
- data/lib/igniter/application/app_config.rb +0 -32
- data/lib/igniter/application/autoloader.rb +0 -18
- data/lib/igniter/application/generator.rb +0 -157
- data/lib/igniter/application/scheduler.rb +0 -109
- data/lib/igniter/application/yml_loader.rb +0 -39
- data/lib/igniter/application.rb +0 -174
- data/lib/igniter/capabilities.rb +0 -68
- data/lib/igniter/compiler/compiled_graph.rb +0 -180
- data/lib/igniter/compiler/graph_compiler.rb +0 -70
- data/lib/igniter/compiler/type_resolver.rb +0 -54
- data/lib/igniter/compiler/validation_context.rb +0 -61
- data/lib/igniter/compiler/validation_pipeline.rb +0 -32
- data/lib/igniter/compiler/validator.rb +0 -19
- data/lib/igniter/compiler/validators/await_validator.rb +0 -53
- data/lib/igniter/compiler/validators/callable_validator.rb +0 -125
- data/lib/igniter/compiler/validators/dependencies_validator.rb +0 -241
- data/lib/igniter/compiler/validators/outputs_validator.rb +0 -66
- data/lib/igniter/compiler/validators/remote_validator.rb +0 -60
- data/lib/igniter/compiler/validators/type_compatibility_validator.rb +0 -84
- data/lib/igniter/compiler/validators/uniqueness_validator.rb +0 -60
- data/lib/igniter/compiler.rb +0 -20
- data/lib/igniter/consensus/cluster.rb +0 -183
- data/lib/igniter/consensus/errors.rb +0 -14
- data/lib/igniter/consensus/executors.rb +0 -43
- data/lib/igniter/consensus/node.rb +0 -320
- data/lib/igniter/consensus/read_query.rb +0 -30
- data/lib/igniter/consensus/state_machine.rb +0 -58
- data/lib/igniter/consensus.rb +0 -58
- data/lib/igniter/content_addressing.rb +0 -133
- data/lib/igniter/dataflow/aggregate_operators.rb +0 -147
- data/lib/igniter/dataflow/aggregate_state.rb +0 -77
- data/lib/igniter/dataflow/diff.rb +0 -37
- data/lib/igniter/dataflow/diff_state.rb +0 -81
- data/lib/igniter/dataflow/incremental_collection_result.rb +0 -39
- data/lib/igniter/dataflow/window_filter.rb +0 -48
- data/lib/igniter/dataflow.rb +0 -65
- data/lib/igniter/diagnostics/auditing/report/console_formatter.rb +0 -80
- data/lib/igniter/diagnostics/auditing/report/markdown_formatter.rb +0 -22
- data/lib/igniter/diagnostics/introspection/formatters/mermaid_formatter.rb +0 -58
- data/lib/igniter/diagnostics/introspection/formatters/text_tree_formatter.rb +0 -44
- data/lib/igniter/diagnostics/report.rb +0 -349
- data/lib/igniter/diagnostics.rb +0 -8
- data/lib/igniter/differential/divergence.rb +0 -29
- data/lib/igniter/differential/formatter.rb +0 -96
- data/lib/igniter/differential/report.rb +0 -86
- data/lib/igniter/differential/runner.rb +0 -130
- data/lib/igniter/differential.rb +0 -51
- data/lib/igniter/dsl/contract_builder.rb +0 -495
- data/lib/igniter/dsl/schema_builder.rb +0 -73
- data/lib/igniter/dsl.rb +0 -9
- data/lib/igniter/effect.rb +0 -91
- data/lib/igniter/effect_registry.rb +0 -78
- data/lib/igniter/errors.rb +0 -79
- data/lib/igniter/events/bus.rb +0 -44
- data/lib/igniter/events/event.rb +0 -82
- data/lib/igniter/events.rb +0 -9
- data/lib/igniter/execution_report/builder.rb +0 -54
- data/lib/igniter/execution_report/formatter.rb +0 -50
- data/lib/igniter/execution_report/node_entry.rb +0 -24
- data/lib/igniter/execution_report/report.rb +0 -65
- data/lib/igniter/execution_report.rb +0 -32
- data/lib/igniter/executor.rb +0 -134
- data/lib/igniter/executor_registry.rb +0 -44
- data/lib/igniter/extensions/auditing/timeline.rb +0 -103
- data/lib/igniter/extensions/auditing.rb +0 -10
- data/lib/igniter/extensions/capabilities.rb +0 -39
- data/lib/igniter/extensions/content_addressing.rb +0 -5
- data/lib/igniter/extensions/dataflow.rb +0 -117
- data/lib/igniter/extensions/differential.rb +0 -114
- data/lib/igniter/extensions/execution_report.rb +0 -27
- data/lib/igniter/extensions/incremental.rb +0 -50
- data/lib/igniter/extensions/introspection/graph_formatter.rb +0 -103
- data/lib/igniter/extensions/introspection/plan_formatter.rb +0 -55
- data/lib/igniter/extensions/introspection/runtime_formatter.rb +0 -117
- data/lib/igniter/extensions/introspection.rb +0 -12
- data/lib/igniter/extensions/invariants.rb +0 -116
- data/lib/igniter/extensions/mesh.rb +0 -31
- data/lib/igniter/extensions/provenance.rb +0 -45
- data/lib/igniter/extensions/reactive/engine.rb +0 -83
- data/lib/igniter/extensions/reactive/matcher.rb +0 -21
- data/lib/igniter/extensions/reactive/reaction.rb +0 -18
- data/lib/igniter/extensions/reactive.rb +0 -12
- data/lib/igniter/extensions/saga.rb +0 -74
- data/lib/igniter/extensions.rb +0 -10
- data/lib/igniter/fingerprint.rb +0 -43
- data/lib/igniter/incremental/formatter.rb +0 -81
- data/lib/igniter/incremental/result.rb +0 -69
- data/lib/igniter/incremental/tracker.rb +0 -108
- data/lib/igniter/incremental.rb +0 -50
- data/lib/igniter/integrations/agents.rb +0 -18
- data/lib/igniter/integrations/llm/config.rb +0 -113
- data/lib/igniter/integrations/llm/context.rb +0 -74
- data/lib/igniter/integrations/llm/executor.rb +0 -352
- data/lib/igniter/integrations/llm/providers/anthropic.rb +0 -181
- data/lib/igniter/integrations/llm/providers/base.rb +0 -33
- data/lib/igniter/integrations/llm/providers/ollama.rb +0 -137
- data/lib/igniter/integrations/llm/providers/openai.rb +0 -182
- data/lib/igniter/integrations/llm/transcription/providers/assemblyai.rb +0 -200
- data/lib/igniter/integrations/llm/transcription/providers/base.rb +0 -122
- data/lib/igniter/integrations/llm/transcription/providers/deepgram.rb +0 -162
- data/lib/igniter/integrations/llm/transcription/providers/openai.rb +0 -102
- data/lib/igniter/integrations/llm/transcription/transcriber.rb +0 -145
- data/lib/igniter/integrations/llm/transcription/transcript_result.rb +0 -29
- data/lib/igniter/integrations/llm.rb +0 -95
- data/lib/igniter/integrations/rails/cable_adapter.rb +0 -49
- data/lib/igniter/integrations/rails/contract_job.rb +0 -76
- data/lib/igniter/integrations/rails/generators/contract/contract_generator.rb +0 -22
- data/lib/igniter/integrations/rails/generators/install/install_generator.rb +0 -33
- data/lib/igniter/integrations/rails/railtie.rb +0 -25
- data/lib/igniter/integrations/rails/webhook_concern.rb +0 -49
- data/lib/igniter/integrations/rails.rb +0 -12
- data/lib/igniter/invariant.rb +0 -50
- data/lib/igniter/memory/agent_memory.rb +0 -104
- data/lib/igniter/memory/episode.rb +0 -29
- data/lib/igniter/memory/fact.rb +0 -27
- data/lib/igniter/memory/memorable.rb +0 -90
- data/lib/igniter/memory/reflection_cycle.rb +0 -96
- data/lib/igniter/memory/reflection_record.rb +0 -28
- data/lib/igniter/memory/store.rb +0 -115
- data/lib/igniter/memory/stores/in_memory.rb +0 -136
- data/lib/igniter/memory/stores/sqlite.rb +0 -284
- data/lib/igniter/memory.rb +0 -80
- data/lib/igniter/mesh/announcer.rb +0 -55
- data/lib/igniter/mesh/config.rb +0 -45
- data/lib/igniter/mesh/discovery.rb +0 -39
- data/lib/igniter/mesh/errors.rb +0 -31
- data/lib/igniter/mesh/gossip.rb +0 -47
- data/lib/igniter/mesh/peer.rb +0 -21
- data/lib/igniter/mesh/peer_registry.rb +0 -51
- data/lib/igniter/mesh/poller.rb +0 -77
- data/lib/igniter/mesh/router.rb +0 -109
- data/lib/igniter/mesh.rb +0 -85
- data/lib/igniter/metrics/collector.rb +0 -131
- data/lib/igniter/metrics/prometheus_exporter.rb +0 -104
- data/lib/igniter/metrics/snapshot.rb +0 -8
- data/lib/igniter/metrics.rb +0 -37
- data/lib/igniter/model/aggregate_node.rb +0 -34
- data/lib/igniter/model/await_node.rb +0 -21
- data/lib/igniter/model/branch_node.rb +0 -46
- data/lib/igniter/model/collection_node.rb +0 -32
- data/lib/igniter/model/composition_node.rb +0 -22
- data/lib/igniter/model/compute_node.rb +0 -90
- data/lib/igniter/model/effect_node.rb +0 -37
- data/lib/igniter/model/graph.rb +0 -15
- data/lib/igniter/model/input_node.rb +0 -27
- data/lib/igniter/model/node.rb +0 -22
- data/lib/igniter/model/output_node.rb +0 -41
- data/lib/igniter/model/remote_node.rb +0 -42
- data/lib/igniter/model.rb +0 -18
- data/lib/igniter/node_cache.rb +0 -231
- data/lib/igniter/property_testing/formatter.rb +0 -66
- data/lib/igniter/property_testing/generators.rb +0 -115
- data/lib/igniter/property_testing/result.rb +0 -45
- data/lib/igniter/property_testing/run.rb +0 -43
- data/lib/igniter/property_testing/runner.rb +0 -47
- data/lib/igniter/property_testing.rb +0 -64
- data/lib/igniter/provenance/builder.rb +0 -97
- data/lib/igniter/provenance/lineage.rb +0 -82
- data/lib/igniter/provenance/node_trace.rb +0 -65
- data/lib/igniter/provenance/text_formatter.rb +0 -70
- data/lib/igniter/provenance.rb +0 -29
- data/lib/igniter/registry.rb +0 -67
- data/lib/igniter/replication/bootstrapper.rb +0 -61
- data/lib/igniter/replication/bootstrappers/gem.rb +0 -32
- data/lib/igniter/replication/bootstrappers/git.rb +0 -39
- data/lib/igniter/replication/bootstrappers/tarball.rb +0 -56
- data/lib/igniter/replication/expansion_plan.rb +0 -38
- data/lib/igniter/replication/expansion_planner.rb +0 -142
- data/lib/igniter/replication/manifest.rb +0 -45
- data/lib/igniter/replication/network_topology.rb +0 -123
- data/lib/igniter/replication/node_role.rb +0 -42
- data/lib/igniter/replication/reflective_replication_agent.rb +0 -238
- data/lib/igniter/replication/replication_agent.rb +0 -87
- data/lib/igniter/replication/role_registry.rb +0 -73
- data/lib/igniter/replication/ssh_session.rb +0 -77
- data/lib/igniter/replication.rb +0 -54
- data/lib/igniter/runtime/cache.rb +0 -126
- data/lib/igniter/runtime/collection_result.rb +0 -111
- data/lib/igniter/runtime/deferred_result.rb +0 -40
- data/lib/igniter/runtime/execution.rb +0 -416
- data/lib/igniter/runtime/input_validator.rb +0 -129
- data/lib/igniter/runtime/invalidator.rb +0 -52
- data/lib/igniter/runtime/job_worker.rb +0 -18
- data/lib/igniter/runtime/node_state.rb +0 -56
- data/lib/igniter/runtime/planner.rb +0 -126
- data/lib/igniter/runtime/resolver.rb +0 -758
- data/lib/igniter/runtime/result.rb +0 -117
- data/lib/igniter/runtime/runner_factory.rb +0 -20
- data/lib/igniter/runtime/runners/inline_runner.rb +0 -21
- data/lib/igniter/runtime/runners/store_runner.rb +0 -29
- data/lib/igniter/runtime/runners/thread_pool_runner.rb +0 -37
- data/lib/igniter/runtime/stores/active_record_store.rb +0 -53
- data/lib/igniter/runtime/stores/file_store.rb +0 -91
- data/lib/igniter/runtime/stores/memory_store.rb +0 -93
- data/lib/igniter/runtime/stores/redis_store.rb +0 -93
- data/lib/igniter/runtime.rb +0 -26
- data/lib/igniter/saga/compensation.rb +0 -31
- data/lib/igniter/saga/compensation_record.rb +0 -20
- data/lib/igniter/saga/executor.rb +0 -85
- data/lib/igniter/saga/formatter.rb +0 -49
- data/lib/igniter/saga/result.rb +0 -47
- data/lib/igniter/saga.rb +0 -56
- data/lib/igniter/server/client.rb +0 -166
- data/lib/igniter/server/config.rb +0 -34
- data/lib/igniter/server/handlers/base.rb +0 -105
- data/lib/igniter/server/handlers/contracts_handler.rb +0 -15
- data/lib/igniter/server/handlers/event_handler.rb +0 -32
- data/lib/igniter/server/handlers/execute_handler.rb +0 -43
- data/lib/igniter/server/handlers/health_handler.rb +0 -32
- data/lib/igniter/server/handlers/liveness_handler.rb +0 -20
- data/lib/igniter/server/handlers/manifest_handler.rb +0 -34
- data/lib/igniter/server/handlers/metrics_handler.rb +0 -51
- data/lib/igniter/server/handlers/peers_handler.rb +0 -115
- data/lib/igniter/server/handlers/readiness_handler.rb +0 -47
- data/lib/igniter/server/handlers/status_handler.rb +0 -27
- data/lib/igniter/server/http_server.rb +0 -146
- data/lib/igniter/server/rack_app.rb +0 -35
- data/lib/igniter/server/registry.rb +0 -56
- data/lib/igniter/server/router.rb +0 -108
- data/lib/igniter/server/server_logger.rb +0 -52
- data/lib/igniter/server.rb +0 -73
- data/lib/igniter/skill/feedback.rb +0 -116
- data/lib/igniter/skill/output_schema.rb +0 -110
- data/lib/igniter/skill.rb +0 -218
- data/lib/igniter/stream_loop.rb +0 -80
- data/lib/igniter/supervisor.rb +0 -167
- data/lib/igniter/temporal.rb +0 -84
- data/lib/igniter/tool/discoverable.rb +0 -151
- data/lib/igniter/tool.rb +0 -52
- data/lib/igniter/tool_registry.rb +0 -144
- data/lib/igniter/type_system.rb +0 -44
- /data/docs/{EXECUTION_MODEL_V2.md → dev/execution-model.md} +0 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# Store Adapters
|
|
2
|
+
|
|
3
|
+
This guide describes execution snapshot stores: persistence for contract
|
|
4
|
+
executions, pending nodes, and resume flows.
|
|
5
|
+
|
|
6
|
+
Do not confuse this with the newer contract persistence target, where ordinary
|
|
7
|
+
contracts may declare record, workflow, credential-local, or signal persistence
|
|
8
|
+
as part of their own capability. That direction is tracked in
|
|
9
|
+
[Contract Persistence Target Plan](../dev/contract-persistence-target-plan.md).
|
|
10
|
+
|
|
11
|
+
Igniter ships with reference execution stores for:
|
|
12
|
+
|
|
13
|
+
- memory
|
|
14
|
+
- file
|
|
15
|
+
- sqlite
|
|
16
|
+
- ActiveRecord-style persistence
|
|
17
|
+
- Redis-style persistence
|
|
18
|
+
|
|
19
|
+
All stores implement the same protocol:
|
|
20
|
+
|
|
21
|
+
| Method | Description |
|
|
22
|
+
|--------|-------------|
|
|
23
|
+
| `save(snapshot, correlation: nil, graph: nil)` | Persist a snapshot; build secondary indexes for query |
|
|
24
|
+
| `fetch(execution_id)` | Load a snapshot by ID; raises on missing |
|
|
25
|
+
| `delete(execution_id)` | Remove a snapshot and clean up indexes |
|
|
26
|
+
| `exist?(execution_id)` | Check existence without raising |
|
|
27
|
+
| `find_by_correlation(graph:, correlation:)` | Find execution_id by correlation hash |
|
|
28
|
+
| `list_all(graph: nil)` | All execution_ids, optionally filtered by graph name |
|
|
29
|
+
| `list_pending(graph: nil)` | Execution_ids that have at least one node in `:pending` state |
|
|
30
|
+
|
|
31
|
+
## Memory Store
|
|
32
|
+
|
|
33
|
+
Useful for tests and single-process flows.
|
|
34
|
+
|
|
35
|
+
```ruby
|
|
36
|
+
Igniter.execution_store = Igniter::Runtime::Stores::MemoryStore.new
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## File Store
|
|
40
|
+
|
|
41
|
+
Useful for local development and smoke-testing worker flows.
|
|
42
|
+
|
|
43
|
+
```ruby
|
|
44
|
+
Igniter.execution_store = Igniter::Runtime::Stores::FileStore.new(
|
|
45
|
+
root: Rails.root.join("tmp/igniter_executions")
|
|
46
|
+
)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## SQLite Store
|
|
50
|
+
|
|
51
|
+
Useful for single-node application profiles that want durable local execution
|
|
52
|
+
snapshots without pulling in Redis or ActiveRecord.
|
|
53
|
+
|
|
54
|
+
```ruby
|
|
55
|
+
Igniter.execution_store = Igniter::Runtime::Stores::SQLiteStore.new(
|
|
56
|
+
path: "var/igniter_executions.sqlite3"
|
|
57
|
+
)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
`sqlite3` now ships as a standard Igniter dependency, so this path works out of
|
|
61
|
+
the box in the default stack and gem installation shape.
|
|
62
|
+
|
|
63
|
+
The store keeps one row per execution snapshot and secondary indexes for:
|
|
64
|
+
|
|
65
|
+
- `graph`
|
|
66
|
+
- `pending`
|
|
67
|
+
- `(graph, correlation_json)`
|
|
68
|
+
|
|
69
|
+
## ActiveRecord Store
|
|
70
|
+
|
|
71
|
+
Expected record shape:
|
|
72
|
+
|
|
73
|
+
- one unique `execution_id` column
|
|
74
|
+
- one text/json column for serialized snapshot payload
|
|
75
|
+
|
|
76
|
+
Example model:
|
|
77
|
+
|
|
78
|
+
```ruby
|
|
79
|
+
class IgniterExecutionSnapshot < ApplicationRecord
|
|
80
|
+
validates :execution_id, presence: true, uniqueness: true
|
|
81
|
+
end
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Example migration:
|
|
85
|
+
|
|
86
|
+
```ruby
|
|
87
|
+
class CreateIgniterExecutionSnapshots < ActiveRecord::Migration[7.1]
|
|
88
|
+
def change
|
|
89
|
+
create_table :igniter_execution_snapshots do |t|
|
|
90
|
+
t.string :execution_id, null: false
|
|
91
|
+
t.jsonb :snapshot_json, null: false, default: {}
|
|
92
|
+
t.timestamps
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
add_index :igniter_execution_snapshots, :execution_id, unique: true
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Store configuration:
|
|
101
|
+
|
|
102
|
+
```ruby
|
|
103
|
+
Igniter.execution_store = Igniter::Runtime::Stores::ActiveRecordStore.new(
|
|
104
|
+
record_class: IgniterExecutionSnapshot,
|
|
105
|
+
execution_id_column: :execution_id,
|
|
106
|
+
snapshot_column: :snapshot_json
|
|
107
|
+
)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Redis Store
|
|
111
|
+
|
|
112
|
+
`RedisStore` maintains secondary indexes so it can answer all query API calls efficiently:
|
|
113
|
+
|
|
114
|
+
| Key pattern | Redis type | Purpose |
|
|
115
|
+
|-------------|-----------|---------|
|
|
116
|
+
| `{ns}:{execution_id}` | String | Serialized snapshot JSON |
|
|
117
|
+
| `{ns}:all` | Set | All execution IDs |
|
|
118
|
+
| `{ns}:graph:{name}` | Set | Execution IDs for one graph |
|
|
119
|
+
| `{ns}:corr:{graph}` | Hash | `JSON(sorted_correlation)` → execution_id |
|
|
120
|
+
|
|
121
|
+
The client must support these Redis commands:
|
|
122
|
+
`set`, `get`, `del`, `exists?`, `sadd`, `srem`, `smembers`, `hset`, `hget`.
|
|
123
|
+
|
|
124
|
+
The standard [`redis` gem](https://github.com/redis/redis-rb) satisfies this interface.
|
|
125
|
+
|
|
126
|
+
```ruby
|
|
127
|
+
redis = Redis.new(url: ENV.fetch("REDIS_URL"))
|
|
128
|
+
|
|
129
|
+
Igniter.execution_store = Igniter::Runtime::Stores::RedisStore.new(
|
|
130
|
+
redis: redis,
|
|
131
|
+
namespace: "igniter:executions" # optional, default shown
|
|
132
|
+
)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Query API:**
|
|
136
|
+
|
|
137
|
+
```ruby
|
|
138
|
+
store = Igniter::Runtime::Stores::RedisStore.new(redis: redis)
|
|
139
|
+
|
|
140
|
+
# Find a pending execution by correlation
|
|
141
|
+
execution_id = store.find_by_correlation(
|
|
142
|
+
graph: "OrderContract",
|
|
143
|
+
correlation: { order_id: "o-42" }
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
# List all executions for a graph
|
|
147
|
+
ids = store.list_all(graph: "OrderContract")
|
|
148
|
+
|
|
149
|
+
# List only pending executions (O(n) scan — acceptable for moderate volumes)
|
|
150
|
+
pending_ids = store.list_pending(graph: "OrderContract")
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Worker Flow
|
|
154
|
+
|
|
155
|
+
Store-backed contracts should declare:
|
|
156
|
+
|
|
157
|
+
```ruby
|
|
158
|
+
class AsyncPricingContract < Igniter::Contract
|
|
159
|
+
run_with runner: :store
|
|
160
|
+
end
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Producer side:
|
|
164
|
+
|
|
165
|
+
```ruby
|
|
166
|
+
contract = AsyncPricingContract.new(order_total: 100)
|
|
167
|
+
deferred = contract.result.gross_total
|
|
168
|
+
|
|
169
|
+
execution_id = contract.execution.events.execution_id
|
|
170
|
+
token = deferred.token
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Worker side:
|
|
174
|
+
|
|
175
|
+
```ruby
|
|
176
|
+
AsyncPricingContract.resume_from_store(
|
|
177
|
+
execution_id,
|
|
178
|
+
token: token,
|
|
179
|
+
value: 150
|
|
180
|
+
)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
If the resumed execution finishes successfully, the current `StoreRunner` deletes the persisted snapshot automatically.
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Research
|
|
2
|
+
|
|
3
|
+
Compact research staging for ideas that may shape Igniter's architecture but are
|
|
4
|
+
not accepted public API yet.
|
|
5
|
+
|
|
6
|
+
Use this directory for governance protocols, long-horizon decisions, and cross-cutting
|
|
7
|
+
design notes. Keep implementation snapshots and package specs in their respective
|
|
8
|
+
`packages/<pkg>/docs/` directories once shipped. See **Rotation Policy** below.
|
|
9
|
+
|
|
10
|
+
## Index
|
|
11
|
+
|
|
12
|
+
### Protocols & Governance
|
|
13
|
+
- [Horizon Protocol](./horizon-protocol.md) - working protocol, planning frame,
|
|
14
|
+
architect/agent roles, and Igniter Lang guardrails.
|
|
15
|
+
- [Vision Handoff Protocol](./vision-handoff-protocol.md) - compact briefing
|
|
16
|
+
format for giving agents a large horizon with a narrow executable slice.
|
|
17
|
+
- [Project Status Horizon Report](./project-status-horizon-report.md) -
|
|
18
|
+
whole-project status, verification, strategic insights, and horizon ideas.
|
|
19
|
+
|
|
20
|
+
### Persistence Design
|
|
21
|
+
- [Contract Persistence Landing Zone](./contract-persistence-landing-zone.md) -
|
|
22
|
+
placement decision for app-local proof, staged extraction, and future package
|
|
23
|
+
naming.
|
|
24
|
+
- [Contract Persistence Organic Model](./contract-persistence-organic-model.md) -
|
|
25
|
+
horizon model for Store/History as future graph-native concepts.
|
|
26
|
+
- [Igniter Lang Convergence Report](./igniter-lang-convergence-report.md) -
|
|
27
|
+
public synthesis of the private Igniter-Lang research against current Ledger,
|
|
28
|
+
Ledger Client, and Durable Model direction.
|
|
29
|
+
|
|
30
|
+
### Wizard Type Spec
|
|
31
|
+
- [Wizard Type Spec Research Request](./wizard-type-spec-research-request.md) -
|
|
32
|
+
handoff request for spec lineage, materialization, export, and migration
|
|
33
|
+
analysis.
|
|
34
|
+
- [Wizard Type Spec Architecture](./wizard-type-spec-architecture.md) -
|
|
35
|
+
research response defining the canonical spec model, export rules, and
|
|
36
|
+
materializer boundary.
|
|
37
|
+
|
|
38
|
+
## Moved to Playgrounds
|
|
39
|
+
|
|
40
|
+
Planning/roadmap docs for work that is now fully shipped. Kept for historical
|
|
41
|
+
reference in `playgrounds/docs/research/`.
|
|
42
|
+
|
|
43
|
+
| Document | Playgrounds Location |
|
|
44
|
+
|----------|---------------------|
|
|
45
|
+
| Contract Persistence Development Track | [playgrounds/docs/research/](../../playgrounds/docs/research/contract-persistence-development-track.md) |
|
|
46
|
+
| Contract Persistence Roadmap | [playgrounds/docs/research/](../../playgrounds/docs/research/contract-persistence-roadmap.md) |
|
|
47
|
+
|
|
48
|
+
## Rotated to Package Docs
|
|
49
|
+
|
|
50
|
+
Implementation snapshots that shipped are kept in their package `docs/` directories:
|
|
51
|
+
|
|
52
|
+
| Document | New Location |
|
|
53
|
+
|----------|-------------|
|
|
54
|
+
| Igniter Ledger Open Protocol | [packages/igniter-ledger/docs/open-protocol.md](../../packages/igniter-ledger/docs/open-protocol.md) |
|
|
55
|
+
| Contract-Native Store POC spec | [packages/igniter-ledger/docs/poc-specification.md](../../packages/igniter-ledger/docs/poc-specification.md) |
|
|
56
|
+
| Contract-Native Store Server Model | [packages/igniter-ledger/docs/server-model.md](../../packages/igniter-ledger/docs/server-model.md) |
|
|
57
|
+
| Contract Persistence Relations | [packages/igniter-ledger/docs/relations-specification.md](../../packages/igniter-ledger/docs/relations-specification.md) |
|
|
58
|
+
| Companion / Store Convergence | [packages/igniter-ledger/docs/companion-convergence.md](../../packages/igniter-ledger/docs/companion-convergence.md) |
|
|
59
|
+
| Igniter Ledger Progress Summary | [packages/igniter-ledger/docs/progress.md](../../packages/igniter-ledger/docs/progress.md) |
|
|
60
|
+
| Contract-Native Store Research (iterations) | [packages/igniter-ledger/docs/research/store-iterations.md](../../packages/igniter-ledger/docs/research/store-iterations.md) |
|
|
61
|
+
| Contract-Native Store Sync Hub (iterations) | [packages/igniter-ledger/docs/research/sync-hub-iterations.md](../../packages/igniter-ledger/docs/research/sync-hub-iterations.md) |
|
|
62
|
+
| Durable Model Current Status Summary | [packages/igniter-durable-model/docs/current-status.md](../../packages/igniter-durable-model/docs/current-status.md) |
|
|
63
|
+
| Durable Model Persistence App Status | [packages/igniter-durable-model/docs/app-status.md](../../packages/igniter-durable-model/docs/app-status.md) |
|
|
64
|
+
| Durable Model Persistence Manifest Glossary | [packages/igniter-durable-model/docs/manifest-glossary.md](../../packages/igniter-durable-model/docs/manifest-glossary.md) |
|
|
65
|
+
| Durable Model Contract Performance Signal | [packages/igniter-durable-model/docs/performance.md](../../packages/igniter-durable-model/docs/performance.md) |
|
|
66
|
+
| Inter-Agent Compact Handoff (convergence audit) | [docs/store/convergence-audit.md](../store/convergence-audit.md) |
|
|
67
|
+
|
|
68
|
+
## Read First
|
|
69
|
+
|
|
70
|
+
Before changing architecture or reviewing an agent proposal, read:
|
|
71
|
+
|
|
72
|
+
1. [Current Runtime Snapshot](../dev/current-runtime-snapshot.md)
|
|
73
|
+
2. [Package Map](../dev/package-map.md)
|
|
74
|
+
3. [Module System](../dev/module-system.md)
|
|
75
|
+
4. [Igniter Lang Foundation](../guide/igniter-lang-foundation.md)
|
|
76
|
+
5. [Horizon Protocol](./horizon-protocol.md)
|
|
77
|
+
6. [Vision Handoff Protocol](./vision-handoff-protocol.md)
|
|
78
|
+
7. [Project Status Horizon Report](./project-status-horizon-report.md)
|
|
79
|
+
8. [Contract Persistence Landing Zone](./contract-persistence-landing-zone.md)
|
|
80
|
+
9. [Contract Persistence Organic Model](./contract-persistence-organic-model.md)
|
|
81
|
+
10. [Wizard Type Spec Research Request](./wizard-type-spec-research-request.md)
|
|
82
|
+
11. [Wizard Type Spec Architecture](./wizard-type-spec-architecture.md)
|
|
83
|
+
|
|
84
|
+
## Current Research State
|
|
85
|
+
|
|
86
|
+
Status date: 2026-05-02.
|
|
87
|
+
|
|
88
|
+
- Active package family: `igniter-contracts`, `igniter-extensions`,
|
|
89
|
+
`igniter-embed`, `igniter-application`, `igniter-ai`, `igniter-agents`,
|
|
90
|
+
`igniter-hub`, `igniter-web`, `igniter-cluster`, `igniter-mcp-adapter`.
|
|
91
|
+
- `Igniter::Lang` is additive and report-only: Ruby backend wrapper,
|
|
92
|
+
immutable descriptors (`History`, `BiHistory`, `OLAPPoint`, `Forecast`),
|
|
93
|
+
`VerificationReport`, and `MetadataManifest`.
|
|
94
|
+
- Lang metadata is declared, not enforced. `return_type`, `deadline`, `wcet`,
|
|
95
|
+
descriptors, stores, and invariants must graduate through reports before
|
|
96
|
+
runtime checks.
|
|
97
|
+
- AI and agents have first package slices: provider-neutral AI envelopes and
|
|
98
|
+
minimal single-turn agent state. Tool contracts, memory, handoff, and human
|
|
99
|
+
gates remain future package work.
|
|
100
|
+
- Companion is the strongest product pressure for persistence and agents. Its
|
|
101
|
+
app-local proof now covers records, histories, projections, command mutation
|
|
102
|
+
intents, typed effect intent descriptors, relation manifests, relation health diagnostics,
|
|
103
|
+
registry/readiness/manifest, `WizardTypeSpec`, static materialization planning,
|
|
104
|
+
and a review-only materializer/approval audit vertical.
|
|
105
|
+
- `igniter-ledger` has shipped Phase 1 (LedgerServer, NetworkBackend, TCP/Unix transport,
|
|
106
|
+
graceful drain, stats, PID, CLI) and Phase 2 (SubscriptionRegistry reactive push).
|
|
107
|
+
- `igniter-ledger` now has an Open Protocol proposal: descriptor/fact/receipt/query
|
|
108
|
+
waist for non-Igniter clients as well as Igniter contracts.
|
|
109
|
+
- `igniter-durable-model` is now the typed Record/History facade over
|
|
110
|
+
`igniter-ledger`, carrying Companion manifest pressure toward package-level
|
|
111
|
+
Store/History experiments.
|
|
112
|
+
- Cluster owns distributed placement, routing, ownership, health, remediation,
|
|
113
|
+
and mesh attempts. Contracts remain local-first and host-agnostic.
|
|
114
|
+
|
|
115
|
+
## Rotation Policy
|
|
116
|
+
|
|
117
|
+
When a research document's subject is fully implemented and shipped:
|
|
118
|
+
1. `git mv` it to `packages/<pkg>/docs/` (or `docs/store/` for cross-package convergence records)
|
|
119
|
+
2. Add a row to the **Rotated to Package Docs** table above
|
|
120
|
+
3. Remove it from the **Index** and **Read First** list
|
|
121
|
+
4. Keep governance docs (protocols, long-horizon decisions, landing zones, roadmaps) here permanently
|
|
122
|
+
|
|
123
|
+
## Compression Rule
|
|
124
|
+
|
|
125
|
+
Each research document should preserve:
|
|
126
|
+
|
|
127
|
+
- one claim
|
|
128
|
+
- the boundary it changes
|
|
129
|
+
- the evidence or source pressure
|
|
130
|
+
- the smallest reversible next move
|
|
131
|
+
- the reasons not to ship it yet
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Contract Persistence Landing Zone
|
|
2
|
+
|
|
3
|
+
Status date: 2026-04-29.
|
|
4
|
+
Scope: research placement decision. Not a package commitment or public API.
|
|
5
|
+
|
|
6
|
+
## Claim
|
|
7
|
+
|
|
8
|
+
Contract persistence now deserves a named landing path, but not an immediate
|
|
9
|
+
package split.
|
|
10
|
+
|
|
11
|
+
The Companion proof is no longer just CRUD convenience. It shows a recursive
|
|
12
|
+
system shape: contracts declare durable capabilities, inspect their own
|
|
13
|
+
infrastructure, produce materializer review packets, lower approvals into
|
|
14
|
+
history append intents, and expose audit read models for the process that may
|
|
15
|
+
later materialize more contracts.
|
|
16
|
+
|
|
17
|
+
That fractal signal is strong evidence for the direction. It is still extraction
|
|
18
|
+
pressure, not an API-promotion trigger.
|
|
19
|
+
|
|
20
|
+
## Decision
|
|
21
|
+
|
|
22
|
+
Keep the next iteration app-local in Companion.
|
|
23
|
+
|
|
24
|
+
When extraction starts, split by responsibility:
|
|
25
|
+
|
|
26
|
+
- `igniter-extensions`: optional contract vocabulary and report-only
|
|
27
|
+
descriptors over `igniter-contracts`
|
|
28
|
+
- `igniter-application`: host/runtime binding, adapters, setup/readiness
|
|
29
|
+
surfaces, explicit mutation boundaries, materializer review flows
|
|
30
|
+
- future `igniter-persistence`: stable durable capability package after repeated
|
|
31
|
+
app pressure and a smaller adapter/manifest contract
|
|
32
|
+
|
|
33
|
+
Do not create `igniter-data` yet. The name is too broad: it can mean dataflow,
|
|
34
|
+
analytics, datasets, ETL, tables, events, or persistence. The sharper future
|
|
35
|
+
name is `igniter-persistence`, because the capability is durable `Store[T]`,
|
|
36
|
+
append-only `History[T]`, typed relations, commands, materialization, and audit.
|
|
37
|
+
|
|
38
|
+
Do not put this in `igniter-contracts` now. The kernel should stay
|
|
39
|
+
host-agnostic; persistence remains optional vocabulary and app-boundary
|
|
40
|
+
behavior until the lowerings are clear.
|
|
41
|
+
|
|
42
|
+
## Landing Map
|
|
43
|
+
|
|
44
|
+
`igniter-extensions` owns:
|
|
45
|
+
|
|
46
|
+
- `persist` / `history` as optional Ruby product sugar
|
|
47
|
+
- future `Store[T]` / `History[T]` / `Relation[...]` descriptors
|
|
48
|
+
- field/index/scope/command metadata descriptors
|
|
49
|
+
- relation manifest shape
|
|
50
|
+
- operation-intent metadata shape
|
|
51
|
+
- report-only validation and diagnostics
|
|
52
|
+
|
|
53
|
+
`igniter-application` owns:
|
|
54
|
+
|
|
55
|
+
- capability registry/factory
|
|
56
|
+
- app-local record/history bindings
|
|
57
|
+
- adapter wiring and backend choice
|
|
58
|
+
- explicit write boundary
|
|
59
|
+
- setup/readiness/materializer surfaces
|
|
60
|
+
- approval/attempt receipt persistence
|
|
61
|
+
- application lifecycle around generated or materialized files
|
|
62
|
+
|
|
63
|
+
Future `igniter-persistence` owns only after stabilization:
|
|
64
|
+
|
|
65
|
+
- adapter contract
|
|
66
|
+
- migration/change-plan contract
|
|
67
|
+
- durable capability runtime APIs
|
|
68
|
+
- relation enforcement policy
|
|
69
|
+
- index/partition/placement metadata
|
|
70
|
+
- cross-app persistence test kit
|
|
71
|
+
|
|
72
|
+
## Maturity Ladder
|
|
73
|
+
|
|
74
|
+
1. Companion app-local proof: current state.
|
|
75
|
+
2. Companion internal stabilization: freeze manifest vocabulary, operation
|
|
76
|
+
algebra, relation semantics, approval lifecycle, and status packets.
|
|
77
|
+
3. Split-shaped extraction without package promise: isolate extension-shaped and
|
|
78
|
+
application-shaped modules inside the app or example boundary.
|
|
79
|
+
4. Optional shared packs: move descriptors to `igniter-extensions` and host
|
|
80
|
+
bindings to `igniter-application` only when another app/example repeats the
|
|
81
|
+
pressure.
|
|
82
|
+
5. `igniter-persistence`: create only when adapter semantics, migrations,
|
|
83
|
+
relation policy, and Store/History lowerings have stable tests.
|
|
84
|
+
6. `Igniter::Lang`: lower `persist` to `Store[T]`, `history` to `History[T]`,
|
|
85
|
+
and relation manifests to typed relation descriptors.
|
|
86
|
+
|
|
87
|
+
## Next Slice
|
|
88
|
+
|
|
89
|
+
Best next move:
|
|
90
|
+
|
|
91
|
+
- keep Companion as the proving ground
|
|
92
|
+
- stabilize a canonical manifest schema with `schema_version` and
|
|
93
|
+
`storage.shape`
|
|
94
|
+
- keep `persist`/`history` aliases for current app-local compatibility
|
|
95
|
+
- make operation algebra and relation metadata boring and explicit
|
|
96
|
+
- keep materializer execution blocked behind human approval and audited
|
|
97
|
+
app-boundary writes
|
|
98
|
+
- avoid SQL planners, migrations, FK generation, cascade semantics, and relation
|
|
99
|
+
enforcement until the descriptors stop moving
|
|
100
|
+
|
|
101
|
+
Acceptance:
|
|
102
|
+
|
|
103
|
+
- a new agent can read the manifest and know what is durable, append-only,
|
|
104
|
+
projected, related, command-driven, blocked, or approved
|
|
105
|
+
- no setup/read endpoint mutates durable state
|
|
106
|
+
- all mutation still flows through explicit command intent plus app boundary
|
|
107
|
+
- all terms still lower cleanly to future `Store[T]` / `History[T]`
|
|
108
|
+
|
|
109
|
+
## Handoff
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
[Architect Supervisor / Codex]
|
|
113
|
+
Track: docs/research/contract-persistence-landing-zone.md
|
|
114
|
+
Status: persistence has a reserved landing path, not a new package yet.
|
|
115
|
+
[D] Keep proof app-local in Companion for the next stabilization slice.
|
|
116
|
+
[D] First extraction, when justified, is split: contract vocabulary to
|
|
117
|
+
igniter-extensions; host/runtime/adapters/materializer boundary to
|
|
118
|
+
igniter-application.
|
|
119
|
+
[D] Reserve igniter-persistence as the future package name; avoid igniter-data.
|
|
120
|
+
[R] Do not promote persistence DSL into igniter-contracts from this proof alone.
|
|
121
|
+
[R] Treat fractality as a positive architecture signal, not a promotion trigger.
|
|
122
|
+
[S] Preserve persist -> Store[T], history -> History[T], and typed relation
|
|
123
|
+
lowerings.
|
|
124
|
+
Next: stabilize manifest vocabulary, operation algebra, relation semantics, and
|
|
125
|
+
approval/materializer lifecycle while staying app-local.
|
|
126
|
+
```
|