flare-kernel 1.0.1__tar.gz → 1.0.2__tar.gz
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.
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/PKG-INFO +1 -1
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/pyproject.toml +1 -1
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/__init__.py +2 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/artifact_document.py +12 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_summary_document_sync.py +25 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_summary_events.py +9 -3
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/analysis_canvas.py +12 -0
- flare_kernel-1.0.2/src/flare_kernel/router/streaming/draft/artifact_upkeep_completion.py +119 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/context_patch_completion.py +2 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/post_completion.py +18 -16
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_edit/semantic_map_refresh.py +1 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_quality/__init__.py +5 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_quality/requirement_markdown.py +110 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_registry/__init__.py +16 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_registry/contracts.py +68 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_registry/resolver.py +196 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_upkeep/__init__.py +36 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_upkeep/analysis_projector.py +147 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_upkeep/contracts.py +207 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_upkeep/orchestrator.py +195 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_upkeep/planner.py +73 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_upkeep/policy.py +128 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_upkeep/projector.py +6 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_upkeep/requirement_projector.py +210 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_runtime.py +8 -1
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_artifact_document.py +22 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/orchestration/mode/intake_artifact_node_candidates.py +181 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_artifact_semantic_map.py +35 -2
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_artifact_views.py +4 -4
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_structured_document.py +5 -3
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_summary_artifact.py +2 -1
- flare_kernel-1.0.2/src/flare_kernel/runtime/orchestration/source_grounding_context.py +71 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/post_generation/orchestrator.py +9 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/turn_pipeline/__init__.py +11 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/turn_pipeline/contracts.py +94 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/turn_pipeline/delta_extraction.py +221 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel.egg-info/PKG-INFO +1 -1
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel.egg-info/SOURCES.txt +29 -0
- flare_kernel-1.0.2/tests/test_active_artifact_registry_resolver.py +124 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_analysis_canvas_payload.py +4 -2
- flare_kernel-1.0.2/tests/test_artifact_document_contract.py +27 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_artifact_edit_runtime.py +1 -1
- flare_kernel-1.0.2/tests/test_artifact_upkeep_orchestrator.py +60 -0
- flare_kernel-1.0.2/tests/test_artifact_upkeep_policy_planner.py +68 -0
- flare_kernel-1.0.2/tests/test_artifact_upkeep_projector.py +170 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_artifact_semantic_map.py +34 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_summary_artifact_framework.py +1 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_post_generation_runtime.py +50 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_requirement_intake_canvas_state.py +1 -1
- flare_kernel-1.0.2/tests/test_streaming_artifact_upkeep_completion.py +145 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_draft_intake_canvas_sync.py +48 -0
- flare_kernel-1.0.2/tests/test_turn_delta_extraction.py +137 -0
- flare_kernel-1.0.2/tests/test_turn_pipeline_artifact_upkeep_contracts.py +145 -0
- flare_kernel-1.0.2/tests/test_xiaocai_attachment_context_gate.py +44 -0
- flare_kernel-1.0.2/tests/test_xiaocai_output_template_quality.py +75 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_requirement_artifact_template_projection.py +50 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/README.md +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/setup.cfg +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/app.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/auth_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/kernel_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/list_event_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/mode.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/node_result.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/project_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/project_memory_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/run_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/session_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/source_image_understanding.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/contracts/update_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/list_event_broker.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/main.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/project_record_memory_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/project_session_summary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/project_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/auth.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/auth_guard.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/chat.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/errors.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/list_events.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/project.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/run.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/session.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/session_artifact_edit.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/session_list_events.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/api/update.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/analysis.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/checkpoint.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/composer_ui.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/context/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/context/analysis.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/context/inputs.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/context/session.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/context_activity.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/context_authority.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/contract_support.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/flow.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/mode_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/track_actions.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/workflow_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/analysis_artifact_overwrite_guard.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/analysis_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/analysis_result_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/artifact_action_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/boundary_intent.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/boundary_response_composer.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/capability_boundary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/degraded_fallback.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/guided.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_chooser_reply_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_commit_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_question_visibility.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_summary_content.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_summary_submission.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/output_quality.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/response_appendix.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/response_builder.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/response_quality_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/selection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/sidecar_reply_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/stream_collect.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/context/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/context/endpoint.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/context/sourcing_preview.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/fast_gate.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/hardcode_boundary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/amount_quantity.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/answer.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/authority/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/authority/checkpoint.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/authority/core.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/authority/hydration.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/authority/session.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/canonicalization.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/clarification.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/decision_rules.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/delivery_time.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/entry_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/extraction/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/extraction/core.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/extraction/extractors.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/extraction/merge.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/extraction/quantity_classifier.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_projection/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_projection/core.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_projection/entity.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_projection/payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_projection/source.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_scope.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/confirmed_updates.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/flags.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/followup.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/followup_work_item.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/open_fields.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/status.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/summary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/inputs.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/legacy_question.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/node_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/numeric.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/payload_updates.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/readiness.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/state_persistence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/core.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/guided_session.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/schema.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/stage_resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/workflow_checkpoint.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/classifier_utils.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/compat_aliases.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/escalation/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/escalation/override.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/escalation/pipeline.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/escalation/signal.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/routing.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/session_intent/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/session_intent/core.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/session_intent/fields.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/session_intent/small_talk.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_constants/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_constants/intake.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_constants/intent.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_constants/patch.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_endpoint_handlers/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_endpoint_handlers/health.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_endpoint_handlers/knowledge.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_endpoint_handlers/sourcing.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_endpoint_handlers/turn.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/canonical_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/context_io.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/dependency_resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/domain_pack_payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/flow.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/orchestration.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/payload_enrichment.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/runtime_prompt_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/turn_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/utils.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_flow_bindings/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_flow_bindings/intent_query.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_flow_bindings/mode.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_flow_bindings/session_intent.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/action.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/early_boundary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/fast_gate_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/intake.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/intent_query.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/intent_signal.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/session_binding.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_route/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_route/action.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_route/execution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_route/run.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_route/stream.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_stream_session.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/mode/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/mode/resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/mode/switch.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/next_actions_guard.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/action_readiness.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/actions.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/analysis_entry_decision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/builder.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/checkpoint_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/context_helpers.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/core.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/decision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/followup_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/result.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/runtime_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/decision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/entry.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/flow.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/followup.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/intent.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/node.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/unpack.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/trace/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/trace/core.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/trace/projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/trace/steps.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/patch_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/action.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/analysis_artifact_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/analysis_template_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/enrichment.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/turn_act_enrichment.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/artifact_edit_preflight.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/artifact_template.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/boundary_intent.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/candidate_fields.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/capability_boundary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/context_blocks.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/core.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/mainline_answer_frame.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/patch_preview.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/pre_response_plan.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/requirement_intake.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/response_strategy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/summary_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/track_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/workflow_guidance.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/request/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/request/identity.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/request/intent_resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/response_intent/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/response_intent/analysis_output.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/response_intent/contracts.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/response_intent/document_output.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/response_intent/resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/aliases.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/field_queries.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/query_builder.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/search.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/source_library.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/final_patch_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/finalize.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/interrupt.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/patch_preview_events.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/phase.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/phase_timing.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/post_completion_canvas_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/post_completion_summary_actions.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/post_generation_completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/prologue.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/reconciliation_completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/text_cadence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/turn_disposition_completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/event_emitter.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/intake/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/intake/phase.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/mode/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/mode/event_payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/mode/events.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/bootstrap.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/builder.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/builder_transport.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/draft_phase.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/phase_groups.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/phases.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/structured_reasoning_admission.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/structured_reasoning_existing.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/structured_reasoning_phase.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/structured_reasoning_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/structured_reasoning_refresh.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/retrieval/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/retrieval/phase.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/runtime/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/runtime/sourcing_observations.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/runtime/steps.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/structured_reasoning_gate.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/text_safety.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/turn_act.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/run_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_edit/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_edit/contracts.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_edit/orchestrator.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_edit/preflight.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_hud/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_hud/contracts.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_hud/orchestrator.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/auth/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/auth/bearer.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/auth/exchange.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/auth/policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/auth/scope_guard.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/analysis_application.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/artifact_application.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/document_application.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/intake_application.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/reasoning_application.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/session_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/track_application.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/provider_audit.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/provider_audit_export.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/replay_snapshot.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/replay_snapshot_io.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/replay_snapshot_validation.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/domain/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/domain/domain_pack_loader.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/domain/domain_pack_paths.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/domain/domain_pack_root.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/domain/profile_resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/execution/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/execution/agent_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/execution/skill_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/chat_memory.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/database.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/dependency_status.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/infrastructure.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_ingest.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_memory.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_postgres_search.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_qdrant_search.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_search.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_terms.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/logging.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_codec.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_review_sql.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_review_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_sql.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_version_sql.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_version_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/redis_client.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/run/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/run/repository.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/run/repository_memory.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/run/repository_sql.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/columns.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/repository.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/repository_memory.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/repository_sql.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/repository_sql_schema.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/document_understanding_codec.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_config.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_dashscope.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_prompt.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_text.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/library_dedupe.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/library_persistence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/library_records.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/ocr_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/schema.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/text_extractor.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/upload_storage.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/instance_profile_adapter.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/persistence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider_config.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider_gateway.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider_normalize.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider_public.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider_result.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/trace.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/vector_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation/decision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation/lexicon.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation/preprocessing.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation/signals.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation_classifier.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/apipro_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/apipro_streaming_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/completion_capture.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/completion_plan.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/config.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/contracts.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/dashscope_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/dashscope_streaming_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/failover_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/fallback_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/intent_model_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/llm_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/model_limits.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/model_router.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/native_streaming.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_error.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_failover.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_health.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_health_probe.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_health_snapshot.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_health_source.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_quota.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_retry.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_trace.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_usage.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/replay_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/stream_dispatch.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/streaming_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/system_prompt.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/action_prompt_drafts.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/active_artifact_context_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/admission_node.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/analysis_route_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/analysis_router_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/artifact_template_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_artifact_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_context_evidence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_application.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_response_deferral.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_rules.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_semantic.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_semantic_evidence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_semantic_frame.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/canvas/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/canvas/toolbar_actions.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/canvas_sourcing_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/canvas_version_history_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/category_resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/decision_engine.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/main_chain_sidecar_model_question.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/main_chain_sidecar_options.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/main_chain_sidecar_question.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/canvas_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/fallback.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/field_definitions.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_action_resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_actions.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_artifact_semantic_template.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_canvas.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_candidate_fields.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_content.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_events.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_presentation.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_composer_chooser_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_context_evidence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_coverage.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_document_seed.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_draft_payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_events.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_field_hydration.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_field_pack_suggestions.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_field_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_interaction_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_markdown_normalization.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_model_question_plan.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_model_question_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_next_actions_payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_payloads.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_progress_payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_interruption.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_interruption_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_lifecycle.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_plan_carrier.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_progress.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_queue.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_queue_canvas.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_summary_merge.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_summary_source.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_summary_validation.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_template_canvas_content.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_template_document.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/orchestration.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/question_selection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/reasoning.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/runtime_bookkeeping.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/shared.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/sourcing_actions.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/sourcing_events.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/sourcing_preview.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/sourcing_report.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/state_transition.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/module_prompt_registry.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/node_result_normalization.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/normalized_policy_view.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/observation.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/patch_preview_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/patch_preview_operations.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/patch_preview_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/patch_question_node.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/pre_response_plan_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/projection_patches.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/reasoning_loop.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/response_strategy_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/session_context_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sidecar_option_generation.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/additive_search.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/analysis_entry.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/candidate_explainability.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/canvas_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/context_round.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/event_payloads.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/instance_db_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/internal_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/mcp_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/observation_payloads.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/observations.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/parameter_draft.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/provider_config_loader.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/provider_health.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/result_window.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/search_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/source_priority.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/web_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/structured_prompt_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/structured_reasoning.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/structured_reasoning_normalization.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/structured_reasoning_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/track_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/turn_disposition.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/workflow_guidance_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/post_generation/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/post_generation/contracts.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/post_generation/normalizer.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/post_generation/validator.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/decision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/extraction.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/promotion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/recall.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/semantic_index.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/api.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/branching/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/branching/core.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/branching/policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/field_selection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/gap_detection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/hypothesis.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/planning.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/priority.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/builder.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/decision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/extraction.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/planner.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/structured.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/readiness/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/readiness/core.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/readiness/scoring.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/shared.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/understanding_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/visible_response.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/visible_summary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/context_revision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/contracts.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/events.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/executor.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/gates.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/impact.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/operation.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/orchestrator.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/planner.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/session/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/session/checkpoint_manager.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/session/intake_session_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/session/models.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/artifacts.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/chunk_storage.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/knowledge_storage.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/profile.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/storage.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_archive_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_archive_graph.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_archive_metrics.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_archive_summary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_creation.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_exchange_persistence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_lifecycle_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_list_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_message_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_message_records.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_record_assembly.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_record_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_replay.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/session_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/update/__init__.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/update/compatibility.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/update/planner.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/update/registry.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/update/versioning.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/user_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel.egg-info/dependency_links.txt +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel.egg-info/requires.txt +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel.egg-info/top_level.txt +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_action_payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_action_prompt_drafts.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_action_readiness.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_active_artifact_context_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_analysis_artifact_context_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_analysis_artifact_overwrite_guard.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_analysis_context_patch.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_analysis_e2e.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_analysis_entry_decision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_analysis_prompt_artifact_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_analysis_route_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_analysis_route_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_analysis_template_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_arch01_admission_node.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_arch01_fake_domain_decision_matrix.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_arch01_fake_domain_node_output_matrix.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_arch01_normalized_policy_consumption.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_artifact_edit_preflight_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_artifact_hud_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_artifact_template_prompt.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_artifact_template_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_auth_bearer_guard.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_auth_exchange.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_auth_scope_guard.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_basics.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_boundary_intent_semantic_composer.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_builder_split_modules.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_business_hardcode_guard.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_canonical_composer_chooser_authority.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_canonical_composer_ui_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_canonical_mode_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_canonical_state_context_analysis.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_canonical_state_context_inputs.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_canonical_state_context_session.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_canonical_state_flow.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_canonical_state_payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_canonical_state_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_canvas_sourcing_contract_meta.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_canvas_version_history_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_capability_boundary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_chat_api_alias.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_command_resolution_analysis_mode.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_compat_aliases.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_completion_degraded_source_fallback.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_completion_output_quality_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_completion_response_builder.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_completion_selection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_completion_selection_intent_routing.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_context_activity_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_context_authority_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_context_live_chain.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_context_usage_model_limit.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_context_write_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_dashscope_streaming_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_decision_engine.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_dependency_status.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_domain_pack_loader.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_endpoint_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_fast_gate.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_flare_v1_patch_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_generic_domain_pack_options.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_guided_completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_image_understanding_dashscope.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_infrastructure_helpers.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_infrastructure_knowledge.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_amount_quantity.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_answer.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_authority.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_authority_checkpoint.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_authority_hydration.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_authority_session.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_canonicalization.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_chooser_reply_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_clarification.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_commit_context_patch.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_composer_chooser_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_decision_rules.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_delivery_time.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_document_seed.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_domain_context_options.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_entry_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_extraction.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_extraction_extractors.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_extraction_merge.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_field_hydration_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_field_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_field_projection_entity.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_field_projection_payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_field_projection_source.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_field_scope.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_guided_confirmed_updates.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_guided_flags.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_guided_followup.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_guided_followup_work_item.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_guided_open_fields.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_guided_status.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_guided_summary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_inputs.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_markdown_normalization.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_model_question_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_node_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_numeric.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_payload_updates.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_question_extraction.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_question_interruption_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_question_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_readiness.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_reasoning_priority.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_state_persistence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_status.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_status_guided_session.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_status_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_status_schema.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_status_stage.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_summary_next_actions_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_visible_response.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intake_workflow_checkpoint.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intent_classifier_utils.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intent_escalation_classifier.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intent_escalation_override.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intent_escalation_pipeline.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intent_escalation_signal.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intent_fast_general_qa.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intent_resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intent_retrieval.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intent_routing.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_intent_type_compat_aliases.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_alias_delegation.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_endpoint_handlers.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_endpoint_handlers_sourcing.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_facade_context_io.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_facade_early_boundary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_facade_helpers.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_facade_sidecar_prompt_payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_facade_turn_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_intent_query_flow.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_mode_flow.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_route_execution_wrappers.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_route_normalized_result.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_kernel_session_intent_flow.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_list_events.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_apipro_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_provider_error_normalization.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_provider_failover.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_provider_fallback_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_provider_health_file.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_provider_health_probe.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_provider_health_snapshot.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_provider_live.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_provider_native_streaming.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_provider_quota.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_provider_streaming.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_llm_replay_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_main_chain_sidecar_options.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_main_chain_sidecar_queue.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_mode_orchestration_state_bridge.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_mode_reasoning.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_mode_resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_mode_switch.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_model_router.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_module_prompt_registry.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_new_flow_guard.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_node_result_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_node_result_normalization.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orc15_guided_completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orc15_turn_act_classification.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orc16_main_chain_hardcode_boundary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_checkpoint_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_followup_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_context_helpers.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_decision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_result.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_runtime_state.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_decision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_entry.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_followup.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_intent.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_node.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_unpack.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_trace.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_trace_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_orchestration_trace_steps.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_patch_contract.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_patch_preview_events.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_patch_preview_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_patch_question_node.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_payload_enrichment.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_pln03_question_chooser.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_pln11_question_option_extraction.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_post_generation_completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_pre_response_plan_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_project_api.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_project_memory_promotion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_project_memory_promotion_decision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_project_memory_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_project_memory_semantic_index.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_project_memory_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_project_memory_versions.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_projection_patches.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_prompt_template_main_chain_flow.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_prompting_analysis_instruction.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_prompting_requirement_intake.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_prompting_sidecar_question.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_prompting_user_template_instruction.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_provider_audit.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_provider_audit_export.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_reasoning_context_patch.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_reasoning_loop.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_reconciliation_analysis_patch_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_reconciliation_context_revision.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_reconciliation_orchestrator.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_release_isolation_gate.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_replay_snapshot.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_replay_snapshot_validation.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_request_identity.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_request_intent_resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_requirement_intake_branch_chooser.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_requirement_intake_canvas_progress.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_requirement_intake_canvas_visibility.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_requirement_intake_continuation.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_requirement_intake_flow.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_requirement_intake_model_question_plan.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_requirement_intake_question_queue.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_requirement_intake_summary_route.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_requirement_refresh_prompting.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_response_intent_resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_response_strategy_prompting_compact.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_response_strategy_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_retrieval_aliases.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_retrieval_field_queries.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_retrieval_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_retrieval_query_builder.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_retrieval_search.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_run_api.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_run_sql_repository.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_run_store.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_runtime_prompt_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_api.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_archive_summary.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_context_persistence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_domain_binding.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_intent.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_intent_fields.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_intent_small_talk.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_lifecycle_api.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_replay_api.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_sql_columns.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_sql_migration.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_sql_repository.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_session_workflow_projection_persistence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sidecar_option_generation.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sidecar_reply_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_source_ingestion_profile.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_source_ingestion_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_source_ingestion_ssot_acceptance.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_source_library.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_source_library_dedupe.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_source_library_persistence_scope.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_source_text_extractor.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_additive_search.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_candidate_explainability.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_context_reuse.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_e2e.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_instance_profile_adapter.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_parameter_draft.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_preview_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_provider.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_provider_adapters.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_provider_config_loader.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_provider_health.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_runtime_additive_search.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_search_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_sourcing_source_priority.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_stream_collect_completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_draft_artifact_start.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_draft_budget_reconciliation_completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_draft_completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_draft_finalize.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_draft_phase.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_draft_post_completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_draft_prologue.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_draft_reconciliation_completion.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_event_emitter.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_intake_phase.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_mode_event_payload.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_mode_events.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_reasoning_context_patch.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_response_bootstrap.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_response_phases.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_response_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_response_transport.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_retrieval_phase.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_runtime_steps.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_sidecar_reply_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_structured_reasoning_gate.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_structured_reasoning_projection.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_streaming_text_cadence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_structured_prompt_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_structured_reasoning.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_structured_reasoning_gate.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_text_safety.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_track_prompt_context.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_track_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_turn_disposition_admission.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_update_plane.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_v1_mainline_regressions.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_workflow_guidance_runtime.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_workflow_projection_precedence.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_active_artifact_contextual_gate.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_analysis_report_intent_first.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_artifact_followup_gate.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_boundary_guidance.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_boundary_intent_gate.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_boundary_intent_gate_semantic.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_boundary_score_gate.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_category_resolution.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_domain_pack.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_reconciliation_confirmation_policy.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_requirement_analysis.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_requirement_mode_canvas.py +0 -0
- {flare_kernel-1.0.1 → flare_kernel-1.0.2}/tests/test_xiaocai_sidecar_dynamic_options.py +0 -0
|
@@ -23,6 +23,7 @@ from flare_kernel.contracts.artifact_document import (
|
|
|
23
23
|
ArtifactDocument,
|
|
24
24
|
ArtifactFieldSuggestion,
|
|
25
25
|
ArtifactSection,
|
|
26
|
+
ArtifactUpkeepStatus,
|
|
26
27
|
FieldPackSuggestion,
|
|
27
28
|
ProcurementPackage,
|
|
28
29
|
)
|
|
@@ -117,6 +118,7 @@ __all__ = [
|
|
|
117
118
|
"ArtifactDocument",
|
|
118
119
|
"ArtifactFieldSuggestion",
|
|
119
120
|
"ArtifactSection",
|
|
121
|
+
"ArtifactUpkeepStatus",
|
|
120
122
|
"FieldPackSuggestion",
|
|
121
123
|
"ProcurementPackage",
|
|
122
124
|
"AnalysisRouteDecision",
|
|
@@ -43,6 +43,16 @@ class FieldPackSuggestion(BaseModel):
|
|
|
43
43
|
metadata: dict[str, Any] = Field(default_factory=dict)
|
|
44
44
|
|
|
45
45
|
|
|
46
|
+
class ArtifactUpkeepStatus(BaseModel):
|
|
47
|
+
state: str = ""
|
|
48
|
+
reason: str = ""
|
|
49
|
+
action: dict[str, Any] = Field(default_factory=dict)
|
|
50
|
+
source_revision_id: str = ""
|
|
51
|
+
target_revision_id: str = ""
|
|
52
|
+
updated_at: str = ""
|
|
53
|
+
metadata: dict[str, Any] = Field(default_factory=dict)
|
|
54
|
+
|
|
55
|
+
|
|
46
56
|
class ProcurementPackage(BaseModel):
|
|
47
57
|
package_id: str
|
|
48
58
|
title: str = ""
|
|
@@ -73,6 +83,7 @@ class ArtifactDocument(BaseModel):
|
|
|
73
83
|
procurement_packages: list[ProcurementPackage] = Field(default_factory=list)
|
|
74
84
|
field_pack_suggestions: list[FieldPackSuggestion] = Field(default_factory=list)
|
|
75
85
|
semantic_map: dict[str, Any] = Field(default_factory=dict)
|
|
86
|
+
upkeep_status: ArtifactUpkeepStatus | None = None
|
|
76
87
|
actions: list[dict[str, Any]] = Field(default_factory=list)
|
|
77
88
|
metadata: dict[str, Any] = Field(default_factory=dict)
|
|
78
89
|
|
|
@@ -81,6 +92,7 @@ __all__ = [
|
|
|
81
92
|
"ArtifactDocument",
|
|
82
93
|
"ArtifactFieldSuggestion",
|
|
83
94
|
"ArtifactSection",
|
|
95
|
+
"ArtifactUpkeepStatus",
|
|
84
96
|
"FieldPackSuggestion",
|
|
85
97
|
"ProcurementPackage",
|
|
86
98
|
]
|
|
@@ -86,6 +86,25 @@ def _has_active_requirement_canvas(runtime_snapshot: dict[str, Any]) -> bool:
|
|
|
86
86
|
return bool(_latest_requirement_canvas_payload(runtime_snapshot))
|
|
87
87
|
|
|
88
88
|
|
|
89
|
+
def _has_current_question_answer(runtime_payload: dict[str, Any]) -> bool:
|
|
90
|
+
if _coerce_mapping(runtime_payload.get("question_answer")):
|
|
91
|
+
return True
|
|
92
|
+
turn_act = _coerce_mapping(runtime_payload.get("turn_act"))
|
|
93
|
+
return _clean_text(turn_act.get("turn_kind")) == "field_answer"
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def _is_template_only_canvas(payload: dict[str, Any]) -> bool:
|
|
97
|
+
canvas_state = _coerce_mapping(payload.get("canvas_state"))
|
|
98
|
+
artifact_document = _coerce_mapping(payload.get("artifact_document")) or _coerce_mapping(canvas_state.get("artifact_document"))
|
|
99
|
+
latest_revision = _coerce_mapping(artifact_document.get("latest_revision"))
|
|
100
|
+
content_framework = _coerce_mapping(payload.get("content_framework"))
|
|
101
|
+
signals = _coerce_mapping(content_framework.get("signals"))
|
|
102
|
+
return (
|
|
103
|
+
signals.get("has_model_content") is False
|
|
104
|
+
or _clean_text(latest_revision.get("diff")) == "domain_template_projection"
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
|
|
89
108
|
def _with_summary_context(action: dict[str, Any], summary_context: dict[str, Any]) -> dict[str, Any]:
|
|
90
109
|
resolved = dict(action)
|
|
91
110
|
if not summary_context or not _should_attach_summary_context(resolved):
|
|
@@ -164,6 +183,7 @@ def should_sync_document_output_to_requirement_canvas(
|
|
|
164
183
|
completion_provider: str,
|
|
165
184
|
completion_model: str,
|
|
166
185
|
completion_status: str,
|
|
186
|
+
command: str = "",
|
|
167
187
|
) -> bool:
|
|
168
188
|
"""Return whether a model-authored document output should update Canvas."""
|
|
169
189
|
|
|
@@ -175,6 +195,11 @@ def should_sync_document_output_to_requirement_canvas(
|
|
|
175
195
|
if not _has_active_requirement_canvas(runtime_snapshot):
|
|
176
196
|
return False
|
|
177
197
|
payload = _coerce_mapping(runtime_snapshot.get("payload"))
|
|
198
|
+
has_current_question = bool(_coerce_mapping(orchestration_status.get("current_question")))
|
|
199
|
+
if _clean_text(command) == "send_message" and has_current_question and not _has_current_question_answer(payload):
|
|
200
|
+
return False
|
|
201
|
+
if _is_template_only_canvas(_latest_requirement_canvas_payload(runtime_snapshot)):
|
|
202
|
+
return False
|
|
178
203
|
response_intent = _coerce_mapping(payload.get("response_intent_result"))
|
|
179
204
|
post_generation = _post_generation_result(
|
|
180
205
|
runtime_snapshot=runtime_snapshot,
|
|
@@ -37,6 +37,13 @@ def _coerce_list(value: Any) -> list[Any]:
|
|
|
37
37
|
return value if isinstance(value, list) else []
|
|
38
38
|
|
|
39
39
|
|
|
40
|
+
def _has_current_question_answer(runtime_payload: dict[str, Any]) -> bool:
|
|
41
|
+
if _coerce_mapping(runtime_payload.get("question_answer")):
|
|
42
|
+
return True
|
|
43
|
+
turn_act = _coerce_mapping(runtime_payload.get("turn_act"))
|
|
44
|
+
return _clean_text(turn_act.get("turn_kind")) == "field_answer"
|
|
45
|
+
|
|
46
|
+
|
|
40
47
|
def _latest_requirement_canvas_payload(runtime_snapshot: dict[str, Any]) -> dict[str, Any]:
|
|
41
48
|
for event in reversed(_coerce_list(runtime_snapshot.get("mode_events"))):
|
|
42
49
|
payload = _coerce_mapping(_coerce_mapping(event).get("payload"))
|
|
@@ -233,9 +240,8 @@ def should_sync_requirement_summary_from_model(
|
|
|
233
240
|
runtime_payload = _coerce_mapping(runtime_snapshot.get("payload"))
|
|
234
241
|
if is_requirement_summary_submission_payload(runtime_payload):
|
|
235
242
|
return False
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
):
|
|
243
|
+
has_current_question = bool(_coerce_mapping(_coerce_mapping(orchestration_status).get("current_question")))
|
|
244
|
+
if resolved_command == "send_message" and has_current_question and not _has_current_question_answer(runtime_payload):
|
|
239
245
|
return False
|
|
240
246
|
return bool(_latest_requirement_canvas_payload(runtime_snapshot) or _has_active_requirement_artifact(runtime_snapshot))
|
|
241
247
|
|
{flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/analysis_canvas.py
RENAMED
|
@@ -206,6 +206,10 @@ def _resolve_sourcing_trace(payload: dict[str, Any], session_context: dict[str,
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
|
|
209
|
+
def _analysis_artifact_profile(analysis_type: Any) -> str:
|
|
210
|
+
return "requirement_analysis" if str(analysis_type or "requirement") == "requirement" else "sourcing_analysis"
|
|
211
|
+
|
|
212
|
+
|
|
209
213
|
def _resolve_analysis_context(
|
|
210
214
|
*,
|
|
211
215
|
analysis_route: dict[str, Any] | None,
|
|
@@ -314,8 +318,16 @@ def build_canvas_analysis_payload(
|
|
|
314
318
|
export_markdown=True,
|
|
315
319
|
fullscreen=True,
|
|
316
320
|
)
|
|
321
|
+
document = _coerce_context_dict(payload.get("document"))
|
|
317
322
|
payload = {
|
|
318
323
|
**payload,
|
|
324
|
+
"document": {
|
|
325
|
+
**document,
|
|
326
|
+
"metadata": {
|
|
327
|
+
**_coerce_context_dict(document.get("metadata")),
|
|
328
|
+
"artifact_profile": _analysis_artifact_profile(context.get("analysis_type")),
|
|
329
|
+
},
|
|
330
|
+
},
|
|
319
331
|
"toolbar_actions": toolbar_actions,
|
|
320
332
|
"workspace_capabilities": build_canvas_workspace_capabilities(toolbar_actions=toolbar_actions),
|
|
321
333
|
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"""Streaming adapter for active artifact upkeep completion."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from flare_kernel.router.streaming.event_emitter import StreamingEventEmitter
|
|
8
|
+
from flare_kernel.runtime.artifact_upkeep.orchestrator import run_artifact_upkeep
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def _mapping(value: Any) -> dict[str, Any]:
|
|
12
|
+
return value if isinstance(value, dict) else {}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _sequence(value: Any) -> list[Any]:
|
|
16
|
+
return value if isinstance(value, list) else []
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def _text(value: Any) -> str:
|
|
20
|
+
return " ".join(str(value or "").split()).strip()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _merge_context_patch(existing: Any, incoming: Any) -> dict[str, Any]:
|
|
24
|
+
merged = dict(_mapping(existing))
|
|
25
|
+
for key, value in _mapping(incoming).items():
|
|
26
|
+
if isinstance(value, list):
|
|
27
|
+
current = merged.get(key) if isinstance(merged.get(key), list) else []
|
|
28
|
+
merged[key] = [*current, *value]
|
|
29
|
+
elif isinstance(value, dict) and isinstance(merged.get(key), dict):
|
|
30
|
+
merged[key] = {**merged[key], **value}
|
|
31
|
+
else:
|
|
32
|
+
merged[key] = value
|
|
33
|
+
return merged
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _requirement_context_row(context_patch: dict[str, Any]) -> dict[str, Any]:
|
|
37
|
+
for row in _sequence(context_patch.get("artifact_context")):
|
|
38
|
+
item = _mapping(row)
|
|
39
|
+
if _text(item.get("active_tab")) == "requirement":
|
|
40
|
+
return item
|
|
41
|
+
return {}
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _analysis_payload(revision_patches: list[dict[str, Any]]) -> dict[str, Any]:
|
|
45
|
+
for patch in revision_patches:
|
|
46
|
+
item = _mapping(patch)
|
|
47
|
+
if _text(item.get("active_tab")) == "analysis":
|
|
48
|
+
return _mapping(item.get("projection_payload"))
|
|
49
|
+
return {}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def attach_artifact_upkeep_completion(
|
|
53
|
+
*,
|
|
54
|
+
runtime_snapshot: dict[str, Any],
|
|
55
|
+
orchestration_status: dict[str, Any],
|
|
56
|
+
raw_message: str,
|
|
57
|
+
assistant_message: str,
|
|
58
|
+
source_turn_id: str,
|
|
59
|
+
visible_reply_policy: dict[str, Any],
|
|
60
|
+
requirement_mode_key: str,
|
|
61
|
+
) -> dict[str, Any]:
|
|
62
|
+
"""Attach upkeep result to backend-owned runtime projections."""
|
|
63
|
+
|
|
64
|
+
result = run_artifact_upkeep(
|
|
65
|
+
runtime_snapshot=runtime_snapshot,
|
|
66
|
+
user_message=raw_message,
|
|
67
|
+
assistant_message=assistant_message,
|
|
68
|
+
source_turn_id=source_turn_id,
|
|
69
|
+
visible_reply_policy=visible_reply_policy,
|
|
70
|
+
requirement_mode_key=requirement_mode_key,
|
|
71
|
+
)
|
|
72
|
+
if result.get("applied") is not True:
|
|
73
|
+
return result
|
|
74
|
+
|
|
75
|
+
runtime_payload = _mapping(runtime_snapshot.get("payload"))
|
|
76
|
+
context_patch = _mapping(result.get("context_patch"))
|
|
77
|
+
analysis_payload = _analysis_payload(_sequence(result.get("revision_patches")))
|
|
78
|
+
requirement_context = _requirement_context_row(context_patch)
|
|
79
|
+
if requirement_context:
|
|
80
|
+
runtime_payload = {**runtime_payload, "active_artifact_context": requirement_context}
|
|
81
|
+
if analysis_payload:
|
|
82
|
+
orchestration_status["canvas_analysis_payload"] = analysis_payload
|
|
83
|
+
runtime_payload = {
|
|
84
|
+
**runtime_payload,
|
|
85
|
+
"canvas_analysis_payload": analysis_payload,
|
|
86
|
+
"analysis_payload": analysis_payload,
|
|
87
|
+
}
|
|
88
|
+
runtime_payload = {
|
|
89
|
+
**runtime_payload,
|
|
90
|
+
"artifact_upkeep_result": result,
|
|
91
|
+
"context_patch": _merge_context_patch(runtime_payload.get("context_patch"), context_patch),
|
|
92
|
+
}
|
|
93
|
+
runtime_snapshot["payload"] = runtime_payload
|
|
94
|
+
orchestration_status["artifact_upkeep_result"] = result
|
|
95
|
+
orchestration_status["artifact_upkeep_plan"] = result.get("update_plan")
|
|
96
|
+
return result
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def build_artifact_upkeep_events(
|
|
100
|
+
*,
|
|
101
|
+
result: dict[str, Any],
|
|
102
|
+
emitter: StreamingEventEmitter,
|
|
103
|
+
) -> list[str]:
|
|
104
|
+
"""Build canvas/analysis stream events from upkeep revision patches."""
|
|
105
|
+
|
|
106
|
+
events: list[str] = []
|
|
107
|
+
for patch in _sequence(_mapping(result).get("revision_patches")):
|
|
108
|
+
payload = _mapping(_mapping(patch).get("projection_payload"))
|
|
109
|
+
if not payload:
|
|
110
|
+
continue
|
|
111
|
+
active_tab = _text(_mapping(patch).get("active_tab"))
|
|
112
|
+
if active_tab == "requirement":
|
|
113
|
+
events.append(emitter.emit_event("canvas_state", payload))
|
|
114
|
+
elif active_tab == "analysis":
|
|
115
|
+
events.append(emitter.emit_event("analysis_payload", payload))
|
|
116
|
+
return events
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
__all__ = ["attach_artifact_upkeep_completion", "build_artifact_upkeep_events"]
|
|
@@ -142,6 +142,7 @@ def resolve_context_patch(
|
|
|
142
142
|
orchestration_status: dict[str, Any],
|
|
143
143
|
command: str,
|
|
144
144
|
artifact_write_allowed: bool = True,
|
|
145
|
+
artifact_upkeep_context_patch: dict[str, Any] | None = None,
|
|
145
146
|
) -> dict[str, Any]:
|
|
146
147
|
payload = runtime_snapshot.get("payload") if isinstance(runtime_snapshot.get("payload"), dict) else {}
|
|
147
148
|
context_patch = payload.get("context_patch") if isinstance(payload.get("context_patch"), dict) else {}
|
|
@@ -176,6 +177,7 @@ def resolve_context_patch(
|
|
|
176
177
|
context_patch,
|
|
177
178
|
artifact_patch,
|
|
178
179
|
analysis_patch,
|
|
180
|
+
artifact_upkeep_context_patch or {},
|
|
179
181
|
)
|
|
180
182
|
|
|
181
183
|
|
{flare_kernel-1.0.1 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/post_completion.py
RENAMED
|
@@ -21,36 +21,25 @@ from flare_kernel.router.completion.intake_summary_events import (
|
|
|
21
21
|
from flare_kernel.router.completion.intake_summary_document_sync import (
|
|
22
22
|
should_sync_document_output_to_requirement_canvas,
|
|
23
23
|
)
|
|
24
|
+
from flare_kernel.router.streaming.draft.artifact_upkeep_completion import attach_artifact_upkeep_completion, build_artifact_upkeep_events
|
|
24
25
|
from flare_kernel.router.streaming.draft.completion import DraftCompletionArtifacts
|
|
25
26
|
from flare_kernel.router.streaming.draft.finalize import (
|
|
26
27
|
apply_draft_content_policy,
|
|
27
28
|
iter_canonical_finalize_events,
|
|
28
29
|
)
|
|
29
|
-
from flare_kernel.router.streaming.draft.context_patch_completion import
|
|
30
|
-
attach_canvas_summary_context_patch,
|
|
31
|
-
resolve_context_patch,
|
|
32
|
-
)
|
|
30
|
+
from flare_kernel.router.streaming.draft.context_patch_completion import attach_canvas_summary_context_patch, resolve_context_patch
|
|
33
31
|
from flare_kernel.router.streaming.draft.patch_preview_events import attach_patch_preview_status
|
|
34
32
|
from flare_kernel.router.streaming.draft.post_generation_completion import (
|
|
35
33
|
attach_post_generation_completion,
|
|
36
34
|
post_generated_artifact_markdown,
|
|
37
35
|
post_generated_timeline_text,
|
|
38
36
|
)
|
|
39
|
-
from flare_kernel.router.streaming.draft.post_completion_canvas_policy import
|
|
40
|
-
has_structured_reasoning_canvas_artifact,
|
|
41
|
-
should_project_requirement_canvas,
|
|
42
|
-
)
|
|
37
|
+
from flare_kernel.router.streaming.draft.post_completion_canvas_policy import has_structured_reasoning_canvas_artifact, should_project_requirement_canvas
|
|
43
38
|
from flare_kernel.router.streaming.draft.reconciliation_completion import (
|
|
44
39
|
attach_reconciliation_completion,
|
|
45
40
|
)
|
|
46
|
-
from flare_kernel.router.streaming.draft.post_completion_summary_actions import
|
|
47
|
-
|
|
48
|
-
is_requirement_summary_submission_turn,
|
|
49
|
-
)
|
|
50
|
-
from flare_kernel.router.streaming.draft.turn_disposition_completion import (
|
|
51
|
-
artifact_write_allowed,
|
|
52
|
-
attach_turn_disposition,
|
|
53
|
-
)
|
|
41
|
+
from flare_kernel.router.streaming.draft.post_completion_summary_actions import consume_confirm_send_actions, is_requirement_summary_submission_turn
|
|
42
|
+
from flare_kernel.router.streaming.draft.turn_disposition_completion import artifact_write_allowed, attach_turn_disposition
|
|
54
43
|
from flare_kernel.router.streaming.event_emitter import StreamingEventEmitter
|
|
55
44
|
from flare_kernel.runtime.orchestration.mode.intake_summary_artifact import (
|
|
56
45
|
build_model_authored_requirement_summary_event,
|
|
@@ -183,6 +172,15 @@ def build_draft_post_completion_events(
|
|
|
183
172
|
content_text=artifact_content_text,
|
|
184
173
|
runtime_snapshot=runtime_snapshot,
|
|
185
174
|
)
|
|
175
|
+
artifact_upkeep_result = attach_artifact_upkeep_completion(
|
|
176
|
+
runtime_snapshot=runtime_snapshot,
|
|
177
|
+
orchestration_status=orchestration_status,
|
|
178
|
+
raw_message=raw_message,
|
|
179
|
+
assistant_message=visible_content_text,
|
|
180
|
+
source_turn_id=request_id,
|
|
181
|
+
visible_reply_policy=turn_disposition,
|
|
182
|
+
requirement_mode_key=resolved_mode,
|
|
183
|
+
)
|
|
186
184
|
sync_session_intent_stage_fn(
|
|
187
185
|
orchestration_status=orchestration_status,
|
|
188
186
|
signal=escalation_signal,
|
|
@@ -240,12 +238,14 @@ def build_draft_post_completion_events(
|
|
|
240
238
|
completion_provider=artifacts.completion.provider,
|
|
241
239
|
completion_model=artifacts.completion.model,
|
|
242
240
|
completion_status=artifacts.completion.status,
|
|
241
|
+
command=effective_command,
|
|
243
242
|
)
|
|
244
243
|
model_summary_sync = document_output_sync or should_sync_requirement_summary_from_model(
|
|
245
244
|
runtime_snapshot=runtime_snapshot,
|
|
246
245
|
content_text=artifacts.content_text,
|
|
247
246
|
completion_status=artifacts.completion.status,
|
|
248
247
|
command=effective_command,
|
|
248
|
+
orchestration_status=orchestration_status,
|
|
249
249
|
)
|
|
250
250
|
memory_runtime_event = {"trace_id": trace_id, **runtime_snapshot["memory_runtime"], **artifacts.memory_record}
|
|
251
251
|
events.append(emitter.emit_event("memory_runtime", memory_runtime_event))
|
|
@@ -255,6 +255,7 @@ def build_draft_post_completion_events(
|
|
|
255
255
|
events.append(emitter.emit_event("canvas_state", reconciliation_result["canvas_state"]))
|
|
256
256
|
if isinstance(reconciliation_result.get("analysis_payload"), dict):
|
|
257
257
|
events.append(emitter.emit_event("analysis_payload", reconciliation_result["analysis_payload"]))
|
|
258
|
+
events.extend(build_artifact_upkeep_events(result=artifact_upkeep_result, emitter=emitter))
|
|
258
259
|
if summary_submission_turn and allow_artifact_write:
|
|
259
260
|
summary_event = build_model_authored_requirement_summary_event(
|
|
260
261
|
runtime_snapshot=runtime_snapshot,
|
|
@@ -340,6 +341,7 @@ def build_draft_post_completion_events(
|
|
|
340
341
|
orchestration_status=orchestration_status,
|
|
341
342
|
command=effective_command,
|
|
342
343
|
artifact_write_allowed=allow_artifact_write,
|
|
344
|
+
artifact_upkeep_context_patch=artifact_upkeep_result.get("context_patch") if not allow_artifact_write else {},
|
|
343
345
|
),
|
|
344
346
|
emitter=emitter,
|
|
345
347
|
)
|
|
@@ -41,6 +41,7 @@ def refresh_requirement_semantic_map(
|
|
|
41
41
|
canvas_state=canvas_state,
|
|
42
42
|
content=_refresh_content(document, revision),
|
|
43
43
|
semantic_template=semantic_template,
|
|
44
|
+
knowledge_sources=sequence(existing.get("node_candidates")),
|
|
44
45
|
)
|
|
45
46
|
if not semantic_map:
|
|
46
47
|
return existing
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"""Requirement markdown quality guardrails.
|
|
2
|
+
|
|
3
|
+
Pure text cleanup only. This module does not infer fields, call providers, or
|
|
4
|
+
own workflow decisions.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import re
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
_LIST_ITEM_RE = re.compile(r"^\s*(?:[-*]\s+|\d+[.、)]\s+)")
|
|
13
|
+
_BLOCKED_HEADING_PATTERNS = (
|
|
14
|
+
"待你确认",
|
|
15
|
+
"需要你确认",
|
|
16
|
+
"待确认的关键点",
|
|
17
|
+
"需要确认的信息",
|
|
18
|
+
"建议你先确认",
|
|
19
|
+
"建议先确认",
|
|
20
|
+
"请确认",
|
|
21
|
+
"关键问题",
|
|
22
|
+
)
|
|
23
|
+
_BLOCKED_PARAGRAPH_PATTERNS = (
|
|
24
|
+
"为了把这份草案进一步",
|
|
25
|
+
"为了把这个草案进一步",
|
|
26
|
+
"建议你先确认",
|
|
27
|
+
"建议先确认",
|
|
28
|
+
"请先确认",
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def _text(value: Any) -> str:
|
|
33
|
+
return str(value or "").replace("\r\n", "\n").strip()
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _heading_level(line: str) -> int:
|
|
37
|
+
stripped = line.strip()
|
|
38
|
+
if not stripped.startswith("#"):
|
|
39
|
+
return 0
|
|
40
|
+
marker = stripped.split(" ", 1)[0]
|
|
41
|
+
return len(marker) if set(marker) == {"#"} else 0
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _heading_text(line: str) -> str:
|
|
45
|
+
return re.sub(r"^#+\s*", "", line.strip()).strip()
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def _is_blocked_heading(line: str) -> bool:
|
|
49
|
+
heading = _heading_text(line)
|
|
50
|
+
return bool(heading and any(pattern in heading for pattern in _BLOCKED_HEADING_PATTERNS))
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def _is_blocked_paragraph(line: str) -> bool:
|
|
54
|
+
stripped = line.strip()
|
|
55
|
+
return any(pattern in stripped for pattern in _BLOCKED_PARAGRAPH_PATTERNS)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def _is_plain_blocked_heading(line: str) -> bool:
|
|
59
|
+
stripped = line.strip()
|
|
60
|
+
if not stripped or len(stripped) > 48 or _LIST_ITEM_RE.match(stripped) or "|" in stripped:
|
|
61
|
+
return False
|
|
62
|
+
return any(pattern in stripped for pattern in _BLOCKED_HEADING_PATTERNS)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def _trim_blank_edges(lines: list[str]) -> list[str]:
|
|
66
|
+
start = 0
|
|
67
|
+
end = len(lines)
|
|
68
|
+
while start < end and not lines[start].strip():
|
|
69
|
+
start += 1
|
|
70
|
+
while end > start and not lines[end - 1].strip():
|
|
71
|
+
end -= 1
|
|
72
|
+
return lines[start:end]
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def sanitize_requirement_markdown(content: str) -> str:
|
|
76
|
+
"""Remove conversational confirmation/question sections from artifact markdown."""
|
|
77
|
+
|
|
78
|
+
source = _text(content)
|
|
79
|
+
if not source:
|
|
80
|
+
return ""
|
|
81
|
+
result: list[str] = []
|
|
82
|
+
skip_level = 0
|
|
83
|
+
skip_plain_block = False
|
|
84
|
+
skip_list_after_paragraph = False
|
|
85
|
+
for line in source.split("\n"):
|
|
86
|
+
level = _heading_level(line)
|
|
87
|
+
if skip_level and level and level <= skip_level:
|
|
88
|
+
skip_level = 0
|
|
89
|
+
if skip_plain_block and level:
|
|
90
|
+
skip_plain_block = False
|
|
91
|
+
if skip_list_after_paragraph and level:
|
|
92
|
+
skip_list_after_paragraph = False
|
|
93
|
+
if skip_list_after_paragraph and (not line.strip() or _LIST_ITEM_RE.match(line.strip())):
|
|
94
|
+
continue
|
|
95
|
+
skip_list_after_paragraph = False
|
|
96
|
+
if skip_level:
|
|
97
|
+
continue
|
|
98
|
+
if skip_plain_block:
|
|
99
|
+
continue
|
|
100
|
+
if level and _is_blocked_heading(line):
|
|
101
|
+
skip_level = level
|
|
102
|
+
continue
|
|
103
|
+
if not level and _is_plain_blocked_heading(line):
|
|
104
|
+
skip_plain_block = True
|
|
105
|
+
continue
|
|
106
|
+
if not level and _is_blocked_paragraph(line):
|
|
107
|
+
skip_list_after_paragraph = True
|
|
108
|
+
continue
|
|
109
|
+
result.append(line.rstrip())
|
|
110
|
+
return "\n".join(_trim_blank_edges(result)).strip()
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""Active artifact registry runtime package."""
|
|
2
|
+
|
|
3
|
+
from .contracts import (
|
|
4
|
+
ACTIVE_ARTIFACT_SNAPSHOT_SCHEMA_VERSION,
|
|
5
|
+
active_artifact_snapshot,
|
|
6
|
+
has_active_artifact_identity,
|
|
7
|
+
)
|
|
8
|
+
from .resolver import resolve_active_artifact_snapshot, resolve_active_artifact_snapshots
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
"ACTIVE_ARTIFACT_SNAPSHOT_SCHEMA_VERSION",
|
|
12
|
+
"active_artifact_snapshot",
|
|
13
|
+
"has_active_artifact_identity",
|
|
14
|
+
"resolve_active_artifact_snapshot",
|
|
15
|
+
"resolve_active_artifact_snapshots",
|
|
16
|
+
]
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"""Active artifact registry contract helpers.
|
|
2
|
+
|
|
3
|
+
Contract-only first slice. Resolver behavior will be added separately.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from typing import Any
|
|
9
|
+
|
|
10
|
+
ACTIVE_ARTIFACT_SNAPSHOT_SCHEMA_VERSION = "active.artifact.snapshot.v1"
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def mapping(value: Any) -> dict[str, Any]:
|
|
14
|
+
return value if isinstance(value, dict) else {}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def sequence(value: Any) -> list[Any]:
|
|
18
|
+
return value if isinstance(value, list) else []
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def text(value: Any) -> str:
|
|
22
|
+
return " ".join(str(value or "").split()).strip()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def compact(payload: dict[str, Any]) -> dict[str, Any]:
|
|
26
|
+
return {key: value for key, value in payload.items() if value not in ("", None, [], {})}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def active_artifact_snapshot(
|
|
30
|
+
*,
|
|
31
|
+
artifact_id: str,
|
|
32
|
+
artifact_type: str,
|
|
33
|
+
active_tab: str,
|
|
34
|
+
revision_id: str = "",
|
|
35
|
+
content: str = "",
|
|
36
|
+
content_format: str = "markdown",
|
|
37
|
+
source: str = "",
|
|
38
|
+
dependencies: list[Any] | None = None,
|
|
39
|
+
) -> dict[str, Any]:
|
|
40
|
+
"""Build a backend-resolved active artifact snapshot contract."""
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
"schema_version": ACTIVE_ARTIFACT_SNAPSHOT_SCHEMA_VERSION,
|
|
44
|
+
"artifact_id": text(artifact_id),
|
|
45
|
+
"artifact_type": text(artifact_type),
|
|
46
|
+
"active_tab": text(active_tab),
|
|
47
|
+
"revision_id": text(revision_id),
|
|
48
|
+
"content": str(content or "").strip(),
|
|
49
|
+
"content_format": text(content_format) or "markdown",
|
|
50
|
+
"source": text(source),
|
|
51
|
+
"dependencies": [dict(item) if isinstance(item, dict) else text(item) for item in sequence(dependencies)],
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def has_active_artifact_identity(snapshot: dict[str, Any] | None) -> bool:
|
|
56
|
+
payload = mapping(snapshot)
|
|
57
|
+
return bool(text(payload.get("artifact_id")) and text(payload.get("artifact_type")))
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
__all__ = [
|
|
61
|
+
"ACTIVE_ARTIFACT_SNAPSHOT_SCHEMA_VERSION",
|
|
62
|
+
"active_artifact_snapshot",
|
|
63
|
+
"compact",
|
|
64
|
+
"has_active_artifact_identity",
|
|
65
|
+
"mapping",
|
|
66
|
+
"sequence",
|
|
67
|
+
"text",
|
|
68
|
+
]
|