flare-kernel 1.0.0__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.0 → flare_kernel-1.0.2}/PKG-INFO +1 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/pyproject.toml +1 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/__init__.py +8 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/artifact_document.py +13 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/context.py +75 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/kernel_contract.py +4 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/session_contract.py +2 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/session.py +1 -0
- flare_kernel-1.0.2/src/flare_kernel/router/canonical/context_activity.py +132 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/payload.py +2 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/analysis_policy.py +22 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_summary_document_sync.py +76 -8
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_summary_events.py +12 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/fast_gate.py +6 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_constants/intent.py +3 -2
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_constants/patch.py +4 -2
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_endpoint_handlers/turn.py +21 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/domain_pack_payload.py +2 -2
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/flow.py +1 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/actions.py +36 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/context_helpers.py +8 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/analysis_canvas.py +12 -0
- flare_kernel-1.0.2/src/flare_kernel/router/response_intent/analysis_output.py +46 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/response_intent/resolution.py +22 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/query_builder.py +1 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/source_library.py +55 -21
- flare_kernel-1.0.2/src/flare_kernel/router/streaming/draft/artifact_upkeep_completion.py +119 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/context_patch_completion.py +2 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/final_patch_projection.py +2 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/post_completion.py +36 -22
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/post_completion_canvas_policy.py +14 -2
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_edit/orchestrator.py +53 -4
- flare_kernel-1.0.2/src/flare_kernel/runtime/artifact_edit/semantic_map_refresh.py +57 -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.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/domain/domain_pack_loader.py +12 -2
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/repository_sql.py +2 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/repository_sql_schema.py +11 -10
- flare_kernel-1.0.2/src/flare_kernel/runtime/infrastructure/source/library_dedupe.py +151 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/library_persistence.py +29 -98
- flare_kernel-1.0.2/src/flare_kernel/runtime/infrastructure/source/library_records.py +116 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/infrastructure/source/schema.py +26 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/infrastructure/source/upload_storage.py +38 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/llm/model_limits.py +137 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_trace.py +3 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_application.py +31 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_runtime.py +110 -2
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/canvas/toolbar_actions.py +11 -2
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_artifact_document.py +74 -9
- flare_kernel-1.0.2/src/flare_kernel/runtime/orchestration/mode/intake_artifact_node_candidates.py +181 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/orchestration/mode/intake_artifact_semantic_map.py +297 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/orchestration/mode/intake_artifact_semantic_template.py +232 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/orchestration/mode/intake_artifact_views.py +26 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_canvas.py +3 -3
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_context.py +9 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/orchestration/mode/intake_context_evidence.py +241 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_field_hydration.py +66 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_structured_document.py +5 -3
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_summary_artifact.py +6 -3
- flare_kernel-1.0.2/src/flare_kernel/runtime/orchestration/mode/intake_summary_source.py +72 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/runtime.py +6 -1
- flare_kernel-1.0.2/src/flare_kernel/runtime/orchestration/source_grounding_context.py +71 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/post_generation/orchestrator.py +9 -0
- flare_kernel-1.0.2/src/flare_kernel/runtime/source_ingestion/profile.py +102 -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.0 → flare_kernel-1.0.2}/src/flare_kernel/session_message_records.py +7 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_replay.py +1 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_store.py +2 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel.egg-info/PKG-INFO +1 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel.egg-info/SOURCES.txt +50 -0
- flare_kernel-1.0.2/tests/test_active_artifact_registry_resolver.py +124 -0
- {flare_kernel-1.0.0 → 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.0 → flare_kernel-1.0.2}/tests/test_artifact_edit_runtime.py +93 -2
- 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.0 → flare_kernel-1.0.2}/tests/test_boundary_intent_semantic_composer.py +11 -10
- flare_kernel-1.0.2/tests/test_context_activity_projection.py +98 -0
- flare_kernel-1.0.2/tests/test_context_live_chain.py +76 -0
- flare_kernel-1.0.2/tests/test_context_usage_model_limit.py +80 -0
- flare_kernel-1.0.2/tests/test_context_write_contract.py +77 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_domain_pack_loader.py +69 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_generic_domain_pack_options.py +3 -1
- flare_kernel-1.0.2/tests/test_intake_artifact_semantic_map.py +252 -0
- flare_kernel-1.0.2/tests/test_intake_field_hydration_context.py +149 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_summary_artifact_framework.py +1 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intent_retrieval.py +16 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_endpoint_handlers.py +49 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_patch_contract.py +1 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_post_generation_completion.py +6 -1
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_post_generation_runtime.py +50 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_requirement_intake_canvas_state.py +4 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_api.py +14 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_sql_repository.py +2 -0
- flare_kernel-1.0.2/tests/test_source_ingestion_profile.py +44 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_source_library.py +133 -0
- flare_kernel-1.0.2/tests/test_source_library_dedupe.py +123 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_source_library_persistence_scope.py +22 -0
- flare_kernel-1.0.2/tests/test_streaming_artifact_upkeep_completion.py +145 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_draft_intake_canvas_sync.py +48 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_draft_post_completion.py +2 -2
- 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_analysis_report_intent_first.py +27 -0
- flare_kernel-1.0.2/tests/test_xiaocai_attachment_context_gate.py +44 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_boundary_score_gate.py +49 -3
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_domain_pack.py +39 -3
- flare_kernel-1.0.2/tests/test_xiaocai_output_template_quality.py +75 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_requirement_artifact_template_projection.py +50 -0
- flare_kernel-1.0.0/src/flare_kernel/runtime/infrastructure/source/schema.py +0 -19
- flare_kernel-1.0.0/tests/test_intake_field_hydration_context.py +0 -55
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/README.md +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/setup.cfg +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/app.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/auth_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/list_event_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/mode.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/node_result.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/project_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/project_memory_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/run_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/source_image_understanding.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/contracts/update_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/list_event_broker.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/main.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/project_record_memory_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/project_session_summary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/project_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/auth.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/auth_guard.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/chat.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/errors.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/list_events.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/project.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/run.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/session_artifact_edit.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/session_list_events.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/api/update.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/analysis.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/checkpoint.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/composer_ui.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/context/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/context/analysis.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/context/inputs.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/context/session.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/context_authority.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/contract_support.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/flow.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/mode_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/track_actions.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/canonical/workflow_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/analysis_artifact_overwrite_guard.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/analysis_result_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/artifact_action_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/boundary_intent.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/boundary_response_composer.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/capability_boundary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/degraded_fallback.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/guided.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_chooser_reply_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_commit_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_question_visibility.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_summary_content.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/intake_summary_submission.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/output_quality.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/response_appendix.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/response_builder.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/response_quality_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/selection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/sidecar_reply_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/stream_collect.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/context/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/context/endpoint.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/context/sourcing_preview.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/hardcode_boundary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/amount_quantity.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/answer.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/authority/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/authority/checkpoint.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/authority/core.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/authority/hydration.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/authority/session.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/canonicalization.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/clarification.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/decision_rules.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/delivery_time.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/entry_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/extraction/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/extraction/core.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/extraction/extractors.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/extraction/merge.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/extraction/quantity_classifier.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_projection/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_projection/core.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_projection/entity.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_projection/payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_projection/source.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/field_scope.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/confirmed_updates.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/flags.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/followup.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/followup_work_item.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/open_fields.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/status.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/guided/summary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/inputs.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/legacy_question.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/node_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/numeric.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/payload_updates.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/readiness.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/state_persistence.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/core.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/guided_session.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/schema.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/status/stage_resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intake/workflow_checkpoint.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/classifier_utils.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/compat_aliases.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/escalation/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/escalation/override.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/escalation/pipeline.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/escalation/signal.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/routing.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/session_intent/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/session_intent/core.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/session_intent/fields.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/intent/session_intent/small_talk.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_constants/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_constants/intake.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_endpoint_handlers/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_endpoint_handlers/health.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_endpoint_handlers/knowledge.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_endpoint_handlers/sourcing.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/canonical_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/context_io.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/dependency_resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/orchestration.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/payload_enrichment.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/runtime_prompt_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/turn_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_facade/utils.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_flow_bindings/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_flow_bindings/intent_query.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_flow_bindings/mode.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_flow_bindings/session_intent.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/action.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/early_boundary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/fast_gate_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/intake.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/intent_query.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/intent_signal.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_request_pipeline/session_binding.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_route/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_route/action.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_route/execution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_route/run.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_route/stream.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_stream_session.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/mode/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/mode/resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/mode/switch.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/next_actions_guard.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/action_readiness.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/analysis_entry_decision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/builder.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/checkpoint_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/core.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/decision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/followup_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/result.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/runtime_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/decision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/entry.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/flow.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/followup.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/intent.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/node.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/status/state/unpack.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/trace/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/trace/core.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/trace/projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/orchestration/trace/steps.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/patch_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/action.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/analysis_artifact_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/analysis_template_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/enrichment.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/payload/turn_act_enrichment.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/artifact_edit_preflight.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/artifact_template.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/boundary_intent.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/candidate_fields.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/capability_boundary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/context_blocks.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/core.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/mainline_answer_frame.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/patch_preview.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/pre_response_plan.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/requirement_intake.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/response_strategy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/summary_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/track_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/prompting/workflow_guidance.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/request/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/request/identity.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/request/intent_resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/response_intent/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/response_intent/contracts.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/response_intent/document_output.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/aliases.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/field_queries.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/retrieval/search.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/completion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/finalize.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/interrupt.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/patch_preview_events.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/phase.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/phase_timing.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/post_completion_summary_actions.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/post_generation_completion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/prologue.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/reconciliation_completion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/text_cadence.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/draft/turn_disposition_completion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/event_emitter.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/intake/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/intake/phase.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/mode/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/mode/event_payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/mode/events.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/bootstrap.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/builder.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/builder_transport.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/draft_phase.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/phase_groups.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/phases.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/structured_reasoning_admission.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/structured_reasoning_existing.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/structured_reasoning_phase.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/structured_reasoning_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/response/structured_reasoning_refresh.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/retrieval/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/retrieval/phase.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/runtime/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/runtime/sourcing_observations.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/streaming/runtime/steps.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/structured_reasoning_gate.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/text_safety.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/turn_act.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/run_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_edit/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_edit/contracts.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_edit/preflight.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_hud/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_hud/contracts.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/artifact_hud/orchestrator.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/auth/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/auth/bearer.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/auth/exchange.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/auth/policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/auth/scope_guard.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/analysis_application.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/artifact_application.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/document_application.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/intake_application.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/reasoning_application.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/session_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/context/track_application.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/provider_audit.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/provider_audit_export.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/replay_snapshot.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/replay_snapshot_io.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/diagnostics/replay_snapshot_validation.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/domain/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/domain/domain_pack_paths.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/domain/domain_pack_root.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/domain/profile_resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/execution/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/execution/agent_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/execution/skill_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/chat_memory.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/database.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/dependency_status.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/infrastructure.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_ingest.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_memory.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_postgres_search.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_qdrant_search.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_search.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/knowledge_terms.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/logging.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_codec.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_review_sql.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_review_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_sql.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_version_sql.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/project_memory_version_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/redis_client.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/run/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/run/repository.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/run/repository_memory.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/run/repository_sql.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/columns.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/repository.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/session/repository_memory.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/document_understanding_codec.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_config.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_dashscope.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_prompt.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/image_understanding_text.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/ocr_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/source/text_extractor.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/instance_profile_adapter.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/persistence.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider_config.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider_gateway.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider_normalize.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider_public.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/sourcing/provider_result.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/trace.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/infrastructure/vector_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation/decision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation/lexicon.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation/preprocessing.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation/signals.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/intent/intent_and_escalation_classifier.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/apipro_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/apipro_streaming_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/completion_capture.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/completion_plan.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/config.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/contracts.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/dashscope_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/dashscope_streaming_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/failover_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/fallback_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/intent_model_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/llm_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/model_router.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/native_streaming.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_error.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_failover.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_health.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_health_probe.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_health_snapshot.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_health_source.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_quota.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_retry.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/provider_usage.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/replay_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/stream_dispatch.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/streaming_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/llm/system_prompt.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/action_prompt_drafts.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/active_artifact_context_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/admission_node.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/analysis_route_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/analysis_router_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/artifact_template_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_artifact_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_context_evidence.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_response_deferral.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_rules.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_intent_gate_semantic.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_semantic_evidence.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/boundary_semantic_frame.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/canvas/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/canvas_sourcing_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/canvas_version_history_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/category_resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/decision_engine.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/main_chain_sidecar_model_question.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/main_chain_sidecar_options.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/main_chain_sidecar_question.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/canvas_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/fallback.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/field_definitions.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_action_resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_actions.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_candidate_fields.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_content.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_events.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_presentation.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_composer_chooser_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_coverage.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_document_seed.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_draft_payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_events.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_field_pack_suggestions.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_field_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_interaction_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_markdown_normalization.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_model_question_plan.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_model_question_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_next_actions_payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_payloads.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_progress_payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_interruption.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_interruption_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_lifecycle.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_plan_carrier.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_progress.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_queue.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_question_queue_canvas.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_summary_merge.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_summary_validation.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_template_canvas_content.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/intake_template_document.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/orchestration.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/question_selection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/reasoning.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/runtime_bookkeeping.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/shared.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/sourcing_actions.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/sourcing_events.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/sourcing_preview.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/sourcing_report.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/mode/state_transition.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/module_prompt_registry.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/node_result_normalization.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/normalized_policy_view.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/observation.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/patch_preview_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/patch_preview_operations.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/patch_preview_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/patch_question_node.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/pre_response_plan_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/projection_patches.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/reasoning_loop.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/response_strategy_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/session_context_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sidecar_option_generation.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/additive_search.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/analysis_entry.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/candidate_explainability.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/canvas_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/context_round.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/event_payloads.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/instance_db_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/internal_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/mcp_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/observation_payloads.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/observations.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/parameter_draft.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/provider_config_loader.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/provider_health.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/result_window.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/search_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/source_priority.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/sourcing/web_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/structured_prompt_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/structured_reasoning.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/structured_reasoning_normalization.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/structured_reasoning_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/track_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/turn_disposition.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/orchestration/workflow_guidance_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/post_generation/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/post_generation/contracts.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/post_generation/normalizer.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/post_generation/validator.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/decision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/extraction.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/promotion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/recall.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/project_memory/semantic_index.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/api.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/branching/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/branching/core.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/branching/policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/field_selection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/gap_detection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/hypothesis.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/planning.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/priority.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/builder.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/decision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/extraction.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/planner.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/question/structured.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/readiness/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/readiness/core.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/readiness/scoring.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/shared.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/understanding_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/visible_response.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reasoning/intake/visible_summary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/context_revision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/contracts.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/events.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/executor.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/gates.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/impact.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/operation.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/orchestrator.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/reconciliation/planner.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/session/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/session/checkpoint_manager.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/session/intake_session_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/session/models.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/artifacts.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/chunk_storage.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/knowledge_storage.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/runtime/source_ingestion/storage.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_archive_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_archive_graph.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_archive_metrics.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_archive_summary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_creation.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_exchange_persistence.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_lifecycle_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_list_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_message_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_record_assembly.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/session_record_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/update/__init__.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/update/compatibility.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/update/planner.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/update/registry.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/update/versioning.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/user_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel.egg-info/dependency_links.txt +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel.egg-info/requires.txt +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel.egg-info/top_level.txt +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_action_payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_action_prompt_drafts.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_action_readiness.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_active_artifact_context_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_analysis_artifact_context_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_analysis_artifact_overwrite_guard.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_analysis_context_patch.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_analysis_e2e.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_analysis_entry_decision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_analysis_prompt_artifact_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_analysis_route_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_analysis_route_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_analysis_template_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_arch01_admission_node.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_arch01_fake_domain_decision_matrix.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_arch01_fake_domain_node_output_matrix.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_arch01_normalized_policy_consumption.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_artifact_edit_preflight_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_artifact_hud_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_artifact_template_prompt.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_artifact_template_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_auth_bearer_guard.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_auth_exchange.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_auth_scope_guard.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_basics.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_builder_split_modules.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_business_hardcode_guard.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_canonical_composer_chooser_authority.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_canonical_composer_ui_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_canonical_mode_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_canonical_state_context_analysis.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_canonical_state_context_inputs.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_canonical_state_context_session.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_canonical_state_flow.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_canonical_state_payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_canonical_state_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_canvas_sourcing_contract_meta.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_canvas_version_history_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_capability_boundary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_chat_api_alias.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_command_resolution_analysis_mode.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_compat_aliases.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_completion_degraded_source_fallback.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_completion_output_quality_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_completion_response_builder.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_completion_selection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_completion_selection_intent_routing.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_context_authority_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_dashscope_streaming_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_decision_engine.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_dependency_status.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_endpoint_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_fast_gate.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_flare_v1_patch_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_guided_completion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_image_understanding_dashscope.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_infrastructure_helpers.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_infrastructure_knowledge.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_amount_quantity.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_answer.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_authority.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_authority_checkpoint.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_authority_hydration.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_authority_session.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_canonicalization.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_chooser_reply_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_clarification.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_commit_context_patch.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_composer_chooser_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_decision_rules.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_delivery_time.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_document_seed.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_domain_context_options.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_entry_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_extraction.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_extraction_extractors.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_extraction_merge.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_field_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_field_projection_entity.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_field_projection_payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_field_projection_source.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_field_scope.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_guided_confirmed_updates.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_guided_flags.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_guided_followup.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_guided_followup_work_item.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_guided_open_fields.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_guided_status.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_guided_summary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_inputs.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_markdown_normalization.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_model_question_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_node_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_numeric.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_payload_updates.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_question_extraction.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_question_interruption_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_question_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_readiness.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_reasoning_priority.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_state_persistence.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_status.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_status_guided_session.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_status_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_status_schema.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_status_stage.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_summary_next_actions_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_visible_response.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intake_workflow_checkpoint.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intent_classifier_utils.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intent_escalation_classifier.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intent_escalation_override.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intent_escalation_pipeline.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intent_escalation_signal.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intent_fast_general_qa.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intent_resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intent_routing.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_intent_type_compat_aliases.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_alias_delegation.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_endpoint_handlers_sourcing.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_facade_context_io.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_facade_early_boundary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_facade_helpers.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_facade_sidecar_prompt_payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_facade_turn_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_intent_query_flow.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_mode_flow.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_route_execution_wrappers.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_route_normalized_result.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_kernel_session_intent_flow.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_list_events.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_apipro_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_provider_error_normalization.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_provider_failover.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_provider_fallback_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_provider_health_file.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_provider_health_probe.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_provider_health_snapshot.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_provider_live.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_provider_native_streaming.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_provider_quota.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_provider_streaming.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_llm_replay_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_main_chain_sidecar_options.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_main_chain_sidecar_queue.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_mode_orchestration_state_bridge.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_mode_reasoning.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_mode_resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_mode_switch.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_model_router.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_module_prompt_registry.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_new_flow_guard.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_node_result_contract.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_node_result_normalization.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orc15_guided_completion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orc15_turn_act_classification.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orc16_main_chain_hardcode_boundary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_checkpoint_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_followup_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_context_helpers.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_decision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_result.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_runtime_state.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_decision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_entry.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_followup.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_intent.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_node.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_status_state_unpack.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_trace.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_trace_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_orchestration_trace_steps.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_patch_preview_events.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_patch_preview_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_patch_question_node.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_payload_enrichment.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_pln03_question_chooser.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_pln11_question_option_extraction.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_pre_response_plan_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_project_api.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_project_memory_promotion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_project_memory_promotion_decision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_project_memory_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_project_memory_semantic_index.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_project_memory_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_project_memory_versions.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_projection_patches.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_prompt_template_main_chain_flow.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_prompting_analysis_instruction.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_prompting_requirement_intake.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_prompting_sidecar_question.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_prompting_user_template_instruction.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_provider_audit.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_provider_audit_export.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_reasoning_context_patch.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_reasoning_loop.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_reconciliation_analysis_patch_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_reconciliation_context_revision.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_reconciliation_orchestrator.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_release_isolation_gate.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_replay_snapshot.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_replay_snapshot_validation.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_request_identity.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_request_intent_resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_requirement_intake_branch_chooser.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_requirement_intake_canvas_progress.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_requirement_intake_canvas_visibility.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_requirement_intake_continuation.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_requirement_intake_flow.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_requirement_intake_model_question_plan.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_requirement_intake_question_queue.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_requirement_intake_summary_route.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_requirement_refresh_prompting.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_response_intent_resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_response_strategy_prompting_compact.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_response_strategy_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_retrieval_aliases.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_retrieval_field_queries.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_retrieval_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_retrieval_query_builder.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_retrieval_search.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_run_api.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_run_sql_repository.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_run_store.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_runtime_prompt_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_archive_summary.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_context_persistence.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_domain_binding.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_intent.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_intent_fields.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_intent_small_talk.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_lifecycle_api.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_replay_api.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_sql_columns.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_sql_migration.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_session_workflow_projection_persistence.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sidecar_option_generation.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sidecar_reply_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_source_ingestion_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_source_ingestion_ssot_acceptance.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_source_text_extractor.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_additive_search.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_candidate_explainability.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_context_reuse.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_e2e.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_instance_profile_adapter.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_parameter_draft.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_preview_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_provider.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_provider_adapters.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_provider_config_loader.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_provider_health.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_runtime_additive_search.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_search_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_sourcing_source_priority.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_stream_collect_completion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_draft_artifact_start.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_draft_budget_reconciliation_completion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_draft_completion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_draft_finalize.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_draft_phase.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_draft_prologue.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_draft_reconciliation_completion.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_event_emitter.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_intake_phase.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_mode_event_payload.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_mode_events.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_reasoning_context_patch.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_response_bootstrap.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_response_phases.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_response_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_response_transport.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_retrieval_phase.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_runtime_steps.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_sidecar_reply_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_structured_reasoning_gate.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_structured_reasoning_projection.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_streaming_text_cadence.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_structured_prompt_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_structured_reasoning.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_structured_reasoning_gate.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_text_safety.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_track_prompt_context.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_track_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_turn_disposition_admission.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_update_plane.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_v1_mainline_regressions.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_workflow_guidance_runtime.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_workflow_projection_precedence.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_active_artifact_contextual_gate.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_artifact_followup_gate.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_boundary_guidance.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_boundary_intent_gate.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_boundary_intent_gate_semantic.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_category_resolution.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_reconciliation_confirmation_policy.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_requirement_analysis.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_requirement_mode_canvas.py +0 -0
- {flare_kernel-1.0.0 → flare_kernel-1.0.2}/tests/test_xiaocai_sidecar_dynamic_options.py +0 -0
|
@@ -7,6 +7,9 @@ from flare_kernel.contracts.context import (
|
|
|
7
7
|
ContextEvidenceItem,
|
|
8
8
|
ContextSourcingResult,
|
|
9
9
|
ContextTurnItem,
|
|
10
|
+
ContextWriteDeclaration,
|
|
11
|
+
ContextWriteRegistry,
|
|
12
|
+
context_contract_field_names,
|
|
10
13
|
create_empty_context,
|
|
11
14
|
)
|
|
12
15
|
from flare_kernel.contracts.auth_contract import (
|
|
@@ -20,6 +23,7 @@ from flare_kernel.contracts.artifact_document import (
|
|
|
20
23
|
ArtifactDocument,
|
|
21
24
|
ArtifactFieldSuggestion,
|
|
22
25
|
ArtifactSection,
|
|
26
|
+
ArtifactUpkeepStatus,
|
|
23
27
|
FieldPackSuggestion,
|
|
24
28
|
ProcurementPackage,
|
|
25
29
|
)
|
|
@@ -114,6 +118,7 @@ __all__ = [
|
|
|
114
118
|
"ArtifactDocument",
|
|
115
119
|
"ArtifactFieldSuggestion",
|
|
116
120
|
"ArtifactSection",
|
|
121
|
+
"ArtifactUpkeepStatus",
|
|
117
122
|
"FieldPackSuggestion",
|
|
118
123
|
"ProcurementPackage",
|
|
119
124
|
"AnalysisRouteDecision",
|
|
@@ -144,6 +149,9 @@ __all__ = [
|
|
|
144
149
|
"ContextEvidenceItem",
|
|
145
150
|
"ContextSourcingResult",
|
|
146
151
|
"ContextTurnItem",
|
|
152
|
+
"ContextWriteDeclaration",
|
|
153
|
+
"ContextWriteRegistry",
|
|
154
|
+
"context_contract_field_names",
|
|
147
155
|
"create_empty_context",
|
|
148
156
|
"Mode",
|
|
149
157
|
"ModeHandler",
|
|
@@ -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 = ""
|
|
@@ -72,6 +82,8 @@ class ArtifactDocument(BaseModel):
|
|
|
72
82
|
sections: list[ArtifactSection] = Field(default_factory=list)
|
|
73
83
|
procurement_packages: list[ProcurementPackage] = Field(default_factory=list)
|
|
74
84
|
field_pack_suggestions: list[FieldPackSuggestion] = Field(default_factory=list)
|
|
85
|
+
semantic_map: dict[str, Any] = Field(default_factory=dict)
|
|
86
|
+
upkeep_status: ArtifactUpkeepStatus | None = None
|
|
75
87
|
actions: list[dict[str, Any]] = Field(default_factory=list)
|
|
76
88
|
metadata: dict[str, Any] = Field(default_factory=dict)
|
|
77
89
|
|
|
@@ -80,6 +92,7 @@ __all__ = [
|
|
|
80
92
|
"ArtifactDocument",
|
|
81
93
|
"ArtifactFieldSuggestion",
|
|
82
94
|
"ArtifactSection",
|
|
95
|
+
"ArtifactUpkeepStatus",
|
|
83
96
|
"FieldPackSuggestion",
|
|
84
97
|
"ProcurementPackage",
|
|
85
98
|
]
|
|
@@ -10,7 +10,7 @@ from __future__ import annotations
|
|
|
10
10
|
|
|
11
11
|
from typing import Any
|
|
12
12
|
|
|
13
|
-
from pydantic import BaseModel, Field
|
|
13
|
+
from pydantic import BaseModel, Field, field_validator, model_validator
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class ContextEvidenceItem(BaseModel):
|
|
@@ -93,3 +93,77 @@ class ContextContract(BaseModel):
|
|
|
93
93
|
|
|
94
94
|
def create_empty_context() -> ContextContract:
|
|
95
95
|
return ContextContract()
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def _clean_text(value: Any) -> str:
|
|
99
|
+
return " ".join(str(value or "").split()).strip()
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def context_contract_field_names() -> set[str]:
|
|
103
|
+
fields = getattr(ContextContract, "model_fields", None) or getattr(ContextContract, "__fields__", {})
|
|
104
|
+
return set(fields.keys())
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def _normalize_context_fields(value: list[str]) -> list[str]:
|
|
108
|
+
allowed = context_contract_field_names()
|
|
109
|
+
normalized: list[str] = []
|
|
110
|
+
seen: set[str] = set()
|
|
111
|
+
unknown: list[str] = []
|
|
112
|
+
for item in value or []:
|
|
113
|
+
field = _clean_text(item)
|
|
114
|
+
if not field:
|
|
115
|
+
continue
|
|
116
|
+
if field not in allowed:
|
|
117
|
+
unknown.append(field)
|
|
118
|
+
continue
|
|
119
|
+
if field not in seen:
|
|
120
|
+
normalized.append(field)
|
|
121
|
+
seen.add(field)
|
|
122
|
+
if unknown:
|
|
123
|
+
raise ValueError(f"unknown context fields: {', '.join(unknown)}")
|
|
124
|
+
return normalized
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class ContextWriteDeclaration(BaseModel):
|
|
128
|
+
contract_version: str = "flare.context_write_declaration.v1"
|
|
129
|
+
capability_key: str
|
|
130
|
+
reads_context_fields: list[str] = Field(default_factory=list)
|
|
131
|
+
writes_context_fields: list[str] = Field(default_factory=list)
|
|
132
|
+
normalized_result_contract: str = ""
|
|
133
|
+
context_patch_builder: str = ""
|
|
134
|
+
readiness_policy: str = ""
|
|
135
|
+
projection_scopes: list[str] = Field(default_factory=list)
|
|
136
|
+
rollback_point: str = ""
|
|
137
|
+
targeted_tests: list[str] = Field(default_factory=list)
|
|
138
|
+
metadata: dict[str, Any] = Field(default_factory=dict)
|
|
139
|
+
|
|
140
|
+
@field_validator("capability_key")
|
|
141
|
+
@classmethod
|
|
142
|
+
def require_capability_key(cls, value: str) -> str:
|
|
143
|
+
text = _clean_text(value)
|
|
144
|
+
if not text:
|
|
145
|
+
raise ValueError("capability_key is required")
|
|
146
|
+
return text
|
|
147
|
+
|
|
148
|
+
@field_validator("reads_context_fields", "writes_context_fields")
|
|
149
|
+
@classmethod
|
|
150
|
+
def validate_context_fields(cls, value: list[str]) -> list[str]:
|
|
151
|
+
return _normalize_context_fields(value)
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
class ContextWriteRegistry(BaseModel):
|
|
155
|
+
contract_version: str = "flare.context_write_registry.v1"
|
|
156
|
+
declarations: list[ContextWriteDeclaration] = Field(default_factory=list)
|
|
157
|
+
|
|
158
|
+
@model_validator(mode="after")
|
|
159
|
+
def require_unique_capabilities(self) -> "ContextWriteRegistry":
|
|
160
|
+
seen: set[str] = set()
|
|
161
|
+
duplicates: list[str] = []
|
|
162
|
+
for declaration in self.declarations:
|
|
163
|
+
key = declaration.capability_key
|
|
164
|
+
if key in seen:
|
|
165
|
+
duplicates.append(key)
|
|
166
|
+
seen.add(key)
|
|
167
|
+
if duplicates:
|
|
168
|
+
raise ValueError(f"duplicate capability declarations: {', '.join(duplicates)}")
|
|
169
|
+
return self
|
|
@@ -239,10 +239,13 @@ class ProjectSourceRecord(BaseModel):
|
|
|
239
239
|
filename: str
|
|
240
240
|
mime_type: str = ""
|
|
241
241
|
size: int | None = None
|
|
242
|
-
status: Literal["uploaded", "parsing", "chunked", "embedded", "indexed", "ready", "failed"] = "uploaded"
|
|
242
|
+
status: Literal["uploaded", "parsing", "chunked", "embedded", "indexed", "ready", "failed", "duplicate"] = "uploaded"
|
|
243
243
|
error_code: str | None = None
|
|
244
244
|
error_message: str = ""
|
|
245
|
+
content_hash: str = ""
|
|
246
|
+
duplicate_of_source_id: str | None = None
|
|
245
247
|
document_understanding: dict[str, Any] | None = None
|
|
248
|
+
document_profile: dict[str, Any] | None = None
|
|
246
249
|
created_at: str
|
|
247
250
|
updated_at: str
|
|
248
251
|
persisted_to_project: bool = True
|
|
@@ -85,6 +85,7 @@ class SessionMessageRecord(BaseModel):
|
|
|
85
85
|
analysis_payload: dict[str, Any] | None = None
|
|
86
86
|
context_usage: dict[str, Any] | None = None
|
|
87
87
|
provider_trace: dict[str, Any] | None = None
|
|
88
|
+
context_activity: dict[str, Any] | None = None
|
|
88
89
|
context_authority: dict[str, Any] | None = None
|
|
89
90
|
workflow_projection: dict[str, Any] | None = None
|
|
90
91
|
plan_payload: dict[str, Any] | None = None
|
|
@@ -146,6 +147,7 @@ class SessionAppendExchangeRequest(BaseModel):
|
|
|
146
147
|
analysis_payload: dict[str, Any] | None = None
|
|
147
148
|
context_usage: dict[str, Any] | None = None
|
|
148
149
|
provider_trace: dict[str, Any] | None = None
|
|
150
|
+
context_activity: dict[str, Any] | None = None
|
|
149
151
|
context_authority: dict[str, Any] | None = None
|
|
150
152
|
workflow_projection: dict[str, Any] | None = None
|
|
151
153
|
plan_payload: dict[str, Any] | None = None
|
|
@@ -314,6 +314,7 @@ async def append_chat_session_exchange(
|
|
|
314
314
|
analysis_payload=append_fields["analysis_payload"],
|
|
315
315
|
context_usage=req.context_usage,
|
|
316
316
|
provider_trace=req.provider_trace,
|
|
317
|
+
context_activity=req.context_activity,
|
|
317
318
|
context_authority=req.context_authority,
|
|
318
319
|
workflow_projection=req.workflow_projection,
|
|
319
320
|
plan_payload=append_fields["plan_payload"],
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"""Canonical context activity projection for frontend animation.
|
|
2
|
+
|
|
3
|
+
DOC HELPER — context_activity.v1 is backend-owned display metadata. It only
|
|
4
|
+
summarizes runtime/session context into a stable projection; it does not mutate
|
|
5
|
+
context, trigger compaction, or own workflow state transitions.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def _as_mapping(value: Any) -> dict[str, Any]:
|
|
14
|
+
return value if isinstance(value, dict) else {}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _as_list(value: Any) -> list[Any]:
|
|
18
|
+
return value if isinstance(value, list) else []
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def _count_list(value: Any) -> int:
|
|
22
|
+
return len(value) if isinstance(value, list) else 0
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _coerce_int(value: Any) -> int:
|
|
26
|
+
try:
|
|
27
|
+
parsed = int(float(value))
|
|
28
|
+
except (TypeError, ValueError):
|
|
29
|
+
return 0
|
|
30
|
+
return max(0, parsed)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _token_counts(runtime: dict[str, Any]) -> tuple[int, int, float]:
|
|
34
|
+
usage = _as_mapping(runtime.get("context_usage"))
|
|
35
|
+
token_estimate = _as_mapping(usage.get("token_estimate"))
|
|
36
|
+
budget_tokens = _as_mapping(usage.get("budget_tokens"))
|
|
37
|
+
token_used = _coerce_int(token_estimate.get("total_prompt_tokens_estimate"))
|
|
38
|
+
token_limit = _coerce_int(budget_tokens.get("total_tokens"))
|
|
39
|
+
if token_limit <= 0:
|
|
40
|
+
return token_used, token_limit, 0.0
|
|
41
|
+
return token_used, token_limit, round(min(1.0, token_used / token_limit), 2)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _source_count(runtime: dict[str, Any]) -> int:
|
|
45
|
+
payload = _as_mapping(runtime.get("payload"))
|
|
46
|
+
data_ingestion = _as_mapping(runtime.get("data_ingestion"))
|
|
47
|
+
ref_count = max(
|
|
48
|
+
_count_list(payload.get("knowledge_refs")),
|
|
49
|
+
_count_list(payload.get("context_refs")),
|
|
50
|
+
_count_list(payload.get("source_ids")),
|
|
51
|
+
)
|
|
52
|
+
return max(_coerce_int(data_ingestion.get("source_count")), ref_count)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _has_canvas_activity(runtime: dict[str, Any]) -> bool:
|
|
56
|
+
payload = _as_mapping(runtime.get("payload"))
|
|
57
|
+
preflight = _as_mapping(runtime.get("artifact_edit_preflight")) or _as_mapping(payload.get("artifact_edit_preflight"))
|
|
58
|
+
return bool(preflight or _as_mapping(payload.get("active_artifact_context")))
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _context_counts(context: dict[str, Any]) -> dict[str, int]:
|
|
62
|
+
return {
|
|
63
|
+
"facts": _count_list(context.get("facts")),
|
|
64
|
+
"unknowns": _count_list(context.get("unknowns")),
|
|
65
|
+
"evidence": _count_list(context.get("evidence")),
|
|
66
|
+
"turns": _count_list(context.get("turns")),
|
|
67
|
+
"artifact_context": _count_list(context.get("artifact_context")),
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def _resolve_state(*, source_count: int, canvas_active: bool, counters: dict[str, int]) -> tuple[str, str, str]:
|
|
72
|
+
if canvas_active:
|
|
73
|
+
return "syncing_canvas", "canvas_sync", "running"
|
|
74
|
+
if source_count > 0:
|
|
75
|
+
return "ingesting_sources", "source_ingestion", "running"
|
|
76
|
+
if counters["facts"] or counters["unknowns"] or counters["evidence"] or counters["turns"]:
|
|
77
|
+
return "collecting", "chat_turn", "running"
|
|
78
|
+
return "idle", "context", "completed"
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def _headline_params(*, state: str, source_count: int, counters: dict[str, int]) -> dict[str, int]:
|
|
82
|
+
if state == "ingesting_sources":
|
|
83
|
+
return {"source_count": source_count}
|
|
84
|
+
if state == "collecting":
|
|
85
|
+
return {"facts": counters["facts"], "unknowns": counters["unknowns"]}
|
|
86
|
+
return {}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def _detail_params(counters: dict[str, int]) -> dict[str, int]:
|
|
90
|
+
return {
|
|
91
|
+
"facts": counters["facts"],
|
|
92
|
+
"unknowns": counters["unknowns"],
|
|
93
|
+
"evidence": counters["evidence"],
|
|
94
|
+
"artifact_context": counters["artifact_context"],
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def build_context_activity_projection(runtime_snapshot: dict[str, Any] | None) -> dict[str, Any]:
|
|
99
|
+
"""Return backend-owned context activity for UI projection."""
|
|
100
|
+
|
|
101
|
+
runtime = _as_mapping(runtime_snapshot)
|
|
102
|
+
context = _as_mapping(runtime.get("session_context"))
|
|
103
|
+
source_count = _source_count(runtime)
|
|
104
|
+
token_used, token_limit, progress = _token_counts(runtime)
|
|
105
|
+
counters = {
|
|
106
|
+
"sources_total": source_count,
|
|
107
|
+
**_context_counts(context),
|
|
108
|
+
"token_used": token_used,
|
|
109
|
+
"token_limit": token_limit,
|
|
110
|
+
}
|
|
111
|
+
state, phase, status = _resolve_state(
|
|
112
|
+
source_count=source_count,
|
|
113
|
+
canvas_active=_has_canvas_activity(runtime),
|
|
114
|
+
counters=counters,
|
|
115
|
+
)
|
|
116
|
+
return {
|
|
117
|
+
"schema_version": "context_activity.v1",
|
|
118
|
+
"owner": "backend",
|
|
119
|
+
"frontend_policy": "projection_only",
|
|
120
|
+
"state": state,
|
|
121
|
+
"phase": phase,
|
|
122
|
+
"status": status,
|
|
123
|
+
"progress": progress,
|
|
124
|
+
"headline_key": f"context_activity.{state}.headline",
|
|
125
|
+
"headline_params": _headline_params(state=state, source_count=source_count, counters=counters),
|
|
126
|
+
"detail_key": "context_activity.counts.detail",
|
|
127
|
+
"detail_params": _detail_params(counters),
|
|
128
|
+
"counters": counters,
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
__all__ = ["build_context_activity_projection"]
|
|
@@ -17,6 +17,7 @@ from flare_kernel.router.canonical.contract_support import (
|
|
|
17
17
|
resolve_canvas_analysis_payload,
|
|
18
18
|
)
|
|
19
19
|
from flare_kernel.router.canonical.composer_ui import build_composer_ui_projection
|
|
20
|
+
from flare_kernel.router.canonical.context_activity import build_context_activity_projection
|
|
20
21
|
from flare_kernel.router.canonical.context_authority import build_context_authority_projection
|
|
21
22
|
from flare_kernel.router.canonical.mode_projection import resolve_round_end_mode_projection
|
|
22
23
|
from flare_kernel.router.canonical.projection import resolve_canonical_next_actions
|
|
@@ -285,6 +286,7 @@ def build_canonical_payload(
|
|
|
285
286
|
"type": "normal" if str(assistant_reply_text or "").strip() else "system_notice",
|
|
286
287
|
"is_placeholder": provider_status == "placeholder",
|
|
287
288
|
},
|
|
289
|
+
"context_activity": build_context_activity_projection(runtime_snapshot),
|
|
288
290
|
"context_authority": build_context_authority_projection(runtime_snapshot),
|
|
289
291
|
"primary_flow": {
|
|
290
292
|
"mode": {
|
{flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/completion/analysis_policy.py
RENAMED
|
@@ -154,6 +154,23 @@ def _apply_overwrite_guard(
|
|
|
154
154
|
return False
|
|
155
155
|
|
|
156
156
|
|
|
157
|
+
def _sync_post_generation_markdown(
|
|
158
|
+
*,
|
|
159
|
+
orchestration_status: dict[str, Any],
|
|
160
|
+
runtime_snapshot: dict[str, Any] | None,
|
|
161
|
+
canvas_analysis_payload: dict[str, Any] | None,
|
|
162
|
+
) -> None:
|
|
163
|
+
markdown = _text(_mapping(canvas_analysis_payload).get("markdown"))
|
|
164
|
+
post_generation = _mapping(orchestration_status.get("post_generation_result"))
|
|
165
|
+
if not markdown or not post_generation:
|
|
166
|
+
return
|
|
167
|
+
next_result = {**post_generation, "artifact_markdown": markdown}
|
|
168
|
+
orchestration_status["post_generation_result"] = next_result
|
|
169
|
+
if isinstance(runtime_snapshot, dict):
|
|
170
|
+
payload = _runtime_payload(runtime_snapshot)
|
|
171
|
+
runtime_snapshot["payload"] = {**payload, "post_generation_result": next_result}
|
|
172
|
+
|
|
173
|
+
|
|
157
174
|
def apply_analysis_completion_policy(
|
|
158
175
|
*,
|
|
159
176
|
orchestration_status: dict[str, Any],
|
|
@@ -202,6 +219,11 @@ def apply_analysis_completion_policy(
|
|
|
202
219
|
return
|
|
203
220
|
if canvas_analysis_payload:
|
|
204
221
|
orchestration_status["canvas_analysis_payload"] = canvas_analysis_payload
|
|
222
|
+
_sync_post_generation_markdown(
|
|
223
|
+
orchestration_status=orchestration_status,
|
|
224
|
+
runtime_snapshot=runtime_snapshot,
|
|
225
|
+
canvas_analysis_payload=canvas_analysis_payload,
|
|
226
|
+
)
|
|
205
227
|
if isinstance(slot_patches, list):
|
|
206
228
|
orchestration_status["analysis_slot_patches"] = slot_patches
|
|
207
229
|
|
|
@@ -10,6 +10,7 @@ from flare_kernel.router.completion.artifact_action_contract import (
|
|
|
10
10
|
|
|
11
11
|
_SUMMARY_CONTEXT_ACTION_KEYS = frozenset({"confirm_plan", "generate_analysis"})
|
|
12
12
|
_SUMMARY_CONTEXT_COMMANDS = frozenset({"generate_analysis"})
|
|
13
|
+
_DOCUMENT_OUTPUT_INTENTS = frozenset({"document_template_output", "document_draft_output"})
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
def _clean_text(value: Any) -> str:
|
|
@@ -54,6 +55,56 @@ def _summary_context_from_payload(payload: dict[str, Any]) -> dict[str, Any]:
|
|
|
54
55
|
}
|
|
55
56
|
|
|
56
57
|
|
|
58
|
+
def _latest_requirement_canvas_payload(runtime_snapshot: dict[str, Any]) -> dict[str, Any]:
|
|
59
|
+
mode_events = runtime_snapshot.get("mode_events")
|
|
60
|
+
for event in reversed(mode_events if isinstance(mode_events, list) else []):
|
|
61
|
+
payload = _coerce_mapping(_coerce_mapping(event).get("payload"))
|
|
62
|
+
if _clean_text(payload.get("mode_key")) == "requirement_intake":
|
|
63
|
+
return payload
|
|
64
|
+
return {}
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def _post_generation_result(
|
|
68
|
+
*,
|
|
69
|
+
runtime_snapshot: dict[str, Any],
|
|
70
|
+
orchestration_status: dict[str, Any],
|
|
71
|
+
) -> dict[str, Any]:
|
|
72
|
+
result = orchestration_status.get("post_generation_result")
|
|
73
|
+
if isinstance(result, dict):
|
|
74
|
+
return result
|
|
75
|
+
payload = _coerce_mapping(runtime_snapshot.get("payload"))
|
|
76
|
+
return _coerce_mapping(payload.get("post_generation_result"))
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def _has_active_requirement_canvas(runtime_snapshot: dict[str, Any]) -> bool:
|
|
80
|
+
payload = _coerce_mapping(runtime_snapshot.get("payload"))
|
|
81
|
+
active = payload.get("active_artifact_context")
|
|
82
|
+
if _coerce_mapping(active):
|
|
83
|
+
return True
|
|
84
|
+
if isinstance(active, list) and active:
|
|
85
|
+
return True
|
|
86
|
+
return bool(_latest_requirement_canvas_payload(runtime_snapshot))
|
|
87
|
+
|
|
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
|
+
|
|
57
108
|
def _with_summary_context(action: dict[str, Any], summary_context: dict[str, Any]) -> dict[str, Any]:
|
|
58
109
|
resolved = dict(action)
|
|
59
110
|
if not summary_context or not _should_attach_summary_context(resolved):
|
|
@@ -132,18 +183,35 @@ def should_sync_document_output_to_requirement_canvas(
|
|
|
132
183
|
completion_provider: str,
|
|
133
184
|
completion_model: str,
|
|
134
185
|
completion_status: str,
|
|
186
|
+
command: str = "",
|
|
135
187
|
) -> bool:
|
|
136
188
|
"""Return whether a model-authored document output should update Canvas."""
|
|
137
189
|
|
|
138
|
-
_ = (
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
190
|
+
_ = (completion_provider, completion_model)
|
|
191
|
+
if _clean_text(runtime_snapshot.get("mode_key")) != "requirement_intake":
|
|
192
|
+
return False
|
|
193
|
+
if _clean_text(completion_status) != "ok" or not _clean_text(content_text):
|
|
194
|
+
return False
|
|
195
|
+
if not _has_active_requirement_canvas(runtime_snapshot):
|
|
196
|
+
return False
|
|
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
|
|
203
|
+
response_intent = _coerce_mapping(payload.get("response_intent_result"))
|
|
204
|
+
post_generation = _post_generation_result(
|
|
205
|
+
runtime_snapshot=runtime_snapshot,
|
|
206
|
+
orchestration_status=orchestration_status,
|
|
145
207
|
)
|
|
146
|
-
|
|
208
|
+
if not _clean_text(post_generation.get("artifact_markdown")):
|
|
209
|
+
return False
|
|
210
|
+
if _clean_text(response_intent.get("response_intent")) not in _DOCUMENT_OUTPUT_INTENTS:
|
|
211
|
+
return False
|
|
212
|
+
descriptor = _coerce_mapping(post_generation.get("artifact_descriptor"))
|
|
213
|
+
target_tab = _clean_text(descriptor.get("target_tab") or response_intent.get("target_tab"))
|
|
214
|
+
return target_tab in {"", "requirement"}
|
|
147
215
|
|
|
148
216
|
|
|
149
217
|
__all__ = [
|
|
@@ -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"))
|
|
@@ -212,6 +219,7 @@ def should_sync_requirement_summary_from_model(
|
|
|
212
219
|
content_text: str,
|
|
213
220
|
completion_status: str,
|
|
214
221
|
command: str = "",
|
|
222
|
+
orchestration_status: dict[str, Any] | None = None,
|
|
215
223
|
) -> bool:
|
|
216
224
|
"""Return whether model output should also be沉淀到 requirement Artifact."""
|
|
217
225
|
|
|
@@ -232,6 +240,9 @@ def should_sync_requirement_summary_from_model(
|
|
|
232
240
|
runtime_payload = _coerce_mapping(runtime_snapshot.get("payload"))
|
|
233
241
|
if is_requirement_summary_submission_payload(runtime_payload):
|
|
234
242
|
return False
|
|
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):
|
|
245
|
+
return False
|
|
235
246
|
return bool(_latest_requirement_canvas_payload(runtime_snapshot) or _has_active_requirement_artifact(runtime_snapshot))
|
|
236
247
|
|
|
237
248
|
|
|
@@ -255,6 +266,7 @@ def with_model_authored_requirement_summary_event(
|
|
|
255
266
|
content_text=content_text,
|
|
256
267
|
completion_status=completion_status,
|
|
257
268
|
command=command,
|
|
269
|
+
orchestration_status=orchestration_status,
|
|
258
270
|
):
|
|
259
271
|
return mode_events
|
|
260
272
|
summary_event = build_model_authored_requirement_summary_event(
|
|
@@ -44,9 +44,12 @@ def normalize_fast_gate_policy(value: Any) -> dict[str, Any]:
|
|
|
44
44
|
policy = _as_mapping(value)
|
|
45
45
|
deny_terms = _as_text_tuple(policy.get("deny_terms"))
|
|
46
46
|
allow_terms = _as_text_tuple(policy.get("allow_terms"))
|
|
47
|
+
strong_allow_terms = _as_text_tuple(policy.get("strong_allow_terms"))
|
|
47
48
|
normalized: dict[str, list[str]] = {}
|
|
48
49
|
if allow_terms:
|
|
49
50
|
normalized["allow_terms"] = list(allow_terms)
|
|
51
|
+
if strong_allow_terms:
|
|
52
|
+
normalized["strong_allow_terms"] = list(strong_allow_terms)
|
|
50
53
|
if deny_terms:
|
|
51
54
|
normalized["deny_terms"] = list(deny_terms)
|
|
52
55
|
return normalized
|
|
@@ -66,7 +69,9 @@ def _matches_denied_boundary(message: str, policy: dict[str, Any]) -> bool:
|
|
|
66
69
|
return False
|
|
67
70
|
deny_terms = _as_text_tuple(policy.get("deny_terms"))
|
|
68
71
|
allow_terms = _as_text_tuple(policy.get("allow_terms"))
|
|
69
|
-
|
|
72
|
+
strong_allow_terms = _as_text_tuple(policy.get("strong_allow_terms"))
|
|
73
|
+
effective_allow_terms = strong_allow_terms or allow_terms
|
|
74
|
+
return _contains_any(normalized, deny_terms) and not _contains_any(normalized, effective_allow_terms)
|
|
70
75
|
|
|
71
76
|
|
|
72
77
|
def resolve_fast_gate(*, message: str, payload: dict[str, Any] | None = None) -> FastGateDecision:
|
{flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_constants/intent.py
RENAMED
|
@@ -4,9 +4,9 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
_NEUTRAL_INTENT_KEYWORDS = {
|
|
7
|
-
"requirement_intake": ("requirement_intake",),
|
|
7
|
+
"requirement_intake": ("requirement_intake", "确认关键字段", "关键字段"),
|
|
8
8
|
"intelligent_sourcing": ("intelligent_sourcing",),
|
|
9
|
-
"analysis_mode": ("analysis_mode",),
|
|
9
|
+
"analysis_mode": ("analysis_mode", "需求分析", "做需求分析"),
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
INTENT_KEYWORDS = {
|
|
@@ -29,6 +29,7 @@ REQUIREMENT_ENTRY_EXPLICIT_PHRASES = (
|
|
|
29
29
|
"请先帮我梳理",
|
|
30
30
|
"请帮我梳理",
|
|
31
31
|
"请梳理",
|
|
32
|
+
"我想梳理",
|
|
32
33
|
"帮我梳理一下",
|
|
33
34
|
"帮我梳理需求",
|
|
34
35
|
"帮我做需求梳理",
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"""Patch scope constants for flare.v1 contract emission.
|
|
2
2
|
|
|
3
3
|
DOC HELPER — OBJ-09 patch authority allowlist.
|
|
4
|
-
`context_authority`
|
|
5
|
-
but must not synthesize equivalent frontend
|
|
4
|
+
`context_authority` and `context_activity` are authoritative backend scopes;
|
|
5
|
+
consumers may project them but must not synthesize equivalent frontend
|
|
6
|
+
authority.
|
|
6
7
|
"""
|
|
7
8
|
|
|
8
9
|
from __future__ import annotations
|
|
@@ -10,6 +11,7 @@ from __future__ import annotations
|
|
|
10
11
|
PATCH_SCOPES_AUTHORITATIVE = {
|
|
11
12
|
"session",
|
|
12
13
|
"assistant_reply",
|
|
14
|
+
"context_activity",
|
|
13
15
|
"context_authority",
|
|
14
16
|
"workflow_projection",
|
|
15
17
|
"primary_flow",
|
{flare_kernel-1.0.0 → flare_kernel-1.0.2}/src/flare_kernel/router/kernel_endpoint_handlers/turn.py
RENAMED
|
@@ -61,6 +61,26 @@ def _supports_keyword_flag(callable_obj, name: str) -> bool:
|
|
|
61
61
|
)
|
|
62
62
|
|
|
63
63
|
|
|
64
|
+
def _has_refs(value: Any) -> bool:
|
|
65
|
+
return isinstance(value, list) and any(bool(item) for item in value)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def _payload_mapping(req: KernelRequest) -> dict[str, Any]:
|
|
69
|
+
return req.payload if isinstance(req.payload, dict) else {}
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def _stream_requires_context_io(req: KernelRequest) -> bool:
|
|
73
|
+
payload = _payload_mapping(req)
|
|
74
|
+
source_grounding = payload.get("source_grounding") if isinstance(payload.get("source_grounding"), dict) else {}
|
|
75
|
+
return (
|
|
76
|
+
_has_refs(req.context_refs)
|
|
77
|
+
or _has_refs(req.knowledge_refs)
|
|
78
|
+
or _has_refs(payload.get("context_refs"))
|
|
79
|
+
or _has_refs(payload.get("knowledge_refs"))
|
|
80
|
+
or source_grounding.get("active") is True
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
|
|
64
84
|
async def handle_kernel_run(
|
|
65
85
|
req: KernelRequest,
|
|
66
86
|
*,
|
|
@@ -179,7 +199,7 @@ async def handle_kernel_stream(
|
|
|
179
199
|
if _supports_keyword_flag(prepare_kernel_turn_context_fn, "run_structured_reasoning"):
|
|
180
200
|
prepare_kwargs["run_structured_reasoning"] = False
|
|
181
201
|
if _supports_keyword_flag(prepare_kernel_turn_context_fn, "run_context_io"):
|
|
182
|
-
prepare_kwargs["run_context_io"] =
|
|
202
|
+
prepare_kwargs["run_context_io"] = _stream_requires_context_io(effective_req)
|
|
183
203
|
turn_context = await prepare_kernel_turn_context_fn(effective_req, **prepare_kwargs)
|
|
184
204
|
turn = unpack_kernel_turn_context_fn(turn_context)
|
|
185
205
|
return await build_kernel_stream_response_fn(
|