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
data/docs/README.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Igniter Docs
|
|
2
|
+
|
|
3
|
+
`docs/` is organized by section. Start here, then jump into the lane that matches
|
|
4
|
+
what you are trying to do.
|
|
5
|
+
|
|
6
|
+
## Sections
|
|
7
|
+
|
|
8
|
+
- [Guide](./guide/README.md) for user-facing docs: getting started, API,
|
|
9
|
+
configuration, integrations, and how-tos
|
|
10
|
+
- [Concepts](./concepts/README.md) for mental models and design language
|
|
11
|
+
- [Dev](./dev/README.md) for public architecture and package boundaries
|
|
12
|
+
- [Research](./research/README.md) for compact horizon notes and decision
|
|
13
|
+
filters before architecture acceptance
|
|
14
|
+
- [Assets](./assets/README.md) for shared documentation media such as logos
|
|
15
|
+
|
|
16
|
+
## Reading Paths
|
|
17
|
+
|
|
18
|
+
### I want to use Igniter
|
|
19
|
+
|
|
20
|
+
1. [Guide](./guide/README.md)
|
|
21
|
+
2. [Getting Started](./guide/getting-started.md)
|
|
22
|
+
3. [Core Runtime Features](./guide/core-runtime-features.md)
|
|
23
|
+
4. [Concepts](./concepts/README.md)
|
|
24
|
+
5. [Examples](../examples/README.md)
|
|
25
|
+
|
|
26
|
+
### I want to build an app or stack
|
|
27
|
+
|
|
28
|
+
1. [Guide](./guide/README.md)
|
|
29
|
+
2. [Application Showcase Portfolio](./guide/application-showcase-portfolio.md)
|
|
30
|
+
3. [Interactive App Structure](./guide/interactive-app-structure.md)
|
|
31
|
+
4. [Examples](../examples/README.md)
|
|
32
|
+
|
|
33
|
+
### I want distributed execution
|
|
34
|
+
|
|
35
|
+
1. [Guide](./guide/README.md)
|
|
36
|
+
2. [Deployment Modes](./guide/deployment-modes.md)
|
|
37
|
+
3. [Distributed Workflows](./guide/distributed-workflows.md)
|
|
38
|
+
4. [Cluster](./guide/cluster.md)
|
|
39
|
+
|
|
40
|
+
### I want to work on the framework
|
|
41
|
+
|
|
42
|
+
1. [Dev](./dev/README.md)
|
|
43
|
+
2. [Architecture](./dev/architecture.md)
|
|
44
|
+
3. [Module System](./dev/module-system.md)
|
|
45
|
+
4. [Package Map](./dev/package-map.md)
|
|
46
|
+
|
|
47
|
+
## Package Docs
|
|
48
|
+
|
|
49
|
+
Package-local quick reference belongs next to the owning gem under
|
|
50
|
+
`packages/<gem>/README.md`.
|
|
51
|
+
|
|
52
|
+
Cross-package product docs belong in [`guide/`](./guide/README.md),
|
|
53
|
+
cross-package mental models in [`concepts/`](./concepts/README.md), and public
|
|
54
|
+
architecture work in [`dev/`](./dev/README.md). Research staging belongs in
|
|
55
|
+
[`research/`](./research/README.md) only when it is compressed enough to avoid
|
|
56
|
+
leaking private cycle history into public onboarding.
|
|
57
|
+
|
|
58
|
+
Legacy deep references and internal history are private working material under
|
|
59
|
+
`playgrounds/docs/`, not public onboarding.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Igniter Concepts
|
|
2
|
+
|
|
3
|
+
Use this section for durable mental models and vocabulary.
|
|
4
|
+
|
|
5
|
+
## What Belongs Here
|
|
6
|
+
|
|
7
|
+
- framework concepts that help explain how Igniter thinks
|
|
8
|
+
- conceptual patterns that cut across packages
|
|
9
|
+
- stable design language that should outlive a single implementation pass
|
|
10
|
+
|
|
11
|
+
## Canonical Concepts
|
|
12
|
+
|
|
13
|
+
- [Igniter](./igniter.md)
|
|
14
|
+
|
|
15
|
+
## Related Sections
|
|
16
|
+
|
|
17
|
+
- [Guide](../guide/README.md) for practical usage
|
|
18
|
+
- [Dev](../dev/README.md) for internal architecture and implementation work
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Igniter: Concepts and Principles
|
|
2
|
+
|
|
3
|
+
This document describes the core ideas behind Igniter in the shortest possible form.
|
|
4
|
+
For the filesystem and layer map, start with
|
|
5
|
+
[Package Map](../dev/package-map.md).
|
|
6
|
+
|
|
7
|
+
## What is Igniter?
|
|
8
|
+
|
|
9
|
+
**Igniter** is a Ruby framework for expressing business logic as a **validated dependency graph**.
|
|
10
|
+
|
|
11
|
+
Instead of writing one long imperative flow, you describe:
|
|
12
|
+
|
|
13
|
+
- the required inputs
|
|
14
|
+
- the derived computations
|
|
15
|
+
- the exposed outputs
|
|
16
|
+
- the dependencies between them
|
|
17
|
+
|
|
18
|
+
Igniter then compiles that graph, validates it, and executes it lazily at runtime.
|
|
19
|
+
|
|
20
|
+
The central separation is:
|
|
21
|
+
|
|
22
|
+
- **what** the graph is: model + DSL + compiler
|
|
23
|
+
- **how** values are produced: runtime + executors
|
|
24
|
+
|
|
25
|
+
## Philosophy
|
|
26
|
+
|
|
27
|
+
1. **Declarative structure, imperative logic.**
|
|
28
|
+
Graph structure is declared with a constrained DSL. The actual business logic stays in normal Ruby.
|
|
29
|
+
|
|
30
|
+
2. **Explicit dependencies.**
|
|
31
|
+
Data flow is always declared. If node `A` depends on node `B`, that relationship should be visible in code.
|
|
32
|
+
|
|
33
|
+
3. **Compile first, execute second.**
|
|
34
|
+
Contracts are validated and frozen before runtime starts. Execution should never operate on a half-built graph.
|
|
35
|
+
|
|
36
|
+
4. **Lazy and inspectable runtime.**
|
|
37
|
+
Igniter resolves only what is needed, caches resolved nodes, and keeps execution observable through events, diagnostics, and introspection.
|
|
38
|
+
|
|
39
|
+
5. **Optional layers over a hard core.**
|
|
40
|
+
Core contracts stay the same whether you use embedded mode, AI features, server hosting, or a cluster.
|
|
41
|
+
|
|
42
|
+
## Core Concepts
|
|
43
|
+
|
|
44
|
+
### Contract
|
|
45
|
+
|
|
46
|
+
The main unit of work in Igniter.
|
|
47
|
+
|
|
48
|
+
A contract is a class inheriting from `Igniter::Contract`. It defines:
|
|
49
|
+
|
|
50
|
+
- inputs
|
|
51
|
+
- compute nodes
|
|
52
|
+
- outputs
|
|
53
|
+
- optional composition, routing, collections, effects, and reactive behavior
|
|
54
|
+
|
|
55
|
+
### Definition graph
|
|
56
|
+
|
|
57
|
+
The static blueprint of a contract.
|
|
58
|
+
|
|
59
|
+
It is created once when the class is loaded inside the `define do ... end` block.
|
|
60
|
+
The compiler validates this graph and produces a frozen compiled representation.
|
|
61
|
+
|
|
62
|
+
### Execution
|
|
63
|
+
|
|
64
|
+
The live runtime session for one input set.
|
|
65
|
+
|
|
66
|
+
An execution owns:
|
|
67
|
+
|
|
68
|
+
- current inputs
|
|
69
|
+
- node states
|
|
70
|
+
- cache
|
|
71
|
+
- event stream
|
|
72
|
+
- resolution behavior
|
|
73
|
+
|
|
74
|
+
### Nodes
|
|
75
|
+
|
|
76
|
+
The building blocks of the graph. Common DSL node types are:
|
|
77
|
+
|
|
78
|
+
- `input` — external data entering the graph
|
|
79
|
+
- `compute` — derived value or delegated executor call
|
|
80
|
+
- `output` — public result exposed by the contract
|
|
81
|
+
- `compose` — nested contract execution
|
|
82
|
+
- `branch` — declarative runtime routing
|
|
83
|
+
- `collection` — fan-out over an array of item inputs
|
|
84
|
+
- `await` — suspend until an external event arrives
|
|
85
|
+
- `effect` / reactive hooks — side effects driven by runtime events
|
|
86
|
+
|
|
87
|
+
## Contract Lifecycle
|
|
88
|
+
|
|
89
|
+
1. **Definition**
|
|
90
|
+
Ruby loads the contract class and executes `define do ... end`.
|
|
91
|
+
|
|
92
|
+
2. **Compilation**
|
|
93
|
+
Igniter validates the graph and freezes the compiled form.
|
|
94
|
+
|
|
95
|
+
3. **Initialization**
|
|
96
|
+
`MyContract.new(inputs)` creates a contract instance and its `Runtime::Execution`.
|
|
97
|
+
|
|
98
|
+
4. **Resolution**
|
|
99
|
+
A result reader such as `contract.result.total` or `contract.resolve_all` triggers lazy resolution of only the required nodes.
|
|
100
|
+
|
|
101
|
+
5. **Observation**
|
|
102
|
+
Events, diagnostics, audit snapshots, and introspection tools expose what happened during execution.
|
|
103
|
+
|
|
104
|
+
6. **Update and invalidation**
|
|
105
|
+
`contract.update_inputs(...)` marks affected downstream nodes stale. Re-computation happens only when values are requested again.
|
|
106
|
+
|
|
107
|
+
## Architectural View
|
|
108
|
+
|
|
109
|
+
Igniter is intentionally layered:
|
|
110
|
+
|
|
111
|
+
- **Core**: DSL, model, compiler, runtime, events, diagnostics
|
|
112
|
+
- **Agents**: actor runtime, supervision, registry, reusable agent implementations
|
|
113
|
+
- **Core features**: tools, memory, metrics, temporal support, caches
|
|
114
|
+
- **Extensions**: auditing, provenance, incremental, dataflow, invariants, and similar behavioral add-ons
|
|
115
|
+
- **Capability layers**: AI and Channels
|
|
116
|
+
- **Hosting/profile layers**: Server, App, Cluster
|
|
117
|
+
- **Plugins**: framework-specific integrations such as Rails
|
|
118
|
+
|
|
119
|
+
That layering exists so that embedded use stays small, while larger deployments can add hosting and distributed concerns without rewriting domain contracts.
|
data/docs/dev/README.md
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Igniter Dev
|
|
2
|
+
|
|
3
|
+
Use this section for public contributor-facing architecture, package boundaries,
|
|
4
|
+
and current design constraints.
|
|
5
|
+
|
|
6
|
+
Internal cycle history, agent handoffs, research horizon material, external
|
|
7
|
+
expert reports, and legacy deep references live under `playgrounds/docs/` and
|
|
8
|
+
are not part of the public documentation surface.
|
|
9
|
+
|
|
10
|
+
## Canonical Dev Docs
|
|
11
|
+
|
|
12
|
+
- [Current Runtime Snapshot](./current-runtime-snapshot.md)
|
|
13
|
+
- [Architecture](./architecture.md)
|
|
14
|
+
- [Execution Model](./execution-model.md)
|
|
15
|
+
- [Contract Persistence Target Plan](./contract-persistence-target-plan.md)
|
|
16
|
+
- [Module System](./module-system.md)
|
|
17
|
+
- [Package Map](./package-map.md)
|
|
18
|
+
- [Data Ownership](./data-ownership.md)
|
|
19
|
+
- [Embed Target Plan](./embed-target-plan.md)
|
|
20
|
+
- [Application Target Plan](./application-target-plan.md)
|
|
21
|
+
- [Application And Web Integration](./application-web-integration.md)
|
|
22
|
+
- [Application Web POC Pattern Guide](./application-web-poc-pattern-guide.md)
|
|
23
|
+
- [AI And Agents Target Plan](./ai-agents-target-plan.md)
|
|
24
|
+
- [Cluster Target Plan](./cluster-target-plan.md)
|
|
25
|
+
- [Igniter Web Target Plan](./igniter-web-target-plan.md)
|
|
26
|
+
- [MCP Adapter Package](./mcp-adapter-package-spec.md)
|
|
27
|
+
- [Document Rotation](./document-rotation.md)
|
|
28
|
+
- [Agent Orchestra DNA](./agent-orchestra-dna.md)
|
|
29
|
+
- [Architect Supervisor Bootstrap](./architect-supervisor-bootstrap.md)
|
|
30
|
+
|
|
31
|
+
## Package And Layer Boundaries
|
|
32
|
+
|
|
33
|
+
- [Core](../guide/core.md)
|
|
34
|
+
- [App](../guide/app.md)
|
|
35
|
+
- [Cluster](../guide/cluster.md)
|
|
36
|
+
- [`igniter-extensions`](../../packages/igniter-extensions/README.md)
|
|
37
|
+
|
|
38
|
+
## Public Docs Rule
|
|
39
|
+
|
|
40
|
+
- Keep user onboarding in `docs/guide/`.
|
|
41
|
+
- Keep package-local quick reference in `packages/<gem>/README.md`.
|
|
42
|
+
- Keep public architecture and placement decisions in `docs/dev/`.
|
|
43
|
+
- Keep private research, expert analysis, handoff history, and agent working
|
|
44
|
+
tracks in `playgrounds/docs/`.
|
|
45
|
+
- Prefer updating a package README and guide index before writing new deep
|
|
46
|
+
public prose.
|
|
47
|
+
- Rotate stale public docs into `playgrounds/docs/` once their accepted content
|
|
48
|
+
has been compressed into guide, dev, example, or package reference.
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
# Agent Orchestra DNA
|
|
2
|
+
|
|
3
|
+
Status: portable process seed
|
|
4
|
+
Owner: Architect Supervisor
|
|
5
|
+
Last updated: 2026-05-12
|
|
6
|
+
|
|
7
|
+
This document describes the minimal repeatable pattern for deploying an
|
|
8
|
+
agent-orchestrated development loop in another project.
|
|
9
|
+
|
|
10
|
+
It is intentionally project-agnostic. Use it as the DNA for a new workspace,
|
|
11
|
+
then let the local Architect Supervisor adapt names, roles, folders, and cadence
|
|
12
|
+
to the target project.
|
|
13
|
+
|
|
14
|
+
## Core Thesis
|
|
15
|
+
|
|
16
|
+
Agents need a map, not the whole history.
|
|
17
|
+
|
|
18
|
+
The system works when every participant can answer:
|
|
19
|
+
|
|
20
|
+
- where are we now?
|
|
21
|
+
- what is canonical?
|
|
22
|
+
- what is being worked now?
|
|
23
|
+
- who owns each decision?
|
|
24
|
+
- what evidence proves a change?
|
|
25
|
+
- where should useful pressure route next?
|
|
26
|
+
|
|
27
|
+
The short formula:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
Role + Context + Card + Lens + Authority + Route
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Each part prevents a common failure:
|
|
34
|
+
|
|
35
|
+
| Part | Prevents |
|
|
36
|
+
| --- | --- |
|
|
37
|
+
| Role | Agent invents its own job or claims another role's authority |
|
|
38
|
+
| Context | Agent rereads history and reconstructs a stale project model |
|
|
39
|
+
| Card | Slice expands beyond the current task |
|
|
40
|
+
| Lens | Review asks the wrong questions |
|
|
41
|
+
| Authority | Discussion or pressure accidentally becomes canon |
|
|
42
|
+
| Route | Useful insight remains prose instead of becoming work |
|
|
43
|
+
|
|
44
|
+
## Minimal Workspace Shape
|
|
45
|
+
|
|
46
|
+
Default path for a new project:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
docs/agents/
|
|
50
|
+
README.md
|
|
51
|
+
current-status.md
|
|
52
|
+
operating-model.md
|
|
53
|
+
roles/
|
|
54
|
+
README.md
|
|
55
|
+
handoff/
|
|
56
|
+
README.md
|
|
57
|
+
onboarding-card-template.md
|
|
58
|
+
instance-routing.md
|
|
59
|
+
tracks/
|
|
60
|
+
README.md
|
|
61
|
+
discussions/
|
|
62
|
+
README.md
|
|
63
|
+
decisions/
|
|
64
|
+
README.md
|
|
65
|
+
lineups/
|
|
66
|
+
README.md
|
|
67
|
+
inbox/
|
|
68
|
+
README.md
|
|
69
|
+
archive/
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
If the project already has a documentation convention, adapt the path. The
|
|
73
|
+
important thing is not the folder name. The important thing is that active maps,
|
|
74
|
+
ephemeral tracks, decisions, role profiles, discussions, and archives are not
|
|
75
|
+
mixed together.
|
|
76
|
+
|
|
77
|
+
## Roles
|
|
78
|
+
|
|
79
|
+
Start with a small orchestra. Add roles only when the work produces a real
|
|
80
|
+
pressure that a current role cannot hold cleanly.
|
|
81
|
+
|
|
82
|
+
| Role | Purpose |
|
|
83
|
+
| --- | --- |
|
|
84
|
+
| Architect Supervisor | Owns rounds, scope, authority, gates, and final routing |
|
|
85
|
+
| Implementation Agent | Makes bounded code changes after authority exists |
|
|
86
|
+
| Research Agent | Builds proofs, maps uncertainty, validates hypotheses |
|
|
87
|
+
| Domain Pressure Agent | Pushes from product, user, domain, and business reality |
|
|
88
|
+
| QA/Test Agent | Runs targeted verification and turns failures into evidence |
|
|
89
|
+
| Status Curator | Maintains current maps, round summaries, and next-state clarity |
|
|
90
|
+
| External Pressure Reviewer | Fresh-context critique; pressure only, no canon authority |
|
|
91
|
+
| Archive/Form Expert | Separates history, canon, archive, and zombie documents |
|
|
92
|
+
| Line Up Summarizer | Compresses bulky sources into compact memory cards |
|
|
93
|
+
| History Curator | Long-cycle archaeology, preservation, and context hygiene |
|
|
94
|
+
|
|
95
|
+
Role and agent are different:
|
|
96
|
+
|
|
97
|
+
```text
|
|
98
|
+
Agent: [Spark CRM Runtime Reviewer]
|
|
99
|
+
Role: external-pressure-reviewer
|
|
100
|
+
Lens: runtime-pressure
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
One role may have multiple instances. One agent may borrow a lens for a single
|
|
104
|
+
card, but it does not replace the base role.
|
|
105
|
+
|
|
106
|
+
## Card Codes
|
|
107
|
+
|
|
108
|
+
Use compact card ids so humans can dispatch parallel work without rereading the
|
|
109
|
+
whole plan.
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
Card: S1-R2-C3-P1
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Meaning:
|
|
116
|
+
|
|
117
|
+
| Code | Meaning |
|
|
118
|
+
| --- | --- |
|
|
119
|
+
| `S1` | Stage 1 |
|
|
120
|
+
| `R2` | Supervisor round 2 |
|
|
121
|
+
| `C3` | Card 3 inside the round |
|
|
122
|
+
| `P` | Parallel-safe |
|
|
123
|
+
| `P1`, `P2` | Parallel series; same number may start together |
|
|
124
|
+
| `B` | Blocked or ordered; check dependencies before starting |
|
|
125
|
+
| `S` | Serial or supervisor-only; usually after a round barrier |
|
|
126
|
+
| `A` | Architect/authority decision; no implementation unless scoped |
|
|
127
|
+
| `I` | Implementation/code-writing slice; tests or proofs expected |
|
|
128
|
+
|
|
129
|
+
Dispatch pattern:
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
R = [[C1-P1, C2-P1] -> C3-S -> [C4-P2, C5-P2]]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
`C1-P1` and `C2-P1` may run together. `C3-S` runs after P1 closes. `C4-P2` and
|
|
136
|
+
`C5-P2` may run together after the serial barrier.
|
|
137
|
+
|
|
138
|
+
## Instance Routes
|
|
139
|
+
|
|
140
|
+
Every agent instance should choose a startup route before work.
|
|
141
|
+
|
|
142
|
+
| Situation | Route | Use when |
|
|
143
|
+
| --- | --- | --- |
|
|
144
|
+
| New chat / fresh agent | `INIT` | No previous handoff in this chat |
|
|
145
|
+
| Same agent, new card | `UPDATE` | Role is known, work changed |
|
|
146
|
+
| Same card in progress | `IN_FLIGHT_REFRESH` | Need to re-check changed files or maps |
|
|
147
|
+
| Returning after delay | `STALE_REFRESH` | Stage, round, gate, or same-role work moved |
|
|
148
|
+
| Discussion mode | `DISCUSSION` | Producing critique or pressure, not code/canon |
|
|
149
|
+
| Stage-level role | `STAGE_LOOP` | Long-cycle work without per-round cards |
|
|
150
|
+
|
|
151
|
+
Minimal startup statement:
|
|
152
|
+
|
|
153
|
+
```text
|
|
154
|
+
Route:
|
|
155
|
+
Agent:
|
|
156
|
+
Role:
|
|
157
|
+
Card:
|
|
158
|
+
Current stage/round observed:
|
|
159
|
+
Neighbor risk:
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Authority Boundary
|
|
163
|
+
|
|
164
|
+
Output types are not equal.
|
|
165
|
+
|
|
166
|
+
| Output type | Authority |
|
|
167
|
+
| --- | --- |
|
|
168
|
+
| Inbox note | Unrouted input |
|
|
169
|
+
| Discussion | Pressure only |
|
|
170
|
+
| Review | Signal that needs intake |
|
|
171
|
+
| Track | Evidence for one bounded slice |
|
|
172
|
+
| Proposal | Candidate design or semantics |
|
|
173
|
+
| Spec | Canon after acceptance/sync |
|
|
174
|
+
| Decision | Architect-owned authorization |
|
|
175
|
+
| Implementation | Code inside an authorized surface |
|
|
176
|
+
|
|
177
|
+
The word `proceed` in a review means "safe to route onward", not "authorized to
|
|
178
|
+
implement".
|
|
179
|
+
|
|
180
|
+
## Round Loop
|
|
181
|
+
|
|
182
|
+
The default loop:
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
Architect Supervisor
|
|
186
|
+
-> opens cards and authority boundaries
|
|
187
|
+
Agents
|
|
188
|
+
-> execute bounded slices and handoff
|
|
189
|
+
External Pressure / QA
|
|
190
|
+
-> challenge and verify
|
|
191
|
+
Status Curator / Meta
|
|
192
|
+
-> updates maps and extracts next blockers
|
|
193
|
+
Architect Supervisor
|
|
194
|
+
-> closes, redirects, authorizes, or opens next round
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Keep the loop small enough that the current state can be reloaded from the maps,
|
|
198
|
+
not reconstructed from the archive.
|
|
199
|
+
|
|
200
|
+
## Document Lifecycle
|
|
201
|
+
|
|
202
|
+
No document should have an undefined status.
|
|
203
|
+
|
|
204
|
+
```text
|
|
205
|
+
inbox
|
|
206
|
+
-> reject
|
|
207
|
+
-> discussion
|
|
208
|
+
-> track
|
|
209
|
+
-> decision
|
|
210
|
+
-> proposal
|
|
211
|
+
-> spec
|
|
212
|
+
-> lineup
|
|
213
|
+
-> archive
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Use lineups for context hoisting:
|
|
217
|
+
|
|
218
|
+
```text
|
|
219
|
+
large source document
|
|
220
|
+
-> compact Line Up summary
|
|
221
|
+
-> source remains authoritative for exact proof logs
|
|
222
|
+
-> active maps link to Line Up, not bulky history
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Use archive mode for history:
|
|
226
|
+
|
|
227
|
+
```text
|
|
228
|
+
history is preserved
|
|
229
|
+
but not required reading for new work
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Safety Rules
|
|
233
|
+
|
|
234
|
+
- Do not read the entire repository unless explicitly assigned archaeology.
|
|
235
|
+
- Do not revert, stage, clean, or remove files that may belong to another agent.
|
|
236
|
+
- Do not promote pressure, discussion, or research into canon without routing.
|
|
237
|
+
- Do not implement behavior before authority exists.
|
|
238
|
+
- Do not hide unresolved blockers behind a positive summary.
|
|
239
|
+
- Prefer exact file links and compact handoffs over narrative memory.
|
|
240
|
+
- Treat multiple instances of the same role as normal.
|
|
241
|
+
|
|
242
|
+
## Stage 0 Bootstrap
|
|
243
|
+
|
|
244
|
+
For a new project, the first stage should produce only a map and operating
|
|
245
|
+
surface. Avoid code changes unless the user explicitly asks.
|
|
246
|
+
|
|
247
|
+
Suggested first round:
|
|
248
|
+
|
|
249
|
+
```text
|
|
250
|
+
S0-R1-C1-A Architect Supervisor: create project intake map
|
|
251
|
+
S0-R1-C2-P1 Research Agent: project structure and build/test map
|
|
252
|
+
S0-R1-C3-P1 Domain Pressure Agent: product/domain pain map
|
|
253
|
+
S0-R1-C4-P1 Archive/Form Expert: documentation/context map
|
|
254
|
+
S0-R1-X1-S External Pressure Reviewer: fresh-context critique
|
|
255
|
+
S0-R1-C5-S Status Curator: current-status and next round
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
After Stage 0, the project should have:
|
|
259
|
+
|
|
260
|
+
- a current status map;
|
|
261
|
+
- a role map;
|
|
262
|
+
- a first backlog of concrete tracks;
|
|
263
|
+
- a clear list of protected surfaces;
|
|
264
|
+
- known build/test commands;
|
|
265
|
+
- known document rotation rules.
|
|
266
|
+
|
|
267
|
+
## Copy-Paste Bootstrap
|
|
268
|
+
|
|
269
|
+
Use [Architect Supervisor Bootstrap](./architect-supervisor-bootstrap.md) to
|
|
270
|
+
initialize a new project chat.
|
|
271
|
+
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# AI And Agents Target Plan
|
|
2
|
+
|
|
3
|
+
This track moves live AI and agent behavior out of application examples and
|
|
4
|
+
back into package-owned Igniter surfaces.
|
|
5
|
+
|
|
6
|
+
Status: accepted direction, not stable API.
|
|
7
|
+
|
|
8
|
+
## Motivation
|
|
9
|
+
|
|
10
|
+
Applications should configure AI and agents; they should not invent provider
|
|
11
|
+
clients, agent loops, tool policy, memory, or replay seams locally.
|
|
12
|
+
|
|
13
|
+
The Companion application is the current proof pressure: it needs live LLM
|
|
14
|
+
value, credentials, stored user state, and future assistant capsules, but those
|
|
15
|
+
capabilities must become reusable package primitives before they harden inside
|
|
16
|
+
one app.
|
|
17
|
+
|
|
18
|
+
## Package Ownership
|
|
19
|
+
|
|
20
|
+
### `igniter-ai`
|
|
21
|
+
|
|
22
|
+
Owns provider-neutral AI execution:
|
|
23
|
+
|
|
24
|
+
- provider clients and model request/response envelopes
|
|
25
|
+
- credentials-aware client configuration
|
|
26
|
+
- live, fake, and recorded execution modes
|
|
27
|
+
- prompt/message/transcript value objects
|
|
28
|
+
- usage, errors, provider metadata, and response normalization
|
|
29
|
+
- evaluation and replay seams for examples and tests
|
|
30
|
+
|
|
31
|
+
Does not own:
|
|
32
|
+
|
|
33
|
+
- long-running agent loops
|
|
34
|
+
- application routing or boot lifecycle
|
|
35
|
+
- web rendering
|
|
36
|
+
- MCP transport
|
|
37
|
+
|
|
38
|
+
First provider target: OpenAI Responses API, wrapped behind an Igniter request
|
|
39
|
+
envelope so examples do not call provider-specific clients directly.
|
|
40
|
+
|
|
41
|
+
### `igniter-agents`
|
|
42
|
+
|
|
43
|
+
Owns agent runtime semantics over contracts and AI:
|
|
44
|
+
|
|
45
|
+
- agent definitions, runs, turns, traces, and lifecycle state
|
|
46
|
+
- tool catalogs, tool calls, and tool policy
|
|
47
|
+
- memory/context interfaces
|
|
48
|
+
- planning and handoff envelopes
|
|
49
|
+
- human gates, approvals, and resumable waits
|
|
50
|
+
- supervisor and worker coordination vocabulary
|
|
51
|
+
|
|
52
|
+
Does not own:
|
|
53
|
+
|
|
54
|
+
- provider-specific HTTP clients
|
|
55
|
+
- Rails/Rack/web rendering
|
|
56
|
+
- distributed mesh placement
|
|
57
|
+
- application-specific assistant features
|
|
58
|
+
|
|
59
|
+
`igniter-agents` depends conceptually on `igniter-ai` for model execution and
|
|
60
|
+
on contracts for typed tools/results. It should stay usable without web.
|
|
61
|
+
|
|
62
|
+
## Boundary Rules
|
|
63
|
+
|
|
64
|
+
- `igniter-application` wires credentials, store choices, boot lifecycle, and
|
|
65
|
+
app-local configuration into AI/agent packages.
|
|
66
|
+
- `igniter-web` renders chat, approval, stream, and review surfaces from
|
|
67
|
+
application snapshots; it does not run agent logic.
|
|
68
|
+
- `igniter-mcp-adapter` exposes existing tool catalogs over transport; it does
|
|
69
|
+
not become the agent runtime.
|
|
70
|
+
- `igniter-extensions` may provide tool packs and diagnostics over contracts,
|
|
71
|
+
but not provider-specific AI execution.
|
|
72
|
+
- Example apps may demonstrate capabilities, but app-local AI code is treated
|
|
73
|
+
as temporary until the corresponding package primitive exists.
|
|
74
|
+
|
|
75
|
+
## Human DSL Shape
|
|
76
|
+
|
|
77
|
+
The package APIs should support two equal forms:
|
|
78
|
+
|
|
79
|
+
- agent-facing explicit objects for tests, tooling, replay, and generated code
|
|
80
|
+
- human-facing sugar DSL for compact application configuration
|
|
81
|
+
|
|
82
|
+
Target application shape:
|
|
83
|
+
|
|
84
|
+
```ruby
|
|
85
|
+
Igniter::Application.define(:companion) do
|
|
86
|
+
credential :openai_api_key, env: "OPENAI_API_KEY"
|
|
87
|
+
|
|
88
|
+
ai do
|
|
89
|
+
provider :openai, credential: :openai_api_key, model: "gpt-5.2"
|
|
90
|
+
mode ENV["COMPANION_LIVE"] == "1" ? :live : :fake
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
agents do
|
|
94
|
+
assistant :daily_companion do
|
|
95
|
+
use_model :openai
|
|
96
|
+
use_tools :reminders, :trackers, :countdowns
|
|
97
|
+
memory :sqlite, namespace: :companion
|
|
98
|
+
human_gate :approval, for: :destructive_actions
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
This is illustrative, not accepted API.
|
|
105
|
+
|
|
106
|
+
## First Implementation Slice
|
|
107
|
+
|
|
108
|
+
Status: package skeleton, application-level AI provider DSL, and minimal
|
|
109
|
+
single-turn agent runtime landed.
|
|
110
|
+
|
|
111
|
+
1. Create `packages/igniter-ai` with zero production dependencies.
|
|
112
|
+
2. Move the Companion OpenAI Responses behavior behind
|
|
113
|
+
`Igniter::AI::Providers::OpenAIResponses`.
|
|
114
|
+
3. Add fake and recorded providers so examples stay offline by default.
|
|
115
|
+
4. Add request/response envelopes with normalized `text`, `usage`, `metadata`,
|
|
116
|
+
and `error`.
|
|
117
|
+
5. Let `igniter-application` configure AI providers through credentials without
|
|
118
|
+
provider-specific code in the app.
|
|
119
|
+
6. Keep Companion as the reference consumer and remove its local provider once
|
|
120
|
+
the package slice is green.
|
|
121
|
+
|
|
122
|
+
Acceptance:
|
|
123
|
+
|
|
124
|
+
- no network calls in default specs or example smoke
|
|
125
|
+
- live mode requires explicit environment opt-in
|
|
126
|
+
- provider errors return structured failure envelopes
|
|
127
|
+
- credentials remain redacted in profiles and manifests
|
|
128
|
+
- Companion still runs in fake/offline mode and can opt into live mode
|
|
129
|
+
|
|
130
|
+
## Second Implementation Slice
|
|
131
|
+
|
|
132
|
+
Status: minimal package skeleton and application-level agent DSL landed;
|
|
133
|
+
capsule transfer can now carry declared agents as capabilities; memory,
|
|
134
|
+
handoff, human gates, and contracts-first tool execution are still next.
|
|
135
|
+
|
|
136
|
+
1. Create `packages/igniter-agents` around minimal agent run state.
|
|
137
|
+
2. Treat tools as contracts-first callables.
|
|
138
|
+
3. Add a single-turn assistant runner over `igniter-ai`.
|
|
139
|
+
4. Add trace envelopes that can be rendered by application/web surfaces.
|
|
140
|
+
5. Add human gate state without requiring a web package.
|
|
141
|
+
|
|
142
|
+
Acceptance:
|
|
143
|
+
|
|
144
|
+
- agent runs are serializable and replayable
|
|
145
|
+
- tool calls expose typed inputs/results
|
|
146
|
+
- web can render run state without owning runtime logic
|
|
147
|
+
- applications can run a simple assistant without custom loop code
|
|
148
|
+
|
|
149
|
+
## Agent-Aware Capsule Transfer
|
|
150
|
+
|
|
151
|
+
Status: first deterministic slice landed.
|
|
152
|
+
|
|
153
|
+
Capsule transfer treats agents as declared application capabilities. Transfer
|
|
154
|
+
reports carry agent declarations through capsule reports, handoff manifests,
|
|
155
|
+
inventories, intake/apply plans, and receipts. Readiness can block an agent
|
|
156
|
+
capsule when the required AI provider is not declared.
|
|
157
|
+
|
|
158
|
+
Transfer does not run agents by default. Agents may review reports later, but
|
|
159
|
+
the source of truth remains the deterministic transfer pipeline.
|
|
160
|
+
|
|
161
|
+
## Legacy Filter
|
|
162
|
+
|
|
163
|
+
Legacy package layout is useful as vocabulary, not as code to restore blindly.
|
|
164
|
+
|
|
165
|
+
Accepted concepts:
|
|
166
|
+
|
|
167
|
+
- separate AI and agent packages
|
|
168
|
+
- provider abstraction
|
|
169
|
+
- tool registry
|
|
170
|
+
- skill/runtime-contract idea
|
|
171
|
+
- registry-backed agent adapter
|
|
172
|
+
|
|
173
|
+
Rejected for now:
|
|
174
|
+
|
|
175
|
+
- broad SDK umbrella
|
|
176
|
+
- server-first agent sessions
|
|
177
|
+
- package surfaces that require distributed runtime
|
|
178
|
+
- provider APIs leaking into application examples
|