flare-kernel 0.2.14__tar.gz → 0.2.15__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-0.2.14 → flare_kernel-0.2.15}/PKG-INFO +1 -1
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/pyproject.toml +1 -1
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/draft/post_completion.py +15 -1
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/context/reasoning_application.py +80 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/context/session_context.py +5 -1
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_canvas.py +1 -1
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_content.py +26 -5
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_context.py +12 -0
- flare_kernel-0.2.15/src/flare_kernel/runtime/orchestration/mode/intake_field_hydration.py +121 -0
- flare_kernel-0.2.15/src/flare_kernel/runtime/orchestration/structured_reasoning.py +156 -0
- flare_kernel-0.2.14/src/flare_kernel/runtime/orchestration/structured_reasoning.py → flare_kernel-0.2.15/src/flare_kernel/runtime/orchestration/structured_reasoning_normalization.py +64 -127
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel.egg-info/PKG-INFO +1 -1
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel.egg-info/SOURCES.txt +5 -0
- flare_kernel-0.2.15/tests/test_reasoning_context_patch.py +45 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_requirement_intake_canvas_state.py +122 -2
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_requirement_intake_flow.py +6 -1
- flare_kernel-0.2.15/tests/test_streaming_reasoning_context_patch.py +93 -0
- flare_kernel-0.2.15/tests/test_structured_reasoning.py +85 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/README.md +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/setup.cfg +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/app.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/contracts/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/contracts/auth_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/contracts/context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/contracts/kernel_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/contracts/list_event_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/contracts/mode.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/contracts/project_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/contracts/project_memory_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/contracts/run_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/contracts/session_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/contracts/update_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/list_event_broker.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/main.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/project_record_memory_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/project_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/api/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/api/auth.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/api/auth_guard.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/api/chat.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/api/errors.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/api/list_events.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/api/project.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/api/run.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/api/session.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/api/session_list_events.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/api/update.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/analysis.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/checkpoint.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/composer_ui.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/context/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/context/analysis.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/context/inputs.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/context/session.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/context_authority.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/contract_support.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/flow.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/mode_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/canonical/track_actions.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/analysis_policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/analysis_result_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/capability_boundary.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/guided.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/intake_commit_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/intake_summary_content.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/intake_summary_events.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/intake_summary_submission.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/response_builder.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/selection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/completion/stream_collect.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/context/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/context/endpoint.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/context/sourcing_preview.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/hardcode_boundary.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/amount_quantity.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/answer.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/authority/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/authority/checkpoint.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/authority/core.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/authority/hydration.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/authority/session.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/canonicalization.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/clarification.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/decision_rules.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/delivery_time.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/entry_policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/extraction/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/extraction/core.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/extraction/extractors.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/extraction/merge.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/extraction/quantity_classifier.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/field_projection/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/field_projection/core.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/field_projection/entity.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/field_projection/payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/field_projection/source.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/field_scope.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/guided/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/guided/confirmed_updates.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/guided/flags.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/guided/followup.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/guided/followup_work_item.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/guided/open_fields.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/guided/status.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/guided/summary.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/inputs.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/legacy_question.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/node_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/numeric.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/payload_updates.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/readiness.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/state_persistence.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/status/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/status/chooser_stage.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/status/core.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/status/guided_session.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/status/projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/status/schema.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intake/workflow_checkpoint.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/classifier_utils.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/compat_aliases.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/escalation/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/escalation/override.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/escalation/pipeline.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/escalation/signal.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/routing.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/session_intent/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/session_intent/core.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/session_intent/fields.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/intent/session_intent/small_talk.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_constants/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_constants/intake.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_constants/intent.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_constants/patch.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_endpoint_handlers/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_endpoint_handlers/health.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_endpoint_handlers/knowledge.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_endpoint_handlers/sourcing.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_endpoint_handlers/turn.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_facade/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_facade/canonical_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_facade/dependency_resolution.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_facade/domain_pack_payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_facade/flow.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_facade/orchestration.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_facade/payload_enrichment.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_facade/turn_context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_facade/utils.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_flow_bindings/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_flow_bindings/intent_query.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_flow_bindings/mode.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_flow_bindings/session_intent.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_request_pipeline/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_request_pipeline/action.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_request_pipeline/intake.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_request_pipeline/intent_query.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_request_pipeline/intent_signal.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_route/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_route/action.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_route/execution.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_route/run.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/kernel_route/stream.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/mode/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/mode/resolution.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/mode/switch.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/next_actions_guard.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/action_readiness.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/actions.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/analysis_entry_decision.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/builder.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/checkpoint_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/context_helpers.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/core.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/decision.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/followup_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/result.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/runtime_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/state/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/state/context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/state/decision.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/state/entry.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/state/flow.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/state/followup.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/state/intent.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/state/node.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/state/payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/status/state/unpack.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/trace/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/trace/core.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/trace/projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/orchestration/trace/steps.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/patch_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/payload/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/payload/action.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/payload/analysis_canvas.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/payload/enrichment.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/payload/turn_act_enrichment.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/prompting/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/prompting/artifact_template.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/prompting/capability_boundary.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/prompting/context_blocks.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/prompting/core.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/prompting/patch_preview.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/prompting/requirement_intake.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/prompting/response_strategy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/prompting/summary_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/prompting/track_context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/request/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/request/identity.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/request/intent_resolution.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/response_intent/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/response_intent/contracts.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/response_intent/document_output.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/response_intent/resolution.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/retrieval/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/retrieval/aliases.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/retrieval/field_queries.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/retrieval/projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/retrieval/query_builder.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/retrieval/search.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/source_library.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/draft/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/draft/completion.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/draft/finalize.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/draft/phase.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/draft/phase_timing.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/draft/prologue.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/event_emitter.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/intake/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/intake/phase.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/mode/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/mode/event_payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/mode/events.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/response/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/response/bootstrap.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/response/builder.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/response/builder_transport.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/response/draft_phase.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/response/phase_groups.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/response/phases.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/response/runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/response/structured_reasoning_phase.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/retrieval/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/retrieval/phase.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/runtime/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/runtime/sourcing_observations.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/streaming/runtime/steps.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/text_safety.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/router/turn_act.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/run_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/auth/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/auth/exchange.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/auth/policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/auth/scope_guard.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/context/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/context/analysis_application.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/context/document_application.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/context/intake_application.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/context/track_application.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/diagnostics/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/diagnostics/provider_audit.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/diagnostics/provider_audit_export.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/diagnostics/replay_snapshot.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/diagnostics/replay_snapshot_io.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/diagnostics/replay_snapshot_validation.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/domain/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/domain/domain_pack_loader.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/domain/domain_pack_paths.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/domain/domain_pack_root.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/domain/profile_resolution.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/execution/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/execution/agent_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/execution/skill_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/chat_memory.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/database.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/dependency_status.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/infrastructure.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/knowledge_ingest.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/knowledge_memory.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/knowledge_postgres_search.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/knowledge_qdrant_search.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/knowledge_search.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/knowledge_terms.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/logging.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/project_memory_codec.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/project_memory_review_sql.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/project_memory_review_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/project_memory_sql.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/project_memory_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/project_memory_version_sql.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/project_memory_version_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/redis_client.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/run/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/run/repository.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/run/repository_memory.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/run/repository_sql.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/session/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/session/columns.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/session/repository.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/session/repository_memory.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/session/repository_sql.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/source/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/source/document_understanding_codec.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/source/library_persistence.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/source/ocr_provider.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/source/schema.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/source/text_extractor.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/sourcing/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/sourcing/instance_profile_adapter.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/sourcing/persistence.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/sourcing/provider.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/sourcing/provider_config.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/sourcing/provider_gateway.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/sourcing/provider_normalize.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/sourcing/provider_public.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/sourcing/provider_result.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/trace.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/infrastructure/vector_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/intent/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/intent/intent_and_escalation/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/intent/intent_and_escalation/decision.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/intent/intent_and_escalation/lexicon.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/intent/intent_and_escalation/preprocessing.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/intent/intent_and_escalation/signals.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/intent/intent_and_escalation_classifier.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/completion_capture.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/config.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/contracts.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/dashscope_provider.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/dashscope_streaming_provider.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/fallback_policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/intent_model_policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/llm_provider.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/model_router.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/native_streaming.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/provider_health.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/provider_health_probe.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/provider_health_snapshot.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/provider_health_source.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/provider_quota.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/provider_trace.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/provider_usage.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/replay_provider.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/llm/streaming_provider.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/analysis_route_policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/analysis_router_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/artifact_template_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/canvas/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/canvas/toolbar_actions.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/canvas_sourcing_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/decision_engine.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/canvas_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/field_definitions.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_action_resolution.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_actions.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_events.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_coverage.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_draft_payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_events.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_field_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_model_question_plan.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_next_actions_payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_payloads.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_progress_payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_question.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_question_lifecycle.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_question_plan_carrier.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_question_progress.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/intake_summary_artifact.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/orchestration.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/question_selection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/reasoning.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/shared.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/sourcing_actions.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/sourcing_events.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/sourcing_preview.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/sourcing_report.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/mode/state_transition.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/module_prompt_registry.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/observation.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/patch_preview_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/response_strategy_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/session_context_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/additive_search.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/analysis_entry.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/candidate_explainability.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/canvas_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/context_round.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/event_payloads.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/instance_db_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/internal_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/mcp_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/observation_payloads.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/observations.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/parameter_draft.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/provider_config_loader.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/provider_health.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/result_window.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/search_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/source_priority.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/sourcing/web_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/structured_prompt_context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/orchestration/track_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/project_memory/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/project_memory/decision.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/project_memory/extraction.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/project_memory/promotion.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/project_memory/recall.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/project_memory/runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/api.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/branching/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/branching/core.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/branching/policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/field_selection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/gap_detection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/hypothesis.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/planning.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/priority.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/question/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/question/builder.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/question/decision.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/question/extraction.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/question/planner.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/question/structured.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/readiness/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/readiness/core.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/readiness/scoring.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/shared.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/understanding_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/visible_response.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/reasoning/intake/visible_summary.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/session/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/session/checkpoint_manager.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/session/intake_session_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/session/models.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/source_ingestion/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/source_ingestion/artifacts.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/source_ingestion/chunk_storage.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/source_ingestion/knowledge_storage.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/source_ingestion/runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/source_ingestion/storage.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/session_archive_context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/session_archive_graph.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/session_archive_metrics.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/session_archive_summary.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/session_lifecycle_policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/session_message_policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/session_message_records.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/session_record_policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/session_replay.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/session_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/update/__init__.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/update/compatibility.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/update/planner.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/update/registry.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/update/versioning.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/user_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel.egg-info/dependency_links.txt +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel.egg-info/requires.txt +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel.egg-info/top_level.txt +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_action_payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_action_readiness.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_analysis_canvas_payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_analysis_context_patch.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_analysis_e2e.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_analysis_entry_decision.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_analysis_route_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_analysis_route_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_artifact_template_prompt.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_artifact_template_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_auth_exchange.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_auth_scope_guard.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_basics.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_builder_split_modules.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_business_hardcode_guard.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_canonical_composer_ui_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_canonical_mode_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_canonical_state_context_analysis.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_canonical_state_context_inputs.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_canonical_state_context_session.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_canonical_state_flow.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_canonical_state_payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_canonical_state_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_canvas_sourcing_contract_meta.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_capability_boundary.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_chat_api_alias.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_command_resolution_analysis_mode.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_compat_aliases.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_completion_response_builder.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_completion_selection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_context_authority_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_dashscope_streaming_provider.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_decision_engine.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_domain_pack_loader.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_endpoint_context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_flare_v1_patch_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_generic_domain_pack_options.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_guided_completion.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_infrastructure_helpers.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_infrastructure_knowledge.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_amount_quantity.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_answer.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_authority.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_authority_checkpoint.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_authority_hydration.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_authority_session.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_canonicalization.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_clarification.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_commit_context_patch.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_decision_rules.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_delivery_time.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_domain_context_options.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_entry_policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_extraction.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_extraction_extractors.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_extraction_merge.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_field_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_field_projection_entity.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_field_projection_payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_field_projection_source.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_field_scope.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_guided_confirmed_updates.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_guided_flags.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_guided_followup.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_guided_followup_work_item.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_guided_open_fields.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_guided_status.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_guided_summary.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_inputs.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_node_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_numeric.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_payload_updates.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_question_extraction.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_question_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_readiness.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_reasoning_priority.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_state_persistence.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_status.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_status_guided_session.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_status_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_status_schema.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_status_stage.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_visible_response.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intake_workflow_checkpoint.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intent_classifier_utils.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intent_escalation_classifier.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intent_escalation_override.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intent_escalation_pipeline.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intent_escalation_signal.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intent_resolution.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intent_retrieval.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intent_routing.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_intent_type_compat_aliases.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_kernel_alias_delegation.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_kernel_endpoint_handlers.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_kernel_endpoint_handlers_sourcing.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_kernel_facade_helpers.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_kernel_facade_turn_context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_kernel_intent_query_flow.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_kernel_mode_flow.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_kernel_route_execution_wrappers.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_kernel_session_intent_flow.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_list_events.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_llm_provider.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_llm_provider_fallback_policy.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_llm_provider_health_file.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_llm_provider_health_probe.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_llm_provider_health_snapshot.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_llm_provider_live.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_llm_provider_native_streaming.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_llm_provider_quota.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_llm_provider_streaming.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_llm_replay_provider.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_mode_orchestration_state_bridge.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_mode_reasoning.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_mode_resolution.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_mode_switch.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_model_router.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_module_prompt_registry.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_new_flow_guard.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orc15_guided_completion.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orc15_turn_act_classification.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orc16_main_chain_hardcode_boundary.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_checkpoint_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_followup_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_context_helpers.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_decision.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_result.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_runtime_state.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_state_context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_state_decision.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_state_entry.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_state_followup.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_state_intent.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_state_node.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_state_payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_status_state_unpack.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_trace.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_trace_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_orchestration_trace_steps.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_patch_contract.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_patch_preview_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_payload_enrichment.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_pln03_question_chooser.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_pln11_question_option_extraction.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_project_api.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_project_memory_promotion.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_project_memory_promotion_decision.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_project_memory_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_project_memory_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_project_memory_versions.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_prompting_analysis_instruction.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_prompting_requirement_intake.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_prompting_user_template_instruction.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_provider_audit.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_provider_audit_export.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_replay_snapshot.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_replay_snapshot_validation.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_request_identity.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_request_intent_resolution.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_requirement_intake_canvas_progress.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_requirement_intake_canvas_visibility.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_requirement_intake_continuation.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_requirement_intake_model_question_plan.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_requirement_intake_summary_route.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_response_intent_resolution.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_response_strategy_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_retrieval_aliases.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_retrieval_field_queries.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_retrieval_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_retrieval_query_builder.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_retrieval_search.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_run_api.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_run_sql_repository.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_run_store.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_session_api.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_session_archive_summary.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_session_context_persistence.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_session_intent.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_session_intent_fields.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_session_intent_small_talk.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_session_lifecycle_api.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_session_replay_api.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_session_sql_columns.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_session_sql_migration.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_session_sql_repository.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_source_ingestion_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_source_ingestion_ssot_acceptance.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_source_library.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_source_library_persistence_scope.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_source_text_extractor.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_additive_search.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_candidate_explainability.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_context_reuse.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_e2e.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_instance_profile_adapter.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_parameter_draft.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_preview_context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_provider.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_provider_adapters.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_provider_config_loader.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_provider_health.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_runtime_additive_search.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_search_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_sourcing_source_priority.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_stream_collect_completion.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_draft_completion.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_draft_finalize.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_draft_intake_canvas_sync.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_draft_phase.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_draft_post_completion.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_draft_prologue.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_event_emitter.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_intake_phase.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_mode_event_payload.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_mode_events.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_response_bootstrap.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_response_phases.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_response_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_response_transport.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_retrieval_phase.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_runtime_steps.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_streaming_structured_reasoning_projection.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_structured_prompt_context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_text_safety.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_track_prompt_context.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_track_runtime.py +0 -0
- {flare_kernel-0.2.14 → flare_kernel-0.2.15}/tests/test_update_plane.py +0 -0
|
@@ -29,6 +29,7 @@ from flare_kernel.router.streaming.draft.finalize import (
|
|
|
29
29
|
from flare_kernel.router.streaming.event_emitter import StreamingEventEmitter
|
|
30
30
|
from flare_kernel.runtime.context.analysis_application import build_context_patch_from_analysis
|
|
31
31
|
from flare_kernel.runtime.context.intake_application import build_context_patch_from_intake_commit
|
|
32
|
+
from flare_kernel.runtime.context.reasoning_application import build_context_patch_from_reasoning
|
|
32
33
|
from flare_kernel.runtime.orchestration.mode.intake_summary_artifact import (
|
|
33
34
|
build_model_authored_requirement_summary_event,
|
|
34
35
|
)
|
|
@@ -63,6 +64,18 @@ def _resolve_analysis_payload(
|
|
|
63
64
|
return {}
|
|
64
65
|
|
|
65
66
|
|
|
67
|
+
def _resolve_reasoning_result(runtime_snapshot: dict[str, Any]) -> dict[str, Any]:
|
|
68
|
+
payload = runtime_snapshot.get("payload") if isinstance(runtime_snapshot.get("payload"), dict) else {}
|
|
69
|
+
for candidate in (
|
|
70
|
+
payload.get("structured_reasoning"),
|
|
71
|
+
runtime_snapshot.get("structured_reasoning"),
|
|
72
|
+
runtime_snapshot.get("reasoning_result"),
|
|
73
|
+
):
|
|
74
|
+
if isinstance(candidate, dict):
|
|
75
|
+
return candidate
|
|
76
|
+
return {}
|
|
77
|
+
|
|
78
|
+
|
|
66
79
|
def _resolve_context_patch(
|
|
67
80
|
*,
|
|
68
81
|
runtime_snapshot: dict[str, Any],
|
|
@@ -71,6 +84,7 @@ def _resolve_context_patch(
|
|
|
71
84
|
) -> dict[str, Any]:
|
|
72
85
|
payload = runtime_snapshot.get("payload") if isinstance(runtime_snapshot.get("payload"), dict) else {}
|
|
73
86
|
context_patch = payload.get("context_patch") if isinstance(payload.get("context_patch"), dict) else {}
|
|
87
|
+
reasoning_patch = build_context_patch_from_reasoning(_resolve_reasoning_result(runtime_snapshot))
|
|
74
88
|
analysis_patch = build_context_patch_from_analysis(
|
|
75
89
|
_resolve_analysis_payload(
|
|
76
90
|
runtime_snapshot=runtime_snapshot,
|
|
@@ -82,7 +96,7 @@ def _resolve_context_patch(
|
|
|
82
96
|
orchestration_status=orchestration_status,
|
|
83
97
|
command=command,
|
|
84
98
|
)
|
|
85
|
-
return _merge_context_patches(context_patch, analysis_patch, intake_patch)
|
|
99
|
+
return _merge_context_patches(reasoning_patch, context_patch, analysis_patch, intake_patch)
|
|
86
100
|
|
|
87
101
|
|
|
88
102
|
def _is_requirement_summary_submission_turn(
|
|
@@ -21,6 +21,16 @@ def _as_list(value: Any) -> list[Any]:
|
|
|
21
21
|
return value if isinstance(value, list) else []
|
|
22
22
|
|
|
23
23
|
|
|
24
|
+
def _as_mapping(value: Any) -> dict[str, Any]:
|
|
25
|
+
return value if isinstance(value, dict) else {}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _coerce_confidence(value: Any) -> float | None:
|
|
29
|
+
if not isinstance(value, (int, float)):
|
|
30
|
+
return None
|
|
31
|
+
return max(0.0, min(1.0, float(value)))
|
|
32
|
+
|
|
33
|
+
|
|
24
34
|
def _normalize_claims(items: Any) -> list[dict[str, Any]]:
|
|
25
35
|
claims: list[dict[str, Any]] = []
|
|
26
36
|
for item in _as_list(items):
|
|
@@ -50,6 +60,66 @@ def _normalize_text_list(items: Any) -> list[str]:
|
|
|
50
60
|
return [_clean_text(item) for item in _as_list(items) if _clean_text(item)]
|
|
51
61
|
|
|
52
62
|
|
|
63
|
+
def _normalize_confirmed_field_items(result: dict[str, Any]) -> list[dict[str, Any]]:
|
|
64
|
+
extraction = _as_mapping(result.get("field_extraction"))
|
|
65
|
+
raw_items = extraction.get("confirmed_fields")
|
|
66
|
+
if raw_items is None:
|
|
67
|
+
raw_items = result.get("confirmed_fields")
|
|
68
|
+
if isinstance(raw_items, dict):
|
|
69
|
+
items = [{"field_key": key, "value": value} for key, value in raw_items.items()]
|
|
70
|
+
else:
|
|
71
|
+
items = _as_list(raw_items)
|
|
72
|
+
|
|
73
|
+
fields: list[dict[str, Any]] = []
|
|
74
|
+
seen: set[str] = set()
|
|
75
|
+
for item in items:
|
|
76
|
+
payload = item if isinstance(item, dict) else {}
|
|
77
|
+
field_key = _clean_text(
|
|
78
|
+
payload.get("field_key")
|
|
79
|
+
or payload.get("key")
|
|
80
|
+
or payload.get("field")
|
|
81
|
+
or payload.get("target_field_key")
|
|
82
|
+
)
|
|
83
|
+
value = _clean_text(payload.get("value") or payload.get("field_value"))
|
|
84
|
+
if not field_key or not value or field_key in seen:
|
|
85
|
+
continue
|
|
86
|
+
seen.add(field_key)
|
|
87
|
+
fields.append(
|
|
88
|
+
{
|
|
89
|
+
"field_key": field_key,
|
|
90
|
+
"value": value,
|
|
91
|
+
"source": _clean_text(payload.get("source")),
|
|
92
|
+
"evidence": _clean_text(payload.get("evidence") or payload.get("quote")),
|
|
93
|
+
"confidence": _coerce_confidence(payload.get("confidence")),
|
|
94
|
+
}
|
|
95
|
+
)
|
|
96
|
+
return fields
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def _facts_from_confirmed_fields(items: list[dict[str, Any]]) -> list[dict[str, Any]]:
|
|
100
|
+
facts: list[dict[str, Any]] = []
|
|
101
|
+
for item in items:
|
|
102
|
+
field_key = _clean_text(item.get("field_key"))
|
|
103
|
+
value = _clean_text(item.get("value"))
|
|
104
|
+
if not field_key or not value:
|
|
105
|
+
continue
|
|
106
|
+
facts.append(
|
|
107
|
+
{
|
|
108
|
+
"id": f"reasoning_field::{field_key}",
|
|
109
|
+
"text": f"{field_key}: {value}",
|
|
110
|
+
"source_id": _clean_text(item.get("source")),
|
|
111
|
+
"evidence_ids": [],
|
|
112
|
+
"confidence": item.get("confidence"),
|
|
113
|
+
"meta": {
|
|
114
|
+
"field_key": field_key,
|
|
115
|
+
"source": _clean_text(item.get("source")),
|
|
116
|
+
"evidence": _clean_text(item.get("evidence")),
|
|
117
|
+
},
|
|
118
|
+
}
|
|
119
|
+
)
|
|
120
|
+
return facts
|
|
121
|
+
|
|
122
|
+
|
|
53
123
|
def _normalize_evidence(result: dict[str, Any]) -> list[dict[str, Any]]:
|
|
54
124
|
metadata = result.get("metadata") if isinstance(result.get("metadata"), dict) else {}
|
|
55
125
|
raw_evidence = metadata.get("evidence") if isinstance(metadata.get("evidence"), list) else []
|
|
@@ -85,6 +155,16 @@ def build_context_patch_from_reasoning(reasoning_result: dict[str, Any] | None)
|
|
|
85
155
|
values = _normalize_text_list(result.get(source_key))
|
|
86
156
|
if values:
|
|
87
157
|
patch[target_key] = values
|
|
158
|
+
confirmed_field_items = _normalize_confirmed_field_items(result)
|
|
159
|
+
if confirmed_field_items:
|
|
160
|
+
patch["confirmed_fields"] = {
|
|
161
|
+
item["field_key"]: item["value"]
|
|
162
|
+
for item in confirmed_field_items
|
|
163
|
+
}
|
|
164
|
+
patch["facts"] = [
|
|
165
|
+
*(patch.get("facts") if isinstance(patch.get("facts"), list) else []),
|
|
166
|
+
*_facts_from_confirmed_fields(confirmed_field_items),
|
|
167
|
+
]
|
|
88
168
|
evidence = _normalize_evidence(result)
|
|
89
169
|
if evidence:
|
|
90
170
|
patch["evidence"] = evidence
|
{flare_kernel-0.2.14 → flare_kernel-0.2.15}/src/flare_kernel/runtime/context/session_context.py
RENAMED
|
@@ -155,7 +155,11 @@ def merge_session_context(
|
|
|
155
155
|
document_patch = build_context_patch_from_document(document_result)
|
|
156
156
|
track_patch = build_context_patch_from_track(track_result)
|
|
157
157
|
for key in _CONTEXT_DICT_KEYS:
|
|
158
|
-
base[key] = {
|
|
158
|
+
base[key] = {
|
|
159
|
+
**(base.get(key) if isinstance(base.get(key), dict) else {}),
|
|
160
|
+
**(reasoning_patch.get(key) if isinstance(reasoning_patch.get(key), dict) else {}),
|
|
161
|
+
**(patch.get(key) if isinstance(patch.get(key), dict) else {}),
|
|
162
|
+
}
|
|
159
163
|
for key in _CONTEXT_LIST_KEYS:
|
|
160
164
|
base[key] = _merge_list(base.get(key), patch.get(key))
|
|
161
165
|
for key in _CONTEXT_LIST_KEYS:
|
|
@@ -74,7 +74,7 @@ def enrich_intake_canvas_state(
|
|
|
74
74
|
model_plan=model_question_plan if isinstance(model_question_plan, list) else [],
|
|
75
75
|
)
|
|
76
76
|
del understanding_summary
|
|
77
|
-
canvas_content = build_intake_canvas_content(collected_rows=collected_rows)
|
|
77
|
+
canvas_content = build_intake_canvas_content(collected_rows=collected_rows, missing_rows=missing_rows)
|
|
78
78
|
|
|
79
79
|
versions = _replace_latest_content(canvas_state.get("versions"), canvas_content)
|
|
80
80
|
toolbar_actions = build_canvas_toolbar_actions(
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"""Prompt-ready requirement-intake Canvas content projection.
|
|
2
2
|
|
|
3
|
-
This module only formats canonical collected fields into reviewable
|
|
4
|
-
context. It must not ask new questions, decide readiness, or invent
|
|
5
|
-
business details.
|
|
3
|
+
This module only formats canonical collected/missing fields into reviewable
|
|
4
|
+
prompt context. It must not ask new questions, decide readiness, or invent
|
|
5
|
+
missing business details.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
from __future__ import annotations
|
|
@@ -12,6 +12,7 @@ from typing import Any
|
|
|
12
12
|
_CANVAS_TITLE = "需求梳理草稿"
|
|
13
13
|
_PROMPT_SECTION_TITLE = "完整提示词:"
|
|
14
14
|
_CONFIRMED_SECTION_TITLE = "已确认需求信息:"
|
|
15
|
+
_PENDING_SECTION_TITLE = "待确认需求信息:"
|
|
15
16
|
_RULES_SECTION_TITLE = "处理规则:"
|
|
16
17
|
_OUTPUT_SECTION_TITLE = "输出格式:"
|
|
17
18
|
|
|
@@ -33,6 +34,18 @@ def _confirmed_lines(rows: list[dict[str, Any]]) -> list[str]:
|
|
|
33
34
|
return [line for line in lines if line] or ["- 暂无已确认字段。"]
|
|
34
35
|
|
|
35
36
|
|
|
37
|
+
def _pending_lines(rows: list[dict[str, Any]]) -> list[str]:
|
|
38
|
+
lines = [_pending_row_line(row) for row in rows if isinstance(row, dict)]
|
|
39
|
+
return [line for line in lines if line] or ["- 暂无待确认字段。"]
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def _pending_row_line(row: dict[str, Any]) -> str:
|
|
43
|
+
label = _clean_text(row.get("label") or row.get("field_key"))
|
|
44
|
+
if not label:
|
|
45
|
+
return ""
|
|
46
|
+
return f"- {label}:待确认"
|
|
47
|
+
|
|
48
|
+
|
|
36
49
|
def _prompt_preamble() -> list[str]:
|
|
37
50
|
return [
|
|
38
51
|
"你是需求执行助手。请基于以下已确认需求信息推进后续任务;未明确的信息不要自行假设,请标记为“待确认”。",
|
|
@@ -56,14 +69,19 @@ def _prompt_output_format() -> list[str]:
|
|
|
56
69
|
]
|
|
57
70
|
|
|
58
71
|
|
|
59
|
-
def build_intake_canvas_content(
|
|
60
|
-
|
|
72
|
+
def build_intake_canvas_content(
|
|
73
|
+
*,
|
|
74
|
+
collected_rows: list[dict[str, Any]],
|
|
75
|
+
missing_rows: list[dict[str, Any]] | None = None,
|
|
76
|
+
) -> str:
|
|
77
|
+
"""Build a stable prompt-ready draft from canonical collected/missing fields.
|
|
61
78
|
|
|
62
79
|
Field rows are supplied by orchestration after normalization. This function
|
|
63
80
|
only renders them; no field coverage or workflow decisions belong here.
|
|
64
81
|
"""
|
|
65
82
|
|
|
66
83
|
rows = collected_rows if isinstance(collected_rows, list) else []
|
|
84
|
+
pending_rows = missing_rows if isinstance(missing_rows, list) else []
|
|
67
85
|
sections = [
|
|
68
86
|
_CANVAS_TITLE,
|
|
69
87
|
_PROMPT_SECTION_TITLE,
|
|
@@ -72,6 +90,9 @@ def build_intake_canvas_content(*, collected_rows: list[dict[str, Any]]) -> str:
|
|
|
72
90
|
_CONFIRMED_SECTION_TITLE,
|
|
73
91
|
*_confirmed_lines(rows),
|
|
74
92
|
"",
|
|
93
|
+
_PENDING_SECTION_TITLE,
|
|
94
|
+
*_pending_lines(pending_rows),
|
|
95
|
+
"",
|
|
75
96
|
_RULES_SECTION_TITLE,
|
|
76
97
|
*_prompt_rules(),
|
|
77
98
|
"",
|
|
@@ -15,6 +15,9 @@ from flare_kernel.runtime.orchestration.mode.field_definitions import (
|
|
|
15
15
|
_derive_field_lists,
|
|
16
16
|
_normalize_field_definitions,
|
|
17
17
|
)
|
|
18
|
+
from flare_kernel.runtime.orchestration.mode.intake_field_hydration import (
|
|
19
|
+
hydrate_intake_fields,
|
|
20
|
+
)
|
|
18
21
|
from flare_kernel.runtime.orchestration.mode.shared import (
|
|
19
22
|
_coerce_mapping,
|
|
20
23
|
_coerce_message_excerpt,
|
|
@@ -152,6 +155,15 @@ def build_intake_context(
|
|
|
152
155
|
**structured_reasoning,
|
|
153
156
|
"result_text": result_text_from_payload,
|
|
154
157
|
}
|
|
158
|
+
hydration = hydrate_intake_fields(
|
|
159
|
+
fields=fields,
|
|
160
|
+
sources=sources,
|
|
161
|
+
payload=payload,
|
|
162
|
+
field_definitions=field_definitions,
|
|
163
|
+
structured_reasoning=structured_reasoning,
|
|
164
|
+
)
|
|
165
|
+
fields = hydration["fields"]
|
|
166
|
+
sources = hydration["sources"]
|
|
155
167
|
question_context = _build_question_context(payload)
|
|
156
168
|
reasoning_state = {
|
|
157
169
|
"confirmed_fields": fields,
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"""Requirement-intake canonical field hydration."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def _clean_text(value: Any) -> str:
|
|
9
|
+
return " ".join(str(value or "").split()).strip()
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _coerce_mapping(value: Any) -> dict[str, Any]:
|
|
13
|
+
return value if isinstance(value, dict) else {}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _coerce_list(value: Any) -> list[Any]:
|
|
17
|
+
return value if isinstance(value, list) else []
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _has_value(value: Any) -> bool:
|
|
21
|
+
return value not in (None, "", [], {})
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def _allowed_field_keys(field_definitions: list[dict[str, Any]]) -> set[str]:
|
|
25
|
+
return {
|
|
26
|
+
field_key
|
|
27
|
+
for field_key in (
|
|
28
|
+
_clean_text(_coerce_mapping(item).get("key"))
|
|
29
|
+
for item in field_definitions
|
|
30
|
+
)
|
|
31
|
+
if field_key
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _field_candidates_from_mapping(
|
|
36
|
+
values: dict[str, Any],
|
|
37
|
+
*,
|
|
38
|
+
source: str,
|
|
39
|
+
) -> list[dict[str, Any]]:
|
|
40
|
+
candidates: list[dict[str, Any]] = []
|
|
41
|
+
for key, value in values.items():
|
|
42
|
+
field_key = _clean_text(key)
|
|
43
|
+
if field_key and _has_value(value):
|
|
44
|
+
candidates.append({"field_key": field_key, "value": value, "source": source})
|
|
45
|
+
return candidates
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def _session_context_candidates(payload: dict[str, Any]) -> list[dict[str, Any]]:
|
|
49
|
+
context = _coerce_mapping(payload.get("session_context") or payload.get("context"))
|
|
50
|
+
candidates = _field_candidates_from_mapping(
|
|
51
|
+
_coerce_mapping(context.get("confirmed_fields")),
|
|
52
|
+
source="session_context",
|
|
53
|
+
)
|
|
54
|
+
for artifact in _coerce_list(context.get("artifact_context")):
|
|
55
|
+
artifact_fields = _coerce_mapping(_coerce_mapping(artifact).get("fields"))
|
|
56
|
+
candidates.extend(_field_candidates_from_mapping(artifact_fields, source="artifact_context"))
|
|
57
|
+
return candidates
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def _structured_reasoning_candidates(structured_reasoning: dict[str, Any]) -> list[dict[str, Any]]:
|
|
61
|
+
extraction = _coerce_mapping(structured_reasoning.get("field_extraction"))
|
|
62
|
+
raw_confirmed = extraction.get("confirmed_fields")
|
|
63
|
+
if isinstance(raw_confirmed, dict):
|
|
64
|
+
return _field_candidates_from_mapping(raw_confirmed, source="structured_reasoning")
|
|
65
|
+
candidates: list[dict[str, Any]] = []
|
|
66
|
+
for item in _coerce_list(raw_confirmed):
|
|
67
|
+
payload = _coerce_mapping(item)
|
|
68
|
+
field_key = _clean_text(payload.get("field_key") or payload.get("key"))
|
|
69
|
+
value = payload.get("value") or payload.get("field_value")
|
|
70
|
+
if field_key and _has_value(value):
|
|
71
|
+
candidates.append(
|
|
72
|
+
{
|
|
73
|
+
"field_key": field_key,
|
|
74
|
+
"value": value,
|
|
75
|
+
"source": _clean_text(payload.get("source")) or "structured_reasoning",
|
|
76
|
+
"evidence": _clean_text(payload.get("evidence")),
|
|
77
|
+
"confidence": payload.get("confidence"),
|
|
78
|
+
}
|
|
79
|
+
)
|
|
80
|
+
return candidates
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def hydrate_intake_fields(
|
|
84
|
+
*,
|
|
85
|
+
fields: dict[str, Any],
|
|
86
|
+
sources: dict[str, Any],
|
|
87
|
+
payload: dict[str, Any],
|
|
88
|
+
field_definitions: list[dict[str, Any]],
|
|
89
|
+
structured_reasoning: dict[str, Any],
|
|
90
|
+
) -> dict[str, Any]:
|
|
91
|
+
"""Hydrate missing canonical fields from existing context before scoring."""
|
|
92
|
+
|
|
93
|
+
allowed_keys = _allowed_field_keys(field_definitions)
|
|
94
|
+
hydrated_fields = dict(fields)
|
|
95
|
+
hydrated_sources = dict(sources)
|
|
96
|
+
hydrated_keys: list[str] = []
|
|
97
|
+
for candidate in [
|
|
98
|
+
*_session_context_candidates(payload),
|
|
99
|
+
*_structured_reasoning_candidates(structured_reasoning),
|
|
100
|
+
]:
|
|
101
|
+
field_key = _clean_text(candidate.get("field_key"))
|
|
102
|
+
value = candidate.get("value")
|
|
103
|
+
if not field_key or field_key not in allowed_keys:
|
|
104
|
+
continue
|
|
105
|
+
if _has_value(hydrated_fields.get(field_key)) or not _has_value(value):
|
|
106
|
+
continue
|
|
107
|
+
hydrated_fields[field_key] = value
|
|
108
|
+
hydrated_sources[field_key] = {
|
|
109
|
+
"source": _clean_text(candidate.get("source")) or "context_hydration",
|
|
110
|
+
"evidence": _clean_text(candidate.get("evidence")),
|
|
111
|
+
"confidence": candidate.get("confidence"),
|
|
112
|
+
}
|
|
113
|
+
hydrated_keys.append(field_key)
|
|
114
|
+
return {
|
|
115
|
+
"fields": hydrated_fields,
|
|
116
|
+
"sources": hydrated_sources,
|
|
117
|
+
"hydrated_fields": hydrated_keys,
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
__all__ = ["hydrate_intake_fields"]
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"""Structured reasoning generation for kernel orchestration."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
from typing import Any, Awaitable, Callable
|
|
7
|
+
|
|
8
|
+
from flare_kernel.runtime.infrastructure.logging import get_logger
|
|
9
|
+
from flare_kernel.runtime.orchestration.structured_prompt_context import build_structured_prompt_context
|
|
10
|
+
from flare_kernel.runtime.orchestration.structured_reasoning_normalization import (
|
|
11
|
+
_clean_text,
|
|
12
|
+
_coerce_mapping,
|
|
13
|
+
_extract_json_object,
|
|
14
|
+
_normalize_structured_output,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
logger = get_logger("flare_kernel.runtime.orchestration.structured_reasoning")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def build_structured_reasoning_prompt(
|
|
21
|
+
*,
|
|
22
|
+
message: str,
|
|
23
|
+
mode_key: str,
|
|
24
|
+
payload: dict[str, Any],
|
|
25
|
+
retrieved_knowledge: list[dict[str, Any]],
|
|
26
|
+
instance_profile: dict[str, Any] | None,
|
|
27
|
+
) -> str:
|
|
28
|
+
compact_payload = build_structured_prompt_context(
|
|
29
|
+
message=message,
|
|
30
|
+
mode_key=mode_key,
|
|
31
|
+
payload=payload,
|
|
32
|
+
retrieved_knowledge=retrieved_knowledge,
|
|
33
|
+
instance_profile=instance_profile,
|
|
34
|
+
)
|
|
35
|
+
schema = {
|
|
36
|
+
"result_summary": "short summary of what the user wants",
|
|
37
|
+
"field_extraction": {
|
|
38
|
+
"confirmed_fields": [
|
|
39
|
+
{
|
|
40
|
+
"field_key": "nearest writable field_contract key",
|
|
41
|
+
"value": "grounded value from message/context/retrieved_knowledge",
|
|
42
|
+
"source": "message|known_fields|session_context|retrieved_knowledge",
|
|
43
|
+
"evidence": "short supporting quote or summary",
|
|
44
|
+
"confidence": 0.0,
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"hypothesis_inference": {"hypotheses": [{"id": "goal hypothesis", "score": 0.0, "rationale": "why"}]},
|
|
49
|
+
"field_activation": {"active_fields": ["question_target_key"]},
|
|
50
|
+
"gap_detection": {"candidate_information_gaps": [{"key": "question_target_key", "importance": 1.0, "reason": "why missing"}]},
|
|
51
|
+
"question_planner": {
|
|
52
|
+
"question_plan": [
|
|
53
|
+
{
|
|
54
|
+
"question_key": "specific information-gap key",
|
|
55
|
+
"target_field_keys": ["nearest writable field_contract key"],
|
|
56
|
+
"question_text": "user-facing follow-up question",
|
|
57
|
+
"rationale": "why this question improves the target artifact",
|
|
58
|
+
"expected_answer_type": "enum_or_text",
|
|
59
|
+
"priority": 1,
|
|
60
|
+
"blocking": False,
|
|
61
|
+
"options": [],
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"next_question": {
|
|
65
|
+
"question_key": "specific information-gap key",
|
|
66
|
+
"target_field_keys": ["nearest writable field_contract key"],
|
|
67
|
+
"question_text": "one best user-facing follow-up question",
|
|
68
|
+
"rationale": "why this question is next",
|
|
69
|
+
"expected_answer_type": "enum_or_text",
|
|
70
|
+
"priority": 1,
|
|
71
|
+
"blocking": False,
|
|
72
|
+
"options": [],
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
}
|
|
76
|
+
return (
|
|
77
|
+
"你是 FLARE 的结构化 reasoning 层,不是最终回答层。\n"
|
|
78
|
+
"你的任务是先理解用户目标,再产出一个可由系统校验和投影的 JSON 中间结果。\n"
|
|
79
|
+
"field_contracts 只定义可写入的字段 key/label/type,不定义用户问题和候选答案。"
|
|
80
|
+
"如果 message、known_fields、context_summary 或 retrieved_knowledge 已明确给出字段答案,"
|
|
81
|
+
"必须写入 field_extraction.confirmed_fields。"
|
|
82
|
+
"field_extraction.confirmed_fields 只允许使用 field_contracts 中存在的 key,"
|
|
83
|
+
"并且必须有 source/evidence;不能基于常识或偏好猜测。"
|
|
84
|
+
"已经能确认的字段不要再作为 question_plan 的问题目标。"
|
|
85
|
+
"你必须基于用户输入、已知字段和上下文生成 question_text。"
|
|
86
|
+
"如果 Input.track_context 存在,必须优先用 goal、workflow_steps、current_step_id、readiness 和 unknowns 判断当前轨道;"
|
|
87
|
+
"question_plan 不是字段清单,而是围绕最终目标和当前轨道的高价值信息缺口;"
|
|
88
|
+
"当中文量词与上下文对象轻微不一致、但上下文能唯一推导对象或动作时,按上下文校准为当前假设,"
|
|
89
|
+
"不要把量词口误升级成阻塞性二选一问题;"
|
|
90
|
+
"当用户已提供足以形成初步假设的信息时,不要把所有 missing_fields 都列为阻塞项,只选一个最能提升后续判断的问题作为 next_question。"
|
|
91
|
+
"question_key 表示更具体的信息缺口,target_field_keys 必须指向最接近的可写字段。"
|
|
92
|
+
"如果你的结果需要提出校准问题,必须放入 question_planner.next_question,不能只写入摘要正文。"
|
|
93
|
+
"优先选择真正提升当前交付质量的下一项信息缺口。"
|
|
94
|
+
"不要把未在 field_contracts、missing_fields 或 instance_profile 中声明的字段当成必填项。"
|
|
95
|
+
"blocking 只能在字段被明确标记为 blocker/required 或 missing_fields 明确列出时为 true。"
|
|
96
|
+
"question_plan 是可选的;只有当输入上下文明确需要批量计划时才输出多项计划。"
|
|
97
|
+
"options 不是必填默认值;只有当用户输入、已知字段、上下文、instance_profile 或检索证据能支撑明确候选答案时才输出。"
|
|
98
|
+
"不得为了填充 UI 候选项而编造选项;没有可靠来源时输出空数组。"
|
|
99
|
+
"不得输出“其他”“暂不确定”等占位选项;自定义输入由 UI 处理。"
|
|
100
|
+
"不要输出 Markdown,不要解释,只输出 JSON。\n"
|
|
101
|
+
f"JSON schema example: {json.dumps(schema, ensure_ascii=False, default=str)}\n"
|
|
102
|
+
f"Input: {json.dumps(compact_payload, ensure_ascii=False, default=str)}"
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
async def generate_structured_reasoning(
|
|
107
|
+
*,
|
|
108
|
+
trace_id: str,
|
|
109
|
+
session_id: str,
|
|
110
|
+
message: str,
|
|
111
|
+
mode_key: str,
|
|
112
|
+
payload: dict[str, Any],
|
|
113
|
+
retrieved_knowledge: list[dict[str, Any]],
|
|
114
|
+
instance_profile: dict[str, Any] | None,
|
|
115
|
+
generate_llm_completion_fn: Callable[..., Awaitable[Any]] | None,
|
|
116
|
+
) -> dict[str, Any]:
|
|
117
|
+
if not callable(generate_llm_completion_fn) or not _clean_text(message):
|
|
118
|
+
return {}
|
|
119
|
+
prompt = build_structured_reasoning_prompt(
|
|
120
|
+
message=message,
|
|
121
|
+
mode_key=mode_key,
|
|
122
|
+
payload=payload,
|
|
123
|
+
retrieved_knowledge=retrieved_knowledge,
|
|
124
|
+
instance_profile=instance_profile,
|
|
125
|
+
)
|
|
126
|
+
completion = await generate_llm_completion_fn(
|
|
127
|
+
prompt,
|
|
128
|
+
trace_id=trace_id,
|
|
129
|
+
session_id=session_id,
|
|
130
|
+
intent="structured_reasoning",
|
|
131
|
+
)
|
|
132
|
+
status = _clean_text(getattr(completion, "status", ""))
|
|
133
|
+
content = _clean_text(getattr(completion, "content", ""))
|
|
134
|
+
parsed = _extract_json_object(content)
|
|
135
|
+
normalized = _normalize_structured_output(parsed)
|
|
136
|
+
logger.info(
|
|
137
|
+
"structured_reasoning.generated trace_id=%s session_id=%s mode=%s status=%s has_question=%s",
|
|
138
|
+
trace_id,
|
|
139
|
+
session_id,
|
|
140
|
+
mode_key,
|
|
141
|
+
status,
|
|
142
|
+
bool(_coerce_mapping(_coerce_mapping(normalized.get("question_planner")).get("next_question")).get("question_text")),
|
|
143
|
+
)
|
|
144
|
+
if not normalized:
|
|
145
|
+
return {}
|
|
146
|
+
return {
|
|
147
|
+
**normalized,
|
|
148
|
+
"metadata": {
|
|
149
|
+
**_coerce_mapping(normalized.get("metadata")),
|
|
150
|
+
"provider_status": status,
|
|
151
|
+
"source": "llm_structured_reasoning",
|
|
152
|
+
},
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
__all__ = ["build_structured_reasoning_prompt", "generate_structured_reasoning"]
|