flare-kernel 0.2.8__tar.gz → 0.2.9__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.8 → flare_kernel-0.2.9}/PKG-INFO +1 -1
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/pyproject.toml +1 -1
- flare_kernel-0.2.9/src/flare_kernel/router/canonical/composer_ui.py +126 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/payload.py +14 -44
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/escalation/override.py +0 -2
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_constants/patch.py +1 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/mode/resolution.py +12 -2
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/draft/finalize.py +2 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/intake/phase.py +2 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel.egg-info/PKG-INFO +1 -1
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel.egg-info/SOURCES.txt +1 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_canonical_state_payload.py +8 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_flare_v1_patch_contract.py +2 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intent_escalation_classifier.py +3 -3
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intent_escalation_override.py +5 -4
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intent_escalation_pipeline.py +3 -3
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intent_resolution.py +2 -2
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_mode_resolution.py +17 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/README.md +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/setup.cfg +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/app.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/auth_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/kernel_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/list_event_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/mode.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/project_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/project_memory_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/run_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/session_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/update_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/list_event_broker.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/main.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/project_store.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/auth.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/auth_guard.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/chat.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/errors.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/list_events.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/project.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/run.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/session.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/session_list_events.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/update.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/analysis.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/checkpoint.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/context/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/context/analysis.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/context/inputs.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/context/session.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/context_authority.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/contract_support.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/flow.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/track_actions.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/completion/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/completion/analysis_policy.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/completion/analysis_result_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/completion/guided.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/completion/response_builder.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/completion/selection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/completion/stream_collect.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/context/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/context/endpoint.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/context/sourcing_preview.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/amount_quantity.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/answer.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/authority/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/authority/checkpoint.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/authority/core.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/authority/hydration.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/authority/session.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/canonicalization.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/clarification.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/decision_rules.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/delivery_time.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/entry_policy.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/extraction/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/extraction/core.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/extraction/extractors.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/extraction/merge.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/field_projection/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/field_projection/core.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/field_projection/entity.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/field_projection/payload.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/field_projection/source.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/field_scope.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/guided/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/guided/confirmed_updates.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/guided/flags.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/guided/followup.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/guided/followup_work_item.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/guided/open_fields.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/guided/status.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/guided/summary.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/inputs.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/node_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/numeric.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/payload_updates.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/readiness.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/state_persistence.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/status/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/status/chooser_stage.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/status/core.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/status/guided_session.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/status/projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/status/schema.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intake/workflow_checkpoint.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/classifier_utils.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/compat_aliases.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/escalation/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/escalation/pipeline.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/escalation/signal.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/routing.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/session_intent/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/session_intent/core.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/session_intent/fields.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/session_intent/small_talk.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_constants/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_constants/intake.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_constants/intent.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_endpoint_handlers/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_endpoint_handlers/health.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_endpoint_handlers/knowledge.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_endpoint_handlers/sourcing.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_endpoint_handlers/turn.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_facade/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_facade/canonical_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_facade/dependency_resolution.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_facade/flow.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_facade/orchestration.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_facade/payload_enrichment.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_facade/turn_context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_facade/utils.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_flow_bindings/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_flow_bindings/intent_query.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_flow_bindings/mode.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_flow_bindings/session_intent.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_request_pipeline/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_request_pipeline/action.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_request_pipeline/intake.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_request_pipeline/intent_query.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_request_pipeline/intent_signal.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_route/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_route/action.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_route/execution.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_route/run.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/kernel_route/stream.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/mode/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/mode/switch.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/next_actions_guard.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/action_readiness.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/actions.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/analysis_entry_decision.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/builder.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/checkpoint_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/context_helpers.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/core.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/decision.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/followup_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/result.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/runtime_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/state/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/state/context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/state/decision.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/state/entry.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/state/flow.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/state/followup.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/state/intent.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/state/node.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/state/payload.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/status/state/unpack.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/trace/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/trace/core.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/trace/projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/orchestration/trace/steps.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/patch_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/payload/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/payload/action.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/payload/analysis_canvas.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/payload/enrichment.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/prompting/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/prompting/artifact_template.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/prompting/context_blocks.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/prompting/core.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/prompting/requirement_intake.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/prompting/response_strategy.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/request/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/request/identity.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/request/intent_resolution.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/response_intent/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/response_intent/contracts.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/response_intent/document_output.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/response_intent/resolution.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/retrieval/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/retrieval/aliases.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/retrieval/field_queries.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/retrieval/projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/retrieval/query_builder.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/retrieval/search.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/source_library.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/draft/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/draft/completion.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/draft/phase.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/draft/phase_timing.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/draft/post_completion.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/draft/prologue.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/event_emitter.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/intake/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/mode/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/mode/event_payload.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/mode/events.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/response/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/response/bootstrap.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/response/builder.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/response/builder_transport.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/response/draft_phase.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/response/phase_groups.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/response/phases.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/response/runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/retrieval/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/retrieval/phase.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/runtime/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/runtime/sourcing_observations.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/runtime/steps.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/text_safety.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/run_store.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/auth/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/auth/exchange.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/auth/policy.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/auth/scope_guard.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/context/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/context/analysis_application.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/context/document_application.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/context/reasoning_application.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/context/session_context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/context/track_application.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/diagnostics/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/diagnostics/provider_audit.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/diagnostics/provider_audit_export.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/diagnostics/replay_snapshot.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/diagnostics/replay_snapshot_io.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/diagnostics/replay_snapshot_validation.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/domain/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/domain/domain_pack_loader.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/domain/profile_resolution.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/execution/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/execution/agent_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/execution/skill_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/chat_memory.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/database.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/dependency_status.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/infrastructure.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/knowledge_ingest.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/knowledge_memory.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/knowledge_postgres_search.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/knowledge_qdrant_search.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/knowledge_search.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/knowledge_terms.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/logging.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/project_memory_codec.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/project_memory_sql.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/project_memory_store.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/redis_client.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/run/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/run/repository.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/run/repository_memory.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/run/repository_sql.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/session/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/session/columns.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/session/repository.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/session/repository_memory.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/session/repository_sql.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/source/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/source/document_understanding_codec.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/source/library_persistence.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/source/schema.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/source/text_extractor.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/sourcing/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/sourcing/instance_profile_adapter.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/sourcing/persistence.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/sourcing/provider.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/sourcing/provider_config.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/sourcing/provider_gateway.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/sourcing/provider_normalize.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/sourcing/provider_public.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/sourcing/provider_result.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/trace.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/infrastructure/vector_store.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/intent/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/intent/intent_and_escalation/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/intent/intent_and_escalation/decision.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/intent/intent_and_escalation/lexicon.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/intent/intent_and_escalation/preprocessing.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/intent/intent_and_escalation/signals.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/intent/intent_and_escalation_classifier.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/completion_capture.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/config.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/contracts.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/dashscope_provider.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/dashscope_streaming_provider.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/fallback_policy.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/llm_provider.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/model_router.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/native_streaming.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/provider_health.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/provider_health_probe.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/provider_health_snapshot.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/provider_health_source.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/provider_quota.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/provider_trace.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/provider_usage.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/replay_provider.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/llm/streaming_provider.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/analysis_route_policy.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/analysis_router_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/artifact_template_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/canvas/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/canvas/toolbar_actions.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/canvas_sourcing_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/decision_engine.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/canvas_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/field_definitions.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_action_resolution.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_actions.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_canvas.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_content.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_events.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_coverage.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_draft_payload.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_events.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_field_projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_next_actions_payload.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_payloads.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_progress_payload.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_question.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_question_lifecycle.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/intake_question_progress.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/orchestration.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/question_selection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/reasoning.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/shared.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/sourcing_actions.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/sourcing_events.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/sourcing_preview.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/sourcing_report.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/mode/state_transition.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/module_prompt_registry.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/observation.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/response_strategy_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/session_context_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/additive_search.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/analysis_entry.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/candidate_explainability.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/canvas_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/context_round.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/event_payloads.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/instance_db_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/internal_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/mcp_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/observation_payloads.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/observations.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/parameter_draft.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/provider_config_loader.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/provider_health.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/result_window.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/search_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/source_priority.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/sourcing/web_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/structured_reasoning.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/orchestration/track_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/project_memory/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/project_memory/extraction.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/project_memory/recall.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/project_memory/runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/api.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/branching/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/branching/core.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/branching/policy.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/field_selection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/gap_detection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/hypothesis.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/planning.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/priority.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/question/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/question/builder.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/question/decision.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/question/extraction.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/question/planner.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/readiness/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/readiness/core.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/readiness/scoring.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/shared.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/understanding_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/visible_response.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/reasoning/intake/visible_summary.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/session/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/session/checkpoint_manager.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/session/intake_session_store.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/session/models.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/source_ingestion/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/source_ingestion/artifacts.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/source_ingestion/chunk_storage.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/source_ingestion/knowledge_storage.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/source_ingestion/runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/runtime/source_ingestion/storage.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/session_archive_context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/session_archive_graph.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/session_archive_metrics.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/session_archive_summary.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/session_lifecycle_policy.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/session_record_policy.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/session_replay.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/session_store.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/update/__init__.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/update/compatibility.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/update/planner.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/update/registry.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/update/versioning.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/user_store.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel.egg-info/dependency_links.txt +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel.egg-info/requires.txt +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel.egg-info/top_level.txt +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_action_payload.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_action_readiness.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_analysis_canvas_payload.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_analysis_context_patch.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_analysis_e2e.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_analysis_entry_decision.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_analysis_route_projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_analysis_route_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_artifact_template_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_auth_exchange.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_auth_scope_guard.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_basics.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_builder_split_modules.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_business_hardcode_guard.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_canonical_state_context_analysis.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_canonical_state_context_inputs.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_canonical_state_context_session.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_canonical_state_flow.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_canonical_state_projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_canvas_sourcing_contract_meta.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_chat_api_alias.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_command_resolution_analysis_mode.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_compat_aliases.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_completion_response_builder.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_completion_selection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_context_authority_projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_dashscope_streaming_provider.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_decision_engine.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_domain_pack_loader.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_endpoint_context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_guided_completion.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_infrastructure_helpers.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_infrastructure_knowledge.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_amount_quantity.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_answer.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_authority.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_authority_checkpoint.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_authority_hydration.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_authority_session.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_canonicalization.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_clarification.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_decision_rules.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_delivery_time.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_domain_context_options.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_entry_policy.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_extraction.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_extraction_extractors.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_extraction_merge.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_field_projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_field_projection_entity.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_field_projection_payload.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_field_projection_source.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_field_scope.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_guided_confirmed_updates.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_guided_flags.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_guided_followup.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_guided_followup_work_item.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_guided_open_fields.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_guided_status.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_guided_summary.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_inputs.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_node_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_numeric.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_payload_updates.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_question_projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_readiness.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_reasoning_priority.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_state_persistence.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_status.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_status_guided_session.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_status_projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_status_schema.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_status_stage.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_visible_response.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intake_workflow_checkpoint.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intent_classifier_utils.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intent_escalation_signal.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intent_retrieval.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intent_routing.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_intent_type_compat_aliases.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_kernel_alias_delegation.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_kernel_endpoint_handlers.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_kernel_endpoint_handlers_sourcing.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_kernel_facade_helpers.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_kernel_facade_turn_context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_kernel_intent_query_flow.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_kernel_mode_flow.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_kernel_route_execution_wrappers.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_kernel_session_intent_flow.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_list_events.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_llm_provider.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_llm_provider_fallback_policy.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_llm_provider_health_file.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_llm_provider_health_probe.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_llm_provider_health_snapshot.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_llm_provider_live.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_llm_provider_native_streaming.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_llm_provider_quota.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_llm_provider_streaming.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_llm_replay_provider.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_mode_orchestration_state_bridge.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_mode_reasoning.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_mode_switch.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_model_router.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_module_prompt_registry.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_new_flow_guard.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_checkpoint_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_followup_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_context_helpers.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_decision.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_result.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_runtime_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_state_context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_state_decision.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_state_entry.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_state_followup.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_state_intent.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_state_node.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_state_payload.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_status_state_unpack.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_trace.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_trace_projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_orchestration_trace_steps.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_patch_contract.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_payload_enrichment.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_pln03_question_chooser.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_pln11_question_option_extraction.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_project_api.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_project_memory_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_project_memory_store.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_prompting_analysis_instruction.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_prompting_requirement_intake.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_prompting_user_template_instruction.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_provider_audit.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_provider_audit_export.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_replay_snapshot.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_replay_snapshot_validation.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_request_identity.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_request_intent_resolution.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_requirement_intake_canvas_state.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_response_intent_resolution.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_response_strategy_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_retrieval_aliases.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_retrieval_field_queries.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_retrieval_projection.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_retrieval_query_builder.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_retrieval_search.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_run_api.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_run_sql_repository.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_run_store.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_session_api.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_session_archive_summary.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_session_context_persistence.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_session_intent.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_session_intent_fields.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_session_intent_small_talk.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_session_lifecycle_api.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_session_replay_api.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_session_sql_columns.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_session_sql_migration.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_session_sql_repository.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_source_ingestion_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_source_ingestion_ssot_acceptance.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_source_library.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_source_library_persistence_scope.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_source_text_extractor.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_additive_search.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_candidate_explainability.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_context_reuse.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_e2e.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_instance_profile_adapter.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_parameter_draft.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_preview_context.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_provider.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_provider_adapters.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_provider_config_loader.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_provider_health.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_runtime_additive_search.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_search_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_sourcing_source_priority.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_stream_collect_completion.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_draft_completion.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_draft_finalize.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_draft_phase.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_draft_post_completion.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_draft_prologue.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_event_emitter.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_intake_phase.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_mode_event_payload.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_mode_events.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_response_bootstrap.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_response_phases.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_response_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_response_transport.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_retrieval_phase.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_streaming_runtime_steps.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_text_safety.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_track_runtime.py +0 -0
- {flare_kernel-0.2.8 → flare_kernel-0.2.9}/tests/test_update_plane.py +0 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"""Backend-owned composer UI projection helpers.
|
|
2
|
+
|
|
3
|
+
The frontend renders this projection; it must not infer chooser visibility,
|
|
4
|
+
recommendation visibility, or dismissal semantics from local keys.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _trim(value: Any) -> str:
|
|
13
|
+
return str(value or "").strip()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _is_requirement_intake_mode(value: str) -> bool:
|
|
17
|
+
return _trim(value) == "requirement_intake"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _clean_list(values: list[Any]) -> list[str]:
|
|
21
|
+
return [_trim(item) for item in values if _trim(item)]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def _next_action_keys(next_actions: list[Any]) -> list[str]:
|
|
25
|
+
keys: list[str] = []
|
|
26
|
+
for item in next_actions:
|
|
27
|
+
if not isinstance(item, dict):
|
|
28
|
+
continue
|
|
29
|
+
key = _trim(item.get("action_key") or item.get("type"))
|
|
30
|
+
if key:
|
|
31
|
+
keys.append(key)
|
|
32
|
+
return keys
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _resolve_chooser_visibility(
|
|
36
|
+
*,
|
|
37
|
+
activated_mode: str,
|
|
38
|
+
stage_key: str,
|
|
39
|
+
status_key: str,
|
|
40
|
+
current_question: dict[str, Any] | None,
|
|
41
|
+
required_missing: list[Any],
|
|
42
|
+
) -> tuple[str, bool]:
|
|
43
|
+
if _trim(activated_mode) == "auto":
|
|
44
|
+
return "none", False
|
|
45
|
+
if stage_key == "requirement_intake" and isinstance(current_question, dict):
|
|
46
|
+
return "question", True
|
|
47
|
+
if _is_requirement_intake_mode(activated_mode) and isinstance(current_question, dict):
|
|
48
|
+
return "question", True
|
|
49
|
+
if stage_key == "requirement_intake" and status_key in {"collecting", "blocked"} and bool(required_missing):
|
|
50
|
+
return "question", True
|
|
51
|
+
return "none", False
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _build_dismiss_token(
|
|
55
|
+
*,
|
|
56
|
+
chooser_kind: str,
|
|
57
|
+
stage_key: str,
|
|
58
|
+
status_key: str,
|
|
59
|
+
current_question: dict[str, Any] | None,
|
|
60
|
+
required_missing: list[Any],
|
|
61
|
+
) -> str:
|
|
62
|
+
if chooser_kind == "none":
|
|
63
|
+
return ""
|
|
64
|
+
question = current_question if isinstance(current_question, dict) else {}
|
|
65
|
+
question_ref = _trim(
|
|
66
|
+
question.get("question_revision")
|
|
67
|
+
or question.get("revision")
|
|
68
|
+
or question.get("question_id")
|
|
69
|
+
or question.get("field_key")
|
|
70
|
+
)
|
|
71
|
+
missing_ref = ",".join(_clean_list(required_missing))
|
|
72
|
+
parts = [chooser_kind, question_ref or missing_ref, _trim(stage_key), _trim(status_key)]
|
|
73
|
+
return "|".join([part for part in parts if part])
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def build_composer_ui_projection(
|
|
77
|
+
*,
|
|
78
|
+
activated_mode: str,
|
|
79
|
+
mode_source: str,
|
|
80
|
+
stage_key: str,
|
|
81
|
+
status_key: str,
|
|
82
|
+
current_question: dict[str, Any] | None,
|
|
83
|
+
required_missing: list[Any],
|
|
84
|
+
next_actions: list[Any],
|
|
85
|
+
) -> dict[str, Any]:
|
|
86
|
+
question_field_key = _trim((current_question or {}).get("field_key"))
|
|
87
|
+
primary_missing_field = _trim(required_missing[0] if required_missing else "")
|
|
88
|
+
chooser_kind, chooser_visible = _resolve_chooser_visibility(
|
|
89
|
+
activated_mode=activated_mode,
|
|
90
|
+
stage_key=stage_key,
|
|
91
|
+
status_key=status_key,
|
|
92
|
+
current_question=current_question,
|
|
93
|
+
required_missing=required_missing,
|
|
94
|
+
)
|
|
95
|
+
dismiss_token = _build_dismiss_token(
|
|
96
|
+
chooser_kind=chooser_kind,
|
|
97
|
+
stage_key=stage_key,
|
|
98
|
+
status_key=status_key,
|
|
99
|
+
current_question=current_question,
|
|
100
|
+
required_missing=required_missing,
|
|
101
|
+
)
|
|
102
|
+
chooser_state = {
|
|
103
|
+
"kind": chooser_kind,
|
|
104
|
+
"visible": chooser_visible,
|
|
105
|
+
"requires_explicit_user_action": chooser_visible,
|
|
106
|
+
"dismissible": chooser_visible,
|
|
107
|
+
"dismiss_token": dismiss_token,
|
|
108
|
+
"keep_mode_on_submit": chooser_visible,
|
|
109
|
+
"source": "authoritative",
|
|
110
|
+
"current_field_key": question_field_key or primary_missing_field,
|
|
111
|
+
"blocking_fields": _clean_list(required_missing),
|
|
112
|
+
"next_action_keys": _next_action_keys(next_actions),
|
|
113
|
+
}
|
|
114
|
+
active_manual_mode = _trim(activated_mode) not in {"", "auto"}
|
|
115
|
+
return {
|
|
116
|
+
"active_mode": _trim(activated_mode) or "auto",
|
|
117
|
+
"mode_source": _trim(mode_source),
|
|
118
|
+
"source": "authoritative",
|
|
119
|
+
"recommendation_panel": {
|
|
120
|
+
"visible": not active_manual_mode,
|
|
121
|
+
"source": "authoritative",
|
|
122
|
+
"reason": "active_mode" if active_manual_mode else "auto_mode",
|
|
123
|
+
},
|
|
124
|
+
"composer_chooser": chooser_state,
|
|
125
|
+
"chooser_state": chooser_state,
|
|
126
|
+
}
|
|
@@ -15,6 +15,7 @@ from flare_kernel.router.canonical.contract_support import (
|
|
|
15
15
|
resolve_authoritative_runtime_payload,
|
|
16
16
|
resolve_canvas_analysis_payload,
|
|
17
17
|
)
|
|
18
|
+
from flare_kernel.router.canonical.composer_ui import build_composer_ui_projection
|
|
18
19
|
from flare_kernel.router.canonical.context_authority import build_context_authority_projection
|
|
19
20
|
from flare_kernel.router.canonical.track_actions import build_track_next_actions
|
|
20
21
|
from flare_kernel.router.intake.status.projection import (
|
|
@@ -27,10 +28,6 @@ from flare_kernel.router.intent.compat_aliases import (
|
|
|
27
28
|
resolve_domain_relevance,
|
|
28
29
|
)
|
|
29
30
|
|
|
30
|
-
def _is_requirement_intake_mode(value: str) -> bool:
|
|
31
|
-
return str(value or "").strip() == "requirement_intake"
|
|
32
|
-
|
|
33
|
-
|
|
34
31
|
def _normalize_canonical_mode(value: str) -> str:
|
|
35
32
|
normalized = str(value or "auto").strip().lower().replace("-", "_").replace(" ", "_")
|
|
36
33
|
return normalized or "auto"
|
|
@@ -116,45 +113,16 @@ def build_canonical_payload(
|
|
|
116
113
|
module_prompt_registry = coerce_action_list(authoritative_runtime_payload.get("module_prompt_registry"))
|
|
117
114
|
current_question = authoritative_current_question
|
|
118
115
|
next_actions = authoritative_next_actions
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
chooser_kind = "question"
|
|
130
|
-
chooser_visible = True
|
|
131
|
-
elif (
|
|
132
|
-
_is_requirement_intake_mode(activated_mode)
|
|
133
|
-
and isinstance(current_question, dict)
|
|
134
|
-
):
|
|
135
|
-
chooser_kind = "question"
|
|
136
|
-
chooser_visible = True
|
|
137
|
-
elif (
|
|
138
|
-
stage_key == "requirement_intake"
|
|
139
|
-
and status_key in {"collecting", "blocked"}
|
|
140
|
-
and bool(required_missing)
|
|
141
|
-
):
|
|
142
|
-
chooser_kind = "question"
|
|
143
|
-
chooser_visible = True
|
|
144
|
-
chooser_state = {
|
|
145
|
-
"kind": chooser_kind,
|
|
146
|
-
"visible": chooser_visible,
|
|
147
|
-
"requires_explicit_user_action": chooser_visible,
|
|
148
|
-
"source": "authoritative",
|
|
149
|
-
"current_field_key": question_field_key or primary_missing_field,
|
|
150
|
-
"blocking_fields": [str(item) for item in required_missing if str(item).strip()],
|
|
151
|
-
"next_action_keys": [
|
|
152
|
-
str(item.get("action_key") or item.get("type") or "").strip()
|
|
153
|
-
for item in next_actions
|
|
154
|
-
if isinstance(item, dict)
|
|
155
|
-
and str(item.get("action_key") or item.get("type") or "").strip()
|
|
156
|
-
],
|
|
157
|
-
}
|
|
116
|
+
composer_ui = build_composer_ui_projection(
|
|
117
|
+
activated_mode=activated_mode,
|
|
118
|
+
mode_source=mode_source,
|
|
119
|
+
stage_key=stage_key,
|
|
120
|
+
status_key=status_key,
|
|
121
|
+
current_question=current_question,
|
|
122
|
+
required_missing=required_missing,
|
|
123
|
+
next_actions=next_actions,
|
|
124
|
+
)
|
|
125
|
+
chooser_state = composer_ui["chooser_state"]
|
|
158
126
|
round_projection = build_round_projection(
|
|
159
127
|
intake_session_id=intake_session_id,
|
|
160
128
|
stage_key=stage_key,
|
|
@@ -216,7 +184,7 @@ def build_canonical_payload(
|
|
|
216
184
|
}
|
|
217
185
|
assistant_reply_text = str(assistant_text or "")
|
|
218
186
|
normalized_command = str(command or "").strip().lower()
|
|
219
|
-
if
|
|
187
|
+
if activated_mode == "requirement_intake" and normalized_command not in {"implement", "apply"}:
|
|
220
188
|
assistant_reply_text = ""
|
|
221
189
|
|
|
222
190
|
return {
|
|
@@ -245,6 +213,7 @@ def build_canonical_payload(
|
|
|
245
213
|
"stage": stage_key,
|
|
246
214
|
"status": status_key,
|
|
247
215
|
"chooser_state": chooser_state,
|
|
216
|
+
"composer_ui": composer_ui,
|
|
248
217
|
"intake_session_id": intake_session_id,
|
|
249
218
|
"intake_session_state": intake_session_state,
|
|
250
219
|
"intake_session_completed": intake_session_completed,
|
|
@@ -279,6 +248,7 @@ def build_canonical_payload(
|
|
|
279
248
|
"followup_question": followup_question,
|
|
280
249
|
"question_decision": question_decision,
|
|
281
250
|
"next_actions": authoritative_next_actions,
|
|
251
|
+
"composer_ui": composer_ui,
|
|
282
252
|
"track_result": track_result,
|
|
283
253
|
"response_strategy_result": response_strategy_result,
|
|
284
254
|
"module_prompt_registry": module_prompt_registry,
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/intent/escalation/override.py
RENAMED
|
@@ -73,8 +73,6 @@ def apply_escalation_mode_override(
|
|
|
73
73
|
resolved_intent = "requirement_intake"
|
|
74
74
|
elif not str(resolved_intent or "").strip() or str(resolved_intent).strip() == "default":
|
|
75
75
|
resolved_intent = "requirement_intake"
|
|
76
|
-
resolved_mode = "requirement_intake"
|
|
77
|
-
mode_source = "intent_and_escalation_classifier"
|
|
78
76
|
intent_source = "intent_and_escalation_classifier"
|
|
79
77
|
intent_confidence = max(float(intent_confidence or 0.0), max(0.0, min(1.0, classifier_confidence)))
|
|
80
78
|
classifier_reason = str(escalation_signal.get("reason") or "").strip()
|
|
@@ -130,6 +130,15 @@ def _has_source_grounding_route(req: KernelRequest) -> bool:
|
|
|
130
130
|
route = str(source_grounding.get("route") or "").strip()
|
|
131
131
|
return source_grounding.get("active") is True and route == "source_grounded_answer"
|
|
132
132
|
|
|
133
|
+
|
|
134
|
+
def _resolve_mode_from_inferred_intent(resolved_intent: str) -> tuple[str, str]:
|
|
135
|
+
if not resolved_intent:
|
|
136
|
+
return "", ""
|
|
137
|
+
if resolved_intent == "requirement_intake":
|
|
138
|
+
return "default", "intent_suggestion"
|
|
139
|
+
return resolved_intent, "intent"
|
|
140
|
+
|
|
141
|
+
|
|
133
142
|
def resolve_request_mode(
|
|
134
143
|
req: KernelRequest,
|
|
135
144
|
resolved_intent: str,
|
|
@@ -211,7 +220,8 @@ def resolve_request_mode(
|
|
|
211
220
|
return current_mode, "current_hint"
|
|
212
221
|
|
|
213
222
|
normalized_resolved_intent = normalize_mode_candidate_fn(resolved_intent)
|
|
214
|
-
|
|
215
|
-
|
|
223
|
+
inferred_mode, inferred_source = _resolve_mode_from_inferred_intent(normalized_resolved_intent)
|
|
224
|
+
if inferred_source:
|
|
225
|
+
return inferred_mode, inferred_source
|
|
216
226
|
|
|
217
227
|
return "default", "fallback"
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/streaming/draft/finalize.py
RENAMED
|
@@ -127,6 +127,7 @@ def iter_canonical_finalize_events(
|
|
|
127
127
|
"track_result",
|
|
128
128
|
"response_strategy_result",
|
|
129
129
|
"module_prompt_registry",
|
|
130
|
+
"composer_ui",
|
|
130
131
|
"analysis",
|
|
131
132
|
"observation",
|
|
132
133
|
"capabilities.field_retrieval",
|
|
@@ -149,6 +150,7 @@ def iter_canonical_finalize_events(
|
|
|
149
150
|
"track_result": canonical.get("track_result"),
|
|
150
151
|
"response_strategy_result": canonical.get("response_strategy_result"),
|
|
151
152
|
"module_prompt_registry": canonical.get("module_prompt_registry"),
|
|
153
|
+
"composer_ui": canonical.get("composer_ui"),
|
|
152
154
|
"analysis": canonical.get("analysis"),
|
|
153
155
|
"canvas_analysis_payload": analysis_payload,
|
|
154
156
|
"analysis_payload": analysis_payload,
|
|
@@ -50,6 +50,7 @@ def iter_intake_state_events(
|
|
|
50
50
|
"track_result",
|
|
51
51
|
"response_strategy_result",
|
|
52
52
|
"module_prompt_registry",
|
|
53
|
+
"composer_ui",
|
|
53
54
|
],
|
|
54
55
|
payload={
|
|
55
56
|
"mode_key": early_state.get("mode_key"),
|
|
@@ -66,6 +67,7 @@ def iter_intake_state_events(
|
|
|
66
67
|
"track_result": early_state.get("track_result"),
|
|
67
68
|
"response_strategy_result": early_state.get("response_strategy_result"),
|
|
68
69
|
"module_prompt_registry": early_state.get("module_prompt_registry"),
|
|
70
|
+
"composer_ui": early_state.get("composer_ui"),
|
|
69
71
|
"canvas_analysis_payload": early_state.get("canvas_analysis_payload"),
|
|
70
72
|
"analysis_payload": early_state.get("analysis_payload"),
|
|
71
73
|
},
|
|
@@ -51,6 +51,7 @@ src/flare_kernel/router/api/update.py
|
|
|
51
51
|
src/flare_kernel/router/canonical/__init__.py
|
|
52
52
|
src/flare_kernel/router/canonical/analysis.py
|
|
53
53
|
src/flare_kernel/router/canonical/checkpoint.py
|
|
54
|
+
src/flare_kernel/router/canonical/composer_ui.py
|
|
54
55
|
src/flare_kernel/router/canonical/context_authority.py
|
|
55
56
|
src/flare_kernel/router/canonical/contract_support.py
|
|
56
57
|
src/flare_kernel/router/canonical/flow.py
|
|
@@ -57,6 +57,10 @@ def test_canonical_payload_uses_question_chooser_when_current_question_exists()
|
|
|
57
57
|
chooser_state = canonical["primary_flow"]["chooser_state"]
|
|
58
58
|
assert chooser_state["kind"] == "question"
|
|
59
59
|
assert chooser_state["visible"] is True
|
|
60
|
+
assert chooser_state["dismissible"] is True
|
|
61
|
+
assert chooser_state["dismiss_token"]
|
|
62
|
+
assert canonical["composer_ui"]["composer_chooser"] == chooser_state
|
|
63
|
+
assert canonical["composer_ui"]["recommendation_panel"]["visible"] is False
|
|
60
64
|
assert canonical["primary_flow"]["round_state"] == "completed"
|
|
61
65
|
assert canonical["primary_flow"]["round_id"] == "intake_1"
|
|
62
66
|
assert canonical["question_decision"] == {}
|
|
@@ -90,6 +94,8 @@ def test_canonical_payload_stops_stale_runtime_question_after_intake_completed()
|
|
|
90
94
|
assert canonical["current_question"] is None
|
|
91
95
|
assert canonical["next_actions"] == []
|
|
92
96
|
assert canonical["primary_flow"]["chooser_state"]["visible"] is False
|
|
97
|
+
assert canonical["composer_ui"]["composer_chooser"]["visible"] is False
|
|
98
|
+
assert canonical["composer_ui"]["composer_chooser"]["dismiss_token"] == ""
|
|
93
99
|
|
|
94
100
|
|
|
95
101
|
def test_canonical_payload_hides_chooser_when_no_question_and_ready() -> None:
|
|
@@ -101,6 +107,7 @@ def test_canonical_payload_hides_chooser_when_no_question_and_ready() -> None:
|
|
|
101
107
|
chooser_state = canonical["primary_flow"]["chooser_state"]
|
|
102
108
|
assert chooser_state["kind"] == "none"
|
|
103
109
|
assert chooser_state["visible"] is False
|
|
110
|
+
assert canonical["composer_ui"]["composer_chooser"]["visible"] is False
|
|
104
111
|
assert canonical["primary_flow"]["round_state"] == "completed"
|
|
105
112
|
assert canonical["primary_flow"]["round_completed"] is True
|
|
106
113
|
|
|
@@ -296,6 +303,7 @@ def test_canonical_payload_uses_track_decision_as_next_actions_fallback() -> Non
|
|
|
296
303
|
assert canonical["next_actions"][0]["payload"]["blocking_gaps"] == ["scope"]
|
|
297
304
|
assert canonical["next_actions"][0]["payload"]["non_blocking_gaps"] == ["timeline"]
|
|
298
305
|
assert canonical["assistant_reply"]["text"] == ""
|
|
306
|
+
assert canonical["composer_ui"]["recommendation_panel"]["visible"] is True
|
|
299
307
|
|
|
300
308
|
|
|
301
309
|
def test_canonical_payload_keeps_empty_orchestrated_reply_as_system_notice() -> None:
|
|
@@ -169,6 +169,7 @@ def test_stream_emits_patch_event_with_single_final_frame() -> None:
|
|
|
169
169
|
assert all(item.get("client_request_id") == "req_stream_001" for item in parsed)
|
|
170
170
|
final_payload = finals[0].get("payload") or {}
|
|
171
171
|
assert "primary_flow" in final_payload
|
|
172
|
+
assert "composer_ui" in final_payload
|
|
172
173
|
assert "intent_state" in final_payload
|
|
173
174
|
assert "assistant_reply" in final_payload
|
|
174
175
|
assert isinstance(final_payload.get("primary_flow", {}).get("intake_session_id"), str)
|
|
@@ -176,6 +177,7 @@ def test_stream_emits_patch_event_with_single_final_frame() -> None:
|
|
|
176
177
|
assert "checkpoint" in (finals[0].get("patch_scope") or [])
|
|
177
178
|
assert "session" in (finals[0].get("patch_scope") or [])
|
|
178
179
|
assert "analysis" in (finals[0].get("patch_scope") or [])
|
|
180
|
+
assert "composer_ui" in (finals[0].get("patch_scope") or [])
|
|
179
181
|
assert isinstance(final_payload.get("analysis"), dict)
|
|
180
182
|
assert isinstance((final_payload.get("analysis") or {}).get("readiness"), dict)
|
|
181
183
|
assert isinstance(((final_payload.get("analysis") or {}).get("readiness") or {}).get("blocking_fields"), list)
|
|
@@ -208,7 +208,7 @@ def test_classifier_marks_analysis_running_when_generate_analysis_command() -> N
|
|
|
208
208
|
assert result.conversation_intent_state == "analysis_running"
|
|
209
209
|
|
|
210
210
|
|
|
211
|
-
def
|
|
211
|
+
def test_kernel_mode_override_keeps_classifier_as_intent_suggestion() -> None:
|
|
212
212
|
resolved = _apply_escalation_mode_override(
|
|
213
213
|
command="send_message",
|
|
214
214
|
resolved_intent="default",
|
|
@@ -236,8 +236,8 @@ def test_kernel_mode_override_uses_intent_and_escalation_classifier() -> None:
|
|
|
236
236
|
|
|
237
237
|
assert resolved_intent == "requirement_intake"
|
|
238
238
|
assert intent_source == "intent_and_escalation_classifier"
|
|
239
|
-
assert resolved_mode == "
|
|
240
|
-
assert mode_source == "
|
|
239
|
+
assert resolved_mode == "default"
|
|
240
|
+
assert mode_source == "fallback"
|
|
241
241
|
assert intent_confidence >= 0.86
|
|
242
242
|
assert "建议进入梳理候选态" in intent_reason
|
|
243
243
|
|
|
@@ -5,7 +5,7 @@ from flare_kernel.router.intent.escalation.override import (
|
|
|
5
5
|
)
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
def
|
|
8
|
+
def test_apply_escalation_mode_override_keeps_default_mode() -> None:
|
|
9
9
|
resolved = apply_escalation_mode_override(
|
|
10
10
|
command="send_message",
|
|
11
11
|
resolved_intent="default",
|
|
@@ -32,8 +32,8 @@ def test_apply_escalation_mode_override_promotes_default_mode() -> None:
|
|
|
32
32
|
default_intent_escalation_policy={"auto_mode_override_min_confidence": 0.6},
|
|
33
33
|
)
|
|
34
34
|
assert resolved[0] == "requirement_intake"
|
|
35
|
-
assert resolved[4] == "
|
|
36
|
-
assert resolved[5] == "
|
|
35
|
+
assert resolved[4] == "default"
|
|
36
|
+
assert resolved[5] == "fallback"
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
def test_apply_escalation_mode_override_accepts_domain_relevance_signal_alias() -> None:
|
|
@@ -62,4 +62,5 @@ def test_apply_escalation_mode_override_accepts_domain_relevance_signal_alias()
|
|
|
62
62
|
},
|
|
63
63
|
default_intent_escalation_policy={"auto_mode_override_min_confidence": 0.6},
|
|
64
64
|
)
|
|
65
|
-
assert resolved[
|
|
65
|
+
assert resolved[0] == "requirement_intake"
|
|
66
|
+
assert resolved[4] == "default"
|
|
@@ -52,7 +52,7 @@ def test_merge_intent_and_escalation_signal_applies_missing_fields() -> None:
|
|
|
52
52
|
assert merged["session_intent_stage"] == "clarification_in_progress"
|
|
53
53
|
|
|
54
54
|
|
|
55
|
-
def
|
|
55
|
+
def test_apply_escalation_mode_override_keeps_default_mode() -> None:
|
|
56
56
|
resolved = apply_escalation_mode_override(
|
|
57
57
|
command="send_message",
|
|
58
58
|
resolved_intent="default",
|
|
@@ -79,5 +79,5 @@ def test_apply_escalation_mode_override_promotes_default_mode() -> None:
|
|
|
79
79
|
default_intent_escalation_policy={"auto_mode_override_min_confidence": 0.6},
|
|
80
80
|
)
|
|
81
81
|
assert resolved[0] == "requirement_intake"
|
|
82
|
-
assert resolved[4] == "
|
|
83
|
-
assert resolved[5] == "
|
|
82
|
+
assert resolved[4] == "default"
|
|
83
|
+
assert resolved[5] == "fallback"
|
|
@@ -144,8 +144,8 @@ def test_resolve_request_mode_without_manual_or_current_uses_resolved_intent() -
|
|
|
144
144
|
resolved_mode, mode_source = _resolve_request_mode(request, resolved_intent)
|
|
145
145
|
|
|
146
146
|
assert resolved_intent == "requirement_intake"
|
|
147
|
-
assert resolved_mode == "
|
|
148
|
-
assert mode_source == "
|
|
147
|
+
assert resolved_mode == "default"
|
|
148
|
+
assert mode_source == "intent_suggestion"
|
|
149
149
|
|
|
150
150
|
|
|
151
151
|
def test_resolve_request_mode_keeps_active_intake_chain_when_auto_mode() -> None:
|
|
@@ -83,6 +83,23 @@ def test_resolve_request_mode_falls_back_to_resolved_intent() -> None:
|
|
|
83
83
|
assert source == "intent"
|
|
84
84
|
|
|
85
85
|
|
|
86
|
+
def test_resolve_request_mode_keeps_requirement_intake_intent_as_suggestion() -> None:
|
|
87
|
+
req = KernelRequest(intent="default", payload={})
|
|
88
|
+
resolved_mode, source = resolve_request_mode(
|
|
89
|
+
req,
|
|
90
|
+
resolved_intent="requirement_intake",
|
|
91
|
+
resolve_command_fn=lambda _r: "send_message",
|
|
92
|
+
should_continue_active_intake_fn=lambda _r, _c: False,
|
|
93
|
+
resolve_intent_override_fn=lambda _r: "",
|
|
94
|
+
resolve_manual_mode_fn=lambda _r: "",
|
|
95
|
+
resolve_current_mode_fn=lambda _r: "",
|
|
96
|
+
resolve_explicit_intent_fn=lambda _r: "",
|
|
97
|
+
normalize_mode_candidate_fn=lambda v: "requirement_intake" if v == "requirement_intake" else "",
|
|
98
|
+
)
|
|
99
|
+
assert resolved_mode == "default"
|
|
100
|
+
assert source == "intent_suggestion"
|
|
101
|
+
|
|
102
|
+
|
|
86
103
|
def test_resolve_request_mode_prefers_manual_hint_over_inferred_intent() -> None:
|
|
87
104
|
req = KernelRequest(intent="default", manual_mode="requirement_intake", current_mode="requirement_intake", payload={})
|
|
88
105
|
resolved_mode, source = resolve_request_mode(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/contracts/project_memory_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/api/session_list_events.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/context/__init__.py
RENAMED
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/context/analysis.py
RENAMED
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/context/inputs.py
RENAMED
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/context/session.py
RENAMED
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/context_authority.py
RENAMED
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/contract_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/canonical/track_actions.py
RENAMED
|
File without changes
|
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/completion/analysis_policy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/completion/response_builder.py
RENAMED
|
File without changes
|
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/completion/stream_collect.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flare_kernel-0.2.8 → flare_kernel-0.2.9}/src/flare_kernel/router/context/sourcing_preview.py
RENAMED
|
File without changes
|