flare-kernel 0.2.9__tar.gz → 0.2.10__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.
Files changed (651) hide show
  1. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/PKG-INFO +1 -1
  2. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/pyproject.toml +1 -1
  3. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/contracts/kernel_contract.py +1 -1
  4. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/flow.py +0 -16
  5. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/canonicalization.py +4 -0
  6. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/extraction/extractors.py +3 -6
  7. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/field_projection/core.py +4 -0
  8. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/field_projection/entity.py +69 -11
  9. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/field_projection/payload.py +39 -9
  10. flare_kernel-0.2.10/src/flare_kernel/router/kernel_facade/domain_pack_payload.py +52 -0
  11. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_facade/payload_enrichment.py +6 -3
  12. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/prompting/requirement_intake.py +28 -2
  13. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/domain/domain_pack_loader.py +13 -10
  14. flare_kernel-0.2.10/src/flare_kernel/runtime/domain/domain_pack_paths.py +38 -0
  15. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/source/schema.py +4 -0
  16. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_context.py +2 -2
  17. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel.egg-info/PKG-INFO +1 -1
  18. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel.egg-info/SOURCES.txt +2 -0
  19. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_artifact_template_runtime.py +1 -1
  20. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_business_hardcode_guard.py +3 -3
  21. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_canonical_state_flow.py +17 -0
  22. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_canonical_state_payload.py +1 -1
  23. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_domain_pack_loader.py +14 -13
  24. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_endpoint_context.py +2 -2
  25. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_flare_v1_patch_contract.py +1 -1
  26. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_canonicalization.py +1 -0
  27. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_extraction.py +5 -0
  28. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_extraction_extractors.py +2 -3
  29. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_field_projection.py +2 -0
  30. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_field_projection_entity.py +15 -0
  31. flare_kernel-0.2.10/tests/test_intake_field_projection_payload.py +43 -0
  32. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_status_schema.py +2 -2
  33. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intent_resolution.py +2 -2
  34. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_payload_enrichment.py +18 -0
  35. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_prompting_requirement_intake.py +31 -0
  36. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_context_reuse.py +1 -1
  37. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_e2e.py +3 -3
  38. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_runtime_additive_search.py +3 -3
  39. flare_kernel-0.2.9/tests/test_intake_field_projection_payload.py +0 -18
  40. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/README.md +0 -0
  41. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/setup.cfg +0 -0
  42. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/__init__.py +0 -0
  43. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/app.py +0 -0
  44. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/contracts/__init__.py +0 -0
  45. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/contracts/auth_contract.py +0 -0
  46. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/contracts/context.py +0 -0
  47. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/contracts/list_event_contract.py +0 -0
  48. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/contracts/mode.py +0 -0
  49. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/contracts/project_contract.py +0 -0
  50. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/contracts/project_memory_contract.py +0 -0
  51. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/contracts/run_contract.py +0 -0
  52. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/contracts/session_contract.py +0 -0
  53. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/contracts/update_contract.py +0 -0
  54. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/list_event_broker.py +0 -0
  55. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/main.py +0 -0
  56. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/project_store.py +0 -0
  57. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/__init__.py +0 -0
  58. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/api/__init__.py +0 -0
  59. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/api/auth.py +0 -0
  60. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/api/auth_guard.py +0 -0
  61. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/api/chat.py +0 -0
  62. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/api/errors.py +0 -0
  63. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/api/list_events.py +0 -0
  64. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/api/project.py +0 -0
  65. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/api/run.py +0 -0
  66. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/api/session.py +0 -0
  67. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/api/session_list_events.py +0 -0
  68. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/api/update.py +0 -0
  69. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/__init__.py +0 -0
  70. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/analysis.py +0 -0
  71. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/checkpoint.py +0 -0
  72. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/composer_ui.py +0 -0
  73. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/context/__init__.py +0 -0
  74. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/context/analysis.py +0 -0
  75. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/context/inputs.py +0 -0
  76. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/context/session.py +0 -0
  77. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/context_authority.py +0 -0
  78. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/contract_support.py +0 -0
  79. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/payload.py +0 -0
  80. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/projection.py +0 -0
  81. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/canonical/track_actions.py +0 -0
  82. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/completion/__init__.py +0 -0
  83. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/completion/analysis_policy.py +0 -0
  84. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/completion/analysis_result_contract.py +0 -0
  85. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/completion/guided.py +0 -0
  86. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/completion/response_builder.py +0 -0
  87. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/completion/selection.py +0 -0
  88. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/completion/stream_collect.py +0 -0
  89. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/context/__init__.py +0 -0
  90. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/context/endpoint.py +0 -0
  91. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/context/sourcing_preview.py +0 -0
  92. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/__init__.py +0 -0
  93. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/amount_quantity.py +0 -0
  94. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/answer.py +0 -0
  95. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/authority/__init__.py +0 -0
  96. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/authority/checkpoint.py +0 -0
  97. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/authority/core.py +0 -0
  98. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/authority/hydration.py +0 -0
  99. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/authority/session.py +0 -0
  100. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/clarification.py +0 -0
  101. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/decision_rules.py +0 -0
  102. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/delivery_time.py +0 -0
  103. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/entry_policy.py +0 -0
  104. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/extraction/__init__.py +0 -0
  105. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/extraction/core.py +0 -0
  106. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/extraction/merge.py +0 -0
  107. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/field_projection/__init__.py +0 -0
  108. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/field_projection/source.py +0 -0
  109. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/field_scope.py +0 -0
  110. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/guided/__init__.py +0 -0
  111. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/guided/confirmed_updates.py +0 -0
  112. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/guided/flags.py +0 -0
  113. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/guided/followup.py +0 -0
  114. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/guided/followup_work_item.py +0 -0
  115. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/guided/open_fields.py +0 -0
  116. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/guided/status.py +0 -0
  117. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/guided/summary.py +0 -0
  118. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/inputs.py +0 -0
  119. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/node_state.py +0 -0
  120. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/numeric.py +0 -0
  121. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/payload_updates.py +0 -0
  122. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/readiness.py +0 -0
  123. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/state_persistence.py +0 -0
  124. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/status/__init__.py +0 -0
  125. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/status/chooser_stage.py +0 -0
  126. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/status/core.py +0 -0
  127. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/status/guided_session.py +0 -0
  128. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/status/projection.py +0 -0
  129. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/status/schema.py +0 -0
  130. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intake/workflow_checkpoint.py +0 -0
  131. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/__init__.py +0 -0
  132. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/classifier_utils.py +0 -0
  133. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/compat_aliases.py +0 -0
  134. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/escalation/__init__.py +0 -0
  135. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/escalation/override.py +0 -0
  136. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/escalation/pipeline.py +0 -0
  137. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/escalation/signal.py +0 -0
  138. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/routing.py +0 -0
  139. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/session_intent/__init__.py +0 -0
  140. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/session_intent/core.py +0 -0
  141. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/session_intent/fields.py +0 -0
  142. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/intent/session_intent/small_talk.py +0 -0
  143. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel.py +0 -0
  144. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_constants/__init__.py +0 -0
  145. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_constants/intake.py +0 -0
  146. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_constants/intent.py +0 -0
  147. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_constants/patch.py +0 -0
  148. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_endpoint_handlers/__init__.py +0 -0
  149. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_endpoint_handlers/health.py +0 -0
  150. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_endpoint_handlers/knowledge.py +0 -0
  151. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_endpoint_handlers/sourcing.py +0 -0
  152. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_endpoint_handlers/turn.py +0 -0
  153. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_facade/__init__.py +0 -0
  154. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_facade/canonical_state.py +0 -0
  155. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_facade/dependency_resolution.py +0 -0
  156. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_facade/flow.py +0 -0
  157. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_facade/orchestration.py +0 -0
  158. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_facade/turn_context.py +0 -0
  159. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_facade/utils.py +0 -0
  160. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_flow_bindings/__init__.py +0 -0
  161. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_flow_bindings/intent_query.py +0 -0
  162. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_flow_bindings/mode.py +0 -0
  163. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_flow_bindings/session_intent.py +0 -0
  164. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_request_pipeline/__init__.py +0 -0
  165. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_request_pipeline/action.py +0 -0
  166. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_request_pipeline/intake.py +0 -0
  167. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_request_pipeline/intent_query.py +0 -0
  168. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_request_pipeline/intent_signal.py +0 -0
  169. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_route/__init__.py +0 -0
  170. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_route/action.py +0 -0
  171. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_route/execution.py +0 -0
  172. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_route/run.py +0 -0
  173. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/kernel_route/stream.py +0 -0
  174. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/mode/__init__.py +0 -0
  175. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/mode/resolution.py +0 -0
  176. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/mode/switch.py +0 -0
  177. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/next_actions_guard.py +0 -0
  178. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/__init__.py +0 -0
  179. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/__init__.py +0 -0
  180. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/action_readiness.py +0 -0
  181. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/actions.py +0 -0
  182. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/analysis_entry_decision.py +0 -0
  183. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/builder.py +0 -0
  184. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/checkpoint_state.py +0 -0
  185. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/context.py +0 -0
  186. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/context_helpers.py +0 -0
  187. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/core.py +0 -0
  188. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/decision.py +0 -0
  189. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/followup_state.py +0 -0
  190. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/projection.py +0 -0
  191. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/result.py +0 -0
  192. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/runtime_state.py +0 -0
  193. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/state/__init__.py +0 -0
  194. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/state/context.py +0 -0
  195. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/state/decision.py +0 -0
  196. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/state/entry.py +0 -0
  197. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/state/flow.py +0 -0
  198. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/state/followup.py +0 -0
  199. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/state/intent.py +0 -0
  200. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/state/node.py +0 -0
  201. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/state/payload.py +0 -0
  202. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/status/state/unpack.py +0 -0
  203. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/trace/__init__.py +0 -0
  204. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/trace/core.py +0 -0
  205. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/trace/projection.py +0 -0
  206. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/orchestration/trace/steps.py +0 -0
  207. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/patch_contract.py +0 -0
  208. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/payload/__init__.py +0 -0
  209. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/payload/action.py +0 -0
  210. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/payload/analysis_canvas.py +0 -0
  211. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/payload/enrichment.py +0 -0
  212. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/prompting/__init__.py +0 -0
  213. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/prompting/artifact_template.py +0 -0
  214. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/prompting/context_blocks.py +0 -0
  215. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/prompting/core.py +0 -0
  216. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/prompting/response_strategy.py +0 -0
  217. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/request/__init__.py +0 -0
  218. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/request/identity.py +0 -0
  219. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/request/intent_resolution.py +0 -0
  220. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/response_intent/__init__.py +0 -0
  221. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/response_intent/contracts.py +0 -0
  222. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/response_intent/document_output.py +0 -0
  223. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/response_intent/resolution.py +0 -0
  224. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/retrieval/__init__.py +0 -0
  225. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/retrieval/aliases.py +0 -0
  226. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/retrieval/field_queries.py +0 -0
  227. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/retrieval/projection.py +0 -0
  228. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/retrieval/query_builder.py +0 -0
  229. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/retrieval/search.py +0 -0
  230. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/source_library.py +0 -0
  231. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/__init__.py +0 -0
  232. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/draft/__init__.py +0 -0
  233. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/draft/completion.py +0 -0
  234. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/draft/finalize.py +0 -0
  235. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/draft/phase.py +0 -0
  236. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/draft/phase_timing.py +0 -0
  237. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/draft/post_completion.py +0 -0
  238. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/draft/prologue.py +0 -0
  239. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/event_emitter.py +0 -0
  240. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/intake/__init__.py +0 -0
  241. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/intake/phase.py +0 -0
  242. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/mode/__init__.py +0 -0
  243. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/mode/event_payload.py +0 -0
  244. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/mode/events.py +0 -0
  245. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/response/__init__.py +0 -0
  246. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/response/bootstrap.py +0 -0
  247. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/response/builder.py +0 -0
  248. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/response/builder_transport.py +0 -0
  249. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/response/draft_phase.py +0 -0
  250. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/response/phase_groups.py +0 -0
  251. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/response/phases.py +0 -0
  252. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/response/runtime.py +0 -0
  253. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/retrieval/__init__.py +0 -0
  254. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/retrieval/phase.py +0 -0
  255. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/runtime/__init__.py +0 -0
  256. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/runtime/sourcing_observations.py +0 -0
  257. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/streaming/runtime/steps.py +0 -0
  258. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/router/text_safety.py +0 -0
  259. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/run_store.py +0 -0
  260. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/__init__.py +0 -0
  261. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/auth/__init__.py +0 -0
  262. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/auth/exchange.py +0 -0
  263. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/auth/policy.py +0 -0
  264. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/auth/scope_guard.py +0 -0
  265. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/context/__init__.py +0 -0
  266. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/context/analysis_application.py +0 -0
  267. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/context/document_application.py +0 -0
  268. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/context/reasoning_application.py +0 -0
  269. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/context/session_context.py +0 -0
  270. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/context/track_application.py +0 -0
  271. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/diagnostics/__init__.py +0 -0
  272. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/diagnostics/provider_audit.py +0 -0
  273. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/diagnostics/provider_audit_export.py +0 -0
  274. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/diagnostics/replay_snapshot.py +0 -0
  275. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/diagnostics/replay_snapshot_io.py +0 -0
  276. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/diagnostics/replay_snapshot_validation.py +0 -0
  277. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/domain/__init__.py +0 -0
  278. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/domain/profile_resolution.py +0 -0
  279. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/execution/__init__.py +0 -0
  280. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/execution/agent_runtime.py +0 -0
  281. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/execution/skill_runtime.py +0 -0
  282. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/__init__.py +0 -0
  283. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/chat_memory.py +0 -0
  284. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/database.py +0 -0
  285. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/dependency_status.py +0 -0
  286. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/infrastructure.py +0 -0
  287. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/knowledge_ingest.py +0 -0
  288. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/knowledge_memory.py +0 -0
  289. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/knowledge_postgres_search.py +0 -0
  290. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/knowledge_qdrant_search.py +0 -0
  291. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/knowledge_search.py +0 -0
  292. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/knowledge_terms.py +0 -0
  293. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/logging.py +0 -0
  294. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/project_memory_codec.py +0 -0
  295. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/project_memory_sql.py +0 -0
  296. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/project_memory_store.py +0 -0
  297. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/redis_client.py +0 -0
  298. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/run/__init__.py +0 -0
  299. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/run/repository.py +0 -0
  300. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/run/repository_memory.py +0 -0
  301. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/run/repository_sql.py +0 -0
  302. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/session/__init__.py +0 -0
  303. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/session/columns.py +0 -0
  304. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/session/repository.py +0 -0
  305. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/session/repository_memory.py +0 -0
  306. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/session/repository_sql.py +0 -0
  307. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/source/__init__.py +0 -0
  308. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/source/document_understanding_codec.py +0 -0
  309. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/source/library_persistence.py +0 -0
  310. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/source/text_extractor.py +0 -0
  311. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/sourcing/__init__.py +0 -0
  312. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/sourcing/instance_profile_adapter.py +0 -0
  313. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/sourcing/persistence.py +0 -0
  314. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/sourcing/provider.py +0 -0
  315. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/sourcing/provider_config.py +0 -0
  316. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/sourcing/provider_gateway.py +0 -0
  317. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/sourcing/provider_normalize.py +0 -0
  318. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/sourcing/provider_public.py +0 -0
  319. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/sourcing/provider_result.py +0 -0
  320. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/trace.py +0 -0
  321. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/infrastructure/vector_store.py +0 -0
  322. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/intent/__init__.py +0 -0
  323. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/intent/intent_and_escalation/__init__.py +0 -0
  324. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/intent/intent_and_escalation/decision.py +0 -0
  325. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/intent/intent_and_escalation/lexicon.py +0 -0
  326. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/intent/intent_and_escalation/preprocessing.py +0 -0
  327. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/intent/intent_and_escalation/signals.py +0 -0
  328. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/intent/intent_and_escalation_classifier.py +0 -0
  329. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/__init__.py +0 -0
  330. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/completion_capture.py +0 -0
  331. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/config.py +0 -0
  332. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/contracts.py +0 -0
  333. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/dashscope_provider.py +0 -0
  334. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/dashscope_streaming_provider.py +0 -0
  335. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/fallback_policy.py +0 -0
  336. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/llm_provider.py +0 -0
  337. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/model_router.py +0 -0
  338. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/native_streaming.py +0 -0
  339. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/provider_health.py +0 -0
  340. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/provider_health_probe.py +0 -0
  341. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/provider_health_snapshot.py +0 -0
  342. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/provider_health_source.py +0 -0
  343. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/provider_quota.py +0 -0
  344. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/provider_trace.py +0 -0
  345. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/provider_usage.py +0 -0
  346. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/replay_provider.py +0 -0
  347. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/llm/streaming_provider.py +0 -0
  348. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/__init__.py +0 -0
  349. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/analysis_route_policy.py +0 -0
  350. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/analysis_router_runtime.py +0 -0
  351. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/artifact_template_runtime.py +0 -0
  352. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/canvas/__init__.py +0 -0
  353. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/canvas/toolbar_actions.py +0 -0
  354. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/canvas_sourcing_contract.py +0 -0
  355. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/decision_engine.py +0 -0
  356. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/__init__.py +0 -0
  357. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/canvas_state.py +0 -0
  358. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/field_definitions.py +0 -0
  359. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_action_resolution.py +0 -0
  360. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_actions.py +0 -0
  361. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_canvas.py +0 -0
  362. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_content.py +0 -0
  363. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_canvas_events.py +0 -0
  364. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_coverage.py +0 -0
  365. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_draft_payload.py +0 -0
  366. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_events.py +0 -0
  367. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_field_projection.py +0 -0
  368. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_next_actions_payload.py +0 -0
  369. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_payloads.py +0 -0
  370. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_progress_payload.py +0 -0
  371. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_question.py +0 -0
  372. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_question_lifecycle.py +0 -0
  373. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/intake_question_progress.py +0 -0
  374. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/orchestration.py +0 -0
  375. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/question_selection.py +0 -0
  376. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/reasoning.py +0 -0
  377. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/runtime.py +0 -0
  378. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/shared.py +0 -0
  379. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/sourcing_actions.py +0 -0
  380. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/sourcing_events.py +0 -0
  381. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/sourcing_preview.py +0 -0
  382. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/sourcing_report.py +0 -0
  383. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/mode/state_transition.py +0 -0
  384. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/module_prompt_registry.py +0 -0
  385. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/observation.py +0 -0
  386. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/response_strategy_runtime.py +0 -0
  387. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/session_context_runtime.py +0 -0
  388. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/__init__.py +0 -0
  389. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/additive_search.py +0 -0
  390. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/analysis_entry.py +0 -0
  391. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/candidate_explainability.py +0 -0
  392. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/canvas_state.py +0 -0
  393. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/context_round.py +0 -0
  394. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/event_payloads.py +0 -0
  395. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/instance_db_runtime.py +0 -0
  396. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/internal_runtime.py +0 -0
  397. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/mcp_runtime.py +0 -0
  398. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/observation_payloads.py +0 -0
  399. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/observations.py +0 -0
  400. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/parameter_draft.py +0 -0
  401. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/provider_config_loader.py +0 -0
  402. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/provider_health.py +0 -0
  403. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/result_window.py +0 -0
  404. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/search_runtime.py +0 -0
  405. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/source_priority.py +0 -0
  406. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/sourcing/web_runtime.py +0 -0
  407. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/structured_reasoning.py +0 -0
  408. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/orchestration/track_runtime.py +0 -0
  409. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/project_memory/__init__.py +0 -0
  410. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/project_memory/extraction.py +0 -0
  411. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/project_memory/recall.py +0 -0
  412. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/project_memory/runtime.py +0 -0
  413. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/__init__.py +0 -0
  414. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/__init__.py +0 -0
  415. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/api.py +0 -0
  416. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/branching/__init__.py +0 -0
  417. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/branching/core.py +0 -0
  418. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/branching/policy.py +0 -0
  419. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/context.py +0 -0
  420. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/field_selection.py +0 -0
  421. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/gap_detection.py +0 -0
  422. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/hypothesis.py +0 -0
  423. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/planning.py +0 -0
  424. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/priority.py +0 -0
  425. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/question/__init__.py +0 -0
  426. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/question/builder.py +0 -0
  427. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/question/decision.py +0 -0
  428. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/question/extraction.py +0 -0
  429. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/question/planner.py +0 -0
  430. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/readiness/__init__.py +0 -0
  431. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/readiness/core.py +0 -0
  432. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/readiness/scoring.py +0 -0
  433. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/shared.py +0 -0
  434. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/understanding_state.py +0 -0
  435. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/visible_response.py +0 -0
  436. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/reasoning/intake/visible_summary.py +0 -0
  437. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/session/__init__.py +0 -0
  438. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/session/checkpoint_manager.py +0 -0
  439. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/session/intake_session_store.py +0 -0
  440. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/session/models.py +0 -0
  441. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/source_ingestion/__init__.py +0 -0
  442. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/source_ingestion/artifacts.py +0 -0
  443. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/source_ingestion/chunk_storage.py +0 -0
  444. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/source_ingestion/knowledge_storage.py +0 -0
  445. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/source_ingestion/runtime.py +0 -0
  446. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/runtime/source_ingestion/storage.py +0 -0
  447. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/session_archive_context.py +0 -0
  448. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/session_archive_graph.py +0 -0
  449. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/session_archive_metrics.py +0 -0
  450. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/session_archive_summary.py +0 -0
  451. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/session_lifecycle_policy.py +0 -0
  452. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/session_record_policy.py +0 -0
  453. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/session_replay.py +0 -0
  454. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/session_store.py +0 -0
  455. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/update/__init__.py +0 -0
  456. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/update/compatibility.py +0 -0
  457. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/update/planner.py +0 -0
  458. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/update/registry.py +0 -0
  459. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/update/versioning.py +0 -0
  460. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel/user_store.py +0 -0
  461. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel.egg-info/dependency_links.txt +0 -0
  462. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel.egg-info/requires.txt +0 -0
  463. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/src/flare_kernel.egg-info/top_level.txt +0 -0
  464. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_action_payload.py +0 -0
  465. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_action_readiness.py +0 -0
  466. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_analysis_canvas_payload.py +0 -0
  467. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_analysis_context_patch.py +0 -0
  468. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_analysis_e2e.py +0 -0
  469. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_analysis_entry_decision.py +0 -0
  470. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_analysis_route_projection.py +0 -0
  471. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_analysis_route_runtime.py +0 -0
  472. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_auth_exchange.py +0 -0
  473. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_auth_scope_guard.py +0 -0
  474. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_basics.py +0 -0
  475. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_builder_split_modules.py +0 -0
  476. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_canonical_state_context_analysis.py +0 -0
  477. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_canonical_state_context_inputs.py +0 -0
  478. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_canonical_state_context_session.py +0 -0
  479. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_canonical_state_projection.py +0 -0
  480. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_canvas_sourcing_contract_meta.py +0 -0
  481. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_chat_api_alias.py +0 -0
  482. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_command_resolution_analysis_mode.py +0 -0
  483. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_compat_aliases.py +0 -0
  484. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_completion_response_builder.py +0 -0
  485. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_completion_selection.py +0 -0
  486. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_context_authority_projection.py +0 -0
  487. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_dashscope_streaming_provider.py +0 -0
  488. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_decision_engine.py +0 -0
  489. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_guided_completion.py +0 -0
  490. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_infrastructure_helpers.py +0 -0
  491. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_infrastructure_knowledge.py +0 -0
  492. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_amount_quantity.py +0 -0
  493. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_answer.py +0 -0
  494. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_authority.py +0 -0
  495. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_authority_checkpoint.py +0 -0
  496. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_authority_hydration.py +0 -0
  497. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_authority_session.py +0 -0
  498. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_clarification.py +0 -0
  499. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_decision_rules.py +0 -0
  500. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_delivery_time.py +0 -0
  501. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_domain_context_options.py +0 -0
  502. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_entry_policy.py +0 -0
  503. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_extraction_merge.py +0 -0
  504. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_field_projection_source.py +0 -0
  505. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_field_scope.py +0 -0
  506. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_guided_confirmed_updates.py +0 -0
  507. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_guided_flags.py +0 -0
  508. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_guided_followup.py +0 -0
  509. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_guided_followup_work_item.py +0 -0
  510. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_guided_open_fields.py +0 -0
  511. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_guided_status.py +0 -0
  512. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_guided_summary.py +0 -0
  513. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_inputs.py +0 -0
  514. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_node_state.py +0 -0
  515. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_numeric.py +0 -0
  516. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_payload_updates.py +0 -0
  517. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_question_projection.py +0 -0
  518. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_readiness.py +0 -0
  519. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_reasoning_priority.py +0 -0
  520. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_state_persistence.py +0 -0
  521. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_status.py +0 -0
  522. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_status_guided_session.py +0 -0
  523. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_status_projection.py +0 -0
  524. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_status_stage.py +0 -0
  525. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_visible_response.py +0 -0
  526. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intake_workflow_checkpoint.py +0 -0
  527. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intent_classifier_utils.py +0 -0
  528. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intent_escalation_classifier.py +0 -0
  529. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intent_escalation_override.py +0 -0
  530. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intent_escalation_pipeline.py +0 -0
  531. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intent_escalation_signal.py +0 -0
  532. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intent_retrieval.py +0 -0
  533. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intent_routing.py +0 -0
  534. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_intent_type_compat_aliases.py +0 -0
  535. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_kernel_alias_delegation.py +0 -0
  536. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_kernel_endpoint_handlers.py +0 -0
  537. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_kernel_endpoint_handlers_sourcing.py +0 -0
  538. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_kernel_facade_helpers.py +0 -0
  539. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_kernel_facade_turn_context.py +0 -0
  540. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_kernel_intent_query_flow.py +0 -0
  541. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_kernel_mode_flow.py +0 -0
  542. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_kernel_route_execution_wrappers.py +0 -0
  543. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_kernel_session_intent_flow.py +0 -0
  544. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_list_events.py +0 -0
  545. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_llm_provider.py +0 -0
  546. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_llm_provider_fallback_policy.py +0 -0
  547. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_llm_provider_health_file.py +0 -0
  548. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_llm_provider_health_probe.py +0 -0
  549. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_llm_provider_health_snapshot.py +0 -0
  550. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_llm_provider_live.py +0 -0
  551. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_llm_provider_native_streaming.py +0 -0
  552. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_llm_provider_quota.py +0 -0
  553. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_llm_provider_streaming.py +0 -0
  554. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_llm_replay_provider.py +0 -0
  555. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_mode_orchestration_state_bridge.py +0 -0
  556. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_mode_reasoning.py +0 -0
  557. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_mode_resolution.py +0 -0
  558. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_mode_switch.py +0 -0
  559. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_model_router.py +0 -0
  560. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_module_prompt_registry.py +0 -0
  561. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_new_flow_guard.py +0 -0
  562. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_checkpoint_state.py +0 -0
  563. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_followup_state.py +0 -0
  564. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_context.py +0 -0
  565. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_context_helpers.py +0 -0
  566. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_decision.py +0 -0
  567. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_projection.py +0 -0
  568. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_result.py +0 -0
  569. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_runtime_state.py +0 -0
  570. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_state_context.py +0 -0
  571. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_state_decision.py +0 -0
  572. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_state_entry.py +0 -0
  573. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_state_followup.py +0 -0
  574. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_state_intent.py +0 -0
  575. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_state_node.py +0 -0
  576. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_state_payload.py +0 -0
  577. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_status_state_unpack.py +0 -0
  578. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_trace.py +0 -0
  579. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_trace_projection.py +0 -0
  580. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_orchestration_trace_steps.py +0 -0
  581. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_patch_contract.py +0 -0
  582. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_pln03_question_chooser.py +0 -0
  583. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_pln11_question_option_extraction.py +0 -0
  584. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_project_api.py +0 -0
  585. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_project_memory_runtime.py +0 -0
  586. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_project_memory_store.py +0 -0
  587. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_prompting_analysis_instruction.py +0 -0
  588. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_prompting_user_template_instruction.py +0 -0
  589. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_provider_audit.py +0 -0
  590. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_provider_audit_export.py +0 -0
  591. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_replay_snapshot.py +0 -0
  592. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_replay_snapshot_validation.py +0 -0
  593. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_request_identity.py +0 -0
  594. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_request_intent_resolution.py +0 -0
  595. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_requirement_intake_canvas_state.py +0 -0
  596. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_response_intent_resolution.py +0 -0
  597. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_response_strategy_runtime.py +0 -0
  598. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_retrieval_aliases.py +0 -0
  599. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_retrieval_field_queries.py +0 -0
  600. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_retrieval_projection.py +0 -0
  601. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_retrieval_query_builder.py +0 -0
  602. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_retrieval_search.py +0 -0
  603. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_run_api.py +0 -0
  604. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_run_sql_repository.py +0 -0
  605. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_run_store.py +0 -0
  606. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_session_api.py +0 -0
  607. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_session_archive_summary.py +0 -0
  608. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_session_context_persistence.py +0 -0
  609. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_session_intent.py +0 -0
  610. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_session_intent_fields.py +0 -0
  611. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_session_intent_small_talk.py +0 -0
  612. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_session_lifecycle_api.py +0 -0
  613. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_session_replay_api.py +0 -0
  614. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_session_sql_columns.py +0 -0
  615. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_session_sql_migration.py +0 -0
  616. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_session_sql_repository.py +0 -0
  617. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_source_ingestion_runtime.py +0 -0
  618. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_source_ingestion_ssot_acceptance.py +0 -0
  619. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_source_library.py +0 -0
  620. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_source_library_persistence_scope.py +0 -0
  621. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_source_text_extractor.py +0 -0
  622. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_additive_search.py +0 -0
  623. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_candidate_explainability.py +0 -0
  624. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_instance_profile_adapter.py +0 -0
  625. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_parameter_draft.py +0 -0
  626. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_preview_context.py +0 -0
  627. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_provider.py +0 -0
  628. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_provider_adapters.py +0 -0
  629. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_provider_config_loader.py +0 -0
  630. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_provider_health.py +0 -0
  631. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_search_runtime.py +0 -0
  632. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_sourcing_source_priority.py +0 -0
  633. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_stream_collect_completion.py +0 -0
  634. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_draft_completion.py +0 -0
  635. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_draft_finalize.py +0 -0
  636. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_draft_phase.py +0 -0
  637. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_draft_post_completion.py +0 -0
  638. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_draft_prologue.py +0 -0
  639. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_event_emitter.py +0 -0
  640. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_intake_phase.py +0 -0
  641. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_mode_event_payload.py +0 -0
  642. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_mode_events.py +0 -0
  643. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_response_bootstrap.py +0 -0
  644. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_response_phases.py +0 -0
  645. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_response_runtime.py +0 -0
  646. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_response_transport.py +0 -0
  647. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_retrieval_phase.py +0 -0
  648. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_streaming_runtime_steps.py +0 -0
  649. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_text_safety.py +0 -0
  650. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_track_runtime.py +0 -0
  651. {flare_kernel-0.2.9 → flare_kernel-0.2.10}/tests/test_update_plane.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flare-kernel
3
- Version: 0.2.9
3
+ Version: 0.2.10
4
4
  Summary: FLARE kernel runtime package
5
5
  License: Proprietary
6
6
  Classifier: Development Status :: 3 - Alpha
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "flare-kernel"
7
- version = "0.2.9"
7
+ version = "0.2.10"
8
8
  description = "FLARE kernel runtime package"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -44,7 +44,7 @@ class KernelRequest(BaseModel):
44
44
  run_id: str | None = None
45
45
  tenant_id: str = "default"
46
46
  instance_id: str = "default"
47
- domain_pack_version: str = "v1"
47
+ domain_pack_version: str = "default"
48
48
  session_id: str | None = None
49
49
  last_turn_id: str | None = None
50
50
  command: str | None = None
@@ -101,22 +101,6 @@ def normalize_stage_status_and_question(
101
101
  resolved_question = None
102
102
  if status_key in {"collecting", "blocked"}:
103
103
  status_key = "idle"
104
- elif (
105
- resolved_question is None
106
- and required_missing
107
- and stage_key == "requirement_intake"
108
- and status_key in {"collecting", "blocked"}
109
- ):
110
- primary_field_key = str(required_missing[0] or "").strip()
111
- if primary_field_key:
112
- resolved_question = {
113
- "field_key": primary_field_key,
114
- "field_label": primary_field_key,
115
- "question_text": f"请补充「{primary_field_key}」相关信息",
116
- "options": [],
117
- "step_index": 1,
118
- "step_total": len(required_missing),
119
- }
120
104
  if isinstance(resolved_question, dict) and intake_session_id:
121
105
  resolved_question = {
122
106
  **resolved_question,
@@ -92,12 +92,16 @@ def canonicalize_field_entity(
92
92
  raw_value: Any,
93
93
  source_type: str,
94
94
  evidence_text: str,
95
+ field_definition: dict[str, Any] | None = None,
96
+ field_semantics: dict[str, Any] | None = None,
95
97
  ) -> dict[str, Any] | None:
96
98
  return canonicalize_field_entity_from_router(
97
99
  field_key=field_key,
98
100
  raw_value=raw_value,
99
101
  source_type=source_type,
100
102
  evidence_text=evidence_text,
103
+ field_definition=field_definition,
104
+ field_semantics=field_semantics,
101
105
  )
102
106
 
103
107
 
@@ -151,15 +151,12 @@ def extract_intake_delivery_time(message: str) -> str:
151
151
 
152
152
 
153
153
  def resolve_intake_extraction_scope(context: dict[str, Any] | None = None) -> set[str]:
154
- fallback_scope = {"goal", "use_case", "budget", "quantity", "constraints", "delivery_time"}
155
154
  if not isinstance(context, dict):
156
- return fallback_scope
155
+ return set()
157
156
  allowed_fields = context.get("allowed_fields")
158
- if not isinstance(allowed_fields, list):
159
- return fallback_scope
157
+ if not isinstance(allowed_fields, (list, tuple, set)):
158
+ return set()
160
159
  normalized = {str(item or "").strip() for item in allowed_fields if str(item or "").strip()}
161
- if not normalized:
162
- return fallback_scope
163
160
  return normalized
164
161
 
165
162
 
@@ -58,6 +58,8 @@ def canonicalize_field_entity(
58
58
  raw_value: Any,
59
59
  source_type: str,
60
60
  evidence_text: str,
61
+ field_definition: dict[str, Any] | None = None,
62
+ field_semantics: dict[str, Any] | None = None,
61
63
  ) -> dict[str, Any] | None:
62
64
  """Canonicalize a single field entity from raw value and evidence."""
63
65
  return _canonicalize_field_entity(
@@ -65,6 +67,8 @@ def canonicalize_field_entity(
65
67
  raw_value=raw_value,
66
68
  source_type=source_type,
67
69
  evidence_text=evidence_text,
70
+ field_definition=field_definition,
71
+ field_semantics=field_semantics,
68
72
  )
69
73
 
70
74
 
@@ -2,17 +2,24 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import re
5
6
  from typing import Any
6
7
 
7
8
  from flare_kernel.router.intake.amount_quantity import canonicalize_budget_value, canonicalize_quantity_value
8
9
  from flare_kernel.router.intake.delivery_time import canonicalize_delivery_time_value
9
10
  from flare_kernel.router.intake.field_projection.source import build_field_source_payload
11
+ from flare_kernel.router.intake.numeric import detect_numeric_precision, parse_numeric_token
10
12
  from flare_kernel.router.text_safety import has_value
11
13
 
12
- _STRICT_STRUCTURED_FIELDS = {
13
- "budget",
14
+ _STRUCTURED_VALUE_TYPES = {
15
+ "money",
16
+ "money_range",
14
17
  "quantity",
15
- "delivery_time",
18
+ "integer",
19
+ "number",
20
+ "time_window",
21
+ "date",
22
+ "datetime",
16
23
  }
17
24
 
18
25
 
@@ -34,27 +41,78 @@ def build_unparsed_field_entity(
34
41
  }
35
42
 
36
43
 
44
+ def _coerce_mapping(value: Any) -> dict[str, Any]:
45
+ return value if isinstance(value, dict) else {}
46
+
47
+
48
+ def _resolve_value_type(
49
+ *,
50
+ field_definition: dict[str, Any] | None,
51
+ field_semantics: dict[str, Any] | None,
52
+ ) -> str:
53
+ semantics = _coerce_mapping(field_semantics)
54
+ definition = _coerce_mapping(field_definition)
55
+ return str(
56
+ semantics.get("value_type")
57
+ or definition.get("value_type")
58
+ or definition.get("type")
59
+ or ""
60
+ ).strip().lower()
61
+
62
+
63
+ def _canonicalize_number_value(raw_text: str) -> dict[str, Any] | None:
64
+ match = re.search(r"(?P<number>\d+(?:\.\d+)?|[一二两三四五六七八九十百千万亿]+)", raw_text)
65
+ if not match:
66
+ return None
67
+ parsed = parse_numeric_token(match.group("number"))
68
+ if parsed is None:
69
+ return None
70
+ value: int | float = int(round(parsed)) if float(parsed).is_integer() else parsed
71
+ return {
72
+ "status": "confirmed",
73
+ "normalized_value": {
74
+ "kind": "number",
75
+ "value": value,
76
+ "precision": detect_numeric_precision(raw_text),
77
+ },
78
+ "display_value": str(value),
79
+ "confidence": 0.9,
80
+ }
81
+
82
+
83
+ def _canonicalize_structured_value(value_type: str, raw_text: str) -> dict[str, Any] | None:
84
+ if value_type in {"money", "money_range"}:
85
+ return canonicalize_budget_value(raw_text)
86
+ if value_type == "quantity":
87
+ return canonicalize_quantity_value(raw_text)
88
+ if value_type in {"integer", "number"}:
89
+ return _canonicalize_number_value(raw_text)
90
+ if value_type in {"time_window", "date", "datetime"}:
91
+ return canonicalize_delivery_time_value(raw_text)
92
+ return None
93
+
94
+
37
95
  def canonicalize_field_entity(
38
96
  *,
39
97
  field_key: str,
40
98
  raw_value: Any,
41
99
  source_type: str,
42
100
  evidence_text: str,
101
+ field_definition: dict[str, Any] | None = None,
102
+ field_semantics: dict[str, Any] | None = None,
43
103
  ) -> dict[str, Any] | None:
44
104
  """Canonicalize a single field entity from raw value and evidence."""
45
105
  normalized_key = str(field_key or "").strip()
46
106
  raw_text = str(raw_value or "").strip()
47
107
  if not normalized_key or not raw_text:
48
108
  return None
49
- canonical: dict[str, Any] | None = None
50
- if normalized_key == "budget":
51
- canonical = canonicalize_budget_value(raw_text)
52
- elif normalized_key == "quantity":
53
- canonical = canonicalize_quantity_value(raw_text)
54
- elif normalized_key == "delivery_time":
55
- canonical = canonicalize_delivery_time_value(raw_text)
109
+ value_type = _resolve_value_type(
110
+ field_definition=field_definition,
111
+ field_semantics=field_semantics,
112
+ )
113
+ canonical = _canonicalize_structured_value(value_type, raw_text)
56
114
  if canonical is None:
57
- if normalized_key in _STRICT_STRUCTURED_FIELDS:
115
+ if value_type in _STRUCTURED_VALUE_TYPES:
58
116
  canonical = {
59
117
  "status": "unparsed",
60
118
  "normalized_value": None,
@@ -22,10 +22,20 @@ def canonicalize_payload_fields(payload: dict[str, Any]) -> dict[str, Any]:
22
22
  normalized_sources = dict(field_sources) if isinstance(field_sources, dict) else {}
23
23
  existing_entities = payload.get("field_entities")
24
24
  normalized_existing = dict(existing_entities) if isinstance(existing_entities, dict) else {}
25
+ field_definitions = payload.get("field_definitions")
26
+ definitions_by_key = {
27
+ str(item.get("key") or "").strip(): item
28
+ for item in field_definitions
29
+ if isinstance(item, dict) and str(item.get("key") or "").strip()
30
+ } if isinstance(field_definitions, list) else {}
31
+ field_semantics = payload.get("field_semantics")
32
+ semantics_by_key = dict(field_semantics) if isinstance(field_semantics, dict) else {}
25
33
 
26
34
  next_entities: dict[str, Any] = {}
27
35
  next_fields: dict[str, str] = {}
28
36
  field_candidates: dict[str, Any] = {}
37
+ field_clarifications: dict[str, Any] = {}
38
+ answered_field_keys: set[str] = set()
29
39
  field_keys = set()
30
40
  field_keys.update(str(key or "").strip() for key in fields.keys())
31
41
  field_keys.update(str(key or "").strip() for key in normalized_existing.keys())
@@ -51,14 +61,27 @@ def canonicalize_payload_fields(payload: dict[str, Any]) -> dict[str, Any]:
51
61
  raw_value=raw_value,
52
62
  source_type=source_type,
53
63
  evidence_text=evidence_text,
64
+ field_definition=definitions_by_key.get(field_key),
65
+ field_semantics=(
66
+ semantics_by_key.get(field_key)
67
+ if isinstance(semantics_by_key.get(field_key), dict)
68
+ else None
69
+ ),
54
70
  )
55
71
  if not isinstance(entity, dict):
56
72
  continue
57
73
  next_entities[field_key] = entity
74
+ answered_field_keys.add(field_key)
58
75
  if is_field_entity_confirmed(entity):
59
76
  next_fields[field_key] = str(entity.get("display_value") or "").strip()
60
77
  else:
61
78
  field_candidates[field_key] = entity
79
+ field_clarifications[field_key] = {
80
+ "field_key": field_key,
81
+ "status": "needs_clarification",
82
+ "reason": "unparsed_structured_value",
83
+ "raw_value": str(entity.get("raw_value") or raw_value or "").strip(),
84
+ }
62
85
 
63
86
  payload["field_entities"] = next_entities
64
87
  payload["fields"] = next_fields
@@ -66,6 +89,21 @@ def canonicalize_payload_fields(payload: dict[str, Any]) -> dict[str, Any]:
66
89
  payload["field_candidates"] = field_candidates
67
90
  else:
68
91
  payload.pop("field_candidates", None)
92
+ if field_clarifications:
93
+ payload["field_clarifications"] = field_clarifications
94
+ else:
95
+ payload.pop("field_clarifications", None)
96
+
97
+ required_missing = payload.get("required_missing")
98
+ if isinstance(required_missing, list):
99
+ payload["required_missing"] = [
100
+ item
101
+ for item in required_missing
102
+ if str(item).strip()
103
+ and str(item).strip() not in next_fields
104
+ and str(item).strip() not in answered_field_keys
105
+ ]
106
+ return payload
69
107
 
70
108
  required_fields = payload.get("required_fields")
71
109
  if isinstance(required_fields, list):
@@ -73,16 +111,8 @@ def canonicalize_payload_fields(payload: dict[str, Any]) -> dict[str, Any]:
73
111
  payload["required_missing"] = [
74
112
  field_key
75
113
  for field_key in normalized_required_fields
76
- if field_key not in next_fields
114
+ if field_key not in next_fields and field_key not in answered_field_keys
77
115
  ]
78
- else:
79
- required_missing = payload.get("required_missing")
80
- if isinstance(required_missing, list):
81
- payload["required_missing"] = [
82
- item
83
- for item in required_missing
84
- if str(item).strip() and str(item).strip() not in next_fields
85
- ]
86
116
  return payload
87
117
 
88
118
 
@@ -0,0 +1,52 @@
1
+ """Domain-pack field context injection for kernel payload enrichment."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ from flare_kernel.contracts import KernelRequest
8
+ from flare_kernel.runtime.domain.domain_pack_loader import load_domain_pack
9
+
10
+
11
+ def _copy_list(value: Any) -> list[Any]:
12
+ return list(value) if isinstance(value, list) else []
13
+
14
+
15
+ def _should_skip_field_list(payload: dict[str, Any], key: str) -> bool:
16
+ if isinstance(payload.get(key), list):
17
+ return True
18
+ if key == "required_fields" and isinstance(payload.get("required_missing"), list):
19
+ return True
20
+ return False
21
+
22
+
23
+ def merge_domain_pack_field_context(req: KernelRequest) -> KernelRequest:
24
+ """Attach domain-pack field contracts before intake extraction runs."""
25
+ payload = dict(req.payload) if isinstance(req.payload, dict) else {}
26
+ pack = load_domain_pack(
27
+ instance_id=req.instance_id,
28
+ domain_pack_version=req.domain_pack_version,
29
+ domain=str(payload.get("domain_pack_domain") or payload.get("domain") or "").strip() or None,
30
+ payload=payload,
31
+ tenant_id=req.tenant_id,
32
+ )
33
+ pack_fields = pack.fields if isinstance(pack.fields, dict) else {}
34
+ if not isinstance(payload.get("field_definitions"), list):
35
+ definitions = _copy_list(pack_fields.get("field_definitions"))
36
+ if definitions:
37
+ payload["field_definitions"] = definitions
38
+ for key in ("required_fields", "recommended_fields", "optional_fields"):
39
+ if _should_skip_field_list(payload, key):
40
+ continue
41
+ values = _copy_list(pack_fields.get(key))
42
+ if values:
43
+ payload[key] = values
44
+ if (
45
+ not isinstance(payload.get("field_semantics"), dict)
46
+ and isinstance(pack_fields.get("field_semantics"), dict)
47
+ ):
48
+ payload["field_semantics"] = dict(pack_fields.get("field_semantics") or {})
49
+ return req.model_copy(update={"payload": payload})
50
+
51
+
52
+ __all__ = ["merge_domain_pack_field_context"]
@@ -43,6 +43,9 @@ from flare_kernel.router.intake.payload_updates import (
43
43
  from flare_kernel.router.kernel_facade.dependency_resolution import (
44
44
  resolve_payload_enrichment_dependencies,
45
45
  )
46
+ from flare_kernel.router.kernel_facade.domain_pack_payload import (
47
+ merge_domain_pack_field_context,
48
+ )
46
49
  from flare_kernel.router.kernel_facade.utils import (
47
50
  _kernel_attr,
48
51
  _safe_session_id,
@@ -58,9 +61,7 @@ from flare_kernel.router.mode.resolution import (
58
61
  from flare_kernel.router.request.intent_resolution import (
59
62
  resolve_intent_override as _resolve_intent_override_from_router,
60
63
  )
61
- from flare_kernel.router.text_safety import (
62
- extract_user_message as _extract_user_message,
63
- )
64
+ from flare_kernel.router.text_safety import extract_user_message as _extract_user_message
64
65
 
65
66
 
66
67
  def enrich_kernel_payload_flow(
@@ -95,6 +96,8 @@ def enrich_kernel_payload_flow(
95
96
  is_intake_control_message_fn: Callable[[str], bool] | None = None,
96
97
  ) -> dict[str, Any]:
97
98
  """Run payload enrichment with fully resolved dependencies."""
99
+ if resolved_mode == "requirement_intake":
100
+ req = merge_domain_pack_field_context(req)
98
101
  return enrich_payload_from_router(
99
102
  req,
100
103
  resolved_mode=resolved_mode,
@@ -46,7 +46,26 @@ _DOCUMENT_OUTPUT_INSTRUCTION = (
46
46
  )
47
47
 
48
48
 
49
- def _missing_field_prompt_items(payload: dict[str, Any], required_missing: list[Any]) -> list[dict[str, str]]:
49
+ def _normalize_prompt_options(options: Any) -> list[dict[str, str]]:
50
+ if not isinstance(options, list):
51
+ return []
52
+ normalized: list[dict[str, str]] = []
53
+ for index, option in enumerate(options, start=1):
54
+ item = option if isinstance(option, dict) else {"label": option, "value": option}
55
+ label = str(item.get("label") or item.get("text") or item.get("value") or "").strip()
56
+ if not label:
57
+ continue
58
+ normalized.append(
59
+ {
60
+ "key": str(item.get("key") or f"option_{index}").strip(),
61
+ "label": label,
62
+ "value": str(item.get("value") or label).strip(),
63
+ }
64
+ )
65
+ return normalized
66
+
67
+
68
+ def _missing_field_prompt_items(payload: dict[str, Any], required_missing: list[Any]) -> list[dict[str, Any]]:
50
69
  projected_items = payload.get("required_missing_items") if isinstance(payload.get("required_missing_items"), list) else []
51
70
  projected_map = {
52
71
  str(item.get("key") or "").strip(): str(item.get("label") or "").strip()
@@ -66,7 +85,14 @@ def _missing_field_prompt_items(payload: dict[str, Any], required_missing: list[
66
85
  continue
67
86
  definition = definition_map.get(key, {})
68
87
  label = projected_map.get(key) or str(definition.get("label") or key).strip()
69
- items.append({"key": key, "label": label})
88
+ prompt_item: dict[str, Any] = {"key": key, "label": label}
89
+ question = str(definition.get("question") or "").strip()
90
+ if question:
91
+ prompt_item["question"] = question
92
+ options = _normalize_prompt_options(definition.get("options"))
93
+ if options:
94
+ prompt_item["options"] = options
95
+ items.append(prompt_item)
70
96
  return items
71
97
 
72
98
 
@@ -19,6 +19,10 @@ from flare_kernel.runtime.domain.profile_resolution import (
19
19
  ResolutionContext,
20
20
  ResolutionTraceEntry,
21
21
  )
22
+ from flare_kernel.runtime.domain.domain_pack_paths import (
23
+ DEFAULT_PACK_VARIANT as _DEFAULT_PACK_VARIANT,
24
+ resolve_domain_pack_dir,
25
+ )
22
26
 
23
27
  logger = get_logger("flare_kernel.runtime.domain.domain_pack_loader")
24
28
 
@@ -26,7 +30,6 @@ _DOMAIN_PACK_ROOT_ENV = "FLARE_DOMAIN_PACK_ROOT"
26
30
  _DEFAULT_DOMAIN_ENV = "FLARE_DOMAIN_PACK_DEFAULT_DOMAIN"
27
31
  _INSTANCE_PROFILE_FILE = "branding/instance-branding.json"
28
32
  _DEFAULT_DOMAIN = "generic"
29
- _DEFAULT_VERSION = "v1"
30
33
 
31
34
 
32
35
  @dataclass(frozen=True)
@@ -390,7 +393,7 @@ def _new_capability(enabled: bool, *, reason: str = "", missing: bool = False) -
390
393
  return payload
391
394
 
392
395
 
393
- def _build_missing_pack(domain: str, version: str, root: Path | None, *, reason: str) -> DomainPack:
396
+ def _build_missing_pack(domain: str, variant: str, root: Path | None, *, reason: str) -> DomainPack:
394
397
  capabilities = {
395
398
  "pack": _new_capability(False, reason=reason, missing=True),
396
399
  "taxonomy": _new_capability(False, reason="pack_missing", missing=True),
@@ -402,7 +405,7 @@ def _build_missing_pack(domain: str, version: str, root: Path | None, *, reason:
402
405
  }
403
406
  return DomainPack(
404
407
  domain=domain,
405
- version=version,
408
+ version=variant,
406
409
  root=str(root) if isinstance(root, Path) else "",
407
410
  taxonomy=None,
408
411
  fields=None,
@@ -417,12 +420,12 @@ def _build_missing_pack(domain: str, version: str, root: Path | None, *, reason:
417
420
 
418
421
 
419
422
  @lru_cache(maxsize=32)
420
- def _load_domain_pack_cached(root_path: str, domain: str, domain_pack_version: str) -> DomainPack:
423
+ def _load_domain_pack_cached(root_path: str, domain: str, domain_pack_variant: str) -> DomainPack:
421
424
  root = Path(root_path)
422
- pack_root = root / domain / domain_pack_version
423
- if not pack_root.exists() or not pack_root.is_dir():
424
- logger.warning("domain_pack.version_not_found domain=%s version=%s root=%s", domain, domain_pack_version, str(pack_root))
425
- return _build_missing_pack(domain, domain_pack_version, root, reason="version_not_found")
425
+ pack_root = resolve_domain_pack_dir(root, domain, domain_pack_variant)
426
+ if pack_root is None:
427
+ logger.warning("domain_pack.not_found domain=%s variant=%s root=%s", domain, domain_pack_variant, str(root / domain))
428
+ return _build_missing_pack(domain, domain_pack_variant, root, reason="pack_not_found")
426
429
 
427
430
  taxonomy_raw = _read_structured_file(pack_root / "taxonomy.yaml")
428
431
  fields_raw = _read_structured_file(pack_root / "fields.yaml")
@@ -473,7 +476,7 @@ def _load_domain_pack_cached(root_path: str, domain: str, domain_pack_version: s
473
476
 
474
477
  return DomainPack(
475
478
  domain=domain,
476
- version=domain_pack_version,
479
+ version=domain_pack_variant,
477
480
  root=str(pack_root),
478
481
  taxonomy=taxonomy,
479
482
  fields=fields,
@@ -626,7 +629,7 @@ def load_requirement_schema(instance_id: str) -> dict[str, Any] | None:
626
629
 
627
630
  pack = load_domain_pack(
628
631
  instance_id=instance_id,
629
- domain_pack_version=_DEFAULT_VERSION,
632
+ domain_pack_version=_DEFAULT_PACK_VARIANT,
630
633
  domain=resolve_default_domain(),
631
634
  )
632
635
  if not isinstance(pack.fields, dict):
@@ -0,0 +1,38 @@
1
+ """Domain-pack filesystem path resolution."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+
7
+ DEFAULT_PACK_VARIANT = "default"
8
+ _PACK_MODULE_FILENAMES = (
9
+ "taxonomy.yaml",
10
+ "fields.yaml",
11
+ "workflow.yaml",
12
+ "search-mapping.yaml",
13
+ "replace-rules.yaml",
14
+ )
15
+
16
+
17
+ def is_domain_pack_dir(path: Path) -> bool:
18
+ if not path.exists() or not path.is_dir():
19
+ return False
20
+ if (path / "templates").is_dir():
21
+ return True
22
+ return any((path / filename).is_file() for filename in _PACK_MODULE_FILENAMES)
23
+
24
+
25
+ def resolve_domain_pack_dir(root: Path, domain: str, domain_pack_variant: str) -> Path | None:
26
+ domain_root = root / domain
27
+ if is_domain_pack_dir(domain_root):
28
+ return domain_root
29
+ variant = str(domain_pack_variant or "").strip()
30
+ if not variant:
31
+ return None
32
+ variant_root = domain_root / variant
33
+ if is_domain_pack_dir(variant_root):
34
+ return variant_root
35
+ return None
36
+
37
+
38
+ __all__ = ["DEFAULT_PACK_VARIANT", "is_domain_pack_dir", "resolve_domain_pack_dir"]
@@ -6,6 +6,10 @@ from typing import Any, Callable
6
6
 
7
7
 
8
8
  def ensure_document_understanding_column(conn: Any, text_fn: Callable[[str], Any]) -> None:
9
+ dialect_name = str(getattr(getattr(conn, "dialect", None), "name", "") or "").lower()
10
+ if dialect_name == "postgresql":
11
+ conn.execute(text_fn("ALTER TABLE flare_project_sources ADD COLUMN IF NOT EXISTS document_understanding TEXT"))
12
+ return
9
13
  try:
10
14
  conn.execute(text_fn("ALTER TABLE flare_project_sources ADD COLUMN document_understanding TEXT"))
11
15
  except Exception:
@@ -92,8 +92,8 @@ def build_intake_context(
92
92
  prompt_summary_template_key = str(
93
93
  payload.get("prompt_summary_template_key")
94
94
  or pack_workflow.get("prompt_summary_template_key")
95
- or "flare_default_v1"
96
- ).strip() or "flare_default_v1"
95
+ or "flare_default"
96
+ ).strip() or "flare_default"
97
97
  prompt_summary_template = payload.get("prompt_summary_template")
98
98
  if not isinstance(prompt_summary_template, dict):
99
99
  prompt_summary_template = pack_workflow.get("prompt_summary_template")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flare-kernel
3
- Version: 0.2.9
3
+ Version: 0.2.10
4
4
  Summary: FLARE kernel runtime package
5
5
  License: Proprietary
6
6
  Classifier: Development Status :: 3 - Alpha
@@ -140,6 +140,7 @@ src/flare_kernel/router/kernel_endpoint_handlers/turn.py
140
140
  src/flare_kernel/router/kernel_facade/__init__.py
141
141
  src/flare_kernel/router/kernel_facade/canonical_state.py
142
142
  src/flare_kernel/router/kernel_facade/dependency_resolution.py
143
+ src/flare_kernel/router/kernel_facade/domain_pack_payload.py
143
144
  src/flare_kernel/router/kernel_facade/flow.py
144
145
  src/flare_kernel/router/kernel_facade/orchestration.py
145
146
  src/flare_kernel/router/kernel_facade/payload_enrichment.py
@@ -260,6 +261,7 @@ src/flare_kernel/runtime/diagnostics/replay_snapshot_io.py
260
261
  src/flare_kernel/runtime/diagnostics/replay_snapshot_validation.py
261
262
  src/flare_kernel/runtime/domain/__init__.py
262
263
  src/flare_kernel/runtime/domain/domain_pack_loader.py
264
+ src/flare_kernel/runtime/domain/domain_pack_paths.py
263
265
  src/flare_kernel/runtime/domain/profile_resolution.py
264
266
  src/flare_kernel/runtime/execution/__init__.py
265
267
  src/flare_kernel/runtime/execution/agent_runtime.py
@@ -10,7 +10,7 @@ _REPO_ROOT = Path(__file__).resolve().parents[3]
10
10
 
11
11
 
12
12
  def _load_generic_domain_pack() -> dict:
13
- domain_dir = _REPO_ROOT / "domain-packs" / "generic" / "v1"
13
+ domain_dir = _REPO_ROOT / "domain-packs" / "generic"
14
14
  workflow = json.loads((domain_dir / "workflow.yaml").read_text(encoding="utf-8"))
15
15
  templates = {
16
16
  path.name: path.read_text(encoding="utf-8")
@@ -92,9 +92,9 @@ def test_kernel_core_has_no_infrastructure_deployment_field_canonicalization() -
92
92
  def test_generic_pack_and_frontend_process_model_have_no_deployment_gate_terms() -> None:
93
93
  repo_root = Path(__file__).resolve().parents[3]
94
94
  paths = [
95
- repo_root / "domain-packs" / "generic" / "v1" / "fields.yaml",
96
- repo_root / "domain-packs" / "generic" / "v1" / "workflow.yaml",
97
- repo_root / "domain-packs" / "generic" / "v1" / "search-mapping.yaml",
95
+ repo_root / "domain-packs" / "generic" / "fields.yaml",
96
+ repo_root / "domain-packs" / "generic" / "workflow.yaml",
97
+ repo_root / "domain-packs" / "generic" / "search-mapping.yaml",
98
98
  repo_root / "packages" / "flare-chat-ui" / "src" / "chat-gui" / "ui" / "timeline" / "components" / "chatTimelineSystemProcessModel.js",
99
99
  ]
100
100
  banned_tokens = [
@@ -109,6 +109,23 @@ def test_normalize_stage_status_and_question_sets_idle_when_auto_collecting() ->
109
109
  assert question is None
110
110
 
111
111
 
112
+ def test_normalize_stage_status_and_question_does_not_synthesize_question_without_backend_state() -> None:
113
+ stage_key, status_key, question = normalize_stage_status_and_question(
114
+ orchestration_status={"current_stage": "requirement_intake.collecting"},
115
+ required_missing=["budget"],
116
+ activated_mode="requirement_intake",
117
+ current_question=None,
118
+ command="send_message",
119
+ assistant_text="",
120
+ intake_session_id="intake_1",
121
+ normalize_stage_status_fn=lambda **_kwargs: ("requirement_intake", "collecting"),
122
+ )
123
+
124
+ assert stage_key == "requirement_intake"
125
+ assert status_key == "collecting"
126
+ assert question is None
127
+
128
+
112
129
  def test_resolve_analysis_generation_state_builds_validation_error_when_not_ready() -> None:
113
130
  state = resolve_analysis_generation_state(
114
131
  command="generate_analysis",
@@ -217,7 +217,7 @@ def test_canonical_payload_ignores_removed_plan_authoritative_fields() -> None:
217
217
  "removed_canvas_draft": {"content": "draft"},
218
218
  "removed_apply_handoff": {"ready": False},
219
219
  "removed_summary_contract": {"summary": "contract"},
220
- "removed_summary_template_key": "flare_default_v1",
220
+ "removed_summary_template_key": "flare_default",
221
221
  "removed_summary_template": {"sections": ["summary"]},
222
222
  },
223
223
  build_confirmed_fields_schema_fn=lambda *_args, **_kwargs: {},