flare-kernel 0.2.6__tar.gz → 0.2.7__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.6 → flare_kernel-0.2.7}/PKG-INFO +1 -1
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/pyproject.toml +1 -1
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_facade/dependency_resolution.py +3 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_facade/flow.py +12 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_facade/turn_context.py +5 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_route/run.py +9 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/prompting/context_blocks.py +45 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/prompting/core.py +2 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/draft/completion.py +9 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/project_memory/__init__.py +6 -0
- flare_kernel-0.2.7/src/flare_kernel/runtime/project_memory/runtime.py +144 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel.egg-info/PKG-INFO +1 -1
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel.egg-info/SOURCES.txt +1 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_kernel_facade_turn_context.py +51 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_project_memory_runtime.py +47 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_prompting_analysis_instruction.py +21 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/README.md +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/setup.cfg +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/app.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/contracts/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/contracts/context.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/contracts/kernel_contract.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/contracts/mode.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/contracts/project_contract.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/contracts/project_memory_contract.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/contracts/session_contract.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/main.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/project_store.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/api/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/api/chat.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/api/errors.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/api/project.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/api/session.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/analysis.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/checkpoint.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/context/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/context/analysis.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/context/inputs.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/context/session.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/contract_support.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/flow.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/completion/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/completion/guided.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/completion/response_builder.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/completion/selection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/context/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/context/endpoint.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/context/sourcing_preview.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/amount_quantity.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/answer.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/authority/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/authority/checkpoint.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/authority/core.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/authority/hydration.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/authority/session.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/canonicalization.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/clarification.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/decision_rules.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/deployment_delivery.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/entry_policy.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/extraction/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/extraction/core.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/extraction/extractors.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/extraction/merge.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/field_projection/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/field_projection/core.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/field_projection/entity.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/field_projection/payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/field_projection/source.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/field_scope.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/guided/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/guided/confirmed_updates.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/guided/flags.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/guided/followup.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/guided/followup_work_item.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/guided/open_fields.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/guided/status.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/guided/summary.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/inputs.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/node_state.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/numeric.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/payload_updates.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/readiness.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/state_persistence.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/status/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/status/chooser_stage.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/status/core.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/status/guided_session.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/status/projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/status/schema.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intake/workflow_checkpoint.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/classifier_utils.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/compat_aliases.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/escalation/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/escalation/override.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/escalation/pipeline.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/escalation/signal.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/routing.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/session_intent/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/session_intent/core.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/session_intent/fields.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/intent/session_intent/small_talk.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_constants/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_constants/intake.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_constants/intent.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_constants/patch.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_endpoint_handlers/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_endpoint_handlers/health.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_endpoint_handlers/knowledge.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_endpoint_handlers/sourcing.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_endpoint_handlers/turn.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_facade/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_facade/canonical_state.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_facade/orchestration.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_facade/payload_enrichment.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_facade/utils.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_flow_bindings/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_flow_bindings/intent_query.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_flow_bindings/mode.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_flow_bindings/session_intent.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_request_pipeline/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_request_pipeline/action.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_request_pipeline/intake.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_request_pipeline/intent_query.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_request_pipeline/intent_signal.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_route/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_route/action.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_route/execution.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_route/stream.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/mode/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/mode/resolution.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/mode/switch.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/next_actions_guard.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/actions.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/builder.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/checkpoint_state.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/context.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/context_helpers.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/core.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/decision.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/followup_state.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/result.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/runtime_state.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/state/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/state/context.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/state/decision.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/state/entry.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/state/flow.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/state/followup.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/state/intent.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/state/node.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/state/payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/status/state/unpack.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/trace/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/trace/core.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/trace/projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/orchestration/trace/steps.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/patch_contract.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/payload/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/payload/action.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/payload/analysis_canvas.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/payload/enrichment.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/prompting/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/prompting/response_strategy.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/request/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/request/identity.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/request/intent_resolution.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/retrieval/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/retrieval/aliases.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/retrieval/field_queries.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/retrieval/projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/retrieval/query_builder.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/retrieval/search.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/source_library.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/draft/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/draft/finalize.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/draft/phase.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/draft/phase_timing.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/draft/post_completion.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/draft/prologue.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/event_emitter.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/intake/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/intake/phase.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/mode/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/mode/event_payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/mode/events.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/response/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/response/bootstrap.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/response/builder.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/response/builder_transport.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/response/draft_phase.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/response/phase_groups.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/response/phases.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/response/runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/retrieval/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/retrieval/phase.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/runtime/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/runtime/steps.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/text_safety.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/context/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/context/document_application.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/context/reasoning_application.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/context/session_context.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/context/track_application.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/domain/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/domain/domain_pack_loader.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/domain/profile_resolution.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/execution/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/execution/agent_runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/execution/skill_runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/chat_memory.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/database.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/dependency_status.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/infrastructure.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/knowledge_ingest.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/knowledge_memory.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/knowledge_postgres_search.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/knowledge_qdrant_search.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/knowledge_search.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/knowledge_terms.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/logging.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/project_memory_codec.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/project_memory_sql.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/project_memory_store.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/redis_client.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/session/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/session/repository.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/session/repository_memory.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/source/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/source/library_persistence.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/source/text_extractor.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/sourcing/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/sourcing/persistence.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/sourcing/provider.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/trace.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/infrastructure/vector_store.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/intent/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/intent/intent_and_escalation/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/intent/intent_and_escalation/decision.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/intent/intent_and_escalation/lexicon.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/intent/intent_and_escalation/preprocessing.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/intent/intent_and_escalation/signals.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/intent/intent_and_escalation_classifier.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/llm/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/llm/llm_provider.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/llm/model_router.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/analysis_router_runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/canvas_sourcing_contract.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/decision_engine.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/orchestration.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/plan/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/plan/canvas.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/plan/core.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/plan/followup.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/plan/payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/plan/question.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/plan/question_steps.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/plan/session.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/plan/stage.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/plan/summary.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/plan/trace.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/reasoning.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode/runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode_orchestration_plan_question.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/mode_orchestration_plan_question_steps.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/observation.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/response_strategy_runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/session_context_runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/sourcing/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/sourcing/event_payloads.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/sourcing/search_runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/structured_reasoning.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/orchestration/track_runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/project_memory/extraction.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/project_memory/recall.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/api.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/branching/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/branching/core.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/branching/policy.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/context.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/field_selection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/gap_detection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/hypothesis.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/planning.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/priority.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/question/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/question/builder.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/question/extraction.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/question/planner.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/readiness/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/readiness/core.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/readiness/scoring.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/shared.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/understanding_state.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/reasoning/intake/visible_response.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/session/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/session/checkpoint_manager.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/session/intake_session_store.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/session/models.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/source_ingestion/__init__.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/source_ingestion/artifacts.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/source_ingestion/chunk_storage.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/source_ingestion/knowledge_storage.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/source_ingestion/runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/source_ingestion/storage.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/session_record_policy.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/session_store.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/user_store.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel.egg-info/dependency_links.txt +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel.egg-info/requires.txt +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel.egg-info/top_level.txt +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_action_payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_analysis_canvas_payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_analysis_route_projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_basics.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_builder_split_modules.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_business_hardcode_guard.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_canonical_state_context_analysis.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_canonical_state_context_inputs.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_canonical_state_context_session.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_canonical_state_flow.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_canonical_state_payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_canonical_state_projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_canvas_sourcing_contract_meta.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_chat_api_alias.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_command_resolution_analysis_mode.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_compat_aliases.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_completion_response_builder.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_completion_selection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_decision_engine.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_domain_pack_loader.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_endpoint_context.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_flare_v1_patch_contract.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_guided_completion.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_infrastructure_helpers.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_infrastructure_knowledge.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_amount_quantity.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_answer.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_authority.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_authority_checkpoint.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_authority_hydration.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_authority_session.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_canonicalization.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_clarification.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_decision_rules.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_deployment_delivery.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_domain_context_options.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_entry_policy.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_extraction.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_extraction_extractors.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_extraction_merge.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_field_projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_field_projection_entity.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_field_projection_payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_field_projection_source.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_field_scope.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_guided_confirmed_updates.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_guided_flags.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_guided_followup.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_guided_followup_work_item.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_guided_open_fields.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_guided_status.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_guided_summary.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_inputs.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_node_state.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_numeric.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_payload_updates.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_readiness.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_reasoning_priority.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_state_persistence.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_status.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_status_guided_session.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_status_projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_status_schema.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_status_stage.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intake_workflow_checkpoint.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intent_classifier_utils.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intent_escalation_classifier.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intent_escalation_override.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intent_escalation_pipeline.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intent_escalation_signal.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intent_resolution.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intent_retrieval.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intent_routing.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_intent_type_compat_aliases.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_kernel_alias_delegation.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_kernel_endpoint_handlers.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_kernel_endpoint_handlers_sourcing.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_kernel_facade_helpers.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_kernel_intent_query_flow.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_kernel_mode_flow.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_kernel_route_execution_wrappers.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_kernel_session_intent_flow.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_llm_provider.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_mode_orchestration_plan_canvas_saved_content.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_mode_orchestration_plan_finalize.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_mode_orchestration_plan_runtime_payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_mode_orchestration_state_bridge.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_mode_reasoning.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_mode_resolution.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_mode_switch.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_model_router.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_new_flow_guard.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_checkpoint_state.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_followup_state.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_context.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_context_helpers.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_decision.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_result.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_runtime_state.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_state_context.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_state_decision.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_state_entry.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_state_followup.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_state_intent.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_state_node.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_state_payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_status_state_unpack.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_trace.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_trace_projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_orchestration_trace_steps.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_patch_contract.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_payload_enrichment.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_project_api.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_project_memory_store.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_request_identity.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_request_intent_resolution.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_response_strategy_runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_retrieval_aliases.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_retrieval_field_queries.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_retrieval_projection.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_retrieval_query_builder.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_retrieval_search.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_session_api.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_session_context_persistence.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_session_intent.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_session_intent_fields.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_session_intent_small_talk.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_source_ingestion_runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_source_ingestion_ssot_acceptance.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_source_library.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_source_library_persistence_scope.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_source_text_extractor.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_sourcing_provider.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_sourcing_search_runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_draft_completion.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_draft_finalize.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_draft_phase.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_draft_post_completion.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_draft_prologue.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_event_emitter.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_intake_phase.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_mode_event_payload.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_mode_events.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_response_bootstrap.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_response_phases.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_response_runtime.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_retrieval_phase.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_streaming_runtime_steps.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_text_safety.py +0 -0
- {flare_kernel-0.2.6 → flare_kernel-0.2.7}/tests/test_track_runtime.py +0 -0
|
@@ -156,6 +156,7 @@ def resolve_turn_context_dependencies(
|
|
|
156
156
|
build_structured_search_results_fn: Any,
|
|
157
157
|
generate_llm_completion_fn: Any,
|
|
158
158
|
resolve_analysis_route_fn: Any,
|
|
159
|
+
build_project_memory_context_layer_fn: Any,
|
|
159
160
|
kernel_attr_fn: Callable[[str, Any], Any],
|
|
160
161
|
defaults: dict[str, Any],
|
|
161
162
|
) -> dict[str, Any]:
|
|
@@ -202,6 +203,8 @@ def resolve_turn_context_dependencies(
|
|
|
202
203
|
or kernel_attr_fn("generate_llm_completion", defaults["generate_llm_completion_fn"]),
|
|
203
204
|
"resolve_analysis_route_fn": resolve_analysis_route_fn
|
|
204
205
|
or kernel_attr_fn("resolve_analysis_route_from_runtime", defaults["resolve_analysis_route_fn"]),
|
|
206
|
+
"build_project_memory_context_layer_fn": build_project_memory_context_layer_fn
|
|
207
|
+
or kernel_attr_fn("build_project_memory_context_layer", defaults["build_project_memory_context_layer_fn"]),
|
|
205
208
|
}
|
|
206
209
|
|
|
207
210
|
|
|
@@ -51,6 +51,7 @@ async def prepare_kernel_turn_context_flow(
|
|
|
51
51
|
generate_llm_completion_fn: Callable[..., Any] | None = None,
|
|
52
52
|
search_web_sources_fn: Callable[..., list[dict[str, Any]]] | None = None,
|
|
53
53
|
resolve_analysis_route_fn: Callable[..., dict[str, Any]] | None = None,
|
|
54
|
+
build_project_memory_context_layer_fn: Callable[..., dict[str, Any]] | None = None,
|
|
54
55
|
) -> dict[str, Any]:
|
|
55
56
|
"""Assemble the turn context consumed by kernel run/action/stream handlers."""
|
|
56
57
|
trace_id = resolve_trace_id_fn(req.trace_id)
|
|
@@ -143,8 +144,18 @@ async def prepare_kernel_turn_context_flow(
|
|
|
143
144
|
"confidence": 0.0,
|
|
144
145
|
}
|
|
145
146
|
|
|
147
|
+
project_memory_recall = {}
|
|
148
|
+
if callable(build_project_memory_context_layer_fn):
|
|
149
|
+
project_memory_recall = build_project_memory_context_layer_fn(
|
|
150
|
+
project_id=project_id,
|
|
151
|
+
user_id=user_id,
|
|
152
|
+
query=raw_message,
|
|
153
|
+
)
|
|
154
|
+
|
|
146
155
|
enriched_payload = enrich_payload_fn(req, resolved_mode=resolved_mode, retrieved_knowledge=retrieved_knowledge)
|
|
147
156
|
if isinstance(enriched_payload, dict):
|
|
157
|
+
if isinstance(project_memory_recall, dict) and project_memory_recall:
|
|
158
|
+
enriched_payload["project_memory_recall"] = project_memory_recall
|
|
148
159
|
enriched_payload["analysis_route"] = analysis_route
|
|
149
160
|
if not _has_question_answer(enriched_payload):
|
|
150
161
|
structured_reasoning = await generate_structured_reasoning(
|
|
@@ -244,6 +255,7 @@ async def prepare_kernel_turn_context_flow(
|
|
|
244
255
|
"effective_command": effective_command,
|
|
245
256
|
"structured_retrieved_knowledge": structured_retrieved_knowledge,
|
|
246
257
|
"analysis_route": analysis_route,
|
|
258
|
+
"project_memory_recall": project_memory_recall,
|
|
247
259
|
}
|
|
248
260
|
|
|
249
261
|
|
{flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/kernel_facade/turn_context.py
RENAMED
|
@@ -57,6 +57,7 @@ from flare_kernel.router.text_safety import (
|
|
|
57
57
|
from flare_kernel.runtime.orchestration.analysis_router_runtime import (
|
|
58
58
|
resolve_analysis_route as resolve_analysis_route_from_runtime,
|
|
59
59
|
)
|
|
60
|
+
from flare_kernel.runtime.project_memory import build_project_memory_context_layer
|
|
60
61
|
|
|
61
62
|
|
|
62
63
|
async def _prepare_kernel_turn_context(
|
|
@@ -86,6 +87,7 @@ async def _prepare_kernel_turn_context(
|
|
|
86
87
|
generate_llm_completion_fn=None,
|
|
87
88
|
search_web_sources_fn=None,
|
|
88
89
|
resolve_analysis_route_fn=None,
|
|
90
|
+
build_project_memory_context_layer_fn=None,
|
|
89
91
|
) -> dict[str, Any]:
|
|
90
92
|
turn_context_deps = resolve_turn_context_dependencies(
|
|
91
93
|
resolve_trace_id_fn=resolve_trace_id_fn,
|
|
@@ -111,6 +113,7 @@ async def _prepare_kernel_turn_context(
|
|
|
111
113
|
build_structured_search_results_fn=build_structured_search_results_fn,
|
|
112
114
|
generate_llm_completion_fn=generate_llm_completion_fn,
|
|
113
115
|
resolve_analysis_route_fn=resolve_analysis_route_fn,
|
|
116
|
+
build_project_memory_context_layer_fn=build_project_memory_context_layer_fn,
|
|
114
117
|
kernel_attr_fn=_kernel_attr,
|
|
115
118
|
defaults={
|
|
116
119
|
"resolve_trace_id_fn": resolve_trace_id,
|
|
@@ -136,6 +139,7 @@ async def _prepare_kernel_turn_context(
|
|
|
136
139
|
"build_structured_search_results_fn": build_structured_search_results_from_intake_status,
|
|
137
140
|
"generate_llm_completion_fn": generate_llm_completion,
|
|
138
141
|
"resolve_analysis_route_fn": resolve_analysis_route_from_runtime,
|
|
142
|
+
"build_project_memory_context_layer_fn": build_project_memory_context_layer,
|
|
139
143
|
},
|
|
140
144
|
)
|
|
141
145
|
return await prepare_kernel_turn_context_flow(
|
|
@@ -164,6 +168,7 @@ async def _prepare_kernel_turn_context(
|
|
|
164
168
|
generate_llm_completion_fn=turn_context_deps["generate_llm_completion_fn"],
|
|
165
169
|
search_web_sources_fn=search_web_sources_fn,
|
|
166
170
|
resolve_analysis_route_fn=turn_context_deps["resolve_analysis_route_fn"],
|
|
171
|
+
build_project_memory_context_layer_fn=turn_context_deps["build_project_memory_context_layer_fn"],
|
|
167
172
|
)
|
|
168
173
|
|
|
169
174
|
|
|
@@ -6,6 +6,7 @@ from typing import Any
|
|
|
6
6
|
|
|
7
7
|
from flare_kernel.contracts import KernelRequest, KernelResponse
|
|
8
8
|
from flare_kernel.runtime import generate_llm_completion, get_logger, persist_memory_record
|
|
9
|
+
from flare_kernel.runtime.project_memory import persist_project_memory_from_runtime
|
|
9
10
|
from flare_kernel.router.completion.response_builder import (
|
|
10
11
|
apply_completion_content_policy as apply_completion_content_policy_from_router,
|
|
11
12
|
build_kernel_success_response as build_kernel_success_response_from_router,
|
|
@@ -117,6 +118,14 @@ async def build_kernel_run_response(
|
|
|
117
118
|
model=completion.model,
|
|
118
119
|
provider_status=completion.status,
|
|
119
120
|
)
|
|
121
|
+
project_memory_record = persist_project_memory_from_runtime(
|
|
122
|
+
project_id=project_id,
|
|
123
|
+
user_id=user_id,
|
|
124
|
+
source_session_id=session_id,
|
|
125
|
+
runtime_snapshot=runtime_snapshot,
|
|
126
|
+
)
|
|
127
|
+
if project_memory_record:
|
|
128
|
+
memory_record.update(project_memory_record)
|
|
120
129
|
has_llm_content = bool(str(content_text or "").strip())
|
|
121
130
|
apply_completion_content_policy_from_router(
|
|
122
131
|
orchestration_status=orchestration_status,
|
{flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/prompting/context_blocks.py
RENAMED
|
@@ -69,6 +69,31 @@ def _format_recent_turns(turns: Any, *, limit: int) -> str:
|
|
|
69
69
|
return " || ".join(parts)
|
|
70
70
|
|
|
71
71
|
|
|
72
|
+
def _format_project_memories(memories: Any, *, limit: int) -> str:
|
|
73
|
+
"""Format recalled Project Memory records for prompt context.
|
|
74
|
+
|
|
75
|
+
Args:
|
|
76
|
+
memories: Recalled memory records.
|
|
77
|
+
limit: Maximum number of memory records to include.
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
Compact Project Memory text block.
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
if not isinstance(memories, list):
|
|
84
|
+
return ""
|
|
85
|
+
parts: list[str] = []
|
|
86
|
+
for item in memories[:limit]:
|
|
87
|
+
if not isinstance(item, dict):
|
|
88
|
+
continue
|
|
89
|
+
memory_type = _clean_context_text(item.get("memory_type"))
|
|
90
|
+
content = _clean_context_text(item.get("content"))
|
|
91
|
+
if not content:
|
|
92
|
+
continue
|
|
93
|
+
parts.append(f"{memory_type}: {content}" if memory_type else content)
|
|
94
|
+
return "; ".join(parts)
|
|
95
|
+
|
|
96
|
+
|
|
72
97
|
def _append_session_context_prompt_parts(prompt_parts: list[str], payload: dict[str, Any]) -> None:
|
|
73
98
|
session_context = payload.get("session_context")
|
|
74
99
|
if not isinstance(session_context, dict) or not session_context:
|
|
@@ -93,6 +118,25 @@ def _append_session_context_prompt_parts(prompt_parts: list[str], payload: dict[
|
|
|
93
118
|
prompt_parts.append(f"session_context_recent_turns: {recent_turns}")
|
|
94
119
|
|
|
95
120
|
|
|
121
|
+
def _append_project_memory_prompt_parts(prompt_parts: list[str], payload: dict[str, Any]) -> None:
|
|
122
|
+
"""Append project-level recalled memory to prompt parts.
|
|
123
|
+
|
|
124
|
+
Args:
|
|
125
|
+
prompt_parts: Mutable prompt line list.
|
|
126
|
+
payload: Enriched kernel payload.
|
|
127
|
+
|
|
128
|
+
Returns:
|
|
129
|
+
None.
|
|
130
|
+
"""
|
|
131
|
+
|
|
132
|
+
recall = payload.get("project_memory_recall")
|
|
133
|
+
if not isinstance(recall, dict) or not recall:
|
|
134
|
+
return
|
|
135
|
+
memories = _format_project_memories(recall.get("memories"), limit=5)
|
|
136
|
+
if memories:
|
|
137
|
+
prompt_parts.append(f"project_memory: {memories}")
|
|
138
|
+
|
|
139
|
+
|
|
96
140
|
def _append_track_prompt_parts(prompt_parts: list[str], payload: dict[str, Any]) -> None:
|
|
97
141
|
track = payload.get("track_result")
|
|
98
142
|
if not isinstance(track, dict) or not track:
|
|
@@ -123,6 +167,7 @@ def _append_understanding_summary_prompt_part(prompt_parts: list[str], payload:
|
|
|
123
167
|
|
|
124
168
|
|
|
125
169
|
__all__ = [
|
|
170
|
+
"_append_project_memory_prompt_parts",
|
|
126
171
|
"_append_session_context_prompt_parts",
|
|
127
172
|
"_append_track_prompt_parts",
|
|
128
173
|
"_append_understanding_summary_prompt_part",
|
|
@@ -7,6 +7,7 @@ from typing import Any, Callable
|
|
|
7
7
|
|
|
8
8
|
from flare_kernel.contracts import KernelRequest
|
|
9
9
|
from flare_kernel.router.prompting.context_blocks import (
|
|
10
|
+
_append_project_memory_prompt_parts,
|
|
10
11
|
_append_session_context_prompt_parts,
|
|
11
12
|
_append_track_prompt_parts,
|
|
12
13
|
_append_understanding_summary_prompt_part,
|
|
@@ -100,6 +101,7 @@ def build_prompt(
|
|
|
100
101
|
if product_name:
|
|
101
102
|
prompt_parts.append(f"product_name: {product_name}")
|
|
102
103
|
_append_session_context_prompt_parts(prompt_parts, payload)
|
|
104
|
+
_append_project_memory_prompt_parts(prompt_parts, payload)
|
|
103
105
|
_append_track_prompt_parts(prompt_parts, payload)
|
|
104
106
|
append_response_strategy_prompt_parts(prompt_parts, payload)
|
|
105
107
|
_append_understanding_summary_prompt_part(prompt_parts, payload)
|
{flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/streaming/draft/completion.py
RENAMED
|
@@ -7,6 +7,7 @@ from typing import Any, Callable
|
|
|
7
7
|
|
|
8
8
|
from flare_kernel.contracts import KernelRequest
|
|
9
9
|
from flare_kernel.runtime.llm.llm_provider import LLMCompletion
|
|
10
|
+
from flare_kernel.runtime.project_memory import persist_project_memory_from_runtime
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
_PLAN_MODE_FINALIZE_COMMANDS = {"implement", "apply"}
|
|
@@ -100,6 +101,14 @@ async def resolve_draft_completion_artifacts(
|
|
|
100
101
|
model=completion.model,
|
|
101
102
|
provider_status=completion.status,
|
|
102
103
|
)
|
|
104
|
+
project_memory_record = persist_project_memory_from_runtime(
|
|
105
|
+
project_id=project_id,
|
|
106
|
+
user_id=user_id,
|
|
107
|
+
source_session_id=session_id,
|
|
108
|
+
runtime_snapshot=runtime_snapshot,
|
|
109
|
+
)
|
|
110
|
+
if project_memory_record:
|
|
111
|
+
memory_record.update(project_memory_record)
|
|
103
112
|
|
|
104
113
|
observation_runtime_event = {
|
|
105
114
|
"trace_id": trace_id,
|
{flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/runtime/project_memory/__init__.py
RENAMED
|
@@ -2,9 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
from flare_kernel.runtime.project_memory.extraction import extract_project_memory_candidates
|
|
4
4
|
from flare_kernel.runtime.project_memory.recall import build_project_memory_recall, recall_project_memory
|
|
5
|
+
from flare_kernel.runtime.project_memory.runtime import (
|
|
6
|
+
build_project_memory_context_layer,
|
|
7
|
+
persist_project_memory_from_runtime,
|
|
8
|
+
)
|
|
5
9
|
|
|
6
10
|
__all__ = [
|
|
7
11
|
"build_project_memory_recall",
|
|
12
|
+
"build_project_memory_context_layer",
|
|
8
13
|
"extract_project_memory_candidates",
|
|
14
|
+
"persist_project_memory_from_runtime",
|
|
9
15
|
"recall_project_memory",
|
|
10
16
|
]
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"""Project Memory runtime orchestration helpers."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any, Callable
|
|
6
|
+
|
|
7
|
+
from flare_kernel.runtime.infrastructure.project_memory_store import (
|
|
8
|
+
search_project_memory_records,
|
|
9
|
+
upsert_project_memory_record,
|
|
10
|
+
)
|
|
11
|
+
from flare_kernel.runtime.project_memory.extraction import extract_project_memory_candidates
|
|
12
|
+
from flare_kernel.runtime.project_memory.recall import recall_project_memory
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _as_dict(value: Any) -> dict[str, Any]:
|
|
16
|
+
"""Return dict-shaped values only.
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
value: Candidate runtime value.
|
|
20
|
+
|
|
21
|
+
Returns:
|
|
22
|
+
Original dict or an empty dict.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
return value if isinstance(value, dict) else {}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _clean_text(value: Any) -> str:
|
|
29
|
+
"""Normalize text-like values.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
value: Raw value.
|
|
33
|
+
|
|
34
|
+
Returns:
|
|
35
|
+
Whitespace-normalized string.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
return " ".join(str(value or "").split()).strip()
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def build_project_memory_context_layer(
|
|
42
|
+
*,
|
|
43
|
+
project_id: str | None,
|
|
44
|
+
user_id: str | None,
|
|
45
|
+
query: str | None,
|
|
46
|
+
top_k: int = 5,
|
|
47
|
+
search_project_memory_records_fn: Callable[..., list[dict[str, Any]]] = search_project_memory_records,
|
|
48
|
+
) -> dict[str, Any]:
|
|
49
|
+
"""Build the Project Memory recall layer for one turn.
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
project_id: Project scope used for recall.
|
|
53
|
+
user_id: User scope used for recall.
|
|
54
|
+
query: User/query text used to recall memory.
|
|
55
|
+
top_k: Maximum number of records to request.
|
|
56
|
+
search_project_memory_records_fn: Persistence search boundary.
|
|
57
|
+
|
|
58
|
+
Returns:
|
|
59
|
+
ProjectMemoryRecall dict, or empty dict when scope/query is missing.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
resolved_project_id = _clean_text(project_id)
|
|
63
|
+
resolved_user_id = _clean_text(user_id)
|
|
64
|
+
resolved_query = _clean_text(query)
|
|
65
|
+
if not resolved_project_id or not resolved_user_id or not resolved_query:
|
|
66
|
+
return {}
|
|
67
|
+
return recall_project_memory(
|
|
68
|
+
project_id=resolved_project_id,
|
|
69
|
+
user_id=resolved_user_id,
|
|
70
|
+
query=resolved_query,
|
|
71
|
+
top_k=top_k,
|
|
72
|
+
search_project_memory_records_fn=search_project_memory_records_fn,
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def persist_project_memory_from_runtime(
|
|
77
|
+
*,
|
|
78
|
+
project_id: str | None,
|
|
79
|
+
user_id: str | None,
|
|
80
|
+
source_session_id: str | None,
|
|
81
|
+
runtime_snapshot: dict[str, Any],
|
|
82
|
+
upsert_project_memory_record_fn: Callable[..., dict[str, Any]] = upsert_project_memory_record,
|
|
83
|
+
) -> dict[str, Any]:
|
|
84
|
+
"""Persist Project Memory candidates extracted from runtime outputs.
|
|
85
|
+
|
|
86
|
+
Args:
|
|
87
|
+
project_id: Project scope used for persistence.
|
|
88
|
+
user_id: User scope used for persistence.
|
|
89
|
+
source_session_id: Session that produced the runtime outputs.
|
|
90
|
+
runtime_snapshot: Kernel runtime snapshot containing context outputs.
|
|
91
|
+
upsert_project_memory_record_fn: Persistence upsert boundary.
|
|
92
|
+
|
|
93
|
+
Returns:
|
|
94
|
+
Project Memory persistence status dict, or empty dict when skipped.
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
resolved_project_id = _clean_text(project_id)
|
|
98
|
+
resolved_user_id = _clean_text(user_id)
|
|
99
|
+
if not resolved_project_id or not resolved_user_id:
|
|
100
|
+
return {}
|
|
101
|
+
|
|
102
|
+
candidates = extract_project_memory_candidates(
|
|
103
|
+
context=_as_dict(runtime_snapshot.get("session_context")),
|
|
104
|
+
reasoning_result=_as_dict(runtime_snapshot.get("reasoning_result")),
|
|
105
|
+
document_result=_as_dict(runtime_snapshot.get("document_result")),
|
|
106
|
+
track_result=_as_dict(runtime_snapshot.get("track_result")),
|
|
107
|
+
source_session_id=source_session_id,
|
|
108
|
+
)
|
|
109
|
+
if not candidates:
|
|
110
|
+
return {}
|
|
111
|
+
|
|
112
|
+
memory_ids: list[str] = []
|
|
113
|
+
try:
|
|
114
|
+
for candidate in candidates:
|
|
115
|
+
stored = upsert_project_memory_record_fn(
|
|
116
|
+
project_id=resolved_project_id,
|
|
117
|
+
user_id=resolved_user_id,
|
|
118
|
+
content=str(candidate.get("content") or ""),
|
|
119
|
+
memory_type=str(candidate.get("memory_type") or "fact"),
|
|
120
|
+
source_session_id=str(candidate.get("source_session_id") or ""),
|
|
121
|
+
source_message_id=str(candidate.get("source_message_id") or ""),
|
|
122
|
+
source_id=str(candidate.get("source_id") or ""),
|
|
123
|
+
evidence=candidate.get("evidence") if isinstance(candidate.get("evidence"), list) else [],
|
|
124
|
+
confidence=candidate.get("confidence"),
|
|
125
|
+
status="active",
|
|
126
|
+
)
|
|
127
|
+
memory_id = _clean_text(stored.get("memory_id") if isinstance(stored, dict) else "")
|
|
128
|
+
if memory_id:
|
|
129
|
+
memory_ids.append(memory_id)
|
|
130
|
+
except Exception as exc:
|
|
131
|
+
return {
|
|
132
|
+
"project_memory_stored": False,
|
|
133
|
+
"project_memory_status": "failed",
|
|
134
|
+
"project_memory_error": str(exc),
|
|
135
|
+
"project_memory_count": len(memory_ids),
|
|
136
|
+
"project_memory_ids": memory_ids,
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return {
|
|
140
|
+
"project_memory_stored": bool(memory_ids),
|
|
141
|
+
"project_memory_status": "stored" if memory_ids else "skipped",
|
|
142
|
+
"project_memory_count": len(memory_ids),
|
|
143
|
+
"project_memory_ids": memory_ids,
|
|
144
|
+
}
|
|
@@ -289,6 +289,7 @@ src/flare_kernel/runtime/orchestration/sourcing/search_runtime.py
|
|
|
289
289
|
src/flare_kernel/runtime/project_memory/__init__.py
|
|
290
290
|
src/flare_kernel/runtime/project_memory/extraction.py
|
|
291
291
|
src/flare_kernel/runtime/project_memory/recall.py
|
|
292
|
+
src/flare_kernel/runtime/project_memory/runtime.py
|
|
292
293
|
src/flare_kernel/runtime/reasoning/__init__.py
|
|
293
294
|
src/flare_kernel/runtime/reasoning/intake/__init__.py
|
|
294
295
|
src/flare_kernel/runtime/reasoning/intake/api.py
|
|
@@ -72,6 +72,57 @@ def test_prepare_kernel_turn_context_flow_builds_expected_shape() -> None:
|
|
|
72
72
|
assert isinstance(result["structured_retrieved_knowledge"], list)
|
|
73
73
|
|
|
74
74
|
|
|
75
|
+
def test_prepare_kernel_turn_context_flow_injects_project_memory_recall() -> None:
|
|
76
|
+
req = KernelRequest(payload={"message": "预算", "project_id": "p1", "user_id": "u1"})
|
|
77
|
+
|
|
78
|
+
async def _run() -> dict:
|
|
79
|
+
return await prepare_kernel_turn_context_flow(
|
|
80
|
+
req=req,
|
|
81
|
+
resolve_trace_id_fn=lambda _t: "trace-memory",
|
|
82
|
+
resolve_command_fn=lambda _r: "send_message",
|
|
83
|
+
safe_session_id_fn=lambda _s: "session-memory",
|
|
84
|
+
load_instance_profile_fn=lambda _i: None,
|
|
85
|
+
resolve_intent_escalation_policy_with_source_fn=lambda **_kwargs: ({}, "default"),
|
|
86
|
+
resolve_request_intent_with_ai_fn=lambda _r, _t: _async_tuple(("default", "fallback", 0.2, "none")),
|
|
87
|
+
extract_user_message_fn=lambda payload: str((payload or {}).get("message") or ""),
|
|
88
|
+
build_intent_and_escalation_signal_fn=lambda **_kwargs: {"signal": "ok"},
|
|
89
|
+
resolve_request_mode_fn=lambda _r, _i: ("default", "fallback"),
|
|
90
|
+
apply_escalation_mode_override_fn=lambda **kwargs: (
|
|
91
|
+
kwargs["resolved_intent"],
|
|
92
|
+
kwargs["intent_source"],
|
|
93
|
+
kwargs["intent_confidence"],
|
|
94
|
+
kwargs["intent_reason"],
|
|
95
|
+
kwargs["resolved_mode"],
|
|
96
|
+
kwargs["mode_source"],
|
|
97
|
+
),
|
|
98
|
+
resolve_project_id_fn=lambda _r, payload: str(payload.get("project_id") or ""),
|
|
99
|
+
resolve_user_id_fn=lambda _r, payload: str(payload.get("user_id") or ""),
|
|
100
|
+
resolve_retrieval_config_fn=lambda _r, _p: {"enabled": False, "top_k": 3, "min_score": 0.1},
|
|
101
|
+
build_retrieval_queries_fn=lambda _r, **_kwargs: [],
|
|
102
|
+
search_knowledge_by_queries_fn=lambda **_kwargs: [],
|
|
103
|
+
enrich_payload_fn=lambda _r, **_kwargs: {"message": "预算"},
|
|
104
|
+
build_project_memory_context_layer_fn=lambda **_kwargs: {
|
|
105
|
+
"project_id": "p1",
|
|
106
|
+
"user_id": "u1",
|
|
107
|
+
"query": "预算",
|
|
108
|
+
"hit_count": 1,
|
|
109
|
+
"memory_ids": ["pmem-1"],
|
|
110
|
+
"memories": [{"memory_id": "pmem-1", "memory_type": "fact", "content": "预算上限为 20 万。"}],
|
|
111
|
+
"degraded": False,
|
|
112
|
+
},
|
|
113
|
+
build_kernel_runtime_fn=lambda **kwargs: {"payload": kwargs["payload"], "open_fields": []},
|
|
114
|
+
build_orchestration_status_fn=lambda **_kwargs: {"open_fields": [], "status": "ok"},
|
|
115
|
+
merge_intent_and_escalation_signal_fn=lambda **kwargs: kwargs["orchestration_status"],
|
|
116
|
+
resolve_effective_command_fn=lambda **_kwargs: "send_message",
|
|
117
|
+
build_structured_search_results_fn=lambda **_kwargs: [],
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
result = asyncio.run(_run())
|
|
121
|
+
recall = result["enriched_payload"]["project_memory_recall"]
|
|
122
|
+
assert recall["hit_count"] == 1
|
|
123
|
+
assert result["runtime_snapshot"]["payload"]["project_memory_recall"] == recall
|
|
124
|
+
|
|
125
|
+
|
|
75
126
|
def test_prepare_kernel_turn_context_flow_injects_structured_reasoning_before_runtime() -> None:
|
|
76
127
|
req = KernelRequest(payload={"message": "我要举办展厅"})
|
|
77
128
|
captured_runtime_payload = {}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
from flare_kernel.contracts import ProjectMemoryCandidate, ProjectMemoryRecall
|
|
2
2
|
from flare_kernel.runtime.project_memory import (
|
|
3
|
+
build_project_memory_context_layer,
|
|
3
4
|
build_project_memory_recall,
|
|
4
5
|
extract_project_memory_candidates,
|
|
6
|
+
persist_project_memory_from_runtime,
|
|
5
7
|
recall_project_memory,
|
|
6
8
|
)
|
|
7
9
|
|
|
@@ -100,3 +102,48 @@ def test_recall_project_memory_returns_degraded_payload_on_search_failure() -> N
|
|
|
100
102
|
assert payload["hit_count"] == 0
|
|
101
103
|
assert payload["memory_ids"] == []
|
|
102
104
|
assert payload["degraded"] is True
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def test_build_project_memory_context_layer_uses_recall_boundary() -> None:
|
|
108
|
+
def _search(**kwargs):
|
|
109
|
+
assert kwargs["project_id"] == "project-1"
|
|
110
|
+
assert kwargs["user_id"] == "user-1"
|
|
111
|
+
assert kwargs["query"] == "预算"
|
|
112
|
+
return [{"memory_id": "pmem-1", "memory_type": "fact", "content": "预算上限为 20 万。"}]
|
|
113
|
+
|
|
114
|
+
payload = build_project_memory_context_layer(
|
|
115
|
+
project_id="project-1",
|
|
116
|
+
user_id="user-1",
|
|
117
|
+
query="预算",
|
|
118
|
+
search_project_memory_records_fn=_search,
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
assert payload["hit_count"] == 1
|
|
122
|
+
assert payload["memory_ids"] == ["pmem-1"]
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def test_persist_project_memory_from_runtime_upserts_extracted_candidates() -> None:
|
|
126
|
+
stored = []
|
|
127
|
+
|
|
128
|
+
def _upsert(**kwargs):
|
|
129
|
+
stored.append(kwargs)
|
|
130
|
+
return {"memory_id": f"pmem-{len(stored)}"}
|
|
131
|
+
|
|
132
|
+
result = persist_project_memory_from_runtime(
|
|
133
|
+
project_id="project-1",
|
|
134
|
+
user_id="user-1",
|
|
135
|
+
source_session_id="session-1",
|
|
136
|
+
runtime_snapshot={
|
|
137
|
+
"session_context": {
|
|
138
|
+
"facts": [{"text": "预算上限为 20 万。"}],
|
|
139
|
+
"unknowns": [{"text": "交付周期待确认。"}],
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
upsert_project_memory_record_fn=_upsert,
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
assert result["project_memory_stored"] is True
|
|
146
|
+
assert result["project_memory_count"] == 2
|
|
147
|
+
assert result["project_memory_ids"] == ["pmem-1", "pmem-2"]
|
|
148
|
+
assert stored[0]["project_id"] == "project-1"
|
|
149
|
+
assert stored[0]["source_session_id"] == "session-1"
|
|
@@ -74,6 +74,27 @@ def test_prompt_includes_session_context_for_model_grounding() -> None:
|
|
|
74
74
|
assert "session_context_artifacts: 分析报告模板(template): 用于输出分析报告" in prompt
|
|
75
75
|
|
|
76
76
|
|
|
77
|
+
def test_prompt_includes_project_memory_for_project_grounding() -> None:
|
|
78
|
+
prompt = _build_prompt_for_test(
|
|
79
|
+
intent="requirement_canvas",
|
|
80
|
+
payload={
|
|
81
|
+
"message": "继续分析预算",
|
|
82
|
+
"project_memory_recall": {
|
|
83
|
+
"hit_count": 1,
|
|
84
|
+
"memories": [
|
|
85
|
+
{
|
|
86
|
+
"memory_id": "pmem-1",
|
|
87
|
+
"memory_type": "fact",
|
|
88
|
+
"content": "预算上限为 20 万。",
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
assert "project_memory: fact: 预算上限为 20 万。" in prompt
|
|
96
|
+
|
|
97
|
+
|
|
77
98
|
def test_prompt_includes_confirmed_fields_and_recent_turns_for_followup_grounding() -> None:
|
|
78
99
|
prompt = _build_prompt_for_test(
|
|
79
100
|
intent="requirement_canvas",
|
|
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.6 → flare_kernel-0.2.7}/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
|
{flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/context/__init__.py
RENAMED
|
File without changes
|
{flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/context/analysis.py
RENAMED
|
File without changes
|
{flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/context/inputs.py
RENAMED
|
File without changes
|
{flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/context/session.py
RENAMED
|
File without changes
|
{flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/canonical/contract_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flare_kernel-0.2.6 → flare_kernel-0.2.7}/src/flare_kernel/router/completion/response_builder.py
RENAMED
|
File without changes
|
|
File without changes
|