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,151 @@
|
|
|
1
|
+
# Igniter Web DSL Sketch
|
|
2
|
+
|
|
3
|
+
This note captures the current authoring-first direction for `igniter-web`.
|
|
4
|
+
|
|
5
|
+
It complements:
|
|
6
|
+
|
|
7
|
+
- [Igniter Web Target Plan](./igniter-web-target-plan.md)
|
|
8
|
+
|
|
9
|
+
## DSL Thesis
|
|
10
|
+
|
|
11
|
+
Design `igniter-web` from the shape we want users to write, not from the
|
|
12
|
+
internal routing primitives first.
|
|
13
|
+
|
|
14
|
+
The package should feel:
|
|
15
|
+
|
|
16
|
+
- compact
|
|
17
|
+
- expressive
|
|
18
|
+
- low-boilerplate
|
|
19
|
+
- pleasant to scan
|
|
20
|
+
- friendly to long-lived, stream-heavy, non-CRUD web surfaces
|
|
21
|
+
|
|
22
|
+
## Current Preferred Feel
|
|
23
|
+
|
|
24
|
+
The intended tone is closer to:
|
|
25
|
+
|
|
26
|
+
- Sinatra for compactness
|
|
27
|
+
- Rails for pleasant conventions
|
|
28
|
+
- Igniter for contracts/process/stream semantics
|
|
29
|
+
|
|
30
|
+
Not:
|
|
31
|
+
|
|
32
|
+
- a controller-heavy ceremony-first framework
|
|
33
|
+
- an ORM-centered CRUD shell
|
|
34
|
+
|
|
35
|
+
## Initial Authoring Shape
|
|
36
|
+
|
|
37
|
+
The first DSL pass should make examples like this feel natural:
|
|
38
|
+
|
|
39
|
+
```ruby
|
|
40
|
+
app = Igniter::Web.application do
|
|
41
|
+
root title: "Operator" do
|
|
42
|
+
main class: "shell" do
|
|
43
|
+
h1 "Operator"
|
|
44
|
+
para "Cluster is healthy"
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
page "/projects/:id", title: "Project" do
|
|
49
|
+
main do
|
|
50
|
+
h1 assigns[:project_name]
|
|
51
|
+
para assigns[:status]
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
command "/projects/:id/advance", to: Contracts::AdvanceProject
|
|
56
|
+
stream "/projects/:id/events", to: Projections::ProjectEvents
|
|
57
|
+
end
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
This is intentionally more compact than:
|
|
61
|
+
|
|
62
|
+
- explicit controller classes
|
|
63
|
+
- explicit template file wiring for every first page
|
|
64
|
+
- multiple ceremony objects before the screen can exist
|
|
65
|
+
|
|
66
|
+
For agent-managed and process-oriented surfaces, the DSL should also support
|
|
67
|
+
screen intent that can be composed before rendering:
|
|
68
|
+
|
|
69
|
+
```ruby
|
|
70
|
+
screen :plan_review, intent: :human_decision do
|
|
71
|
+
title "Plan review"
|
|
72
|
+
|
|
73
|
+
show :plan_summary
|
|
74
|
+
show :risk_panel
|
|
75
|
+
compare :current_plan, :proposed_plan
|
|
76
|
+
|
|
77
|
+
action :approve, run: Contracts::ApprovePlan
|
|
78
|
+
action :revise, run: Contracts::RequestRevision
|
|
79
|
+
chat with: Agents::ProjectLead
|
|
80
|
+
|
|
81
|
+
compose with: :decision_workspace
|
|
82
|
+
end
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## DSL Priorities
|
|
86
|
+
|
|
87
|
+
Prioritize these authoring wins early:
|
|
88
|
+
|
|
89
|
+
- `root` and `page` as first-class route + page sugar
|
|
90
|
+
- inline page blocks
|
|
91
|
+
- easy promotion path from inline page to dedicated page class
|
|
92
|
+
- Arbre-backed HTML authoring
|
|
93
|
+
- simple layout defaults
|
|
94
|
+
- compact route declarations for `command`, `query`, `stream`, and `webhook`
|
|
95
|
+
|
|
96
|
+
## Promotion Path
|
|
97
|
+
|
|
98
|
+
The DSL should support growth from tiny apps to richer apps without punishing
|
|
99
|
+
the simple case.
|
|
100
|
+
|
|
101
|
+
Start small:
|
|
102
|
+
|
|
103
|
+
```ruby
|
|
104
|
+
page "/chat", title: "Chat" do
|
|
105
|
+
h1 "Chat"
|
|
106
|
+
end
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Promote later:
|
|
110
|
+
|
|
111
|
+
```ruby
|
|
112
|
+
class ChatPage < Igniter::Web::Page
|
|
113
|
+
title "Chat"
|
|
114
|
+
|
|
115
|
+
body do
|
|
116
|
+
main do
|
|
117
|
+
h1 "Chat"
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
page "/chat", to: ChatPage
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
That gives the package a useful spectrum:
|
|
126
|
+
|
|
127
|
+
- inline for small surfaces
|
|
128
|
+
- classes for reusable or larger surfaces
|
|
129
|
+
|
|
130
|
+
## First-Class Authoring Objects
|
|
131
|
+
|
|
132
|
+
The current DSL lane should revolve around:
|
|
133
|
+
|
|
134
|
+
- `Application`
|
|
135
|
+
- `Page`
|
|
136
|
+
- `Component`
|
|
137
|
+
- `Api`
|
|
138
|
+
- `Record`
|
|
139
|
+
|
|
140
|
+
The shape is intentionally:
|
|
141
|
+
|
|
142
|
+
- `Application` for route drawing and web composition
|
|
143
|
+
- `Page` for full-screen HTML surfaces
|
|
144
|
+
- `Component` for reusable UI vocabulary
|
|
145
|
+
- `Api` for contracts-first transport declarations
|
|
146
|
+
- `Record` for optional persistence convenience
|
|
147
|
+
|
|
148
|
+
## Working Rule
|
|
149
|
+
|
|
150
|
+
If a proposed API makes small web surfaces longer, noisier, or more ceremonial
|
|
151
|
+
without buying a real capability, it is probably the wrong default DSL.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Igniter Web Target Plan
|
|
2
|
+
|
|
3
|
+
This note defines the current public target for `igniter-web`.
|
|
4
|
+
|
|
5
|
+
## Thesis
|
|
6
|
+
|
|
7
|
+
`igniter-web` should be the contracts-first web layer for Igniter applications.
|
|
8
|
+
It should make app-owned state visible and operable without turning Igniter into
|
|
9
|
+
a CRUD-first Rails clone.
|
|
10
|
+
|
|
11
|
+
The primary surfaces are:
|
|
12
|
+
|
|
13
|
+
- dashboards
|
|
14
|
+
- operator workspaces
|
|
15
|
+
- command/refusal flows
|
|
16
|
+
- chats and streams when they are backed by explicit app contracts
|
|
17
|
+
- receipt, report, and event review screens
|
|
18
|
+
|
|
19
|
+
## Ownership
|
|
20
|
+
|
|
21
|
+
`igniter-web` owns:
|
|
22
|
+
|
|
23
|
+
- mounted web surfaces
|
|
24
|
+
- request handling for example/review surfaces
|
|
25
|
+
- screen composition primitives
|
|
26
|
+
- `MountContext`
|
|
27
|
+
- surface structure and surface manifest metadata
|
|
28
|
+
|
|
29
|
+
It does not own:
|
|
30
|
+
|
|
31
|
+
- application boot
|
|
32
|
+
- provider or service registration
|
|
33
|
+
- contract registration
|
|
34
|
+
- app mutation policy
|
|
35
|
+
- production deployment behavior
|
|
36
|
+
- cluster placement
|
|
37
|
+
|
|
38
|
+
Those remain application, host, or cluster concerns.
|
|
39
|
+
|
|
40
|
+
## Current Proof
|
|
41
|
+
|
|
42
|
+
The current proof comes from Lense, Chronicle, Scout, and Dispatch. Each app
|
|
43
|
+
mounts one web surface, renders from an app-owned snapshot, exposes `/events`,
|
|
44
|
+
and emits `/report` or `/receipt` evidence.
|
|
45
|
+
|
|
46
|
+
Public review path:
|
|
47
|
+
|
|
48
|
+
- [Application Showcase Portfolio](../guide/application-showcase-portfolio.md)
|
|
49
|
+
- [Application Showcase Portfolio](../guide/application-showcase-portfolio.md)
|
|
50
|
+
- [Interactive App Structure](../guide/interactive-app-structure.md)
|
|
51
|
+
|
|
52
|
+
## Extraction Rule
|
|
53
|
+
|
|
54
|
+
Keep repeated web shapes local until the showcase portfolio proves a stable
|
|
55
|
+
abstraction. Public package APIs should be promoted only when they preserve
|
|
56
|
+
clear ownership between application state, command handling, and web rendering.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# MCP Adapter Package
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
`igniter-mcp-adapter` is the transport-facing package that sits on top of the
|
|
6
|
+
tooling semantics already defined in `igniter-extensions`.
|
|
7
|
+
|
|
8
|
+
Its job is not to invent new tools. Its job is to adapt the existing catalog
|
|
9
|
+
and invocation surface into a package that can host:
|
|
10
|
+
|
|
11
|
+
- a real MCP server
|
|
12
|
+
- CLI wrappers
|
|
13
|
+
- editor integrations
|
|
14
|
+
- agent-facing bridges
|
|
15
|
+
|
|
16
|
+
## Source Of Truth
|
|
17
|
+
|
|
18
|
+
The semantic source of truth stays in `igniter-extensions`:
|
|
19
|
+
|
|
20
|
+
- `Igniter::Extensions::Contracts.mcp_tools`
|
|
21
|
+
- `Igniter::Extensions::Contracts.mcp_call(...)`
|
|
22
|
+
- `Igniter::Extensions::Contracts.mcp_creator_session(...)`
|
|
23
|
+
|
|
24
|
+
The adapter package should treat those as authoritative.
|
|
25
|
+
|
|
26
|
+
## Why A Separate Package
|
|
27
|
+
|
|
28
|
+
This split gives us scalability by default:
|
|
29
|
+
|
|
30
|
+
- `igniter-extensions` owns debug/creator/tooling semantics
|
|
31
|
+
- `igniter-mcp-adapter` owns transport/runtime integration concerns
|
|
32
|
+
- future adapters can reuse the same semantic surface without duplicating logic
|
|
33
|
+
|
|
34
|
+
That means we can add more than one adapter later:
|
|
35
|
+
|
|
36
|
+
- MCP server adapter
|
|
37
|
+
- CLI adapter
|
|
38
|
+
- IDE adapter
|
|
39
|
+
- web/dev console adapter
|
|
40
|
+
|
|
41
|
+
## Package Boundary
|
|
42
|
+
|
|
43
|
+
`igniter-mcp-adapter`:
|
|
44
|
+
|
|
45
|
+
- depends on `igniter-extensions`
|
|
46
|
+
- should not depend directly on `igniter-contracts` internals
|
|
47
|
+
- should not define new creator/debug semantics
|
|
48
|
+
- should not become a second tool catalog source
|
|
49
|
+
|
|
50
|
+
## Minimal Public Surface
|
|
51
|
+
|
|
52
|
+
Near-term public surface:
|
|
53
|
+
|
|
54
|
+
- `Igniter::MCP::Adapter.tool_catalog`
|
|
55
|
+
- `Igniter::MCP::Adapter.tool_names`
|
|
56
|
+
- `Igniter::MCP::Adapter.tool_definition(name)`
|
|
57
|
+
- `Igniter::MCP::Adapter.invoke(name, ...)`
|
|
58
|
+
- `Igniter::MCP::Adapter.creator_session(...)`
|
|
59
|
+
|
|
60
|
+
This is intentionally thin. It keeps the adapter package honest.
|
|
61
|
+
|
|
62
|
+
## Current State
|
|
63
|
+
|
|
64
|
+
This is already real in the monorepo:
|
|
65
|
+
|
|
66
|
+
- `Igniter::MCP::Adapter`
|
|
67
|
+
thin delegation over the semantic tooling surface
|
|
68
|
+
- `Igniter::MCP::Adapter::Server`
|
|
69
|
+
transport-ready tool definitions and tool result envelopes
|
|
70
|
+
- `Igniter::MCP::Adapter::Host`
|
|
71
|
+
stdio JSON-RPC host over the server wrapper
|
|
72
|
+
|
|
73
|
+
So this package is no longer only a design placeholder.
|
|
74
|
+
|
|
75
|
+
## Next Likely Steps
|
|
76
|
+
|
|
77
|
+
1. decide whether we want additional MCP surfaces like `resources/list` or
|
|
78
|
+
`prompts/list`, or whether tools-only is the right first stable contract
|
|
79
|
+
2. keep request validation aligned with generated schemas
|
|
80
|
+
3. only add transport/runtime concerns that do not create a second semantic source
|
|
81
|
+
4. use this package as the only place where MCP transport specifics evolve
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Module System
|
|
2
|
+
|
|
3
|
+
Igniter's public module map is pre-v1 and package-first.
|
|
4
|
+
|
|
5
|
+
## Current Axes
|
|
6
|
+
|
|
7
|
+
- `igniter-contracts`
|
|
8
|
+
embedded graph kernel: DSL, compilation, execution, diagnostics
|
|
9
|
+
- `igniter-extensions`
|
|
10
|
+
optional packs over contracts: dataflow, differential, reporting, tooling
|
|
11
|
+
- `igniter-embed`
|
|
12
|
+
host integration and configuration, especially Rails-style embedding
|
|
13
|
+
- `igniter-application`
|
|
14
|
+
local app profile, providers, services, capsules, transfer, activation review
|
|
15
|
+
- `igniter-web`
|
|
16
|
+
contracts-first web surfaces and app-local interactive screens
|
|
17
|
+
- `igniter-cluster`
|
|
18
|
+
distributed routing, placement, ownership, health, and remediation
|
|
19
|
+
- `igniter-mcp-adapter`
|
|
20
|
+
MCP-facing tool catalog and invocation surface
|
|
21
|
+
|
|
22
|
+
## Rules
|
|
23
|
+
|
|
24
|
+
- Lower layers must not know about upper layers.
|
|
25
|
+
- Optional behavior should be an explicit pack, not hidden boot mutation.
|
|
26
|
+
- Integrations adapt Igniter to a host; they are not runtime layers.
|
|
27
|
+
- Web owns rendering; application owns app profile and lifecycle.
|
|
28
|
+
- Cluster owns distribution; contracts stay local-first and host-agnostic.
|
|
29
|
+
|
|
30
|
+
## Rails Boundary
|
|
31
|
+
|
|
32
|
+
Rails embedding should use `igniter-embed` / Rails integration surfaces. It
|
|
33
|
+
should not implicitly load application hosting, web rendering, or cluster
|
|
34
|
+
coordination.
|
|
35
|
+
|
|
36
|
+
## Placement Heuristic
|
|
37
|
+
|
|
38
|
+
Ask in this order:
|
|
39
|
+
|
|
40
|
+
1. Is it executable graph semantics? Put it in `igniter-contracts`.
|
|
41
|
+
2. Is it optional reusable behavior over contracts? Put it in
|
|
42
|
+
`igniter-extensions`.
|
|
43
|
+
3. Is it host integration? Put it in `igniter-embed` or a specific adapter.
|
|
44
|
+
4. Is it local app runtime? Put it in `igniter-application`.
|
|
45
|
+
5. Is it human/browser interaction? Put it in `igniter-web`.
|
|
46
|
+
6. Is it distributed execution or coordination? Put it in `igniter-cluster`.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Package Map
|
|
2
|
+
|
|
3
|
+
This is the target ownership map for the new runtime family.
|
|
4
|
+
|
|
5
|
+
## Root
|
|
6
|
+
|
|
7
|
+
Root should stay thin:
|
|
8
|
+
|
|
9
|
+
- umbrella gem wiring
|
|
10
|
+
- load-path/package registration
|
|
11
|
+
- top-level onboarding docs
|
|
12
|
+
- cross-package entrypoints that are intentionally thin
|
|
13
|
+
|
|
14
|
+
## Runtime Pillars
|
|
15
|
+
|
|
16
|
+
- `igniter-contracts`
|
|
17
|
+
canonical embedded kernel: DSL, compile/runtime spine, profiles, execution,
|
|
18
|
+
diagnostics, extension seams
|
|
19
|
+
- `igniter-extensions`
|
|
20
|
+
packs, language additions, tooling, operational behavior, and domain behavior
|
|
21
|
+
over `igniter-contracts`
|
|
22
|
+
- `igniter-application`
|
|
23
|
+
contracts-native local runtime host: config, providers, services, loaders,
|
|
24
|
+
schedulers, host adapters, boot lifecycle
|
|
25
|
+
- `igniter-ai`
|
|
26
|
+
provider-neutral AI execution: request/response envelopes, provider clients,
|
|
27
|
+
credentials-aware configuration, fake/live/recorded modes, transcripts,
|
|
28
|
+
usage, errors, and replay seams
|
|
29
|
+
- `igniter-agents`
|
|
30
|
+
agent runtime semantics over contracts and AI: agent definitions, runs,
|
|
31
|
+
turns, traces, tool-call evidence, and single-turn assistant execution
|
|
32
|
+
- `igniter-hub`
|
|
33
|
+
local capsule catalog discovery and transfer bundle metadata; applications
|
|
34
|
+
still install through `igniter-application` transfer APIs
|
|
35
|
+
- `igniter-cluster`
|
|
36
|
+
contracts-native distributed runtime: remote execution, routing, admission,
|
|
37
|
+
placement, peer registry, topology, distributed diagnostics
|
|
38
|
+
- `igniter-ledger`
|
|
39
|
+
experimental contract-native hot fact engine: immutable facts, time-travel,
|
|
40
|
+
access paths, reactive invalidation, retention/compaction, LedgerServer
|
|
41
|
+
transport, and future hot/cold sync experiments
|
|
42
|
+
- `igniter-durable-model`
|
|
43
|
+
experimental typed Record/History facade over `igniter-ledger`; owns
|
|
44
|
+
app-facing Store/History ergonomics and pressure from Companion manifests,
|
|
45
|
+
while avoiding core persistence API promises
|
|
46
|
+
|
|
47
|
+
## Planned Runtime Packages
|
|
48
|
+
|
|
49
|
+
- richer agent memory/context, handoff, human gates, contracts-first tool
|
|
50
|
+
execution, and supervisor vocabulary
|
|
51
|
+
- stable contract persistence capability may still graduate later through
|
|
52
|
+
`igniter-extensions` / `igniter-application` / future `igniter-persistence`;
|
|
53
|
+
current `igniter-ledger` and `igniter-durable-model` remain pressure packages, not
|
|
54
|
+
final public persistence API
|
|
55
|
+
|
|
56
|
+
## Current Supporting Packages
|
|
57
|
+
|
|
58
|
+
- `igniter-mcp-adapter`
|
|
59
|
+
MCP adapter over contracts-native tooling and host integration
|
|
60
|
+
- `igniter-web`
|
|
61
|
+
supporting web/UI package; active, but not a runtime pillar
|
|
62
|
+
|
|
63
|
+
## Supporting Lanes
|
|
64
|
+
|
|
65
|
+
- `legacy`
|
|
66
|
+
reference-only implementation material until deletion
|
|
67
|
+
- adapter packages
|
|
68
|
+
MCP, HTTP, IDE, transport, protocol, and external integration surfaces
|
|
69
|
+
- framework/plugin packages
|
|
70
|
+
Rails and other host-specific integrations
|
|
71
|
+
- frontend packages
|
|
72
|
+
human-authored UI surfaces
|
|
73
|
+
|
|
74
|
+
## Placement Heuristics
|
|
75
|
+
|
|
76
|
+
- Put code in `igniter-contracts` if it defines canonical embedded graph
|
|
77
|
+
semantics, service execution protocols, or kernel extension seams.
|
|
78
|
+
- Put code in `igniter-extensions` if it is optional behavior, tooling, or
|
|
79
|
+
domain vocabulary over the contracts kernel. Language-changing DSL packs such
|
|
80
|
+
as observable branching, formulas, scaling, and scoring primitives also live
|
|
81
|
+
here.
|
|
82
|
+
- Put code in `igniter-application` if it is about local runtime hosting,
|
|
83
|
+
providers, services, boot, config, loading, or scheduling.
|
|
84
|
+
- Put early contract-persistence experiments in `igniter-extensions` when they
|
|
85
|
+
add optional contract DSL/semantics, or in `igniter-application` when they
|
|
86
|
+
are app-host/back-end boundary behavior. Do not promote a separate package
|
|
87
|
+
until the target plan has repeated implementation evidence.
|
|
88
|
+
- Put code in `igniter-cluster` if the network is part of the execution model.
|
|
89
|
+
- Put immutable fact log, time-travel, access path, retention, LedgerServer,
|
|
90
|
+
sync-hub, and transport-backend experiments in `igniter-ledger`; do not put
|
|
91
|
+
contract business logic execution there.
|
|
92
|
+
- Put app-facing generated Record/History classes, receipts, manifest-to-store
|
|
93
|
+
facades, and Companion pressure adapters in `igniter-durable-model`; do not put
|
|
94
|
+
core DSL promotion there.
|
|
95
|
+
- Put provider clients, model envelopes, transcripts, usage, and replay seams in
|
|
96
|
+
`igniter-ai`.
|
|
97
|
+
- Put agent loops, run state, tool policy, memory/context, handoff, and human
|
|
98
|
+
gates in `igniter-agents`.
|
|
99
|
+
- Put capsule catalog discovery and bundle metadata in `igniter-hub`; keep
|
|
100
|
+
verification, intake, apply, receipts, and installed-capsule registries in
|
|
101
|
+
`igniter-application`.
|
|
102
|
+
- Put transport and protocol work in adapter packages unless it is truly a
|
|
103
|
+
cluster semantic concern.
|
|
104
|
+
- Touch legacy packages only for reference, parity, migration, or retirement
|
|
105
|
+
cleanup.
|
|
106
|
+
- Put package-specific user docs next to the package README.
|
|
107
|
+
|
|
108
|
+
## Explicit Non-Goals
|
|
109
|
+
|
|
110
|
+
- do not treat `server` as a primary runtime pillar
|
|
111
|
+
- do not treat stack orchestration as the default local app model
|
|
112
|
+
- do not keep growing legacy packages as if they were still the target
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Igniter Guide
|
|
2
|
+
|
|
3
|
+
Use this section for user-facing documentation: learning the framework, choosing
|
|
4
|
+
entrypoints, configuring runtime behavior, and building applications on top of
|
|
5
|
+
Igniter.
|
|
6
|
+
|
|
7
|
+
Current loading guidance:
|
|
8
|
+
|
|
9
|
+
- prefer `require "igniter"` for embedded/default usage
|
|
10
|
+
- prefer contracts-facing entrypoints when you are evaluating the migration path
|
|
11
|
+
- use package README files for package-specific entrypoints
|
|
12
|
+
- treat legacy entrypoints as private/reference context, not onboarding
|
|
13
|
+
|
|
14
|
+
Pre-v1 status: Igniter intentionally does not promise backward compatibility or
|
|
15
|
+
a stable public API yet. Public docs describe the current direction, not a
|
|
16
|
+
compatibility contract.
|
|
17
|
+
|
|
18
|
+
## What Belongs Here
|
|
19
|
+
|
|
20
|
+
- getting started and first contract/app flows
|
|
21
|
+
- public API and entrypoint guidance
|
|
22
|
+
- how-to guides and cookbook material
|
|
23
|
+
- configuration and operational usage
|
|
24
|
+
- examples and package selection guidance
|
|
25
|
+
|
|
26
|
+
## Canonical Guide Docs
|
|
27
|
+
|
|
28
|
+
- [Top-level README](../../README.md)
|
|
29
|
+
- [Getting Started](./getting-started.md)
|
|
30
|
+
- [API And Runtime](./api-and-runtime.md)
|
|
31
|
+
- [Contract Class DSL](./contract-class-dsl.md)
|
|
32
|
+
- [Igniter Lang Foundation](./igniter-lang-foundation.md)
|
|
33
|
+
- [Application Capsules](./application-capsules.md)
|
|
34
|
+
- [Application Showcase Portfolio](./application-showcase-portfolio.md)
|
|
35
|
+
- [Interactive App Structure](./interactive-app-structure.md)
|
|
36
|
+
- [How-Tos](./how-tos.md)
|
|
37
|
+
- [Configuration](./configuration.md)
|
|
38
|
+
- [Credentials](./credentials.md)
|
|
39
|
+
- [Deployment Modes](./deployment-modes.md)
|
|
40
|
+
- [Integrations](./integrations.md)
|
|
41
|
+
- [Distributed Workflows](./distributed-workflows.md)
|
|
42
|
+
- [Core Runtime Features](./core-runtime-features.md)
|
|
43
|
+
- [AI And Tool Surfaces](./ai-and-tools.md)
|
|
44
|
+
- [Embedded Kernel](./core.md)
|
|
45
|
+
- [App](./app.md)
|
|
46
|
+
- [Cluster](./cluster.md)
|
|
47
|
+
- [CLI](./cli.md)
|
|
48
|
+
- [Store Adapters](./store-adapters.md)
|
|
49
|
+
- [Contract Persistence Target Plan](../dev/contract-persistence-target-plan.md)
|
|
50
|
+
|
|
51
|
+
## Core Guide References
|
|
52
|
+
|
|
53
|
+
- [Concepts](../concepts/README.md)
|
|
54
|
+
- [Igniter Concepts](../concepts/igniter.md)
|
|
55
|
+
- [Examples](../../examples/README.md)
|
|
56
|
+
- [Application Showcase Portfolio](./application-showcase-portfolio.md)
|
|
57
|
+
|
|
58
|
+
## Package-Level Docs
|
|
59
|
+
|
|
60
|
+
Package-specific quick reference should live next to the gem that owns the
|
|
61
|
+
surface:
|
|
62
|
+
|
|
63
|
+
- [`packages/igniter-contracts/README.md`](../../packages/igniter-contracts/README.md)
|
|
64
|
+
- [`packages/igniter-embed/README.md`](../../packages/igniter-embed/README.md)
|
|
65
|
+
- [`packages/igniter-application/README.md`](../../packages/igniter-application/README.md)
|
|
66
|
+
- [`packages/igniter-cluster/README.md`](../../packages/igniter-cluster/README.md)
|
|
67
|
+
- [`packages/igniter-web/README.md`](../../packages/igniter-web/README.md)
|
|
68
|
+
- [`packages/igniter-extensions/README.md`](../../packages/igniter-extensions/README.md)
|
|
69
|
+
- [`packages/igniter-mcp-adapter/README.md`](../../packages/igniter-mcp-adapter/README.md)
|
|
70
|
+
|
|
71
|
+
Cross-package narratives and tutorials stay here in `docs/guide/`.
|
|
72
|
+
|
|
73
|
+
## Legacy Boundary
|
|
74
|
+
|
|
75
|
+
Legacy deep references are private working material under `playgrounds/docs/`.
|
|
76
|
+
Public onboarding should start from the current guide, package READMEs,
|
|
77
|
+
examples, and application showcase path.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# AI And Tool Surfaces
|
|
2
|
+
|
|
3
|
+
Use this page when you need optional AI-facing, agent-facing, or tool-facing
|
|
4
|
+
surfaces around contracts.
|
|
5
|
+
|
|
6
|
+
Public AI and agent APIs are not stable before v1. Current examples may prove
|
|
7
|
+
the shape locally; reusable provider and agent behavior should graduate into
|
|
8
|
+
`igniter-ai` and `igniter-agents`.
|
|
9
|
+
|
|
10
|
+
## Current Surface Areas
|
|
11
|
+
|
|
12
|
+
- tools for callable operations and tool schemas
|
|
13
|
+
- skills for multi-step callable sub-agents
|
|
14
|
+
- channels for transport-neutral outbound delivery
|
|
15
|
+
- transcription for audio-to-text pipelines
|
|
16
|
+
|
|
17
|
+
## Practical Split
|
|
18
|
+
|
|
19
|
+
- use a tool for one atomic callable operation
|
|
20
|
+
- use a skill for a bounded multi-step callable unit
|
|
21
|
+
- use a channel for outbound delivery/notification
|
|
22
|
+
- use transcription when audio becomes input to a graph
|
|
23
|
+
|
|
24
|
+
## Reading Path
|
|
25
|
+
|
|
26
|
+
- [Guide: How-Tos](./how-tos.md)
|
|
27
|
+
- [Guide: Integrations](./integrations.md)
|
|
28
|
+
- [`packages/igniter-extensions/README.md`](../../packages/igniter-extensions/README.md)
|
|
29
|
+
- [`packages/igniter-mcp-adapter/README.md`](../../packages/igniter-mcp-adapter/README.md)
|
|
30
|
+
- [AI And Agents Target Plan](../dev/ai-agents-target-plan.md)
|
|
31
|
+
|
|
32
|
+
Historical AI/tool references are private working material under
|
|
33
|
+
`playgrounds/docs/`.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# API And Runtime
|
|
2
|
+
|
|
3
|
+
Use this index when you already understand the basic idea and want the public
|
|
4
|
+
surface area.
|
|
5
|
+
|
|
6
|
+
## Canonical Public Reads
|
|
7
|
+
|
|
8
|
+
- [Contract Class DSL](./contract-class-dsl.md)
|
|
9
|
+
- [Core Runtime Features](./core-runtime-features.md)
|
|
10
|
+
- [Getting Started](./getting-started.md)
|
|
11
|
+
|
|
12
|
+
## Layer Entry Points
|
|
13
|
+
|
|
14
|
+
- [Core](./core.md)
|
|
15
|
+
- [App](./app.md)
|
|
16
|
+
- [Cluster](./cluster.md)
|
|
17
|
+
|
|
18
|
+
Operating modes to keep in mind:
|
|
19
|
+
|
|
20
|
+
- `Embed` / contracts-first local runtime
|
|
21
|
+
- `Application` / local host profile over embed
|
|
22
|
+
- `Cluster` / distributed runtime over embed/application
|
|
23
|
+
|
|
24
|
+
## Focused Topics
|
|
25
|
+
|
|
26
|
+
- [Contract Class DSL](./contract-class-dsl.md)
|
|
27
|
+
- [Igniter Lang Foundation](./igniter-lang-foundation.md)
|
|
28
|
+
- [Store Adapters](./store-adapters.md)
|
|
29
|
+
- [Deployment Modes](./deployment-modes.md)
|
|
30
|
+
|
|
31
|
+
## Package Quick Reference
|
|
32
|
+
|
|
33
|
+
Package-specific entrypoints live next to the owning gem:
|
|
34
|
+
|
|
35
|
+
- [`packages/igniter-contracts/README.md`](../../packages/igniter-contracts/README.md)
|
|
36
|
+
- [`packages/igniter-embed/README.md`](../../packages/igniter-embed/README.md)
|
|
37
|
+
- [`packages/igniter-application/README.md`](../../packages/igniter-application/README.md)
|
|
38
|
+
- [`packages/igniter-cluster/README.md`](../../packages/igniter-cluster/README.md)
|
data/docs/guide/app.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# App
|
|
2
|
+
|
|
3
|
+
Use this section when Igniter becomes the runtime shape of an application, not
|
|
4
|
+
only an embedded contract kernel.
|
|
5
|
+
|
|
6
|
+
## Current Direction
|
|
7
|
+
|
|
8
|
+
The target application model is contracts-native:
|
|
9
|
+
|
|
10
|
+
- application capsules are the portability boundary
|
|
11
|
+
- app-local code stays inside the app that owns it
|
|
12
|
+
- optional web/UI surfaces live under the app, usually through `igniter-web`
|
|
13
|
+
- stack-level shared code is reserved for code that is truly shared
|
|
14
|
+
- hardcoded HTML strings in Ruby are not the recommended frontend path
|
|
15
|
+
|
|
16
|
+
For new work, start with [Application Capsules](./application-capsules.md).
|
|
17
|
+
For small interactive apps that combine `igniter-application` and
|
|
18
|
+
`igniter-web`, use [Interactive App Structure](./interactive-app-structure.md).
|
|
19
|
+
|
|
20
|
+
## Runtime Shape
|
|
21
|
+
|
|
22
|
+
The preferred app/runtime shape is:
|
|
23
|
+
|
|
24
|
+
- `stack.rb` defines apps and mounts
|
|
25
|
+
- `stack.yml` defines server defaults, persistence, and optional node profiles
|
|
26
|
+
- `bin/start`, `bin/dev`, and `bin/console` are the runtime entry points
|
|
27
|
+
- `Igniter::Stack` owns mounted coordination
|
|
28
|
+
- `Igniter::App` stays a portable mounted module
|
|
29
|
+
|
|
30
|
+
Graduate to cluster behavior only when distributed execution is actually
|
|
31
|
+
needed.
|
|
32
|
+
|
|
33
|
+
## First Reads
|
|
34
|
+
|
|
35
|
+
- [Application Capsules](./application-capsules.md)
|
|
36
|
+
- [Interactive App Structure](./interactive-app-structure.md)
|
|
37
|
+
- [Application Showcase Portfolio](./application-showcase-portfolio.md)
|
|
38
|
+
- [Application Target Plan](../dev/application-target-plan.md)
|
|
39
|
+
- [Igniter Web Target Plan](../dev/igniter-web-target-plan.md)
|
|
40
|
+
- [CLI](./cli.md)
|
|
41
|
+
- [Configuration](./configuration.md)
|
|
42
|
+
- [Integrations](./integrations.md)
|
|
43
|
+
|
|
44
|
+
Legacy deep references and older app/stack notes are private working material
|
|
45
|
+
under `playgrounds/docs/`.
|