hazo_collab_forms 3.1.6 → 5.0.0

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 (284) hide show
  1. package/CHANGE_LOG.md +207 -0
  2. package/README.md +3 -0
  3. package/dist/components/clarification/clarification_item_body.d.ts +19 -1
  4. package/dist/components/clarification/clarification_item_body.d.ts.map +1 -1
  5. package/dist/components/clarification/clarification_item_body.js +114 -6
  6. package/dist/components/clarification/clarification_item_body.js.map +1 -1
  7. package/dist/components/clarification/clarification_thread.js +1 -1
  8. package/dist/components/clarification/clarification_thread.js.map +1 -1
  9. package/dist/components/clarification/index.d.ts +2 -0
  10. package/dist/components/clarification/index.d.ts.map +1 -1
  11. package/dist/components/clarification/index.js +1 -0
  12. package/dist/components/clarification/index.js.map +1 -1
  13. package/dist/components/clarification/resolution_status_strip.d.ts +18 -0
  14. package/dist/components/clarification/resolution_status_strip.d.ts.map +1 -0
  15. package/dist/components/clarification/resolution_status_strip.js +20 -0
  16. package/dist/components/clarification/resolution_status_strip.js.map +1 -0
  17. package/dist/components/hazo_fb_form/context.d.ts +1 -1
  18. package/dist/components/hazo_fb_form/context.d.ts.map +1 -1
  19. package/dist/components/hazo_fb_form/hazo_fb_form.d.ts.map +1 -1
  20. package/dist/components/hazo_fb_form/hazo_fb_form.js +330 -113
  21. package/dist/components/hazo_fb_form/hazo_fb_form.js.map +1 -1
  22. package/dist/components/hazo_fb_form/hooks/use_fb_form_state.d.ts +3 -3
  23. package/dist/components/hazo_fb_form/hooks/use_fb_form_state.d.ts.map +1 -1
  24. package/dist/components/hazo_fb_form/hooks/use_fb_form_state.js +340 -61
  25. package/dist/components/hazo_fb_form/hooks/use_fb_form_state.js.map +1 -1
  26. package/dist/components/hazo_fb_form/hooks/use_llm_run.d.ts +3 -1
  27. package/dist/components/hazo_fb_form/hooks/use_llm_run.d.ts.map +1 -1
  28. package/dist/components/hazo_fb_form/hooks/use_llm_run.js +89 -11
  29. package/dist/components/hazo_fb_form/hooks/use_llm_run.js.map +1 -1
  30. package/dist/components/hazo_fb_form/shared/agent_stepper.js +1 -1
  31. package/dist/components/hazo_fb_form/shared/agent_stepper.js.map +1 -1
  32. package/dist/components/hazo_fb_form/shared/file_status_accordion.d.ts +9 -0
  33. package/dist/components/hazo_fb_form/shared/file_status_accordion.d.ts.map +1 -0
  34. package/dist/components/hazo_fb_form/shared/file_status_accordion.js +39 -0
  35. package/dist/components/hazo_fb_form/shared/file_status_accordion.js.map +1 -0
  36. package/dist/components/hazo_fb_form/shared/format.d.ts.map +1 -1
  37. package/dist/components/hazo_fb_form/shared/format.js +8 -3
  38. package/dist/components/hazo_fb_form/shared/format.js.map +1 -1
  39. package/dist/components/hazo_fb_form/shared/send_back_item_card.d.ts +7 -1
  40. package/dist/components/hazo_fb_form/shared/send_back_item_card.d.ts.map +1 -1
  41. package/dist/components/hazo_fb_form/shared/send_back_item_card.js +6 -3
  42. package/dist/components/hazo_fb_form/shared/send_back_item_card.js.map +1 -1
  43. package/dist/components/hazo_fb_form/types.d.ts +3 -1
  44. package/dist/components/hazo_fb_form/types.d.ts.map +1 -1
  45. package/dist/components/hazo_fb_form/views/back_office_view.js +1 -1
  46. package/dist/components/hazo_fb_form/views/back_office_view.js.map +1 -1
  47. package/dist/components/hazo_fb_form/views/clarifications_view.js +2 -2
  48. package/dist/components/hazo_fb_form/views/clarifications_view.js.map +1 -1
  49. package/dist/components/hazo_fb_form/views/front_office_view.d.ts.map +1 -1
  50. package/dist/components/hazo_fb_form/views/front_office_view.js +62 -41
  51. package/dist/components/hazo_fb_form/views/front_office_view.js.map +1 -1
  52. package/dist/components/hazo_fb_form/views/interim_view.js +3 -3
  53. package/dist/components/hazo_fb_form/views/interim_view.js.map +1 -1
  54. package/dist/components/hazo_fb_form/views/review_queue_view.d.ts.map +1 -1
  55. package/dist/components/hazo_fb_form/views/review_queue_view.js +22 -9
  56. package/dist/components/hazo_fb_form/views/review_queue_view.js.map +1 -1
  57. package/dist/components/hazo_validation_rule_editor/components/rule_editor.d.ts.map +1 -1
  58. package/dist/components/hazo_validation_rule_editor/components/rule_editor.js +32 -3
  59. package/dist/components/hazo_validation_rule_editor/components/rule_editor.js.map +1 -1
  60. package/dist/components/hazo_validation_rule_editor/components/variable_chain_input.d.ts +20 -0
  61. package/dist/components/hazo_validation_rule_editor/components/variable_chain_input.d.ts.map +1 -0
  62. package/dist/components/hazo_validation_rule_editor/components/variable_chain_input.js +34 -0
  63. package/dist/components/hazo_validation_rule_editor/components/variable_chain_input.js.map +1 -0
  64. package/dist/components/hazo_validation_rule_editor/context.d.ts +3 -2
  65. package/dist/components/hazo_validation_rule_editor/context.d.ts.map +1 -1
  66. package/dist/components/hazo_validation_rule_editor/context.js +15 -3
  67. package/dist/components/hazo_validation_rule_editor/context.js.map +1 -1
  68. package/dist/components/hazo_validation_rule_editor/types.d.ts +7 -1
  69. package/dist/components/hazo_validation_rule_editor/types.d.ts.map +1 -1
  70. package/dist/components/hazo_validation_rule_editor/validation_rule_editor.d.ts +1 -1
  71. package/dist/components/hazo_validation_rule_editor/validation_rule_editor.d.ts.map +1 -1
  72. package/dist/components/hazo_validation_rule_editor/validation_rule_editor.js +2 -2
  73. package/dist/components/hazo_validation_rule_editor/validation_rule_editor.js.map +1 -1
  74. package/dist/components/index.d.ts +2 -0
  75. package/dist/components/index.d.ts.map +1 -1
  76. package/dist/components/index.js +2 -0
  77. package/dist/components/index.js.map +1 -1
  78. package/dist/components/shared/document_type_editor.d.ts +31 -0
  79. package/dist/components/shared/document_type_editor.d.ts.map +1 -0
  80. package/dist/components/shared/document_type_editor.js +60 -0
  81. package/dist/components/shared/document_type_editor.js.map +1 -0
  82. package/dist/components/shared/file_bar/file_bar.d.ts +7 -1
  83. package/dist/components/shared/file_bar/file_bar.d.ts.map +1 -1
  84. package/dist/components/shared/file_bar/file_bar.js +5 -3
  85. package/dist/components/shared/file_bar/file_bar.js.map +1 -1
  86. package/dist/components/shared/file_bar/file_bar_validation_dialog.js +4 -4
  87. package/dist/components/shared/file_bar/file_bar_validation_dialog.js.map +1 -1
  88. package/dist/components/shared/file_status_icon.d.ts +23 -0
  89. package/dist/components/shared/file_status_icon.d.ts.map +1 -0
  90. package/dist/components/shared/file_status_icon.js +38 -0
  91. package/dist/components/shared/file_status_icon.js.map +1 -0
  92. package/dist/components/shared/json_data_panel/json_data_panel.d.ts +1 -1
  93. package/dist/components/shared/json_data_panel/json_data_panel.d.ts.map +1 -1
  94. package/dist/components/shared/json_data_panel/json_data_panel.js +27 -2
  95. package/dist/components/shared/json_data_panel/json_data_panel.js.map +1 -1
  96. package/dist/components/shared/rule_result_card.d.ts.map +1 -1
  97. package/dist/components/shared/rule_result_card.js +5 -4
  98. package/dist/components/shared/rule_result_card.js.map +1 -1
  99. package/dist/components/thread_form/components/add_question_dialog.d.ts +12 -0
  100. package/dist/components/thread_form/components/add_question_dialog.d.ts.map +1 -0
  101. package/dist/components/thread_form/components/add_question_dialog.js +36 -0
  102. package/dist/components/thread_form/components/add_question_dialog.js.map +1 -0
  103. package/dist/components/thread_form/components/agent_compose_dialog.d.ts +30 -0
  104. package/dist/components/thread_form/components/agent_compose_dialog.d.ts.map +1 -0
  105. package/dist/components/thread_form/components/agent_compose_dialog.js +45 -0
  106. package/dist/components/thread_form/components/agent_compose_dialog.js.map +1 -0
  107. package/dist/components/thread_form/components/clarification.d.ts +14 -0
  108. package/dist/components/thread_form/components/clarification.d.ts.map +1 -0
  109. package/dist/components/thread_form/components/clarification.js +12 -0
  110. package/dist/components/thread_form/components/clarification.js.map +1 -0
  111. package/dist/components/thread_form/components/collected_data_view.d.ts +15 -0
  112. package/dist/components/thread_form/components/collected_data_view.d.ts.map +1 -0
  113. package/dist/components/thread_form/components/collected_data_view.js +121 -0
  114. package/dist/components/thread_form/components/collected_data_view.js.map +1 -0
  115. package/dist/components/thread_form/components/coverage_card.d.ts +11 -0
  116. package/dist/components/thread_form/components/coverage_card.d.ts.map +1 -0
  117. package/dist/components/thread_form/components/coverage_card.js +60 -0
  118. package/dist/components/thread_form/components/coverage_card.js.map +1 -0
  119. package/dist/components/thread_form/components/file_bar.d.ts +93 -0
  120. package/dist/components/thread_form/components/file_bar.d.ts.map +1 -0
  121. package/dist/components/thread_form/components/file_bar.js +251 -0
  122. package/dist/components/thread_form/components/file_bar.js.map +1 -0
  123. package/dist/components/thread_form/components/file_info_dialog.d.ts +15 -0
  124. package/dist/components/thread_form/components/file_info_dialog.d.ts.map +1 -0
  125. package/dist/components/thread_form/components/file_info_dialog.js +64 -0
  126. package/dist/components/thread_form/components/file_info_dialog.js.map +1 -0
  127. package/dist/components/thread_form/components/issue_group_tree.d.ts +20 -0
  128. package/dist/components/thread_form/components/issue_group_tree.d.ts.map +1 -0
  129. package/dist/components/thread_form/components/issue_group_tree.js +164 -0
  130. package/dist/components/thread_form/components/issue_group_tree.js.map +1 -0
  131. package/dist/components/thread_form/components/pdf_side_panel.d.ts +20 -0
  132. package/dist/components/thread_form/components/pdf_side_panel.d.ts.map +1 -0
  133. package/dist/components/thread_form/components/pdf_side_panel.js +63 -0
  134. package/dist/components/thread_form/components/pdf_side_panel.js.map +1 -0
  135. package/dist/components/thread_form/components/rule_decision_row.d.ts +31 -0
  136. package/dist/components/thread_form/components/rule_decision_row.d.ts.map +1 -0
  137. package/dist/components/thread_form/components/rule_decision_row.js +20 -0
  138. package/dist/components/thread_form/components/rule_decision_row.js.map +1 -0
  139. package/dist/components/thread_form/components/send_back_message.d.ts +32 -0
  140. package/dist/components/thread_form/components/send_back_message.d.ts.map +1 -0
  141. package/dist/components/thread_form/components/send_back_message.js +82 -0
  142. package/dist/components/thread_form/components/send_back_message.js.map +1 -0
  143. package/dist/components/thread_form/components/shared.d.ts +54 -0
  144. package/dist/components/thread_form/components/shared.d.ts.map +1 -0
  145. package/dist/components/thread_form/components/shared.js +136 -0
  146. package/dist/components/thread_form/components/shared.js.map +1 -0
  147. package/dist/components/thread_form/components/task_card.d.ts +90 -0
  148. package/dist/components/thread_form/components/task_card.d.ts.map +1 -0
  149. package/dist/components/thread_form/components/task_card.js +63 -0
  150. package/dist/components/thread_form/components/task_card.js.map +1 -0
  151. package/dist/components/thread_form/components/text_doc_check.d.ts +15 -0
  152. package/dist/components/thread_form/components/text_doc_check.d.ts.map +1 -0
  153. package/dist/components/thread_form/components/text_doc_check.js +16 -0
  154. package/dist/components/thread_form/components/text_doc_check.js.map +1 -0
  155. package/dist/components/thread_form/components/text_extraction.d.ts +14 -0
  156. package/dist/components/thread_form/components/text_extraction.d.ts.map +1 -0
  157. package/dist/components/thread_form/components/text_extraction.js +16 -0
  158. package/dist/components/thread_form/components/text_extraction.js.map +1 -0
  159. package/dist/components/thread_form/components/thread_composer.d.ts +15 -0
  160. package/dist/components/thread_form/components/thread_composer.d.ts.map +1 -0
  161. package/dist/components/thread_form/components/thread_composer.js +93 -0
  162. package/dist/components/thread_form/components/thread_composer.js.map +1 -0
  163. package/dist/components/thread_form/components/thread_timeline.d.ts +65 -0
  164. package/dist/components/thread_form/components/thread_timeline.d.ts.map +1 -0
  165. package/dist/components/thread_form/components/thread_timeline.js +225 -0
  166. package/dist/components/thread_form/components/thread_timeline.js.map +1 -0
  167. package/dist/components/thread_form/hooks/use_file_pipeline.d.ts +126 -0
  168. package/dist/components/thread_form/hooks/use_file_pipeline.d.ts.map +1 -0
  169. package/dist/components/thread_form/hooks/use_file_pipeline.js +760 -0
  170. package/dist/components/thread_form/hooks/use_file_pipeline.js.map +1 -0
  171. package/dist/components/thread_form/hooks/use_thread_form.d.ts +36 -0
  172. package/dist/components/thread_form/hooks/use_thread_form.d.ts.map +1 -0
  173. package/dist/components/thread_form/hooks/use_thread_form.js +126 -0
  174. package/dist/components/thread_form/hooks/use_thread_form.js.map +1 -0
  175. package/dist/components/thread_form/index.d.ts +33 -0
  176. package/dist/components/thread_form/index.d.ts.map +1 -0
  177. package/dist/components/thread_form/index.js +30 -0
  178. package/dist/components/thread_form/index.js.map +1 -0
  179. package/dist/components/thread_form/sample_data.d.ts +8 -0
  180. package/dist/components/thread_form/sample_data.d.ts.map +1 -0
  181. package/dist/components/thread_form/sample_data.js +658 -0
  182. package/dist/components/thread_form/sample_data.js.map +1 -0
  183. package/dist/components/thread_form/thread_form.d.ts +7 -0
  184. package/dist/components/thread_form/thread_form.d.ts.map +1 -0
  185. package/dist/components/thread_form/thread_form.js +1385 -0
  186. package/dist/components/thread_form/thread_form.js.map +1 -0
  187. package/dist/components/thread_form/types.d.ts +402 -0
  188. package/dist/components/thread_form/types.d.ts.map +1 -0
  189. package/dist/components/thread_form/types.js +23 -0
  190. package/dist/components/thread_form/types.js.map +1 -0
  191. package/dist/components/thread_form/utils/file_decision_state.d.ts +22 -0
  192. package/dist/components/thread_form/utils/file_decision_state.d.ts.map +1 -0
  193. package/dist/components/thread_form/utils/file_decision_state.js +37 -0
  194. package/dist/components/thread_form/utils/file_decision_state.js.map +1 -0
  195. package/dist/components/thread_form/utils/merge_send_back.d.ts +13 -0
  196. package/dist/components/thread_form/utils/merge_send_back.d.ts.map +1 -0
  197. package/dist/components/thread_form/utils/merge_send_back.js +23 -0
  198. package/dist/components/thread_form/utils/merge_send_back.js.map +1 -0
  199. package/dist/lib/autofill_handler.d.ts.map +1 -1
  200. package/dist/lib/autofill_handler.js +5 -44
  201. package/dist/lib/autofill_handler.js.map +1 -1
  202. package/dist/lib/classification_handler.d.ts +105 -0
  203. package/dist/lib/classification_handler.d.ts.map +1 -0
  204. package/dist/lib/classification_handler.js +342 -0
  205. package/dist/lib/classification_handler.js.map +1 -0
  206. package/dist/lib/content_gate_handler.d.ts +37 -0
  207. package/dist/lib/content_gate_handler.d.ts.map +1 -0
  208. package/dist/lib/content_gate_handler.js +126 -0
  209. package/dist/lib/content_gate_handler.js.map +1 -0
  210. package/dist/lib/index.d.ts +10 -0
  211. package/dist/lib/index.d.ts.map +1 -1
  212. package/dist/lib/index.js +5 -0
  213. package/dist/lib/index.js.map +1 -1
  214. package/dist/lib/periodic_coverage_runner.d.ts +24 -0
  215. package/dist/lib/periodic_coverage_runner.d.ts.map +1 -0
  216. package/dist/lib/periodic_coverage_runner.js +121 -0
  217. package/dist/lib/periodic_coverage_runner.js.map +1 -0
  218. package/dist/lib/resolution_handler.d.ts +150 -0
  219. package/dist/lib/resolution_handler.d.ts.map +1 -0
  220. package/dist/lib/resolution_handler.js +597 -0
  221. package/dist/lib/resolution_handler.js.map +1 -0
  222. package/dist/lib/resolve_variable.d.ts +25 -0
  223. package/dist/lib/resolve_variable.d.ts.map +1 -0
  224. package/dist/lib/resolve_variable.js +77 -0
  225. package/dist/lib/resolve_variable.js.map +1 -0
  226. package/dist/lib/validation_handler.d.ts +27 -3
  227. package/dist/lib/validation_handler.d.ts.map +1 -1
  228. package/dist/lib/validation_handler.js +338 -288
  229. package/dist/lib/validation_handler.js.map +1 -1
  230. package/dist/types/clarification.d.ts +54 -0
  231. package/dist/types/clarification.d.ts.map +1 -1
  232. package/dist/types/fb_form_data.d.ts +273 -123
  233. package/dist/types/fb_form_data.d.ts.map +1 -1
  234. package/dist/types/fb_form_data.js +44 -58
  235. package/dist/types/fb_form_data.js.map +1 -1
  236. package/dist/types/fb_form_data_v1.d.ts +250 -0
  237. package/dist/types/fb_form_data_v1.d.ts.map +1 -0
  238. package/dist/types/fb_form_data_v1.js +117 -0
  239. package/dist/types/fb_form_data_v1.js.map +1 -0
  240. package/dist/types/fb_form_instance.d.ts +1 -1
  241. package/dist/types/fb_form_instance.d.ts.map +1 -1
  242. package/dist/types/index.d.ts +5 -3
  243. package/dist/types/index.d.ts.map +1 -1
  244. package/dist/types/index.js +2 -1
  245. package/dist/types/index.js.map +1 -1
  246. package/dist/types/validation.d.ts +134 -12
  247. package/dist/types/validation.d.ts.map +1 -1
  248. package/dist/utils/expectation_extractor.d.ts +31 -0
  249. package/dist/utils/expectation_extractor.d.ts.map +1 -0
  250. package/dist/utils/expectation_extractor.js +142 -0
  251. package/dist/utils/expectation_extractor.js.map +1 -0
  252. package/dist/utils/fb_data_adapter.d.ts +7 -2
  253. package/dist/utils/fb_data_adapter.d.ts.map +1 -1
  254. package/dist/utils/fb_data_adapter.js +58 -7
  255. package/dist/utils/fb_data_adapter.js.map +1 -1
  256. package/dist/utils/fb_data_adapter_v2.d.ts +17 -0
  257. package/dist/utils/fb_data_adapter_v2.d.ts.map +1 -0
  258. package/dist/utils/fb_data_adapter_v2.js +483 -0
  259. package/dist/utils/fb_data_adapter_v2.js.map +1 -0
  260. package/dist/utils/fb_data_helpers.d.ts +1 -1
  261. package/dist/utils/fb_data_helpers.d.ts.map +1 -1
  262. package/dist/utils/fb_data_mutations.d.ts +1 -1
  263. package/dist/utils/fb_data_mutations.d.ts.map +1 -1
  264. package/dist/utils/fb_data_mutations_v2.d.ts +46 -0
  265. package/dist/utils/fb_data_mutations_v2.d.ts.map +1 -0
  266. package/dist/utils/fb_data_mutations_v2.js +341 -0
  267. package/dist/utils/fb_data_mutations_v2.js.map +1 -0
  268. package/dist/utils/fb_data_queries.d.ts +81 -0
  269. package/dist/utils/fb_data_queries.d.ts.map +1 -0
  270. package/dist/utils/fb_data_queries.js +354 -0
  271. package/dist/utils/fb_data_queries.js.map +1 -0
  272. package/dist/utils/index.d.ts +4 -0
  273. package/dist/utils/index.d.ts.map +1 -1
  274. package/dist/utils/index.js +6 -0
  275. package/dist/utils/index.js.map +1 -1
  276. package/dist/utils/issue_bucketing.d.ts +36 -0
  277. package/dist/utils/issue_bucketing.d.ts.map +1 -0
  278. package/dist/utils/issue_bucketing.js +107 -0
  279. package/dist/utils/issue_bucketing.js.map +1 -0
  280. package/dist/utils/validation_result.d.ts +32 -0
  281. package/dist/utils/validation_result.d.ts.map +1 -0
  282. package/dist/utils/validation_result.js +55 -0
  283. package/dist/utils/validation_result.js.map +1 -0
  284. package/package.json +16 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fb_data_adapter_v2.d.ts","sourceRoot":"","sources":["../../src/utils/fb_data_adapter_v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE,OAAO,KAAK,EACV,WAAW,EAaZ,MAAM,0BAA0B,CAAC;AAMlC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAoK1E"}
@@ -0,0 +1,483 @@
1
+ /**
2
+ * V2 Adapter: Convert flat FbFormInstance data into the flattened FbDataEntry[] model.
3
+ *
4
+ * Unlike v1, this adapter:
5
+ * - Puts validations and clarifications as direct arrays on each entry (not nested in activities)
6
+ * - Builds a thread[] for each clarification spanning all form instances
7
+ * - Stores review decisions directly on clarifications (not as separate activity objects)
8
+ * - Produces instance-independent output — same JSON regardless of which instance is active
9
+ */
10
+ // ========================================
11
+ // Flat → Hierarchical (v2)
12
+ // ========================================
13
+ /**
14
+ * Convert ALL form instances into a single, stable FbDataEntry[] array.
15
+ * This is the primary entry point — call it once with all instances.
16
+ */
17
+ export function flat_to_data_v2(instances) {
18
+ const data = [];
19
+ // Collect ALL clarifications across ALL instances, deduplicating by ID.
20
+ // Each clarification may appear in multiple instances (sent in 1, sourced in 2).
21
+ // We merge them into a single record with the most complete data.
22
+ const clr_map = new Map();
23
+ // Track classification/validation results — keyed by the instance that owns them
24
+ let primary_classifications;
25
+ let primary_validations;
26
+ let primary_instance_num = 1;
27
+ for (let inst_idx = 0; inst_idx < instances.length; inst_idx++) {
28
+ const inst = instances[inst_idx];
29
+ const inst_num = inst_idx + 1;
30
+ // Track the first instance with classification/validation results
31
+ if (!primary_classifications && inst.classification_results?.length) {
32
+ primary_classifications = inst.classification_results;
33
+ primary_validations = inst.file_validation_results;
34
+ primary_instance_num = inst_num;
35
+ }
36
+ // Collect clarifications from all sources on this instance
37
+ const all_clrs = collect_instance_clarifications(inst);
38
+ for (const clr of all_clrs) {
39
+ const existing = clr_map.get(clr.id);
40
+ if (!existing) {
41
+ clr_map.set(clr.id, { clr, form_instance: inst_num, source_instance: inst_num });
42
+ }
43
+ else {
44
+ // Merge: keep the version with more data (response, later status)
45
+ const merged = merge_clarification(existing.clr, clr);
46
+ clr_map.set(clr.id, {
47
+ clr: merged,
48
+ form_instance: inst_num,
49
+ source_instance: existing.source_instance,
50
+ });
51
+ }
52
+ }
53
+ }
54
+ // Build rule_id → processed_data mapping for linking clarifications
55
+ const rule_to_pd = new Map();
56
+ // Step 1: Build entries from classification results
57
+ if (primary_classifications?.length) {
58
+ for (const cr of primary_classifications) {
59
+ const entry_validations = [];
60
+ let val_counter = 0;
61
+ const processed_data_items = cr.file_classifications.map((fc, fc_idx) => {
62
+ const pd_id = `pd_1.${fc_idx + 1}`;
63
+ // Build validations for this file
64
+ const file_val = primary_validations?.[fc.file_id];
65
+ if (file_val?.rule_results) {
66
+ for (const rr of file_val.rule_results) {
67
+ val_counter++;
68
+ const val_id = `val_${val_counter}`;
69
+ const rule_key = rr.rule_id ?? `rule_${val_counter}`;
70
+ const rr_has_issue = rr.issues.length > 0;
71
+ entry_validations.push({
72
+ validation_id: val_id,
73
+ processed_data_ref: pd_id,
74
+ rule_key,
75
+ trigger: 'client_facing',
76
+ status: rr_has_issue ? 'failed' : 'passed',
77
+ details: rr.summary ?? rr.issues[0]?.issue_description ?? '',
78
+ });
79
+ // Track rule → pd mapping for clarification linking
80
+ if (rr_has_issue && rr.rule_id) {
81
+ rule_to_pd.set(rr.rule_id, { pd_id, file_id: fc.file_id });
82
+ }
83
+ }
84
+ }
85
+ return {
86
+ processed_data_id: pd_id,
87
+ processed_data_type: 'file',
88
+ processed_data_files: {
89
+ file_id: fc.file_id,
90
+ file_name: fc.file_name,
91
+ },
92
+ tags: fc.tags,
93
+ processed_data_category: fc.document_type ?? [],
94
+ processed_data_nature: fc.document_nature ? [fc.document_nature] : [],
95
+ };
96
+ });
97
+ const question = {
98
+ source_id: null,
99
+ question_field_id: cr.field_id,
100
+ question_type: 'data_request',
101
+ form_instance: primary_instance_num,
102
+ component_type: 'HazoCollabFormFileTextbox',
103
+ description: `Data request for ${cr.field_id}`,
104
+ };
105
+ // Build clarifications for this entry
106
+ const entry_clarifications = [];
107
+ for (const [_clr_id, info] of clr_map) {
108
+ const clr = info.clr;
109
+ // Link clarification to this entry via rule_id → processed_data
110
+ const pd_link = clr.rule_id ? rule_to_pd.get(clr.rule_id) : undefined;
111
+ if (!pd_link)
112
+ continue;
113
+ // Check if this pd belongs to this entry's classification result
114
+ const belongs = processed_data_items.some(pd => pd.processed_data_id === pd_link.pd_id);
115
+ if (!belongs)
116
+ continue;
117
+ // Find the validation this clarification references
118
+ const val_ref = entry_validations.find(v => v.processed_data_ref === pd_link.pd_id && v.rule_key === clr.rule_id);
119
+ entry_clarifications.push(build_clarification(clr, pd_link.pd_id, val_ref?.validation_id ?? null, info.source_instance, info.form_instance));
120
+ // Remove from map so it's not added as orphan later
121
+ clr_map.delete(_clr_id);
122
+ }
123
+ data.push({
124
+ question,
125
+ client_data: [{
126
+ input_elt_id: `ie_1`,
127
+ client_input: {
128
+ data_type: 'file',
129
+ processed_data: processed_data_items,
130
+ },
131
+ }],
132
+ validations: entry_validations.length > 0 ? entry_validations : undefined,
133
+ clarifications: entry_clarifications.length > 0 ? entry_clarifications : undefined,
134
+ });
135
+ }
136
+ }
137
+ // Step 2: Add orphan clarifications (no matching classification/validation)
138
+ for (const [_clr_id, info] of clr_map) {
139
+ const clr = info.clr;
140
+ const orphan_clr = build_clarification(clr, '', null, info.source_instance, info.form_instance);
141
+ data.push({
142
+ question: {
143
+ source_id: null,
144
+ question_field_id: clr.target_field_id || clr.id,
145
+ question_type: 'clarification',
146
+ form_instance: info.source_instance,
147
+ component_type: 'HazoCollabFormRFIbox',
148
+ description: clr.issue_description,
149
+ },
150
+ clarifications: [orphan_clr],
151
+ });
152
+ }
153
+ return data;
154
+ }
155
+ // ========================================
156
+ // Helpers
157
+ // ========================================
158
+ /** Collect all clarifications from an instance's persisted sources */
159
+ function collect_instance_clarifications(inst) {
160
+ const front_clrs = Array.isArray(inst.front_form_data?.['__clarifications'])
161
+ ? inst.front_form_data['__clarifications']
162
+ : [];
163
+ const clrs = [...(inst.sent_clarifications ?? [])];
164
+ const seen = new Set(clrs.map(c => c.id));
165
+ for (const c of front_clrs) {
166
+ if (!seen.has(c.id)) {
167
+ seen.add(c.id);
168
+ clrs.push(c);
169
+ }
170
+ }
171
+ return clrs;
172
+ }
173
+ /** Merge two versions of the same clarification, keeping the most complete data */
174
+ function merge_clarification(a, b) {
175
+ // DEBUG: trace what we're merging
176
+ // Score each version by data completeness — not just v1 status enum.
177
+ // The version with more substantive data (thread entries, review decision,
178
+ // client response) is the better base. 'resolved' on a source instance
179
+ // (after forwarding) should NOT win over a version with review_decision.
180
+ const score = (c) => {
181
+ let s = 0;
182
+ s += (c.thread?.length ?? 0) * 2; // More thread = more complete
183
+ s += c.review_decision ? 5 : 0; // Has review decision
184
+ s += c.agent_feedback ? 2 : 0; // Has feedback
185
+ s += c.response_choice ? 3 : 0; // Has client response
186
+ s += c.user_comment ? 3 : 0; // Has client comment
187
+ s += (c.response_files?.length ?? 0) > 0 ? 2 : 0;
188
+ // Penalize 'resolved' from source instance (it's a forwarding marker, not real completion)
189
+ if (c.status === 'resolved' && !c.response_choice && !c.user_comment)
190
+ s -= 3;
191
+ return s;
192
+ };
193
+ const a_score = score(a);
194
+ const b_score = score(b);
195
+ const base = b_score >= a_score ? b : a;
196
+ const other = base === a ? b : a;
197
+ return {
198
+ ...base,
199
+ // Keep the longer thread (most complete conversation history)
200
+ thread: (base.thread?.length ?? 0) >= (other.thread?.length ?? 0) ? base.thread : other.thread,
201
+ // Keep review_decision if either has one
202
+ review_decision: base.review_decision ?? other.review_decision,
203
+ agent_feedback: base.agent_feedback ?? other.agent_feedback,
204
+ // Keep response data from either
205
+ response_choice: base.response_choice ?? other.response_choice,
206
+ user_comment: base.user_comment ?? other.user_comment,
207
+ response_files: (base.response_files?.length ?? 0) > 0 ? base.response_files : other.response_files,
208
+ };
209
+ }
210
+ /** Map ClarificationItem response options to v2 FbRfiResponseOption */
211
+ function map_response_options(opts) {
212
+ return (opts ?? []).map(opt => ({
213
+ code: opt.value,
214
+ label: opt.label,
215
+ accept_files: opt.shows_file_upload,
216
+ accept_comment: opt.shows_additional_input,
217
+ accept_comment_mandatory: opt.shows_additional_input,
218
+ }));
219
+ }
220
+ /** Determine v2 clarification status from ClarificationItem */
221
+ function map_clarification_status(clr) {
222
+ // Detect client response from data — the v1 `status` field may be stale
223
+ // (e.g., Instance 1's version has status='pending' after send-back, but the
224
+ // merged clarification carries response_choice/user_comment from Instance 2)
225
+ const has_response = !!(clr.response_choice || clr.user_comment);
226
+ if (clr.review_decision === 'approve') {
227
+ // 'approve' in ClarificationReviewDecision = approved for sending = sent_back
228
+ // But if client has since responded (either via status field or response data), show as responded
229
+ if (clr.status === 'responded' || has_response)
230
+ return 'responded';
231
+ return 'sent_back';
232
+ }
233
+ if (clr.review_decision === 'skip_process') {
234
+ // 'skip_process' = agent accepted
235
+ return 'accepted';
236
+ }
237
+ // No review decision yet
238
+ if (clr.status === 'responded' || has_response)
239
+ return 'responded';
240
+ if (clr.status === 'resolved')
241
+ return 'resolved';
242
+ if (clr.status === 'dismissed')
243
+ return 'resolved';
244
+ return 'pending';
245
+ }
246
+ /** Build the v2 FbEntryClarification from a ClarificationItem */
247
+ function build_clarification(clr, pd_ref, val_ref, source_instance, latest_instance = source_instance) {
248
+ // Build thread from ClarificationItem.thread
249
+ const thread = [];
250
+ let th_counter = 0;
251
+ // If the clarification has a v1 thread, convert it
252
+ if (clr.thread?.length) {
253
+ // Track whether we've seen an agent rejection — entries after it are from a later instance
254
+ let seen_rejection = false;
255
+ for (const t of clr.thread) {
256
+ th_counter++;
257
+ // Client responses AFTER an agent rejection are from the next instance
258
+ const entry_instance = (seen_rejection && t.role === 'client' && t.action === 'responded')
259
+ ? latest_instance
260
+ : source_instance;
261
+ thread.push(convert_thread_entry(t, th_counter, entry_instance));
262
+ if (t.role === 'author' && t.action === 'rejected')
263
+ seen_rejection = true;
264
+ }
265
+ // Check if the merged clarification has a newer response not yet in the thread.
266
+ // This happens when Instance 2's response is on clr.response_choice/user_comment
267
+ // but the thread came from Instance 1 (which doesn't include the Instance 2 response).
268
+ const last_client_in_thread = [...thread].reverse().find(t => t.role === 'client' && t.action === 'responded');
269
+ const thread_has_current_response = last_client_in_thread &&
270
+ last_client_in_thread.choice === clr.response_choice &&
271
+ last_client_in_thread.comment === clr.user_comment;
272
+ if (!thread_has_current_response && (clr.response_choice || clr.user_comment) && latest_instance > source_instance) {
273
+ th_counter++;
274
+ const files = clr.response_files?.length
275
+ ? clr.response_files.map(f => ({
276
+ file_id: f.file_id,
277
+ file_name: f.file_name,
278
+ file_size: f.file_size ? `${Math.round(f.file_size / 1024)}k` : undefined,
279
+ }))
280
+ : undefined;
281
+ thread.push({
282
+ thread_id: `th_${th_counter}`,
283
+ form_instance: latest_instance,
284
+ role: 'client',
285
+ action: 'responded',
286
+ choice: clr.response_choice,
287
+ comment: clr.user_comment,
288
+ files,
289
+ time: clr.updated_at || new Date().toISOString(),
290
+ });
291
+ }
292
+ }
293
+ else {
294
+ // No thread — synthesize from the clarification's data
295
+ // 1. System issue
296
+ th_counter++;
297
+ thread.push({
298
+ thread_id: `th_${th_counter}`,
299
+ form_instance: source_instance,
300
+ role: 'system',
301
+ action: 'issue_found',
302
+ message: clr.issue_description,
303
+ time: clr.created_at || new Date().toISOString(),
304
+ });
305
+ // 2. Client response (if any)
306
+ if (clr.response_choice || clr.user_comment) {
307
+ th_counter++;
308
+ const files = clr.response_files?.length
309
+ ? clr.response_files.map(f => ({
310
+ file_id: f.file_id,
311
+ file_name: f.file_name,
312
+ file_size: f.file_size ? `${Math.round(f.file_size / 1024)}k` : undefined,
313
+ }))
314
+ : undefined;
315
+ // Client response belongs to the latest instance (may be different from source)
316
+ thread.push({
317
+ thread_id: `th_${th_counter}`,
318
+ form_instance: latest_instance,
319
+ role: 'client',
320
+ action: 'responded',
321
+ choice: clr.response_choice,
322
+ comment: clr.user_comment,
323
+ files,
324
+ time: clr.updated_at || clr.created_at || new Date().toISOString(),
325
+ });
326
+ }
327
+ // 3. Agent review (if any)
328
+ if (clr.review_decision) {
329
+ th_counter++;
330
+ const decision = clr.review_decision === 'skip_process' ? 'accept' : 'send_back';
331
+ const rejection_entry = clr.thread?.filter(t => t.role === 'author' && t.action === 'rejected').pop();
332
+ thread.push({
333
+ thread_id: `th_${th_counter}`,
334
+ form_instance: source_instance,
335
+ role: 'agent',
336
+ action: 'reviewed',
337
+ decision,
338
+ feedback: clr.agent_feedback || rejection_entry?.message,
339
+ user: rejection_entry?.actor_id || rejection_entry?.actor_name || clr.created_by,
340
+ user_name: rejection_entry?.actor_name,
341
+ time: clr.reviewed_at || clr.updated_at || new Date().toISOString(),
342
+ });
343
+ }
344
+ }
345
+ // Build review snapshot — links to the thread entry it reviews
346
+ let review = null;
347
+ if (clr.review_decision) {
348
+ const decision = clr.review_decision === 'skip_process' ? 'accept' : 'send_back';
349
+ const rejection_entry = clr.thread?.filter(t => t.role === 'author' && t.action === 'rejected').pop();
350
+ // Find which client response the agent was reviewing.
351
+ // The review applies to the client response BEFORE the agent's review thread entry.
352
+ const agent_thread_idx = thread.findIndex(t => t.role === 'agent' && t.action === 'reviewed');
353
+ let reviewed_thread_ref = '';
354
+ if (agent_thread_idx > 0) {
355
+ // Look backwards from the agent entry to find the client response it reviews
356
+ for (let i = agent_thread_idx - 1; i >= 0; i--) {
357
+ if (thread[i].role === 'client' && thread[i].action === 'responded') {
358
+ reviewed_thread_ref = thread[i].thread_id;
359
+ break;
360
+ }
361
+ }
362
+ }
363
+ // Check if there's a NEWER client response AFTER the agent's review.
364
+ // If so, the review is stale — the client has responded again and needs fresh review.
365
+ const last_client_idx = (() => {
366
+ for (let i = thread.length - 1; i >= 0; i--) {
367
+ if (thread[i].role === 'client' && thread[i].action === 'responded')
368
+ return i;
369
+ }
370
+ return -1;
371
+ })();
372
+ const has_newer_response = last_client_idx > agent_thread_idx && agent_thread_idx >= 0;
373
+ if (has_newer_response) {
374
+ // Review is stale — client responded again. Clear it.
375
+ review = null;
376
+ }
377
+ else {
378
+ review = {
379
+ decision,
380
+ thread_ref: reviewed_thread_ref,
381
+ feedback: clr.agent_feedback || rejection_entry?.message,
382
+ user: rejection_entry?.actor_id || clr.created_by,
383
+ user_name: rejection_entry?.actor_name,
384
+ time: clr.reviewed_at || rejection_entry?.timestamp || clr.updated_at,
385
+ };
386
+ }
387
+ }
388
+ // Build response_data from client response files/text
389
+ const response_data = [];
390
+ if (clr.response_choice || clr.user_comment || (clr.response_files?.length ?? 0) > 0) {
391
+ // Find the LATEST client response thread entry (not the first — there may be multiple rounds)
392
+ let client_thread_idx = -1;
393
+ for (let i = thread.length - 1; i >= 0; i--) {
394
+ if (thread[i].role === 'client' && thread[i].action === 'responded') {
395
+ client_thread_idx = i;
396
+ break;
397
+ }
398
+ }
399
+ const client_thread = client_thread_idx >= 0 ? thread[client_thread_idx] : null;
400
+ const response_pds = [];
401
+ let rpd_counter = 0;
402
+ if (clr.response_files?.length) {
403
+ for (const f of clr.response_files) {
404
+ rpd_counter++;
405
+ response_pds.push({
406
+ processed_data_id: `rpd_${rpd_counter}`,
407
+ processed_data_type: 'file',
408
+ processed_data_files: {
409
+ file_id: f.file_id,
410
+ file_name: f.file_name,
411
+ file_size: f.file_size ? `${Math.round(f.file_size / 1024)}k` : undefined,
412
+ },
413
+ });
414
+ }
415
+ }
416
+ else if (clr.user_comment) {
417
+ rpd_counter++;
418
+ response_pds.push({
419
+ processed_data_id: `rpd_${rpd_counter}`,
420
+ processed_data_type: 'text',
421
+ processed_data_text: clr.user_comment,
422
+ });
423
+ }
424
+ if (response_pds.length > 0 && client_thread) {
425
+ response_data.push({
426
+ thread_ref: client_thread.thread_id,
427
+ thread_index: client_thread_idx,
428
+ form_instance: client_thread.form_instance,
429
+ processed_data: response_pds,
430
+ });
431
+ }
432
+ }
433
+ return {
434
+ clarification_id: clr.id,
435
+ processed_data_ref: pd_ref,
436
+ validation_ref: val_ref,
437
+ issue: clr.issue_description,
438
+ status: map_clarification_status(clr),
439
+ response_options: map_response_options(clr.response_options),
440
+ thread,
441
+ review,
442
+ response_data,
443
+ ...(clr.expectation ? { expectation: clr.expectation } : {}),
444
+ };
445
+ }
446
+ /** Convert a v1 ClarificationThreadEntry to a v2 FbThreadEntry */
447
+ function convert_thread_entry(t, counter, default_instance) {
448
+ const role_map = {
449
+ system: 'system',
450
+ client: 'client',
451
+ author: 'agent',
452
+ };
453
+ const action_map = {
454
+ created: 'issue_found',
455
+ responded: 'responded',
456
+ rejected: 'reviewed',
457
+ resolved: 'reviewed',
458
+ reopened: 'responded',
459
+ };
460
+ const files = t.files?.length
461
+ ? t.files.map(f => ({
462
+ file_id: f.file_id,
463
+ file_name: f.file_name,
464
+ file_size: f.file_size ? `${Math.round(f.file_size / 1024)}k` : undefined,
465
+ }))
466
+ : undefined;
467
+ return {
468
+ thread_id: `th_${counter}`,
469
+ form_instance: default_instance,
470
+ role: role_map[t.role] ?? 'system',
471
+ action: action_map[t.action] ?? 'issue_found',
472
+ time: t.timestamp,
473
+ message: t.role === 'system' ? t.message : undefined,
474
+ choice: t.response_choice,
475
+ comment: t.role === 'client' ? t.message : undefined,
476
+ decision: t.action === 'rejected' ? 'send_back' : (t.action === 'resolved' ? 'accept' : undefined),
477
+ feedback: t.role === 'author' ? t.message : undefined,
478
+ files,
479
+ user: t.actor_id,
480
+ user_name: t.actor_name,
481
+ };
482
+ }
483
+ //# sourceMappingURL=fb_data_adapter_v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fb_data_adapter_v2.js","sourceRoot":"","sources":["../../src/utils/fb_data_adapter_v2.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * These functions walk the data[] tree and extract flat views
5
5
  * that existing components and views can consume.
6
6
  */
7
- import type { FbDataEntry, FbClarificationBlock, FbClientDataItem, FbProcessedData, FbActivity, FbValidation, FbActivityType } from '../types/fb_form_data.js';
7
+ import type { FbDataEntry, FbClarificationBlock, FbClientDataItem, FbProcessedData, FbActivity, FbValidation, FbActivityType } from '../types/fb_form_data_v1.js';
8
8
  /** Result from walking the data tree — an activity with its path context */
9
9
  export interface ActivityWithContext {
10
10
  activity: FbActivity;
@@ -1 +1 @@
1
- {"version":3,"file":"fb_data_helpers.d.ts","sourceRoot":"","sources":["../../src/utils/fb_data_helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fb_data_helpers.d.ts","sourceRoot":"","sources":["../../src/utils/fb_data_helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAEhB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,cAAc,EACf,MAAM,6BAA6B,CAAC;AAMrC,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,EAAE,eAAe,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,YAAY,CAAC;IACzB,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,EAAE,eAAe,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,6EAA6E;AAC7E,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,oBAAoB,CAAC;IACpC,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,EAAE,eAAe,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAuED,wDAAwD;AACxD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,EAAE,CAKlG;AAMD,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,qBAAqB,EAAE,CAUhF;AAED,iCAAiC;AACjC,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,qBAAqB,EAAE,CAEnF;AAMD,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,wBAAwB,EAAE,CAQ5E;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,wBAAwB,EAAE,CAKhF;AAED,8CAA8C;AAC9C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,wBAAwB,EAAE,CAKlF;AAMD,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,mBAAmB,EAAE,CAQ3E;AAED,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,mBAAmB,EAAE,CAQ9E;AAMD,+DAA+D;AAC/D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAQnG;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQrH;AAED,6CAA6C;AAC7C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAGvG;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAezF;AAMD,kFAAkF;AAClF,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED,qEAAqE;AACrE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,yBAAyB,EAAE,CAkB3F;AAED,mFAAmF;AACnF,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wDAAwD;AACxD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAgCvG;AAED,0CAA0C;AAC1C,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,mBAAmB,EAAE,CAQvG;AAED,0CAA0C;AAC1C,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASlF;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAOjE"}
@@ -4,7 +4,7 @@
4
4
  * All functions return new arrays (never mutate in place) to work
5
5
  * correctly with React state updates.
6
6
  */
7
- import type { FbDataEntry, FbClientDataItem, FbProcessedData, FbActivity, FbValidation, FbQuestion, FbRfiDraft } from '../types/fb_form_data.js';
7
+ import type { FbDataEntry, FbClientDataItem, FbProcessedData, FbActivity, FbValidation, FbQuestion, FbRfiDraft } from '../types/fb_form_data_v1.js';
8
8
  /** Append a new data entry to the data array */
9
9
  export declare function add_data_entry(data: FbDataEntry[], entry: FbDataEntry): FbDataEntry[];
10
10
  /** Remove a data entry by index */
@@ -1 +1 @@
1
- {"version":3,"file":"fb_data_mutations.d.ts","sourceRoot":"","sources":["../../src/utils/fb_data_mutations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EAEX,gBAAgB,EAEhB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,UAAU,EACV,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAMlC,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,CAErF;AAED,mCAAmC;AACnC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAEzF;AAED,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,WAAW,GAC3C,WAAW,EAAE,CAEf;AAMD,wDAAwD;AACxD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,GACrB,WAAW,EAAE,CAKf;AAED,sEAAsE;AACtE,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,WAAW,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,GACrB,WAAW,EAAE,CAWf;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,eAAe,EAAE,GAC1B,WAAW,EAAE,CAqBf;AAmCD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,UAAU,GACnB,WAAW,EAAE,CAQf;AAkFD,oDAAoD;AACpD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,GAAG,oBAAoB,CAAC,CAAC,GAC/E,WAAW,EAAE,CASf;AAMD,uEAAuE;AACvE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAC/B,WAAW,EAAE,CAKf;AAMD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,GACjC,WAAW,EAAE,CAef;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EAAE,EACnB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,UAAU,GACpB,WAAW,EAAE,CAsBf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EAAE,EACnB,QAAQ,EAAE,UAAU,GACnB,WAAW,EAAE,CAEf"}
1
+ {"version":3,"file":"fb_data_mutations.d.ts","sourceRoot":"","sources":["../../src/utils/fb_data_mutations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EAEX,gBAAgB,EAEhB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,UAAU,EACV,UAAU,EAEX,MAAM,6BAA6B,CAAC;AAMrC,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,CAErF;AAED,mCAAmC;AACnC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAEzF;AAED,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,WAAW,GAC3C,WAAW,EAAE,CAEf;AAMD,wDAAwD;AACxD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,GACrB,WAAW,EAAE,CAKf;AAED,sEAAsE;AACtE,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,WAAW,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,GACrB,WAAW,EAAE,CAWf;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,eAAe,EAAE,GAC1B,WAAW,EAAE,CAqBf;AAmCD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,UAAU,GACnB,WAAW,EAAE,CAQf;AAkFD,oDAAoD;AACpD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,GAAG,oBAAoB,CAAC,CAAC,GAC/E,WAAW,EAAE,CASf;AAMD,uEAAuE;AACvE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAC/B,WAAW,EAAE,CAKf;AAMD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,GACjC,WAAW,EAAE,CAef;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EAAE,EACnB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,UAAU,GACpB,WAAW,EAAE,CAsBf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EAAE,EACnB,QAAQ,EAAE,UAAU,GACnB,WAAW,EAAE,CAEf"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Immutable mutation helpers for the v2 flattened FbDataEntry[] data model.
3
+ *
4
+ * All functions return NEW arrays — never mutate in place.
5
+ * Use with React state: update_form_data(prev => set_review_decision(prev, clr_id, 'accept'))
6
+ */
7
+ import type { FbDataEntry, FbEntryClarification, FbClarificationStatus, FbThreadEntry, FbEntryValidation, FbResponseData, FbRfiResponseOption, FbAutofillRun, ExtractedResponseFields, ResolutionCheck } from '../types/fb_form_data.js';
8
+ /** Update a clarification by ID — applies an updater function immutably */
9
+ export declare function update_clarification(data: FbDataEntry[], clarification_id: string, updater: (clr: FbEntryClarification) => FbEntryClarification): FbDataEntry[];
10
+ /** Set the review decision for a clarification */
11
+ export declare function set_review_decision(data: FbDataEntry[], clarification_id: string, decision: 'accept' | 'send_back', feedback?: string, user?: string, user_name?: string): FbDataEntry[];
12
+ /** Set the agent feedback on a clarification (without changing the decision) */
13
+ export declare function set_agent_feedback(data: FbDataEntry[], clarification_id: string, feedback: string): FbDataEntry[];
14
+ /** Set clarification status directly */
15
+ export declare function set_clarification_status(data: FbDataEntry[], clarification_id: string, status: FbClarificationStatus): FbDataEntry[];
16
+ /** Clear the review (e.g., when client responds to a send-back, needing fresh review) */
17
+ export declare function clear_review(data: FbDataEntry[], clarification_id: string): FbDataEntry[];
18
+ /** Update response options on a clarification */
19
+ export declare function set_response_options(data: FbDataEntry[], clarification_id: string, options: FbRfiResponseOption[]): FbDataEntry[];
20
+ /** Add a thread entry to a clarification */
21
+ export declare function add_thread_entry(data: FbDataEntry[], clarification_id: string, entry: Omit<FbThreadEntry, 'thread_id'>): FbDataEntry[];
22
+ /** Add a client response to the thread and update status */
23
+ export declare function add_client_response(data: FbDataEntry[], clarification_id: string, form_instance: number, choice: string, comment?: string, files?: FbThreadEntry['files']): FbDataEntry[];
24
+ /** Add response data (processed files/text from a client response) */
25
+ export declare function add_response_data(data: FbDataEntry[], clarification_id: string, response_data: FbResponseData): FbDataEntry[];
26
+ /** Add a validation to an entry */
27
+ export declare function add_validation(data: FbDataEntry[], entry_index: number, validation: FbEntryValidation): FbDataEntry[];
28
+ /** Update a validation's status */
29
+ export declare function update_validation_status(data: FbDataEntry[], validation_id: string, status: 'passed' | 'failed'): FbDataEntry[];
30
+ /** Add a new clarification to the entry that owns a processed_data item */
31
+ export declare function add_clarification(data: FbDataEntry[], clarification: FbEntryClarification): FbDataEntry[];
32
+ /** Append a new data entry */
33
+ export declare function add_data_entry(data: FbDataEntry[], entry: FbDataEntry): FbDataEntry[];
34
+ /** Record an autofill run result on the entry that contains the file */
35
+ export declare function add_autofill_run(data: FbDataEntry[], run: FbAutofillRun): FbDataEntry[];
36
+ /**
37
+ * Attach extracted fields (total/date/vendor) to a response file's
38
+ * FbResponseProcessedData. Searches across all clarifications.
39
+ */
40
+ export declare function set_extracted_fields(data: FbDataEntry[], file_id: string, fields: ExtractedResponseFields): FbDataEntry[];
41
+ /**
42
+ * Attach a resolution_check to a specific thread entry on a clarification.
43
+ * The thread entry is identified by clarification_id + thread_id.
44
+ */
45
+ export declare function set_resolution_check(data: FbDataEntry[], clarification_id: string, thread_id: string, check: ResolutionCheck): FbDataEntry[];
46
+ //# sourceMappingURL=fb_data_mutations_v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fb_data_mutations_v2.d.ts","sourceRoot":"","sources":["../../src/utils/fb_data_mutations_v2.ts"],"names":[],"mappings":"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"}