From d7f270f52ae7a398cbac36582befee3ec23c5864 Mon Sep 17 00:00:00 2001 From: "cristiano.hoshikawa" Date: Mon, 24 Aug 2026 16:39:08 -0300 Subject: [PATCH] bugfix: Invoice details --- app/__pycache__/__init__.cpython-313.pyc | Bin 166 -> 176 bytes app/__pycache__/state.cpython-313.pyc | Bin 2989 -> 3105 bytes .../contas_prompting.cpython-313.pyc | Bin 1076 -> 1086 bytes .../contestacao_agent.cpython-313.pyc | Bin 5317 -> 5327 bytes .../__pycache__/faturas_agent.cpython-313.pyc | Bin 5243 -> 5253 bytes .../__pycache__/prompting.cpython-313.pyc | Bin 1163 -> 1173 bytes .../__pycache__/runtime.cpython-313.pyc | Bin 450 -> 460 bytes .../suporte_contas_agent.cpython-313.pyc | Bin 5913 -> 5923 bytes .../__pycache__/vas_agent.cpython-313.pyc | Bin 5728 -> 5738 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 248 -> 258 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 344 -> 354 bytes .../contas/__pycache__/client.cpython-313.pyc | Bin 43237 -> 48533 bytes .../contestation_rules.cpython-313.pyc | Bin 13592 -> 13602 bytes .../contestation_validation.cpython-313.pyc | Bin 0 -> 22831 bytes .../__pycache__/ic_tags.cpython-313.pyc | Bin 17242 -> 17252 bytes .../informational_context.cpython-313.pyc | Bin 3511 -> 3521 bytes .../invoice_context.cpython-313.pyc | Bin 16847 -> 20319 bytes .../invoice_models.cpython-313.pyc | Bin 1819 -> 1829 bytes .../invoice_resolver.cpython-313.pyc | Bin 54211 -> 56074 bytes .../__pycache__/item_matcher.cpython-313.pyc | Bin 9932 -> 9942 bytes .../pro_rata_rules.cpython-313.pyc | Bin 17689 -> 17699 bytes .../protocol_triplets.cpython-313.pyc | Bin 7752 -> 7762 bytes .../__pycache__/rct_policy.cpython-313.pyc | Bin 6345 -> 6355 bytes .../__pycache__/service.cpython-313.pyc | Bin 19113 -> 20466 bytes .../string_metrics.cpython-313.pyc | Bin 6318 -> 6328 bytes .../vas_cancellation_message.cpython-313.pyc | Bin 16339 -> 16349 bytes .../__pycache__/vas_variation.cpython-313.pyc | Bin 42144 -> 42154 bytes .../workflow_actions.cpython-313.pyc | Bin 129646 -> 130064 bytes .../secure_pdf_crypto.cpython-313.pyc | Bin 2490 -> 2500 bytes app/domain/contas/invoice_context.py | 72 +++++++++++++++- .../__pycache__/__init__.cpython-313.pyc | Bin 951 -> 961 bytes .../__pycache__/bill_parser.cpython-313.pyc | Bin 23755 -> 23765 bytes .../bill_processor.cpython-313.pyc | Bin 36270 -> 36280 bytes app/domain/contas/service.py | 25 +++++- .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 328 bytes .../tim_guardrails.cpython-313.pyc | Bin 0 -> 7215 bytes .../__pycache__/tim_judges.cpython-313.pyc | Bin 0 -> 5512 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 199 bytes .../__pycache__/aluc.cpython-313.pyc | Bin 0 -> 6414 bytes .../ausencia_oferta_proativa.cpython-313.pyc | Bin 0 -> 9836 bytes .../__pycache__/fraseologia.cpython-313.pyc | Bin 0 -> 7553 bytes .../__pycache__/out_of_scope.cpython-313.pyc | Bin 0 -> 17045 bytes .../__pycache__/revprec.cpython-313.pyc | Bin 0 -> 5368 bytes .../__pycache__/rqlt.cpython-313.pyc | Bin 0 -> 1121 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 180 -> 190 bytes .../telemetry_observer.cpython-313.pyc | Bin 4791 -> 5013 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 272 -> 282 bytes .../tool_renderers.cpython-313.pyc | Bin 5445 -> 5455 bytes .../__pycache__/agent_graph.cpython-313.pyc | Bin 58858 -> 59999 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 173 -> 183 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 181 -> 191 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 199 -> 209 bytes .../__pycache__/main.cpython-313.pyc | Bin 61137 -> 61502 bytes contas_mcp/servers/contas_mcp_server/main.py | 15 ++-- .../conftest.cpython-313-pytest-9.0.2.pyc | Bin 844 -> 870 bytes ...sarial_parity.cpython-313-pytest-9.0.2.pyc | Bin 41958 -> 44318 bytes ...ntract_parity.cpython-313-pytest-9.0.2.pyc | Bin 37559 -> 37585 bytes ...nd_guardrails.cpython-313-pytest-9.0.2.pyc | Bin 4274 -> 4300 bytes ...rapper_parity.cpython-313-pytest-9.0.2.pyc | Bin 29086 -> 29112 bytes ...site_workflow.cpython-313-pytest-9.0.2.pyc | Bin 60217 -> 60243 bytes ...aining_parity.cpython-313-pytest-9.0.2.pyc | Bin 40378 -> 40404 bytes ...s_domain_mock.cpython-313-pytest-9.0.2.pyc | Bin 64322 -> 64348 bytes ...ss_rules_full.cpython-313-pytest-9.0.2.pyc | Bin 23202 -> 23228 bytes ...ilure_mapping.cpython-313-pytest-9.0.2.pyc | Bin 7679 -> 7705 bytes ...aining_parity.cpython-313-pytest-9.0.2.pyc | Bin 17957 -> 17983 bytes ...ls_judges_spi.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 10166 bytes ...rity_extended.cpython-313-pytest-9.0.2.pyc | Bin 39483 -> 39509 bytes ...ion_directive.cpython-313-pytest-9.0.2.pyc | Bin 5889 -> 5915 bytes ...ive_structure.cpython-313-pytest-9.0.2.pyc | Bin 18977 -> 19003 bytes ...rag_directive.cpython-313-pytest-9.0.2.pyc | Bin 9465 -> 9491 bytes ...k_zero_legacy.cpython-313-pytest-9.0.2.pyc | Bin 1800 -> 1826 bytes ...binary_parity.cpython-313-pytest-9.0.2.pyc | Bin 12234 -> 12260 bytes ..._dict_history.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 2018 bytes ...faults_parity.cpython-313-pytest-9.0.2.pyc | Bin 4003 -> 6482 bytes ...mework_native.cpython-313-pytest-9.0.2.pyc | Bin 33235 -> 43153 bytes ...subject_guard.cpython-313-pytest-9.0.2.pyc | Bin 8990 -> 14409 bytes ...cy_dependency.cpython-313-pytest-9.0.2.pyc | Bin 1910 -> 1936 bytes ..._code_mapping.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 23739 bytes ...compatibility.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 20490 bytes ...ider_boundary.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 5755 bytes ...istry_actions.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 16985 bytes ...liance_anatel.cpython-313-pytest-9.0.2.pyc | Bin 17455 -> 17481 bytes ...on_validation.cpython-313-pytest-9.0.2.pyc | Bin 42851 -> 42837 bytes ...transcription.cpython-313-pytest-9.0.2.pyc | Bin 11619 -> 11645 bytes ...ation_message.cpython-313-pytest-9.0.2.pyc | Bin 23900 -> 23926 bytes ...vas_variation.cpython-313-pytest-9.0.2.pyc | Bin 142664 -> 142690 bytes ...n_adversarial.cpython-313-pytest-9.0.2.pyc | Bin 43316 -> 43342 bytes ...orkflow_cases.cpython-313-pytest-9.0.2.pyc | Bin 18742 -> 18768 bytes ...act_hardcodes.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 10012 bytes ...a_full_parity.cpython-313-pytest-9.0.2.pyc | Bin 18875 -> 18901 bytes ...ional_context.cpython-313-pytest-9.0.2.pyc | Bin 5915 -> 5941 bytes ...ration_compat.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 14183 bytes ...and_contracts.cpython-313-pytest-9.0.2.pyc | Bin 14558 -> 14584 bytes ...ntract_parity.cpython-313-pytest-9.0.2.pyc | Bin 12435 -> 12461 bytes ...d_idempotency.cpython-313-pytest-9.0.2.pyc | Bin 14800 -> 14826 bytes ...tadata_parity.cpython-313-pytest-9.0.2.pyc | Bin 34902 -> 34928 bytes ...eration_types.cpython-313-pytest-9.0.2.pyc | Bin 6155 -> 6181 bytes ...ispute_parity.cpython-313-pytest-9.0.2.pyc | Bin 13798 -> 13824 bytes ...onse_renderer.cpython-313-pytest-9.0.2.pyc | Bin 4422 -> 4448 bytes ...ecution_latch.cpython-313-pytest-9.0.2.pyc | Bin 5137 -> 5163 bytes ...ast_contracts.cpython-313-pytest-9.0.2.pyc | Bin 17461 -> 17487 bytes .../test_invoice_context_framework_native.py | 81 +++++++++++++++++- 102 files changed, 183 insertions(+), 10 deletions(-) create mode 100644 app/domain/contas/__pycache__/contestation_validation.cpython-313.pyc create mode 100644 app/extensions/__pycache__/__init__.cpython-313.pyc create mode 100644 app/extensions/__pycache__/tim_guardrails.cpython-313.pyc create mode 100644 app/extensions/__pycache__/tim_judges.cpython-313.pyc create mode 100644 app/extensions/tim_prompts/__pycache__/__init__.cpython-313.pyc create mode 100644 app/extensions/tim_prompts/__pycache__/aluc.cpython-313.pyc create mode 100644 app/extensions/tim_prompts/__pycache__/ausencia_oferta_proativa.cpython-313.pyc create mode 100644 app/extensions/tim_prompts/__pycache__/fraseologia.cpython-313.pyc create mode 100644 app/extensions/tim_prompts/__pycache__/out_of_scope.cpython-313.pyc create mode 100644 app/extensions/tim_prompts/__pycache__/revprec.cpython-313.pyc create mode 100644 app/extensions/tim_prompts/__pycache__/rqlt.cpython-313.pyc create mode 100644 tests/migration/__pycache__/test_external_guardrails_judges_spi.cpython-313-pytest-9.0.2.pyc create mode 100644 tests/migration/__pycache__/test_guardrail_context_dict_history.cpython-313-pytest-9.0.2.pyc create mode 100644 tests/migration/__pycache__/test_observability_code_mapping.cpython-313-pytest-9.0.2.pyc create mode 100644 tests/migration/__pycache__/test_observability_default_overlay_compatibility.cpython-313-pytest-9.0.2.pyc create mode 100644 tests/migration/__pycache__/test_observability_mapping_provider_boundary.cpython-313-pytest-9.0.2.pyc create mode 100644 tests/migration/__pycache__/test_observability_mapping_registry_actions.cpython-313-pytest-9.0.2.pyc create mode 100644 tests/migration/__pycache__/test_output_supervisor_no_contract_hardcodes.cpython-313-pytest-9.0.2.pyc create mode 100644 tests/migration/__pycache__/test_real_legacy_integration_compat.cpython-313-pytest-9.0.2.pyc diff --git a/app/__pycache__/__init__.cpython-313.pyc b/app/__pycache__/__init__.cpython-313.pyc index 353b0693c291d8ca9cf0f3611fc3aaac6d3ea27f..863edce39547180bf6696c8a1c27c6cf6748e3e9 100644 GIT binary patch delta 87 zcmZ3+xPg)TGcPX}0}$xX>Y2!G?BK7Tn^&Trl30?cpO~JSR}!C`pI4Gt9G{<@8DEl` RTac4jk{WM| delta 77 zcmdnMxQvneGcPX}0}uo*YoEw%Z04$;n^&TrqVF5*86QxTpOudD$Wk++0##>S>qjFa6M`50v;J2DDO%c=uqV>n`1SV1&v zupF4r0%Xa9>VDS%ZgP0nYO6jTPwasp*lAgsw3ndCWPdeuQX7&SmDMK$5(Xu!89g{lAI>s>t22bNjKC}|p#8=WvB|TUm03aVF$38;`5LnT$hC@=a2-}~ zmNkeKY*WOYZmVgx`8#s}qpDD1a!F=cYJ5piVqP(bou7A0ASbc71X*OW8*37?mlII) zXCP*{<)fdQSE8SiSdyrpn4X$f5}%x(SCUv9pP!r=Uy_OL5#0O?ZM#lRLieK2Q7*!`oE>Qi<0Azsm0RT~{fD`}# delta 439 zcmZ1|u~wY-GcPX}0}uo*YtJg2$Xmi#u(4?sqbNrV3oB4GhBa759YnJLS+bKI8HE|; zCJQo4GRlM4lWUk1_&I?xN?h$3(12BtgawD_wWHDwDc4LU@$@7_&SwXHh1KFTx4p(mhXIX++ z!B$1w>DHPyo8?&o7&lL4O=Na(01AHwVuo8z`nh=}`YHOp!JhE}Mfq8&$tA`5X_-aE zCGpAmc_oR(@wu7lMTsf-`ibeOc`(7r4xBQKrjuhiKW@(A@?d22nY@`>*AZlDkq?OQ x1sTm@lbfGXnv-f*6aeHh0&%ezkodsN$jEq~LGcTl1*7T&$pxyP8GsD1J^(h4UR(eG diff --git a/app/agents/__pycache__/contas_prompting.cpython-313.pyc b/app/agents/__pycache__/contas_prompting.cpython-313.pyc index 4564ff1e8b4b86e176249ba2c1a64289d6202681..c2b649fd79e59b1356637297568160a6bb9871d8 100644 GIT binary patch delta 90 zcmdnOv5$lMGcPX}0}$xX>eEwiY&BtAJm cuOzWJJ~uPHC^02pKQTQu4<@+z9#aA%03=ZyY5)KL diff --git a/app/agents/__pycache__/contestacao_agent.cpython-313.pyc b/app/agents/__pycache__/contestacao_agent.cpython-313.pyc index 323e37f1ff72e9860ba0ab90dbf660b4f23015d8..ec3453a1e5a59b65518528f37e9d868f606ef9ce 100644 GIT binary patch delta 90 zcmX@Ad0vzIGcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IC$8K$3t0EOrwp8x;= delta 80 zcmX@Fc~q18GcPX}0}uo)Yv0J-&14p;pPN^rpQ7&@>=_?Wl%JKFTvDu`mRVF>5}%x( cSCUv9pPQLpl$esQpO~JS2NT?Ujp?T#076(DXaE2J diff --git a/app/agents/__pycache__/faturas_agent.cpython-313.pyc b/app/agents/__pycache__/faturas_agent.cpython-313.pyc index d286ead1072967096d8f367a502c23cddf57514d..5281f39f84c7a7a60ee62d97ddd1f1b61f6a9e0d 100644 GIT binary patch delta 90 zcmeyZ(W=S)nU|M~0SNSG^=#yBW^#zu&&?~*Pf09E)K5%L%`1sd&d)1JERN4l&WtZf U%`M1DEJ=+w!7aD>2-9{!0DB`LGynhq delta 80 zcmZqG{H?+LnU|M~0SJPYwQuBZW-<%Z&&?~*Pto@c_KXiG%FjwoE-BVe%PcA`iBHbY cD@iPl&&^CPN=(VuPfSnEg9&av$FyA#05{(p{Qv*} diff --git a/app/agents/__pycache__/prompting.cpython-313.pyc b/app/agents/__pycache__/prompting.cpython-313.pyc index 5edca0524e78ad56c9f9de2251a90cf050ddf61e..95e7532aeecabc23347aa15aabf35edd9f0a8214 100644 GIT binary patch delta 90 zcmeC?oXW}lnU|M~0SNSG^=#x8V0H-C&&?~*Pf09E)K5%L%`1sd&d)1JERN4l&WtZf U%`M1DEJ=+w!7aBrklBh603W0uAOHXW delta 80 zcmbQr+0DuQnU|M~0SE$@wQuAWU^esB&&?~*Pto@c_KXiG%FjwoE-BVe%PcA`iBHbY cD@iPl&&^CPN=(VuPfSnEg9&bqX0~Dk0O#Hs=l}o! diff --git a/app/agents/__pycache__/runtime.cpython-313.pyc b/app/agents/__pycache__/runtime.cpython-313.pyc index ecdf114faec58af4bb31b1df95c5ae9a9f2ee607..76e1ef65ac58205b24b2eb6760e534cf7f93cfa7 100644 GIT binary patch delta 89 zcmX@ae1@6(GcPX}0}$xX>ecSR9|9oEcw| Tnp=>QSdtoVf?IBK0b>vVDYhT6 delta 79 zcmX@Ze2AI*GcPX}0}uo)Yv0JN&uHeYpPN^rpQ7&@>=_?Wl%JKFTvDu`mRVF>5}%x( bSCUv9pPQLpl$esQpO~JS2NRrJ#TWzt@rWCG diff --git a/app/agents/__pycache__/suporte_contas_agent.cpython-313.pyc b/app/agents/__pycache__/suporte_contas_agent.cpython-313.pyc index 1fac5d151bdc0edccbb68355b26d8967820457a1..2df8e81d49b51b4c952a9bcfc87890f1eaad6362 100644 GIT binary patch delta 90 zcmbQKw^)z+GcPX}0}$xX>eo5>+bKR2&LKP9mwQ9m&~HLoN-IX|x?u{b_IIWxW_ UHMbxqu_QI#1h?GgKTNVB0C*Z8+W-In delta 80 zcmZ3iH&c)MGcPX}0}uo*Yv0Jdo5?IfKR2&LKSkd+*fTz$C_gJTxujS>EwiY&BtAJm cuOzWJJ~uPHC^02pKQTQu4<@*ojagO%05Mn_qyPW_ diff --git a/app/agents/__pycache__/vas_agent.cpython-313.pyc b/app/agents/__pycache__/vas_agent.cpython-313.pyc index 1058b1d9863a2f7f6050b4b5c1d5901183200b87..d7661427e99666e28a7fb46a1bd8fa0964451a78 100644 GIT binary patch delta 90 zcmaE$^Gb*NGcPX}0}$xX>ejL9KfKR2&LKP9mwQ9m&~HLoN-IX|x?u{b_IIWxW_ UHMbxqu_QI#1h?Gg=S-Et0H2&8ivR!s delta 80 zcmaE*^FW9DGcPX}0}uo)Yv0JdjLFPbKR2&LKSkd+*fTz$C_gJTxujS>EwiY&BtAJm cuOzWJJ~uPHC^02pKQTQu4<@+zBU7a?09f`NQ~&?~ diff --git a/app/domain/__pycache__/__init__.cpython-313.pyc b/app/domain/__pycache__/__init__.cpython-313.pyc index 896417bc59a27c39da5ae890cdf2d7e87d785470..6655eef07dd6bb24a4d817eabfb7b5d47e52aae7 100644 GIT binary patch delta 87 zcmeyt*u=#BnU|M~0SNSG^-Schb_mnY%`4GQNi0d!PfSnED~V6e&nrnRj?Yidj4w&e REyzhMNsTwbEjMwG4FC!~ANc?P delta 77 zcmZo-`oYNknU|M~0SJPYwNK=(HuKTX%`4GQ(f1AZj1MTv&q_@$Db`QREGjOEPtMOP ZNi2@f%}g&!Ov%?zOi#^&2~Ip_0|3-a8^Qnp diff --git a/app/domain/contas/__pycache__/__init__.cpython-313.pyc b/app/domain/contas/__pycache__/__init__.cpython-313.pyc index aeb1751bccabe562b3d8a15aaf64f244603c297c..e00bc5f7f8c121ec0fa39090d6a13291640640ab 100644 GIT binary patch delta 88 zcmcb?^oWW3GcPX}0}$xX>Y2!W(jitqH?KrLC9xz?KQTQuuOvP>Kd&UQI6gl)GrlA> Sw;(66BsJayx7=hdMn3>l#~<&>On| diff --git a/app/domain/contas/__pycache__/client.cpython-313.pyc b/app/domain/contas/__pycache__/client.cpython-313.pyc index db52de952c272617074b3b85052066df71e48aae..6e9e342354ac24eb8177e11c5afa896e789ace44 100644 GIT binary patch delta 17463 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 Zn|{Y+vBuw3jc8cyZy-dFm3}q#{{WI3Z6W{w delta 12346 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 diff --git a/app/domain/contas/__pycache__/contestation_rules.cpython-313.pyc b/app/domain/contas/__pycache__/contestation_rules.cpython-313.pyc index 49a7c5c22d047e1bc225db09d5c884c34872b2a1..ead826e39d427931e5f1e5a3e5f480d069979c90 100644 GIT binary patch delta 90 zcmbP{wJ3}GGcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IC08_OjF0B#c?zW@LL delta 80 zcmZ3KH6x4rGcPX}0}uo)Yv0Jt%3>C)pPN^rpQ7&@>=_?Wl%JKFTvDu`mRVF>5}%x( cSCUv9pPQLpl$esQpO~JS2NT>Jz;ej|04>WLhyVZp diff --git a/app/domain/contas/__pycache__/contestation_validation.cpython-313.pyc b/app/domain/contas/__pycache__/contestation_validation.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..24f9bb8ee22dd31dee39b2388464bff8a171af7a GIT binary patch literal 22831 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 diff --git a/app/domain/contas/__pycache__/informational_context.cpython-313.pyc b/app/domain/contas/__pycache__/informational_context.cpython-313.pyc index 6e1429aac39b799a8f60b97f5b511b6dfb14be0a..de25caa50c8a65bc8bbf2381678d399aaf4dfae4 100644 GIT binary patch delta 90 zcmdlkeNdYFGcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IBL1(Q8D09zR#3IG5A delta 80 zcmX>oy=_?Wl%JKFTvDu`mRVF>5}%x( cSCUv9pPQLpl$esQpO~JS2NT@f#AMG6034GW(*OVf diff --git a/app/domain/contas/__pycache__/invoice_context.cpython-313.pyc b/app/domain/contas/__pycache__/invoice_context.cpython-313.pyc index 72bdaf639e2292b0c7c09ff22026e8ccdbb2b6f2..dd72002ccb538c06e8f306fcaba50779cbc0b6d6 100644 GIT binary patch delta 6394 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 Unp=>QSdtoVf?IC$Zsr7L08us|QUCw| delta 80 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 Unp=>QSdtoVf?IC$S(g8b0Hq8f6951J delta 80 zcmccSd&ZahGcPX}0}uo)Yv0J-!(tY$pPN^rpQ7&@>=_?Wl%JKFTvDu`mRVF>5}%x( cSCUv9pPQLpl$esQpO~JS2NT?Uo#nqG0A21K+yDRo diff --git a/app/domain/contas/__pycache__/pro_rata_rules.cpython-313.pyc b/app/domain/contas/__pycache__/pro_rata_rules.cpython-313.pyc index 6130d1dc0ec6721be96591bf9497e4c742627363..d6209aae5235af7da032ff70cdc98803a381d786 100644 GIT binary patch delta 92 zcmbQ)#kjbOk^3_*FBbz4=+Ele$nDJHkgT7ZSE8SiSdyrpn4X$f5}%x(SCUv9pP!r= WUy_cSR9|5nO>BblCPhbo|*>}+}y`9)d2uhs~r~r diff --git a/app/domain/contas/__pycache__/protocol_triplets.cpython-313.pyc b/app/domain/contas/__pycache__/protocol_triplets.cpython-313.pyc index f166a9005aa87d31ffc680b977b14efbfa5e95d8..dfd46408a5805c6e0dd4a8fa09634eb6f85e15b8 100644 GIT binary patch delta 90 zcmX?MbIFGLGcPX}0}$xX>egvB9EKR2&LKP9mwQ9m&~HLoN-IX|x?u{b_IIWxW_ UHMbxqu_QI#1h?Ggr!2{m0G-VtdH?_b delta 80 zcmca)bHaxEGcPX}0}uo)Yv0JdgvBgIKR2&LKSkd+*fTz$C_gJTxujS>EwiY&BtAJm cuOzWJJ~uPHC^02pKQTQu4<@+zJxj7A09P>`LjV8( diff --git a/app/domain/contas/__pycache__/rct_policy.cpython-313.pyc b/app/domain/contas/__pycache__/rct_policy.cpython-313.pyc index 7d7ad482d312d0630dbf4ce9e19547d6e26f4076..7c4a6fe3edb8a6af4375e6ab097bdb230312490c 100644 GIT binary patch delta 90 zcmX?Uc-fHqGcPX}0}$xX>e1apPN^rpORRTsGpdgnpYB^oS#>cSR9|9oEcw| Unp=>QSdtoVf?IC$22M$S0EQ$Ws{jB1 delta 80 zcmca?c+!yjGcPX}0}uo)Yv0J7&uJE_pPN^rpQ7&@>=_?Wl%JKFTvDu`mRVF>5}%x( cSCUv9pPQLpl$esQpO~JS2NT@9i&K&x077;gbN~PV diff --git a/app/domain/contas/__pycache__/service.cpython-313.pyc b/app/domain/contas/__pycache__/service.cpython-313.pyc index ea113928e283aa5e24a3e312325b5c94aea4a454..e39a045149780ff548238e7c0bd003e2df4fb6f9 100644 GIT binary patch delta 4078 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 Unp=>QSdtoVf?IC$YG!6p0C5x`Qvd(} delta 80 zcmdmCxXzIKGcPX}0}uo)Yv0J7#cUR-pPN^rpQ7&@>=_?Wl%JKFTvDu`mRVF>5}%x( cSCUv9pPQLpl$esQpO~JS2NT@9m6=%-058ZK8~^|S diff --git a/app/domain/contas/__pycache__/vas_cancellation_message.cpython-313.pyc b/app/domain/contas/__pycache__/vas_cancellation_message.cpython-313.pyc index 62ef395e52a272647695c4db6a11ce7a08163840..4127fadae21e8a968d543db59cb2f3ead96617b2 100644 GIT binary patch delta 90 zcmcayf483dGcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IC$K~5nv0L!Bxs{jB1 delta 80 zcmcaxf4QFfGcPX}0}uo)Yv0J-z-gAOpPN^rpQ7&@>=_?Wl%JKFTvDu`mRVF>5}%x( cSCUv9pPQLpl$esQpO~JS2NT?Unp4OO0Ds>dbN~PV diff --git a/app/domain/contas/__pycache__/vas_variation.cpython-313.pyc b/app/domain/contas/__pycache__/vas_variation.cpython-313.pyc index a5536d0247ae47cebdfe1d2ec4930c21d3d7587e..bdb4c3f3d93112d500e3ec5ea8f615be4f248983 100644 GIT binary patch delta 92 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 diff --git a/app/domain/contas/invoice_context.py b/app/domain/contas/invoice_context.py index 2f5c802..282d6db 100644 --- a/app/domain/contas/invoice_context.py +++ b/app/domain/contas/invoice_context.py @@ -19,6 +19,10 @@ class InvoiceContext: complete_invoices: dict[str, Any] | None = None billing_analysis: dict[str, Any] | None = None invoice_detail: Any = None + invoice_amount: str = "" + invoice_amount_open: str = "" + invoice_period: str = "" + invoice_emissao: str = "" customer_id: str = "" error: str | None = None cache_hit: bool = False @@ -33,6 +37,10 @@ class InvoiceContext: "complete_invoices_payload": self.complete_invoices, "billing_analysis": self.billing_analysis, "invoice_detail": self.invoice_detail, + "invoice_amount": self.invoice_amount, + "invoice_amount_open": self.invoice_amount_open, + "invoice_period": self.invoice_period, + "invoice_emissao": self.invoice_emissao, "customer_id": self.customer_id, "invoice_context_error": self.error, "invoice_context_cache_hit": self.cache_hit, @@ -42,6 +50,55 @@ class InvoiceContext: } +def extract_invoice_summary_context(detail: Any) -> dict[str, str]: + """Extrai o resumo semântico da fatura detalhada. + + Mantém a paridade com o prefetch do Contas original: ``bill_pdf`` devolve + um envelope com ``parsed_content`` e o parser coloca o total em + ``total_geral``. Workflows e agentes não precisam conhecer a estrutura do + PDF para consumir ``invoice_amount``/``invoice_amount_open``. + """ + parsed = detail + if isinstance(detail, dict) and isinstance(detail.get("parsed_content"), dict): + parsed = detail["parsed_content"] + if not isinstance(parsed, dict): + return {} + + resumo = parsed.get("Fatura Resumo") + if not isinstance(resumo, list): + resumo = [] + + invoice_period = "" + invoice_emissao = "" + invoice_amount = "" + parsed_total = parsed.get("total_geral") + if parsed_total is not None and str(parsed_total).strip(): + invoice_amount = str(parsed_total).strip() + + for item in resumo: + if not isinstance(item, dict): + continue + desc = str(item.get("desc", "") or "").strip().casefold() + if desc in {"período", "periodo"}: + invoice_period = str(item.get("period", "") or "").strip() + elif desc in {"emissão", "emissao"}: + invoice_emissao = str(item.get("emissao", "") or "").strip() + if not invoice_amount and bool(item.get("is_total")) and str(item.get("value", "")).strip(): + invoice_amount = str(item.get("value", "")).strip() + if not invoice_amount and "total" in desc and str(item.get("value", "")).strip(): + invoice_amount = str(item.get("value", "")).strip() + + context: dict[str, str] = {} + if invoice_period: + context["invoice_period"] = invoice_period + if invoice_emissao: + context["invoice_emissao"] = invoice_emissao + if invoice_amount: + context["invoice_amount"] = invoice_amount + context["invoice_amount_open"] = invoice_amount + return context + + class InvoiceContextService: """Session-scoped invoice prefetch backed by the framework cache. @@ -155,6 +212,7 @@ class InvoiceContextService: detail = None detail_ms = 0.0 + summary: dict[str, str] = {} if include_detail and resolved_invoice_id: detail, detail_error, detail_ms = await self._timed_to_thread( "invoice_detail", self.client.bill_pdf, msisdn, resolved_invoice_id, customer_id, @@ -163,6 +221,8 @@ class InvoiceContextService: if detail_error: errors["invoice_detail"] = detail_error error_parts.append(f"invoice_detail: {detail_error}") + else: + summary = extract_invoice_summary_context(detail) metadata = { "cache_hit": False, @@ -177,7 +237,12 @@ class InvoiceContextService: msisdn=msisdn, invoice_id=resolved_invoice_id, complete_invoices=complete if isinstance(complete, dict) else None, billing_analysis=billing if isinstance(billing, dict) else None, - invoice_detail=detail, customer_id=customer_id, + invoice_detail=detail, + invoice_amount=summary.get("invoice_amount", ""), + invoice_amount_open=summary.get("invoice_amount_open", ""), + invoice_period=summary.get("invoice_period", ""), + invoice_emissao=summary.get("invoice_emissao", ""), + customer_id=customer_id, error="; ".join(error_parts) or None, cache_hit=False, business_events=events, errors=errors, metadata=metadata, ) @@ -219,7 +284,10 @@ class InvoiceContextService: await self.cache.set(key, { "msisdn": ctx.msisdn, "invoice_id": ctx.invoice_id, "complete_invoices": ctx.complete_invoices, "billing_analysis": ctx.billing_analysis, - "invoice_detail": ctx.invoice_detail, "customer_id": ctx.customer_id, + "invoice_detail": ctx.invoice_detail, + "invoice_amount": ctx.invoice_amount, "invoice_amount_open": ctx.invoice_amount_open, + "invoice_period": ctx.invoice_period, "invoice_emissao": ctx.invoice_emissao, + "customer_id": ctx.customer_id, "error": ctx.error, "cache_hit": False, "errors": dict(ctx.errors or {}), "metadata": dict(ctx.metadata or {}), "_fetched_at": time.time(), diff --git a/app/domain/contas/parsers/__pycache__/__init__.cpython-313.pyc b/app/domain/contas/parsers/__pycache__/__init__.cpython-313.pyc index 784b895d9b68288f2f0cfb8ff2f4d9565e178073..e003ed32ce754bf2473470e53da9f017f7d34f1a 100644 GIT binary patch delta 90 zcmdnaevqB}GcPX}0}$xX>eGcPX}0}uo)Yv0KIkI^hzKR2&LKSkd+*fTz$C_gJTxujS>EwiY&BtAJm cuOzWJJ~uPHC^02pKQTQu4<@+Tlc|Cc06w)GVgLXD diff --git a/app/domain/contas/parsers/__pycache__/bill_parser.cpython-313.pyc b/app/domain/contas/parsers/__pycache__/bill_parser.cpython-313.pyc index ba3be408efcf3dbaa66ce1434201f1455ac9b8ef..51b16a6bd087c064d2cd220cb0ca3804a6120388 100644 GIT binary patch delta 92 zcmX@Tlkw_KM()qNyj%=Gpg*f;BlkachYbDPyb}GC#F9k)#Prm>lKABOypqJ?`26I| W_>$Dzf}F&X)OZuza+~crdO`pb+ajF+ delta 82 zcmcb*lkxOUM()qNyj%=G5VWj)BlkacvpD_Syb}Esecxcu_<*APtkmR^V*RwtqT-VH elKABOypqJ?`26I| W_>$Dzf}F&X)OZuza+?h~Yg+*51tK#5 delta 82 zcmdlnn`zx_ChpI?yj%=G5VWj)Bliamvqb&eyb}Esecxcu_<*APtkmR^V*RwtqT-VH e Any: - return self.client.consultar_faturas(msisdn) + def consultar_faturas(self, *, msisdn: str, **args: Any) -> Any: + """Consulta faturas e expõe o resumo semântico quando pré-carregado. + + A fonte de ``invoice_amount`` continua sendo a fatura detalhada (Bill PDF), + como no Contas original. O MCP apenas apresenta esse dado junto do retorno + de Complete Invoices; não altera o contrato do backend TIM nem inventa valor. + """ + complete = args.get("complete_invoices_payload") + if not isinstance(complete, dict): + complete = self.client.consultar_faturas(msisdn) + if not isinstance(complete, dict): + return complete + + result = dict(complete) + for key in ("invoice_amount", "invoice_amount_open", "invoice_period", "invoice_emissao"): + value = args.get(key) + if value not in (None, ""): + result[key] = value + if args.get("invoice_id") not in (None, ""): + result.setdefault("invoice_id", args.get("invoice_id")) + if args.get("customer_id") not in (None, ""): + result.setdefault("customer_id", args.get("customer_id")) + return result def consultar_plano(self, *, msisdn: str, **args: Any) -> dict[str, Any]: """Retorna somente os planos presentes na evidência de billing analysis. diff --git a/app/extensions/__pycache__/__init__.cpython-313.pyc b/app/extensions/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f5836e52b2f6b42249a6f0c57f7aea8f8fa5826d GIT binary patch literal 328 zcmZ`#J5B>J5M3t`L@VVEZquwAN<@Qb)6mh3M)nYy#2?v?ARPywrJ)yN#OeAi}7m}C37tBpvZ_psW$$S=32ZpYdo;2m$y(acVOellYA(3Qn*Cwm~ zI>Bv1NB1G^AZXjvo3-dq0Zh;UZ8eM|_BYD;q6`*PQ#$A=d^A8I7x!2Q&i=ns7^9-; qM>hDZ0IatKpozzRdG3Na?CBz%aMZYxJZ|iBE`<1+&BY=uSbhUnacD*W literal 0 HcmV?d00001 diff --git a/app/extensions/__pycache__/tim_guardrails.cpython-313.pyc b/app/extensions/__pycache__/tim_guardrails.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8766e70f05fe89249bbc0163f56afae221fc1a7e GIT binary patch literal 7215 zcmds6Z){UpcE9hB|2ua6IUzuZhY1S?nvj7I{zFI{h9o$wU(7Hh%;Uv=Nj%to<~}3$$lHENJn8v3aNRO;-9O3u1c(kG}^>W3BIpky?EzO?7u zXFDbnG;LM&LvNIG?>qP0|L30bJJ&BNDx3sT>n}fi_l+t-{tZ8h$zm3`7hgl+Hj#+L z^^snVa(*oHeLUq^E>Hn-p-=3!Pz$RQ`>ee-YU{OAJA7LtYoDXnNu8{0>vQ$GshgGU zeHFbP>S1L^pSQP?RzkU6a&9K?inL1FB)M3rT56EotW>j!Y$sC1W+HipZS8_NLt4wY zUf@;^*Os_G#;pQwbs4vgach8ETgI(tTpw`j%D9`x_`v3;I7omqTuLgXWt2=@OX(r_ z7CKW?0p4(&$tpBPm3YE%hkT}qXP|kd$=5V} zjaQJR>O`8V(KY@iQ+AXpx~e6#v3RkcC=OCgxEt`#z4#L-+$IqcF0U;}NnCq@dz{-< z;Kc%j_+KT@Zy*nv@=AH3DBny1V#uf%D{haRNF)sbi6yDU)C6wfn3`GO3|mx7Wz_2# z9cSh@uCyjonbw$+QCgKTHIxQ6bsNo1+kE&_ZeF}$9%#)%uP&6vo z`M`d|;atzqM&L1#Q&5;Dk1K2MIRC;q+woV&=SCK@{}5fO?ET{47r|U*IOhm|{n%BT z7dw6>&DGy+oIjm!Y+bZ2`f`mOzpLxWi5=hSUg+efJ9d)0uXVbF2Tl&?OZ#qvdbaOd zL3d!^QG-|-!rQ=71a>w;idJF$zDp(j4wv?{*piU;LNUdyok7^XR$nZEO%ftpd*Q58 ze1tFFEd}->!iQZ&$+cV(i{}KryNmp=r&wCcL0?L@mgz%fu@3YB&GDr1lvuHhdI4eP_w<=w-7OmW&h*&RT`s-D*LjN*@{CLVo~h{qIv zO!Jp6kALv&xg-AgUf5;OA)As&Xp?Hpuu@e4g$X$57U;vU!L3#@pfncHoOs&cscKkt zRiV*w!!ky-Y??NpoF$nx)*Bd z;9s8t0{Z3hd^mYapFKOL=e>KDy>0U}?|Ng|b!f?TDDOHl-Tm0^{K)a=j$18r&3XII z>CS((*=MeOH2MDIt!p3Lm}xHR=Yf2sKj-k93aQQea>tb1$Y^ftYHs{$ZX}UYlDQ+P zrAF;{by`l;zSXN?^aqW;&i&-Ue&1=A@X*NtjRLon3fjQE_yMqPlVL*PgurKV;4gV9 zN&*GXD2dFkStSd#fw!?49(gdHJkPuYx|65dpmE4>l+GYpQf#O|=lvd<{EINy>!1kb zS0GYS?UWD^qOj-Xmm*v;Hqb{QNu0z>0{n?Bykt2nHltI(E4D60xbIve>yV=;v^H+( zLWmJz!z*Bu?2-e?@Yna;XAbazRy!y$;nE>mwVt@f0P? z&Vf0GSIB!ekcTnBa9E2qU_Jz?GGdjgS_G;3u%(&UN$6&W04}2@)bnK<%&5Qr9GU}w zAxU*oqgTO7#NuEuQjb2JP!oQ*q{_>-VsL>s?C6PUN=X>5QP5{On$UDLwg65h3MhcS z2L00QKn!~l%m#XW>c>y3KBa@V&+dT_W|mT5jFhyRQgnZ>G!XKe21?uO*VUvysnDx2 zZ8FsYBZ^c@sI&RMbV`gRMSy@t=4?ltAxPUrS@<+gOMY-?L={w#1W@LB7<*8Ce? zxwh`y*5ES-@%f(-i_iHLv3Q*`!m68iH_yJF_iURH9(%XU)!uFRq~SN+_iO&X{_pBP zZ}=jZKOD{}-!e0gPgG*0zQA`bem$ud2Iy`!el5D>#B%K!>8@u-Y` zJwB4ns5(fUM*%cxOnqnzmXM&!Vh-|8$%?OGI1*K=S%GOVEN>1>8g zHxzKvL2MsEaskO(NbsT}UV(taaGPrdb2P5SD7rOsKQ3Zv-I^~U4+##b<6gj;9o5s_ zv%78u?;XpXI-lSF!(WHYWux5x+OmBnOi-ek_=Gwz3ehE7Ix|BqTzcm~PcS^#NiV~w z-@A7D4ob;L5Z=Ce!3x$Q!GTH(u7d@S&sy%?%ynPPcf9>K9&^DcxAB6HK+VSI4CiVc zw!vB3OK0r>lwe^n$thW>Ys?mK7~uub7MmSKx^SRst&X2ls#pO*o)!Pp7OvLG!dQ|?2;EF zGpX{(7$GUg_u;LJzbN*lz-W?nfRm~iwy6eeL!=rJ9)2WWizw9`J03{iCsVF@D(Bmk{Kn%aH?dg9&GPt%Z?(&36N0dbThVtm{qhD)& zcq(GIKmi~$mQ4XbOKXWopMtekFkbU_vDXuN8d^S$0WmD#Am~&;WRQh+0m}phUchO| zI80MUqXMB;5URjl)}llSo|vWqqkQ@%66PhCH+mgEn}I-^J}keCKxjYm5Pq0fl8126 z8jHi8=?o(27|bv4{DP ztVbs;KuzaEe+aDr?7qtTnjVO06LUkT4W_Q44$zI9uZk5&(CF)USJ3$ue9>ZL-u>HS zxr>Q>U-Etk(MM1;y%M&F!hb0VW{G=&3jNN1$1m9;*NBuPvPH+V;1!Xf0iV9DS=eOQs5(jGU{x^EFzh{@{r#sqyZR_D^hU#){exIC7Eg_} z6vP43iJ7T10I{TU9T6wI`DS#(Q3#9TG1KOpgkI<=An;&m(X(lYhnTex5f4)qT3OcF zA;iWyymJ~38RAey2N0{n1~RKNU1o5$eD~l=#s)2$eg(+aEC#CI`tjsa{mywYUw?49 z>fns^8E@O-#L(#Aos%D*T&~$QH{Uz5~A>QeLk_kWAO{(}W-z0=O>uwS} z+L{{>RTBwW4si6RxGXTC#@4aRfUC!+y*R*-p?8fQRR!Qy|X-j^mz??SCNNC#3EVr0WUkc|s08A?;7d@l`9w zUEo&jJa=f-Y2nh`YGoxC6>hz~N-$sj0mp^8SpQd9 zJW`=Vs)!N^(gxw?m#Hd+NU3TmkxHYgflw*@9CxV}jiCLJsuKT_nkZ?0^_-cVu`#Aq z+bjFrJLlfH_s-n!`_7r2t*fgcP&z(%_xP7#LcYQauLy2~nf(A77l}wjW)JCOC=V={S1FKFtmN%=;3=a275E`%>X7&m2 zULx; zr5NvRX>5x1R*@TF2W+x-Zmic5d2eNyJ>q$j^d7Wn47GCxyN0xq5%LnZhKw-raKa8|bj?&W(DVcgQ(-2nioXHY7cxN~TgM=4DfnIv?HF zAs34sFsGs!h{g_6ElAFT8STZBc0el1)KKVZSPfW5jMHGwk~`tZy9Y0blgpFm!J0{P^4B7slQ>b*}YJ z!;(uiKdYJSEH}igaP0d#wM)u8y&_D@R!`PaRO`5AjcS&nTiK%3JvOtN{%IMtc>06U z1nXa4y|jB1xxQ)Hwg~q{Edw?KUcXe?$;`Hc>mnH<6c7LkzySMM%8Mb92Szhg5QPMXon6S{sF(t?3>Oi0}Xko-7=45>_g1* zF`FX!>P~?R+(YA7==a&0#&_?Ol+O?7_qmxPaW3KD)fSw?iwA5jpD)hye%Jkr5Y)#q(w$#MNZ_~xmG7Sh(Wi#_}q)> zBp@v;*0i%?Eoczb9dM?}`53CMDn`J+h<-YXRrhcD>bLT{A;KL4oSa}TatR?qG&b$4 zYRXsfRuUqK=oSw2E}Gcs0Hw46R^PjK9}3wB1uTr~bQJV0tAf;NH-3FW$;W{E@|?<1 zl;i$;7=}-6aTtQy7c-PX4CeW93_-L(FDhD0nJDJfjB3KHAgnP^q!Be&qHKucw~Nj74A;{HU;)mOdEnYSR*(X2kMwZ~bTr+QwYxVp`kK$1>H9i+FT zc2P~vx1VYT#J4YS#yJPRc6|myr>>zuI>3*DRw~qqz>XsxZ~^bYJSc!XT$D~~rg z3J8-ugX;&}Kunjzg(t)=`hx&|ywh%+2Y%PpjD!CU<{qLy+I)WE`~*~$=oiR`&qbZeGRR|X4vnrDqpf3a$8tL(e}QrGB%! zYg;{Y{YB7d{`yM|(0+iqh*ZEXGy4Z%F0htKLcOp+p0cs#3oGI;4 z0TL@rg5otc2T2xv630D`2C?DBF$|Z^1U6TYC%~v0Z2%uk>(H9hOQyqV_er{;%fNf) zMYo^?aTK!i2l(x}95J{J!-3tA==t8adoT1(ZTfJ_sN+5GdabE)aEPac~}U3vbO16P&F(%+)Z7kV!BzSldsdn#LA@@zTUR*CMMUix|c z@9Jls+j%ZR#3nhe37(!!F5 zp0q;ielQS@A3xSpM{d+bdRB2aRx)7YyptNZ>iIN`sGd|Jx5+7Ay+YT4w?6^7RY-EQ z7IK3cNh;{s5~LxL9g(E5lAK4Cg{!C}ji}Tx^D2n7E=lf*W3Zx_IM7}&_EJfLY}`~c z5@yrt(UPeclJpUw9XJH@5W2=Q2ss0h@KbU-yyWcm`z#~$vH#!&Vdb|GK^WlNn{a#v z{{2#wBKU{`*CJ^o2WcaGV9-ELfNX0CWR1O$z-w70t0{)z#K(IvxYcgJ3=)%juP@`X z3A!<$y@eV`VZmzl@=!Loku0u^9*gG`D7z2Y`EWk@h#CA0VcraF|J4lKB6|RWFTMwj zhit~zV|emv0WT75L7CIydHL_d8TDL7%zN7C?P+0lF zv##8Ez;#>cqm}eAYvfpEurM=Nu(a{=;Dp-+B!7e1jxqqZ!^JMPk3AQ{yyVQ=XQo;| zY`ffctK-!_HeWmN<9`|WQC-eRfnr#e%mwKwlH6`G21qW zzSt0kHch~W6CVZXZm4M=nmuUtqH#2Q5L*CN;tZWf+}F^DCIuu`!2xPz?X-u*Tr&o|E&XutidCd!4WGvQa+F? zcN{CXsFhV}IeOd*9iLgHdU<7i_e$n^1Jk`cbiFYQZ5MEK2-a8#sKe+(gNN$_Y7GL4 z5k{+k!hQ&47{n<)A^vh>mZ)~BKC5QTH2hrC7K0z@hT{zwyGBaT2hob6meFNsFc-4} z=E)*_9=kKFa(|EUKd#(Q6T_`2Lck3T?#G1Djz95HRFwza_#+>64h4UNapRi95$Cy( zXLIDSLod2v^<}C;2LjUA0p@FtVVJw5<*y`qmn^$WI`5JW_`4tA8H4#Q5@iM;^rOAs a!ZSyh$*uPZ*7qYEGs;Y=-x92yW&Q=CZk%BN literal 0 HcmV?d00001 diff --git a/app/extensions/tim_prompts/__pycache__/__init__.cpython-313.pyc b/app/extensions/tim_prompts/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..595dd9d4da215888f60b3374ba4d0d17f7f238ba GIT binary patch literal 199 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 literal 0 HcmV?d00001 diff --git a/app/extensions/tim_prompts/__pycache__/ausencia_oferta_proativa.cpython-313.pyc b/app/extensions/tim_prompts/__pycache__/ausencia_oferta_proativa.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..351833235adbcf4c96e1112fca68cb6d5ba4e708 GIT binary patch literal 9836 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 P{qXx=-}x_lZ;Sj71_SZv literal 0 HcmV?d00001 diff --git a/app/extensions/tim_prompts/__pycache__/fraseologia.cpython-313.pyc b/app/extensions/tim_prompts/__pycache__/fraseologia.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a666ee9810dd898311cf89f97c802b6247d15ad GIT binary patch literal 7553 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 literal 0 HcmV?d00001 diff --git a/app/extensions/tim_prompts/__pycache__/out_of_scope.cpython-313.pyc b/app/extensions/tim_prompts/__pycache__/out_of_scope.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3613988c8960918d7d91545edb392676ffbd8666 GIT binary patch literal 17045 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 F{SQ@cOq~D# literal 0 HcmV?d00001 diff --git a/app/extensions/tim_prompts/__pycache__/rqlt.cpython-313.pyc b/app/extensions/tim_prompts/__pycache__/rqlt.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f60524222e88f91b622b65d9375623625d9b1f0d GIT binary patch literal 1121 zcmaJ>&2G~`5MC!~2}{e5#0f4V!+}U`+|rgpR3VwRhoCkoO^dii8+(Zs*ii`khpN=fP%yeaLrrf2rm#RFTkwpR;55Kd$Ke0&FnX`vl&lMQ-Y84`NOOEA|bzw za`IUDVr(FvNQ>Meigc|?!7H3V@OJ_~j3ncmC=g}slB=Xu*tJj=7bfnKN~w`sac9X``@&N4^Mol*lTjTU>S1C}A~vFh%Kh z4y@7i2nkWTszfsAD7b^5V8e|v;JV`O}v2CFWyNSs6M$=-& zr0pu)yuP{B+}?2;JL@gXHVZ8zbIJ|)ejEsofhU#X2{QyaNC;&jdJ=vfeFTjz4&mT? zBti)f{>p%D@Q@z^4uc=a;Y<)F!_Z~)Jo;Byk9DyoI~shEpt-PT!0vG+UW&bx+m$nU zR$vL^8-w>vhXS24{KxBkLyKihRT z>TB-WdJRkK`+}K6%1YJ1I!x?KV^}o!=EdmaBA2kpWkff3>YEqinJ2<*w}<)3M?M30 zYrWyN;AyMbsL{6+z-B=pUvuBCL84MVV@v_-@Bj_=xe}Z|C_3jT*ja2=8ph7e&d+5A z#hI3o$(E16;Hx=@td}-@NBg8w7?$IFP>1EyX*O2|VAyfOC~j zL_6U)o;dOC#sB*p7RL_X$7`X5jI@)8upKL$>qI+hFG#BKo8gU4DgwW4)ZC{o;qK-- z>k5iPGAfj=Tca{5&_g;R#VgimGGE`u^)-8{G$QsyX^ddfs90IJGM8MHjhI9+EU$#p aPXqo~T}CxaZvH1mMa#0rg*#R$!~O;gD^AG( literal 0 HcmV?d00001 diff --git a/app/observability/__pycache__/__init__.cpython-313.pyc b/app/observability/__pycache__/__init__.cpython-313.pyc index efc6004c095da90a7d5477c1efc09b102ffc478e..f87dcee7134a342033a57dbd723544278dfedc78 100644 GIT binary patch delta 87 zcmdnOxQ~(hGcPX}0}$xX>Y2!G>=3J;n^&Trl30?cpO~JSR}!C`pI4Gt9G{<@8DEl` RTac4jk{WME8#4d^ diff --git a/app/observability/__pycache__/telemetry_observer.cpython-313.pyc b/app/observability/__pycache__/telemetry_observer.cpython-313.pyc index 6baa56c813de6988ce9719e1fddfa982ae0761a2..857b82855e3a2c8dd1077ba9efed518b7f17b91c 100644 GIT binary patch delta 1102 zcmZ`&&ubGw7@bKrn`|~oleB5tgr*y{ZMI@V)%v3vv27x@l%V;6(I8=MwrQo=gy~kO z^bhEv2r?AZgL)G6CLR>Lh^_Y)1!L&Jix*E(!Gi~JzQn~UI)^uJ-uLG1H+<}~zV!ju zSEtjC*oxj+yV~V^;(CBjm!f4&j}{eOi7F*k(+e{dO;;8Rm6`d1u9m9{imnz8|G)P1 z6YjK{PMfGn$O(Bfq_ahD3jRxJoJJ$R6wR8oUhyN8wWh2s%Wlm1vb^D3VmGQj&6c%k zeAbc@cKcd9ZK6cjn{U44&uZRboKr4?{oePWyxTaXyaxNdkKh(h`DjDv<;_DDO$fnD zaw*pN-z(Rh?>4k7HtwdmlM4WrcmnhLU_3%uD2ODi(=+pG>ea#XR&Na*2S4hQ7x2}YE>olqy0$4Rp*NHGkV=x zQgubw36WW3-J?}VSy`CBt`@4w@b8^RN^xmHJw-0ls`psiL0rOL5Ma~v6JBTHasU7T delta 882 zcmb7CO-vI(6rSnscKfsa+X72!gl!OLA+SocRz%b`8`EGLY}up>eLTDGKs|luw zC*#H2go9@j61}O3T)YVJsvJ#YP;VaVPw=Sowvupl4qv|aeQ(}-v-`G2cZP#M0|6gm z=f?Jl}#y$hQgRh1)&tKm$F-#yI(KkEWLg@LCN*)eWU#n~bEUR(e^!ZCL*iGhzX zPTvO}D>Klshru(xJCzK=G`$nlah~o3_vOn>NVDwunl@2eYQbt$$sBD()Yvq5PJ;7Y zV427qK!LuF;SrH`Rwsyj{f8mO4yWi-c~WuO1XeJ*GcPX}0}$xX>Y2#h>JX!!n^&Trl30?cpO~JSR}!C`pI4Gt9G{<@8DEl` RTac4jk{WMeEwiY&BtAJm cuOzWJJ~uPHC^02pKQTQu4<@)-hRIkM08i>1Gynhq diff --git a/app/workflows/__pycache__/agent_graph.cpython-313.pyc b/app/workflows/__pycache__/agent_graph.cpython-313.pyc index e7bf5a21bd6a0c98ac4b9b7374d21408680639bf..6b4945e54e272475672ee5cfb3c64786b3a806f5 100644 GIT binary patch delta 5435 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 RTac4jk{WM?UFA5Q=P delta 77 zcmdnaxR#OoGcPX}0}uo*YoEw%Z04h%n^&TrqVF5*86QxTpOu`r}8y5fo diff --git a/contas_mcp/servers/__pycache__/__init__.cpython-313.pyc b/contas_mcp/servers/__pycache__/__init__.cpython-313.pyc index 978853be7fad1706de1a262a2f9d7046540d7fb7..3e72e8c4f9b178778dd25b187fa153874592b396 100644 GIT binary patch delta 87 zcmdnWxSx^xGcPX}0}$xX>Y2!G>=37)n^&Trl30?cpO~JSR}!C`pI4Gt9G{<@8DEl` RTac4jk{WMY2!G>`AGZJi delta 77 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 diff --git a/contas_mcp/servers/contas_mcp_server/main.py b/contas_mcp/servers/contas_mcp_server/main.py index 8af27d6..6e51f5f 100644 --- a/contas_mcp/servers/contas_mcp_server/main.py +++ b/contas_mcp/servers/contas_mcp_server/main.py @@ -71,7 +71,7 @@ class ToolCall(BaseModel): TOOLS: dict[str, dict[str, Any]] = { - "consultar_faturas": {"description": "Consulta faturas do cliente.", "input_schema": {"msisdn": "string"}}, + "consultar_faturas": {"description": "Consulta faturas do cliente, incluindo valor total quando disponível na fatura detalhada.", "input_schema": {"msisdn": "string"}}, "consultar_plano": {"description": "Consulta exclusivamente o plano ou planos contratados presentes na fatura.", "input_schema": {"msisdn": "string"}}, "invoice_explanation": {"description": "Executa o workflow de explicação de fatura com pause/resume pelo WorkflowRuntime do framework.", "input_schema": {"msisdn": "string"}}, "consultar_vas": {"description": "Consulta VAS ativos.", "input_schema": {"msisdn": "string"}}, @@ -307,17 +307,22 @@ def _preflight_subject(name: str, args: dict[str, Any]) -> dict[str, Any] | None return None async def _enrich_invoice_context(name: str, args: dict[str, Any]) -> None: - if name not in {"consultar_plano", "invoice_explanation", "cancelar_vas_avulso", "tratar_vas_estrategico", "contestar_cobranca"}: + if name not in {"consultar_faturas", "consultar_plano", "invoice_explanation", "cancelar_vas_avulso", "tratar_vas_estrategico", "contestar_cobranca"}: return msisdn = str(args.get("msisdn") or "").strip() if not msisdn: return - # If all required evidence is already present, preserve it exactly. - if isinstance(args.get("complete_invoices_payload"), dict) and isinstance(args.get("billing_analysis"), dict): + # If all required evidence is already present, preserve it exactly. For + # consultar_faturas/invoice_explanation the semantic amount also matters, so + # a cached pair without detail must still be enriched. + has_base = isinstance(args.get("complete_invoices_payload"), dict) and isinstance(args.get("billing_analysis"), dict) + needs_detail = name in {"consultar_faturas", "invoice_explanation", "cancelar_vas_avulso", "contestar_cobranca"} + has_detail = isinstance(args.get("invoice_detail"), dict) or args.get("invoice_amount") not in (None, "") + if has_base and (not needs_detail or has_detail): return session_id = str(args.get("session_id") or args.get("original_session_id") or args.get("conversation_key") or "").strip() invoice_id = str(args.get("invoice_id") or args.get("current_invoice_number") or "").strip() - include_detail = name in {"cancelar_vas_avulso", "contestar_cobranca"} and not isinstance(args.get("invoice_detail"), dict) + include_detail = name in {"consultar_faturas", "invoice_explanation", "cancelar_vas_avulso", "contestar_cobranca"} and not isinstance(args.get("invoice_detail"), dict) try: ctx = await get_invoice_context_service().get( session_id=session_id, diff --git a/tests/migration/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc index 5d62525787b1f2b6056a7e59fb64ed6c47dd98b8..a2d3cf0a86c0d26e248a1c925b488363481483b1 100644 GIT binary patch delta 89 zcmX@Z_Kc1DGcPX}0}$xX>ecSR9|9oEcw| Tnp=>QSdtoVf?IC#WTu?}NaY}) delta 63 zcmaFHc7~1nGcPX}0}yn6Yum`3#H8k^pPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# RU!b3ypI4GtJb5kCP5`2s7Wx1H diff --git a/tests/migration/__pycache__/test_adversarial_parity.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_adversarial_parity.cpython-313-pytest-9.0.2.pyc index 01111d1ffc1e9b8b15918efc087ec99f92253908..25109e3fb7b246c93ba407f5af1f1f9fd01c75a7 100644 GIT binary patch delta 2476 zcmZ`)eQXow8Nc^@zKiWRHXkEj4Y_;)=M>w4xG628kutK9CY0cK?Ur@saE{`{z6O1@kMZV^S-|yw%ikvz+?us3+sUyMT>z^cd9)I})*~lpQ zNiZI2;OORfCt&xZyb{hw`O~C#Jd)L|$e3!W5%p0`w~{GCw^TD}q|!-C%T8ugOG|ct zu`j>qdVM>YVK49aDd5CF6S3KmfgWK-qBi^afKIODH$U(#k1#`~qHH);%YHD@K<3#y zBl`ef-PPl+HJ96dDgf6nykt;P z^8E#U2nv7GCBs^IN58ourRpgyqsoRnqGtCR)Sxbs&lm!b1j|X}JF~y|wnEp?M z&)6~AzVc64Nh&KS&$A0OPTcug^C3dK%&_kFc%Z{hcq1=+%W9G(uqZ+mJf;LWPjX8< zaW~U7m@lz^SwCLu#h?H{(VbE=8B=l5r_fu{^Y7(4$+{Kj7S+i~O&=@8R`1T~RywO~ zr?7gb2lVVXc%~IY%elaIDx^rFicnJ4Vch`x_+UqK9fqAmyC1<>&uV0TbokkZLm}Qz zSYfa(pE>ldyXsT$DP(FBvnLwa!%qy0YccL0?3E|tM9#aWttwBOlL^4c`VBP{7oyZq zM-8#bqjz}e<4~kXlC+k6_|znc=7*j>;*we+ZiLpbE6*rBpWq5QKxh0DvHj0%-2HBLKKl+B~y9+~l5bkC(Y(I&yl_z$Qdsym32>7!n!eR`a zTiM$uEYh3r`R+GF(#@X#-g)s})VHwS)2ATtgVPc6W#&7h`1(=ah7e=-or#H#9b;2x zenE!wy)W$I*`>iX{5a1xZV!jUe1ycs2p5;a0`|d6CkYa-as!Kd5OqH8jf-)2m}kd# zuVO#^YP;l12;C%J&3@Idvi;B0v90|Bf#82-h+i1{%^d^ND|S*ID%0Np6g{eGrcF!L zt*OQb<&hmj@=(r9r{q))M0t0++_mY>Ez$4{Ulgd3(VQu{*)W{bs3Dg(3B_GuFV@D)5{nRE`* zKLBtx2W(NiD9&MVo28i+dv>6HI+@l}nOr(Ksg0$_jHGJi)J$?xrD{?&_G#2o=_By- zX5cY#mJV}Qgr0eC?X0(};O&~Pt)H)Nx4U*0f)6gZ__~?}k!!eXuCeL5U-EcwxI8}b zaNojet~y``ItspZXKBF~THsu6aW1%KZdK&Ed)gHd9RVOBUguoZ;u89AApA|d#{FFa zV*5gl3jUJ1uv~TWG1gI?LQeE;sN^kSo}({R!K$8~ju(8*XZeD!%@+FX^?fBQ`1)pr z@_i9>Ut7t1ZyCSj#8<*91Y+2)2OIgjojDzJ=2U<=75`^WrP73s;&;or5`1NjUGXZT zFCpA>KgSt~4Q2n>ER#>Rc{~X>OtAOiZuY?1Eu@*f($dP0ifoJ2#4em__Ku3>aE^Vn zb`QI+wT1P5$Gf6BENldiF2?=wnuHi7?1X?x@Aly7s*xPaO=i+5 zHHjnaOl@*pP3lH@z|$#%?t%7);W1x_n*TR_b1m!b?p=ktVY_zsTzw2D&*R3)lbp#5 za=}&hDy0wz*+TT_W;+nNh4Ot-h}yo+idiC;F|DE%Zd>4hY9-I5 zWtqUwAE+c$$ooRnIRzAvu7vj}3S;cl*)?~l@M3U$ILDxKe0+vK95N-wetA|UVHSSz zC9;iOd~rN@1%1~L77>=%;JM}=H~u@$N$4CcGMGh4H6PPcX@f@5xe1{cVHg2-Gu^{Z lo@??R017u}hVpNoYa(A-l!K&g5st&JkQ*C(q{~_He*mqLxqAQr delta 1218 zcmY*XU2GIp6y7sCJG0xrEVb39DRfG0b+()CuBaesO*CO6C2gu~V>AjG_eYoR%xvz= z#+5|+R%lWm>M1Wu2?>$_P4MA9_=AxLG{&c@kwiCC1%p(A5Utgu_;=4tDY)7F_PgKr zopbJ;xkqc#PoGIm%Z-h70r8poV{+fQ(U+?@#;LOlQSipCOw#vH7 z7Vz4T1vUQMu00W1hy6)>J#rs@m1&1X{3TNms72#Jl`W!qaxA;e7+%Th`uF5 zv$c$2zGO3-{VNN)Zur673A#x<{znnx~7o4h(EL40DRDS z7C^zn?o;Uy1Og-CWQzD_y%ah|kS4g7poJhvEwfC0EuGI=Q zqC*Xmx_sA0>#?rd11*@WwkZ(`M{uMXlOlj$_P6mjtDlG9SA5}sqqLLx8(uiD8#=f? z;fB>tFAmrhjWsbEq&G27>&1%)d*B|F4wWI!okLSWb(63&tPX?I`i84?o-QGznL)G% z2dCQ`VnXoC#q6$VUs%1n_M z?BJ#L2P1j|^UM?;oBI@odEw}&g#47&F(QKEX?nNCd+jT99%A|yym`ui7(RXaIBdt2 z)BB<|@~#lvAXr9wzB2lKABOypqJ?`26I| X_>$Dzf}F&X)OZuza+^Oh9q9)E^ByBk delta 66 zcmcb(lxh1?ChpI?yj%=G(D|)xBljUDwOIY!yb}GC#F9k)w9Jb5lA^@C;>6^V%>2Cg Uoc#O({p9?-lEmW8yv#@X0TxjhsQ>@~ diff --git a/tests/migration/__pycache__/test_business_events_and_guardrails.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_business_events_and_guardrails.cpython-313-pytest-9.0.2.pyc index 76bc6f932c5fd493737b6f5352321fde4e2d9b66..c11a914fa398ce1f3614f60bee9481a763ba95b6 100644 GIT binary patch delta 90 zcmdm_ct(-?GcPX}0}$xX>eo6(_6KR2&LKP9mwQ9m&~HLoN-IX|x?u{b_IIWxW_ UHMbxqu_QI#1h?GgH;l*l0E{vrr~m)} delta 64 zcmX@3xJi-wGcPX}0}yn4Yum`Zn^7%BKR2&LKP9mwQ9muSBEF<3F|Rl=xg;|`FFq$f Szd%1ZKd&UQcrzQ*F+KpyFBbv; diff --git a/tests/migration/__pycache__/test_cancel_backend_wrapper_parity.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_cancel_backend_wrapper_parity.cpython-313-pytest-9.0.2.pyc index 9cac1d57b777f5599b56c00f9e01992e18d6feb5..9aab60bb9da349913b40a6b23ba95dd8aa540f9f 100644 GIT binary patch delta 92 zcmbRDm~qErM()qNyj%=Gpg*f;BeyZLL#cjlUWtB6Vo9QYVtQ&`NqlmCUP)qce139f Wd`W6xYP<<oeR(Sy6F(J(W delta 66 zcmdn-m~q}?M()qNyj%=G(DAKpBeyZLTC{#{UWtB6Vo9QYT4qIjNl{{6abj{wW`16L UPJVuYesX?ZNn-KlI%cap01kc_CIA2c diff --git a/tests/migration/__pycache__/test_cancel_composite_workflow.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_cancel_composite_workflow.cpython-313-pytest-9.0.2.pyc index 288323dd0180f23ac05d60cc2d856582c705a65b..412fc364abad3151b1a136c3d0c6338ca8c001a6 100644 GIT binary patch delta 92 zcmdmajrsC5X710tyj%=Gpg*f;BllHiheG|_yb}GC#F9k)#Prm>lKABOypqJ?`26I| X_>$Dzf}F&X)OZuza+}#$jGqGl7Zf6( delta 66 zcmcb7jd|xaX710tyj%=G(D|)xBllHiwQ&91yb}GC#F9k)w9Jb5lA^@C;>6^V%>2Cg Uoc#O({p9?-lEmW83M|IY0Wvul`Tzg` diff --git a/tests/migration/__pycache__/test_cancel_wrapper_remaining_parity.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_cancel_wrapper_remaining_parity.cpython-313-pytest-9.0.2.pyc index d53a90e05f46825a51c5bc587a9343b99909a4b2..5d05cca316968c37ed8e8842793879f219f645d7 100644 GIT binary patch delta 92 zcmdnBo9W7KChpI?yj%=Gpg*f;Bew^OL%Du#UWtB6Vo9QYVtQ&`NqlmCUP)qce139f Wd`W6xYP<<ChpI?yj%=G(DAKpBew^OTC9FxYP<<lKABOypqJ?`26I| X_>$Dzf}F&X)OZuza+}{WZ4Czi?CT=% delta 66 zcmdn9m2uHlM()qNyj%=G(DAKpBljLAwK)CUyb}GC#F9k)w9Jb5lA^@C;>6^V%>2Cg Uoc#O({p9?-lEmW8?95xk0THDbN&o-= diff --git a/tests/migration/__pycache__/test_contestation_failure_mapping.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_contestation_failure_mapping.cpython-313-pytest-9.0.2.pyc index 120a20c4cf97b448850f130acd7363935cbfa366..3e57082185310d6a356690a04bfd10286179b220 100644 GIT binary patch delta 90 zcmexwJ=2E!GcPX}0}$xX>egwdfyKR2&LKP9mwQ9m&~HLoN-IX|x?u{b_IIWxW_ UHMbxqu_QI#1h?GgtBhJQ0H13iIRF3v delta 64 zcmbPf^WU2LGcPX}0}yn6Yum`Zgi$R@KR2&LKP9mwQ9muSBEF<3F|Rl=xg;|`FFq$f Szd%1ZKd&UQc=LNkEg1ma9v71U diff --git a/tests/migration/__pycache__/test_dispute_actions_remaining_parity.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_dispute_actions_remaining_parity.cpython-313-pytest-9.0.2.pyc index fea6f9234a071379fe28d1f0a197420cf1b3f3dd..5ff53b8a7b0d0bfbf236a879af28720ad1398328 100644 GIT binary patch delta 92 zcmZ45!??ePk^3_*FBbz4=+Ele$j#5>P@$ijSE8SiSdyrpn4X$f5}%x(SCUv9pP!r= WUy_u$j#5B7N?(^SE8SiSdyrpmRS*BQk0lioS0manV%P* Ulb>IppPZjpl32Vsis`8{0O3IwzW@LL diff --git a/tests/migration/__pycache__/test_external_guardrails_judges_spi.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_external_guardrails_judges_spi.cpython-313-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..55768e527fb810666bdf4496b458f4374b995de6 GIT binary patch literal 10166 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 literal 0 HcmV?d00001 diff --git a/tests/migration/__pycache__/test_finalization_parity_extended.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_finalization_parity_extended.cpython-313-pytest-9.0.2.pyc index 177edf965902820a6d3b4e77a5e9e498e8f4a751..475b2827cfeebe720b3fe04b73578bf0b3207477 100644 GIT binary patch delta 92 zcmdnJh3V=RChpI?yj%=Gpg*f;BX>EILy3NFUWtB6Vo9QYVtQ&`NqlmCUP)qce139f Xd`W6xYP<<t>CQkj6M delta 66 zcmcb*g=zN|ChpI?yj%=G(D|)xBX>EIT9kfnUWtB6Vo9QYT4qIjNl{{6abj{wW`16L VPJVuYesX?ZNn-KlLrjyW0{|3484Lgb diff --git a/tests/migration/__pycache__/test_framework_llm_composition_directive.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_framework_llm_composition_directive.cpython-313-pytest-9.0.2.pyc index 055db2f81d5d0ef566ffab23ea1f59d4349a5500..e59043aac3d90dd5b5e42bc7b8205135db40856e 100644 GIT binary patch delta 90 zcmZqFo2|$FnU|M~0SNSG^=#x`#p+P4pPN^rpORRTsGpdgnpYB^oS#>cSR9|9oEcw| Unp=>QSdtoVf?IC$ZB{iw0B=Yjt^fc4 delta 64 zcmbQO*Qm$+nU|M~0SG$3wQb~H#j2L5pPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4Gty!k7unjiqXl@|yA diff --git a/tests/migration/__pycache__/test_framework_native_structure.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_framework_native_structure.cpython-313-pytest-9.0.2.pyc index b51ccd6051181732e312798d41c23e3e880a3c21..9f4d48066a2f121aaf00425c32b0e7406529edbb 100644 GIT binary patch delta 92 zcmZ2Dg>m;3M()qNyj%=Gpg*f;BX>BfLy>-NUWtB6Vo9QYVtQ&`NqlmCUP)qce139f Wd`W6xYP<<D{GhG0-93is+ delta 66 zcmdlzg>m5&M()qNyj%=G(DAKpBX>BfT7-UXUWtB6Vo9QYT4qIjNl{{6abj{wW`16L UPJVuYesX?ZNn-KlMXWPj0Ps8*3;+NC diff --git a/tests/migration/__pycache__/test_framework_rag_directive.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_framework_rag_directive.cpython-313-pytest-9.0.2.pyc index c927575017adb3e9d64261f22037144fe35921bc..6f1cf4e336bd6b657873a1c42999eecc868252cf 100644 GIT binary patch delta 90 zcmezAIoXT*GcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IC0G1D<60Ce^sqyPW_ delta 64 zcmbR2_0yC4GcPX}0}yn6Yum`p#H1FgpPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4GtyxEuOm=XZNcSR9|9oEcw| Unp=>QSdtoVf?IC05bHNa0B8Lmn*aa+ delta 64 zcmZ3)*TKjAnU|M~0SG$3wQb~n$f6dkpPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4Gtyjh3!8zTUV|0JIKGcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IC$JSH7o0IjScH~;_u delta 64 zcmaD7e=45)GcPX}0}yn4Yum`3%cK^npPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4Gtym<$cjxGS`wil5A diff --git a/tests/migration/__pycache__/test_guardrail_context_dict_history.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_guardrail_context_dict_history.cpython-313-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8ee818aa491da7487af82aa0a7c4975fe050825b GIT binary patch literal 2018 zcmeHI&2Jk;6rWkIzn!G?gO3KPO&}sG(Y4z+4X7A_M1-2Ct;k}5WL2Zddg3l!?^-kC zHt{J3j$FBL;=+MjkNq?3wy4ouK;pzLlKBIenf-_@wcL7Rw4V2VZ{BB2$< z$Wj0K$L}u~0Q{vuIwaO(+K}WY-~t!!0tz)Xc5=+Hz>Z1tmRd1(3p+(xlzi?oprszP z&A*lL9UF>^2NCUKj=U)33A%=xb4|x^^KL=Wy3v3k z=)lyd4K@=#gl;ifZNr;#DcV?16uQ3x&`IM5duD2PMpuDbYUi5JEq}MtG&U2B8JohH zZpy8Kwvq1ZRyw6rzNd4TqL{9N%|xIg>n_j5Q=8XSNcx7U@AMS-%{i-=N0eFJg>J>I zI>uG07n*L(U1*yPs8PPNlkFf1XvQUU!~*z+So| zF3Q*PkWhxXABE_?&v-V(CSse1w@?GnjTeq#-L*{#yHT)lxvkusUn4&qm_<|=brWIc`*IqW%C=BFc#21EM6NCNIKn04p4~u zL@a)x1C#09rZl4B0!sQ6IUEEy)QPtXNeT}+t*UUUYLoaxjahI#2C;|cEV#kcyS4NX z59|Gq*SnbGI_{A$?unS8$ny~=eYr0usQK!(x=IDB_x&E#@o9{DLrl9A`$5)XyS~TM zqHzXC;-*gF%la^4!$CwjPPGx~BW>M{v^UJ?doq62ADQat$KcP>m6J=>`0CE2wtI4E zdA$DRq_%yU&#hEWbNQvh@mK%Uz{1KeZ#}Eo$J-~>=GbgK$xo`S7iRK3HCy9qGltJ+ z_)I|xpX4(%nM0ZQnb|t2I%9L|@!F)i^}nU>csH*44)}T;p4RoP3BN0mP%83 zSYVe$DJ>~_UJArJD6U5*E&^FS4keGM&t)xUB2i3aRP|kPBfjecD$DLsL?1ZWg)v7K zslP8TlXRT{l|{{&lis3!06P1>0eVF`qVFnirBC}&cNmb*=$eG;Z;+|TPIC~#KLGdv O{0_dI7RvBrZSyY^*v;|) literal 0 HcmV?d00001 diff --git a/tests/migration/__pycache__/test_guardrail_original_defaults_parity.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_guardrail_original_defaults_parity.cpython-313-pytest-9.0.2.pyc index ea89901e5bab839c8876c088f88404db40c56875..ff78f953b58ffbe0c025b02b0e0e6bc2451cc293 100644 GIT binary patch delta 2193 zcmZ`(U2NM_6t*2FcIy1J>EF7QHD!xb16zLD(3Z7`(q>hlrE6T%1%!gzq$QBrk?jJ@ zOT+`x9(Z7~fR2|%;z!zqP|*acgpdl)LrS`$G7H2j;&FYUJaKO9xON#=_R0Cqch32) z@6ElR4eTWXhkkz>1|$0E2X79MHv(T0pVQxb_t3Qz#YCD5N<8nngkzX=Q%Vn^JQzY3 zhH>rE9h3Q9deLGiU^=9GCiA;U@??vfCGy?cU--F>5bqtqxz4NH2$3XFKW&>hhr6|} zUAIzQ7l{iV3==7?o9p4J7>;$7N@WKTjQCvlO6 z*A1^1-ZprdNxb~?I;Id|ctw28=CO}!yX37Z+6>(_J%2@~meTXNg#}J$kTbP#Ih9$O zGC(Hv@|8?#TBoE#58T9LO1h9pb$kztV(EQ*Ncx^m7~qf zaicO3H!2hHvoc!WN>EUgf~+#o(cbsc|KZbzSVTATNbR(0mN^0l1NFK!1Tb}+8{Y-w=^dfI`;j50%c%%BVqA9kQ* z6IIPQCSrCnk#HbKVIrxZ%?Lkg=#}V(s7CXGDny0#f~e+JB~cZWoU~fZsfCSlNl**9 z5gP|9=^(Wo&wI=Z&>zk;rtpL|L*1*6)ye6d*#=xBv1`fzY=oewmbSCtL(HVBNEte{vQH#JCzxo)oF0_z_MOOpn8h2d?C?bL ze<8a^W{)0vG2aw^r2C#%dSPq6?OUYDA46Vb&-X3*$)9lVqF=i~_YxlW-8*!gz;W%j zwm9YE-EjB$?|$WFaVj9qplkmGF@$Rqz91gd=6o}gI&(QQ#ibVJ7G~2^@>!5-T@G*v z?S~ca3O$If9$UWlkuP0+3TosF$XrAwicAcdI5G)jhQYA3?kPz^zL3}5vQR83@+hKS zLS_t^ab%uB<`Ni%2Gjb_%V_}moLW%S+?p(G6yA~Kw{p#Hvi6!k6f4UGxFFsZ5UUj6 z^sg6%oLbz-gL+-5TIv7{D7MUH9@0>fQsLv*SvsBe^tE3ylaJfww#!-MFYHy7bHb_gzJ gEGs>+A>}tqg=b|!Q-gy65B>^%7;@uJ$ge}rzuSs+00000 delta 748 zcmY+CJ#5oJ6vyq@`NDCUA`%jcMBEQ5Qy|bHK})HWrcP8;lqyAxgloQV<=WBNk;+t9 zP*=F66ATC>MpOY^7+?m`M3o}l!pPo8NZEMTL~e7s`}w{9`=9N5c5C|GrEo`<&u}ny z{=M9|FT4tW@c6_}Uyg)$jk7&TSSDXR6{$nyaq#UOFYKT~=D{iz^7%FDPv^5*;bEHk z3)-XAf|j9Dwvb-a@+0f>|R zL7${HO(#`G4oX$^t)hdGX`_;(TV~O)ta_?snGUkal>9`vyEWr^HGsHZbF=0^=E`8|9{IUYn(xxkqJ177`8koB6~CViGL9#5 z3*rwxI0Bav)ZD?^E5Pc!5%v}%H$8jOFyhI4bchd;mFSWeUw|U{6s@zO`gXlV^xgoie*?e z9pSqmhnabnv}1p^m0hhVDQ&SoTcWaaua_O3gl-wMU1)XR+#JYU8BE=dmy-$}oBciC zlDVKym1$tTp&O2F+Q-MGiDLbkQz5V8>bWGisK1V!r-r_cSqJe&@;g4Gun&Ix!XLQ~ hgk0}Tf%#3V+%PH&c!`W9l(3i2@|}ptkKzn?{sXsp&HVrX diff --git a/tests/migration/__pycache__/test_invoice_context_framework_native.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_invoice_context_framework_native.cpython-313-pytest-9.0.2.pyc index 12d4801bc0c541d38c2225d42099b6aac97ea45f..77ce2c25075b38bcc3b573047c4d5d921664a3fe 100644 GIT binary patch delta 9087 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 diff --git a/tests/migration/__pycache__/test_mcp_contestation_subject_guard.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_mcp_contestation_subject_guard.cpython-313-pytest-9.0.2.pyc index 9080b1df2779d24dff69b39a62dd5d5fef81498d..898648f7d4b7da4c9797c29041502c003e8e7387 100644 GIT binary patch delta 3245 zcmcH*OKcn0ahF`KxP1IcGAUZBM2d1;uN6^JEm>9~HA0an{=|yQ=MCJ@?RG`3?RCjr z;_X_gRXEh42LsI^>7qc9Lt-Fl;9Fbd)bx^TP&DC2w&@Z{Pd&7kBDGIV3%K)kxg_Pv z=&29XXlCAg-kX^>v+t~bQjb53#Uc!>*|*=gdOrSEJj1^7);H&-1soh@uCheH+$cjL zI0O)39$*v?0F2=YqF)*>Q%*3 z<%K8jeW(SS6ZQ|{>A=53AFhnP%d*Hmms%Q#N`VCy$Lt>tDzSJWFvBy99>xirv_Boh zh{1y)IJ?ec_J2wj3wTK9ODTF;x+Hdy^)TZDDe^4fM*fJ$U|wV^F?(%jN*H$CAGmPU zelxWYz$yFO_>BF#fvsQ)^MHTX{&h&OlVhdHh;Iz13!HmO0gvE}B+Rich3sZ%nngd4 zjEMXyTR(c45f5&VIQS!z0NTT4MK7yWg~(eFHD&8s)imsIHY-R}k7M`jvi1F$w) zt6!Hd8KkCI%VrcfxxPj6ROFPUnou0>W#u|iFIBb6S1eimu~N2Vs1jY)plGgHvT;c^ z%SK(56}=+s>Xu4mqHY@3fU*o4B=RG$cLx5<57<$L*zaD2OZye{)P(K}!83u=L7mMpB>}GJ zF3jQ3GK+b);sX+shZ4>+G+}h%fn~OcJiH%bZkCk-ivf?P2c=+92uzZ##&_-2*#9jeTz@o{|X7w|6=}(7dVUxLHlDNl^XN?_KAJN z)qNynzQ@5+Q{l!FzEtnOE|loQbC)FeuU8M@xbZ6~;>O|k{(+$#K=Jl@@FRgB5{V11 z_C+GOPb6ZA>>lkjjZmPJv;RCW-WQ|{WgjZ#I)`HXGeKmM|Cb2A8J^fLx{*C+f;24k zn%iI@T*?wA0*Tr6;C=jX}$62&=3ff?RyGe=aafYr04q#AD0bG5%gW^ww+?hiE`V>M{(0%m$%PQ)JtTQ~H*nmDQqZ8dYd_z)E4Q zrol|mtn1J>YiAX!d_^U_sX=I6gWLc#Tz6;ArMKto?d({Cc!nyG8@W}l`7c5nAAsgs zHfpLEB-0>GmMJIz*zRxmOQK1h0p{OeEP{vaBApqa?u`>bI^$%nGfrTvcw2yUwi+;u z3jLitaswuge-wA3R8?IJdB^BYAbJ*}(E}y=CeS>1YI88*=HN8P>1p01?o*z2o$Q9q2INZ)F^?IRV)D%rGcwa9C%}WVP9xo@P2J-EReFPyr zvY!Q=8l8eB$Fv7Jn(eTk4OZzOUc=rnK4a7m$E1_1~d_}bstxD?D z#X9Ask=K+UOUW}+;_g@p8rd1 zs5!Re#7;Dq&p5G{cGmwCA9oHvyL))miGRBlUw7i`_l2jL;lsE2hrvLC-+A#Xo{0{( z(3pe9n%v|si3=Pw+2T6C&$-Da8talCa+jNI++6B19d6R6V5cj-OAU5~x(KlEC(^CN zl#`fha^f4unu)1hbO_MftP30@wz$r3mlK=lP?z+OyP(xL)@3@>NSE@Edz^UlwJr}N zd7YXgyB1`CpftYBAH?L_`3+jSA2mSb5 tzQNPaH}bmuhx~X1S~f!)jX7&S$mdfJG9h;9L6T>memE3izt6g+{sUvz6UP7m delta 151 zcmX?EFwc$eGcPX}0}yn6Ys>24n#d=?=rvK@K%PCAS&AWxv4}I6MT((_E0`5XatE^k zNuG2@O^%ICXPMMu^mFq{^ivW`67|zEE8xjIl{bm@_Tbht}Gyz5r~UbCJR|8aebCxWi&5R0SW*BZ5JrM diff --git a/tests/migration/__pycache__/test_no_legacy_dependency.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_no_legacy_dependency.cpython-313-pytest-9.0.2.pyc index 9deb3860672a445696bf2d5a70f8e31424b6fd0a..26419eb783322f29569d127a2f0148ad70405f95 100644 GIT binary patch delta 90 zcmeyyH-Vq~GcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IC0KdU+u08vpNqyPW_ delta 64 zcmbQh|Ba9PGcPX}0}yn6Yum^z$Ep^jpPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4Gtyg8Fqoe2P_02TfK diff --git a/tests/migration/__pycache__/test_observability_code_mapping.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_observability_code_mapping.cpython-313-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aecf86c09ff6b736821f85b41a7c102aaf109dd7 GIT binary patch literal 23739 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 F{{gJ99Mb>* literal 0 HcmV?d00001 diff --git a/tests/migration/__pycache__/test_observability_default_overlay_compatibility.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_observability_default_overlay_compatibility.cpython-313-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..19c1c0b853a173022d03b23ca2e79c60a6e42a21 GIT binary patch literal 20490 zcmeHPTWlLwdY&PN*U{a!;@F8p%ZY8SW6F{x%hFnj6snvo1+4b?qB}wgH)>^{Dva-Az8rV{{--V6KmpWfr;kv7S_Vy z;6&?q8*AfmXrg_*gLME7?-AGzC4z9L5`8b!=Tqc8!Uq!DWyP9!tW#+Q#tXZJEn)s?VSSa zYdTQU*K+w>X+g~tvzj`ao9VmIyyP>*2U4YM%Oo^T^hN3p&sYV)Y;JubY7{YQ-ec9?g??fA!T!!k`bJr z%c8p&&B3_O2;RJ%W;41G&T7}w^ZAml(@@7^#*eyZ3#D$Lrn}QKTA_p^sXQ2UO#ed{qXCLB7wHxoeK|}gh2C8rhYK>$+^#^y$|F) z75U)Zs|d={!N({k)Xar25@?hkAKXzp7p9%Dwac~E{jDHO2klZxszKd>SI(ab^ofdewXe_DZ#_#1O!LnPAt$LD z>W(hwRr@}2vU_Wu(o%9>!GW8BTd^HiE>bq9JYWYekq6c%^T)M%XgX^t=nr#eJ}I1 z@Y!Bd8qbZk?YU7qmRO~qKYpX}+-TpP8{2au*?4YrY|oADx$%^_v17yB*tyMbJa@ck zWBEpO!`#^ZhkefYjTs@nYjW|x%zT<<8Dy}DA{Wl8x+9%U=%q9(Y1zfl`Q*jKv12{= z#3#Pt;d|oZ*lUO97EZ+V=$~0YY&b?xubl+IN;($T6A;}-KRQeZeQ`Y={U|nUq7TM( zBWTKX?*$D1+`=&mdMW6m-~JDq`@Wrgq|Lhk>(b9dKNp~sxwW8xHEArU(DQm zV%4^9@iiA=W7|kPnb$n68#F@6(RVH-N6#1mrj^(N+Ii{QwKL7d*y{Bndunt2XWqVK z_?0tLhX4HJS;J34;qZ-gAxmP@coQQbA{UPuesqixJw3NTvR5_DjCM7X&gWI8%`q-p zWt!21Z1viFE)TIPx)RM#=XGPZs^2Ki=d&DDoyixkrSob5a(NQLrmt&6!Dt!boeE*@ zC}Txt?4WATrc0{!A;iH2F6K3&Zj0h!wg+`HWO}4IAU)p5ac`vG8#(EX448E`pVf1$ zCf2J{>toizNS8WH(h?2+g#aoQ^SM z!yxhkF1-X1KP1h~M}M9B)y-=2(4BMZa{DiaemYc^#>$=FNBHp&?p65|!21y%ROGQW z$vRhnCZBSmCa{W9C!Dm38>5UNGo#AsyRc0J>GvZ}SufyJ>{PikQI<|o#S&Gy8{lVy zJg5*6>s*memE~?HY67b$g^F1y6*op1s2F8bQLr=N!Zs14e>Uip^#V@CCd!?|Wod#c zHe8k80C+#ngNi({CRyi-G*On{aH1x#ic+YUg;H^2l!1y-Mim7+hh5kvg7o`wr>qx1 z#n$APD)LKZsrT-?2+HzHci*kbhX5`Q@Sr01u1VIpLI{VPs0pk}y;L&`rQ*hr0di(e zmFPR5Lj=jo15Q~l;Hg>SZmKLLsAj3Ed;s9mZ5~u)41#s85W)c`Y67cLf@)@=RNNRc zc+DuMDuKR<1kfP@c^t>Y4~=GzJDNR9i-<2RR^*;F$vRgE0i)@r0A7`P zXf&;~iW@@)A5F@sN}z8d0d$A}URrd@dI9IvJo-tlEFJxL=#yMkjsaR4<3U9}x+YoY zigdIr$DF7MtfCOAWua8u7-itaq>QQr>JI48K=Km4lI{Z>7>{PV=rbNJ&CaP%2j0jy zI$9*t=br2ATAE2`mxAj2DD=5pW9!8O8XeH+`W0!=2Ys!h)AML<1Jk4r=7%dgQi6ky z#-ZR#`5I~I3VtP2JOhc7qhl%rlyFf?1-ZWOwyjg+`o2vxcSCX;xZNVN2f^nWkl(AD*Y~w$t1@dMjenvhS9@4|=|Wgew4j->s+4 zjn?hC;r1p$=+W)DfquYuqiw_7Xy5*B*l(HVy=?r2`NRHhbZpO!?e9jCewynJd^dJ% zm>WC4(|2RnHosBV$%tZ|`v1spbZ(d%FMOxDvCWG%UVWb7xdGYi?#U;6YOP>NPzsS( zVj(@7U;H`5g=AGb6zl5kidtFvP&5{Eg`U~G_Mw_9P+}~WPhZpWLorj5+sBjA`CMAp z^r6`F*^8rB)v?Lqk%C6OFJ|fVD2FdHJ4?k!>Tx zubr^izM)p^0A&&n&t9Z}zLN~5jsn|HK^FoeWYx>?<0-Zjy1#+om&4@+K=D@2Cubs}(-f&>NK6da?VhXS&fX2&V$ zqkw+g?nT)fxEUeK^3`n03CbRz;3Nfu6bw;7|9I>a0-b(=EMX^Zro6M)l=gBXUE7kD z?ktzpV6R)qFF?kb$)}l?Rbj}>a+=O2K!@6{KfrJC9bvttv;1OzrKSJQ`E^NNlR7I> z=R=G{I zVM<2_%AJty4UnuaUX{NGa2XN?1Qi(~FY8>92FmjHoTv$`q7+057D~m9Q3gZ`lu<>& zP6+jE*d~JXWr!NAvR>fXlyo??ihrV&r8wj-T9w3+@udh4Dl!^rohwqD3wqoXWUZnQ zI?GC{xG~B=XHiB~0(A#;Xdrnh;uQ4)|89%8pFv6Tvn#MQ=Y4;<6PD)vH17{`Npk-( zbOi`1a{roSohwp57XrH}$XZ1y45gJ;abuK$p`?r|3U(fJVG>7M>B|<1nc#$YHkYL} zmZ1HOv@JoyCs5dypiwVy-uGFSptWstw9l861RQPqBs-0nxj507TV>j z5JZgKmbt(&AUEXZ5)HVyOuE2*q==()^wnm2+1nsQ?4thXP=7S$>cSUhfPaB}-b#hIUa!k;RkpZ=9*?Gc=yCb#jN9Xzw#`|AH^p>3(xB}!d!b(2 zwRP{dr)j%_&~hC@PqbP+(e~W;M7z}!9nW`9U~S$pX~^f2Bg*L1#i{dSBXRLbFsH`~ z#Zp{c>?9*NnDNET6mEuh99DQT(`L17j$4Ywee5N?Uu3U$e6hu2uh$PmB=#FpX<<$? zLQLb57rr`!b_dahNuO;INcMp~D$v9BfnE(M*c-A}=pjwB=?~R(i5!o8p_=8H4Abi#UkTz1!cqt(+6GJ@OcvLBC{oW&ne1w3YPy^Lf( zW{PR&*5{3!@ZuihA|h|LWjbdT9B9Z@oaS7`Mx(b(8e$?yiSpV^I>XWTN*M+&}!t@_x`;-oJq!{ipbz}&LqW;-5Uam#DX({ zco0UQXSG63%U-C+O6TXX4cMz%GR@sJT#`Kzz0MpRX2i`n_S2DnL8|8zc`C-Yat zT2=LWj_IX*uAmi)s>*B4WpID{ z|58|&ciuVsKav=j5>3nulIe1e2p~Qfd(c(&gYiuaq-);f8aLT&W;eDefXS3^(9aE~ z=oxi~;y)(XyM2sd|B)LQhg;&O{>ea-z>T3CBOJG2!9VRVk4eXD$<5#BLULZrq93N) zY@B36lO;vs8zBU0oK}O=j%ucn6H9}Q5ZtFUHuZ5#oNVTfv#f5Z2I^R^ITcvepr<8` zu^rR@hR(myFdFK~$0H`%(NjNjjgpqxe_JSL>1xEku>3;y>bP zvi+1o6WpsGq?$Qn|KE0>W&fq7&z?3fTfo@2T>V!MW53ya3ER*0^hd)HaZS%Q#f)y5 zrqk+8X*O+{X0wf{v?hXl4zwz5N_(o+`VDKF-ufJ9vuW9PYYv2AY8Sy3#UO(bVL?BSf=J+-^B=P}M z$-Psa;)-GlT3i>D22L#CK@-W*%gJ}6AJI-a=I%v|{{Q0==W-c!1?NvWKU%}2o;3O0 zlZ@6^quKJG(2MgdqZzw4HUOGZ)c6Lm!SIGL{b>ML&NJYi%_IO;5;$)&34oOZ{y8zL zmD04oPxPY%Tp}#@lYtsU#}mtsrKcuV>y&c5#zm!HZwGC#GPQ@P zyS>2qa`IKNIB=TB>P=0X)4_nl8$~7W6}6z<_IRvd@~YrOOz##;GRl6Ahg`v>{|wwA zaX`QI_^mu>-~XUBR&DJnw;WjC{qp+D2Ofo_j^LefC~Z4qYr76tb{$^c``NYXuEDj| z!8;e$uE%sB$mPu z^H;?Pk!^fFca4EV!%IZ}$~xcG%Ltl;j91JV;{5d`oF800aScDXoC!Bx{|2lLK5+a+ zHV%G65k7&vuXns2x#o+O@NCrP`CgC@7B^Dh@@@X}$v+>4G@E8O@k6066f(IYpY?V8 zwh=yMa`JDmUxEt#E9p9dhkj8M|4k5nEUXH*cZa^7s5MV1;gT@ zuR5b*;^Cfl@x=X|UkkWBJlrI9|HI|41>C;c7Zl$X|F=UDr^H7Bg%4WDc$?&CHuO^WMC9@6E2q;}HU-_tT%e^Vc9D|H6h>0u^L^Tp;8QQHd&CAXMPBZ`g19 zWHKyLNp?p9Gyo&M3&G(K4e>tzh465MMr1M`>LTOO0pNlqwcV}j;XtL4>a6c|aaEK6 zp^5Q?DjkRtq6Rn&au`BLo5q`Ag(h!>@j$BUX+E#Q`a1M)KAPJ5^bD13@nTC3sZqJ*UjAc5;oKw(EeafJZaCsP+GE7ICqGselq>TeVYq(V3yfS;I7_?&K`mqRafU3j_j?Pb)0@>Dz1Nix^`hG-x#k#! zVqSL)t^e6$y^di!c5fj!n*nNwP^q9bj>nlZCFolh3$S;RIR&6;tF zGY;GNw0Ozda1-pX_^TZs%b2u zX$31glSe$JY46VH`N~L>rcLIk?c{T&VOp9-+khWM7eIFcV6B>FJ77Q=O?Moco0x%f z1S+mA6qBoo#t}n+MrNa=9}y<*W#WquMaA6|j&87Q&lJ~_Fw$t*o?VXz(6T+(M1x@A zA#UM&w97``0431*w{y-k7{=%|bHt(rJ)c`}4Za2VF1%W~2(mM6$SAXH%;^~?KQHUH zOpT0@n>DiXB((~h0&b}6nO}0l5uyX+x8*3`?pXDBRYCQs{-n?Id})%ej`b2~d4j?X zQ^b*PgJ)A0lLrs>FI12L#rN%&sTrMSsh-Oxvw34q%b5%DT9;$ZDSnDtWzh_{34T!w z$|RJ>Rs^~YhHP9^cC8i;K4<0}IP9M1swwHw;=$Y902axE9ew3JJ>{J*J(2wVk#*vK zA$n6>4Rt&Yk+zPT;!h(_TR7ggC`h_K0Z2EI;Y8CU1$bjgp%NQPT2KYluctzpjA4@( z@9YP~S#n2`L5YL@NkQ?AFcHNE#k>r3EP$@l%yJ`Cd|V?;LX)*O+~+26+!cqY*+t!C zhn}yXhADV0>=yw%0!{rR6#F=GE3y{aUJ7kr+Iu(f%LA*S{SOlIN}_8u)b$O&nI9hL zg$>gln8PVLaKU1Rc?@bsD4#U`g#Rbg1^9!|2$+S(=dBhxZ@v@Vqh3x7G73Un@CKb8tfIU zzO?_?IYO+{`zvGF&j=X{d4wsRDS0iohG-v3i~WKczS7_8%h`K+cQsZZ#rC=y1ilWXejlwMg`bYO_I&2t6t=}lzwkFYBcFT z02(zVHKxYX(m{c@0%I7!c&X!sm%O3C9s?dPuQnjVJT92N<3jP&6bX@$hy2ndFg*%8 zp5tZW3?wj2m{TBUpjO^sL7pv{4pm?g=&iqQcw1Q_V-<=Pgc^s3CW@-OFMR7eeq0e2 z4(#1uobOZY$PX)sd|XECpkgPvtBbrRA9uS36q_EwHT=vE1PJ;N3@jvc8#d+eiGzxb zor6k@Uloeh!-9IwoVBhRuHT5fR-DJwMAIqTqGj}aUZX~l;x=_^uow($6EnHIlQV4= z$Xh^RvkuLMh?CE9Qf(@4P3U^59}N9r3#ZM@O4TijsK$Hns&z}R7H)!5=D2onad zG9ZtuL{y57yBmJ?p8=qsd(eDnrTOsU`3FtA?rkqM9bPkld2EHbu6aWlBgv44uK6&fpvZyT0FI~mzYALF$iIxA)Mdjwn zYRg5wfWDz>U#Zr@feP^oGOE&4kyTN75`}fYvGFc{_{!;o@LS<@O#I!cU4U*#gYinD zds}}CAVw`!zz2=#OZ!wG$NXu33ZrX7L02~yGy~~CY7>WM2Gy8#0~}1q+qW53ZH^} zItos{>B^^dPQG~zb5M8ICePMQoP2GS7rdFZy51Ffd*e>NHVY$dL#dwyPQJNLlFg}u zo;IFKS=HNfDZ~Fa&xl8b7*O5;)>xn33>Ow<;zm4F%+md%V255;%eo zJVNjbLjd^<(%zO4NXGEZ%mNT0CUaAlA&>;o!= z%gd6F$(3X}vLMYklLw9h+mK;Gk__)i7N9dGWP403!h?RHJK5{5-TUn2c--Pai5>@O zAts&20CdEQNq|&h(lf#o>^Ab=ew@><*h(#44M8LdpeXS2m*`30O@&37U!Yf%A~^8Y>u+XHJXEWHhz#`Qf3;vg78|zJQqGR%tN%Z9ZJ8C?D=yc zj1L;4Ff32+kuIMsNXul3*dHP}ERwELyP4tHwOwnQ1sPYQ1A* z9GV6)7OWf&3mbXcxHb)ekNyCeTtYC4Bz5s@puTamzA@;=SvQ^?I=G?LXQLacM6?Zo zZGZ>1$`<%uA%2?>lWi+MYrxkT5FLX1v}I~JNIIyaQOk1ZyTA^goOVC>^hHumv@Nxl z67u5Na=hjCTq(YL@l08a+_?C`#if?TizRVaInlD*ez=r43?yQ7O>8TPZOiT7{oC8i zh^EWU9ZN?`&E1RV%VPY-=m(>#VryA!S`%AKV(abPswneTdr55nm4E52-(>FX`*nVK z?}LVTeI3G(!~z{=N{|JS;yV`_3bQbe^Ph_hMOl>d(m8pkfi-YGaISHv zi8XOPcrG^7%$mW6whOF934^w76?O|sWV@h5dwr%3Y!i=@5!c|vwf!)ddf8UieWqS@ zd7D!jw+p>ifNgn(d`+HwTc06c%#&~1q!@4hf@&X*i$+5#oz0!nGFd%a$Rpf5GE7t<`A%V{~1J$+Nl%oKTil)?jG5nXTbw;vn9wey zr%_7AZZ$o_`1$c$z6Ga#0lKyp8A?R!PQMeI3F+E$<^rD((MvI!kE>LCKG|LpG zrqfI_8j!4x&t!AOY#!?53Xsr^t*U;lFq50$qUvO>FrLn-`Sg@#L{vR}RihG&rU9-P z_Kv3+D==e|dbPl&(nVFfIh{-A)3mF+A7(L9MW$-Zh9td#gWf=|H*mxoIBe=^mY?jZ z3U%wW&Fio(kY-j~*$q(wG^2zHGPXlSo3{(0_(WA{PC=-B8Iw_{Z~6TrCTbna&u3bG zN>B-PntXU&R-kXi8~f{8fe~&6Mysqq`8#L@%4_b?zAHQZ2FD6)RGPj8D{$pbe`9WJ z%nhteumWQn>jtgS?)4o)2)^xgViuvC34;p-ra-}c;SUa@WnG&jya zE9Tt7cN?u6yA5{*vN^0o-{F}7d|=bC5nvijHzSlf{ez3C(Gi z(Iz8&4TfCdy2cFuz@@WB;Oyvyf#GW4fN9sKnUqjGme=!1-GSPTkD0~3}Fbct~1(nQ3otj)L0%!1X%1IIIsvY^H+y;hy3a^uM<6e6;n2d;O&?N!ZW3qK~7(mKPpv-Ff#$Y0G}ZJRkj1 zj*wX$;bwIk%<3iixiXoC-FM#xffaZ6?TWk~?EGO)%5wLTWZerSu-^%q%%apy2AL&N zc0)+uMj@qCsC-ihtWya1dD!f34Gs@m(bnwH-76*O5NUR$BEJH5{st#y8P!_%0tvk0 z1Wjg9Iz*aTci9agfon!76$#~=LSUUjz|Y@s@_HGMX2(i9yGqhAlm(_DC&52>i<7c^ zY)P{21(HZQL6cdOj*)JbNZAb`f$K&o74SQ|Oex~+QouiW%gO9zJjx~Sj+Ue(b=zn~ z-UIgD94BQe#kv;1{J%(#(o0yCEcS%_yZJp?p&atWya1`5q^)mqFc( z9Ntx?zwP8*rhoIt!VkIEp7|7!`4u0N6hFM|0YzfL$v`{^nDLaB&uSCrwaIj5mR!tV z>_&z}pA<(|;;v#c9Y-|Von*Qu71L{5QJ z4V~Fn_Ncj3oIa zh)_4^G&QWwf3$7)y`j?9&XTm*I}RjTH4YI(ypP{?5 z9Oh*oOrf(FqkPtB%DBO&B z{}}K;^GY??ocmm9XT2#-U>=S+7DTGqmA1K6&u}MjQFrqW`x0Y~r7)`fRm%*@Ux2Etmhz@P7c3Jk*IvEtk zsh|jcQT$~58gN4Bzb0|y>`mYBAieM7n}@l5!;%m)ags9x1+a=@Pu^`kI~-d zzQpLb6r(kOZ6ZQz*pnuYNB0OEx^VLzVe|$z8ZBc=FU+uvW^7*B0Jt4t&0Ql)5=NNm zfd*r_n|tjjFjmw-I|_^y1t)T1N-L(xNgBPCnAD1vfqA&fKb=IEU^fTtl0*&?ffIdt z_Anzmi~FIw=c?S(=n5X)6K~}%Xhs_#b4zlTI6iFDGe&^-*m^BSBLs7BCRfyru&ub^ zhu-lP)4d$kozsp?rHb|td6CFos*Ss!P4DqxZ=lcXWbX0?y1juOZ{QH4J(B5ywmjO& zs!+9i`e2o_x>u(OVfm`vhq>t-;P!8UAKz5n7O68hrBLf@R&QjBaM2gd9pyE6lWF72 z=1}?}{Pd5pWv6ZFZyWcP_Vs;o_BWHI*M>_kj#L^i-ahkL%L|{yIx4Zl1; zBPW(5>#j(NJI9@n$t)u7h!a8_IW){?xxO!hjMSIT4_zcoJs0z-Cwq#_?9_5^HFqGcIIqjfKk2y9FWJ|upZ$ybPn z-9_=7hf!_u^CJ%HWF?UkR*`0^Ls9Bi0ipTm?{#{~yw^7r68}LQlB7=uBVaR#b1vGa zy^r7W|6)z3wTd?OfKESI%*Gy25bXU-`g^bkeTvv-JCu-+4$@Trj>oK8h=nXeCeMX^62k|r_^5|4S_Xk@pUR-pSv3)_XP_oW7-lg>u5 z0+BjzEjCRFKL)9TmGTG%{XW6GJ0nysT%9jSag~Co!f&U5e&A%R!^m<5^ zcLDlKmcV$hH9%ps;=5oQc!JjOdhkGNR)`X6g&#^(x<}X!5e~Pjs$5eF8NTv+R@~G5 zSaDAul|DUn9BkE!OZF^ZasLWy@3XDAmWA!(7Pe!7qde;(3wzA5yj{z@*KZ1}-|ALO zFO}%|GUC^;UY=@;uWD7h7HnOc$JUc@BK~EBTZ?1Q+AZWK)9YK+ZmznvyK9Sct9mVI z$Exy&6sU>wd*Ro)Ug}%BpY4t!1xbv!EJz|pc;Xc;PahMYLi6c2bbbbuzlZ>mkmq$c#gc zR@DEeX*PIMg*u^Gp06U3z^US)Rhz@!gUY-K2di5~Lq=al^xDu9ZN>~go5^$h$%xf- z^m=#cE@s8vrBR+Dk_WM|r?5Fs3XJ`PlJ*cO5~)R=4w)#D2}2!W`$>jFRJ6sfLW!zA zk?5-em%7>YTIrsuyoa8KFvYpmU<0H$Lt%aiY$8lLc_8gi8rX-ZhCE?dA!^S zKpEC9*wUo z$p`SsL`ece))bfra3Nm7(T4|}75NQf&)_%+(Xxzl8`fPRkvE*6$t+4&s1=q-*$p9q zw}Mi5PJCqH@Gz__{sE2?IMG(&Bz}e>SKbe$D_@0#mUE(wc#VW%e~kpBPluym!)T}@i$_8$=UamTF6mheJsS+Z6jVQT!r{22-D@C4r$Cp zALuh7e$vSV)d`0%q^UG}7e^lS*?cBj;1Do3^!Z=7#zSp{kC_J#UT42TUVy}cPRwJ! zD2o3g2tO6xZ~PD8$mhb~=fZ{0g?`Ylf?@Fu@vHWj*!8=;k~kuMDG>c#Q-JeCA2$oW z@L%ls$&Mwltt_^E>5GV$#bv+X+x(cbkGIyOhsACy8QkOcn$(E+j+vVZddEDn@PFl+ Ba>W1u literal 0 HcmV?d00001 diff --git a/tests/migration/__pycache__/test_original_compliance_anatel.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_original_compliance_anatel.cpython-313-pytest-9.0.2.pyc index 1458c6a3dcada064ed267abe3653e743d03ff850..f86137e57caf5f208cf6b5e4f117c94f0eb2a9d7 100644 GIT binary patch delta 92 zcmZ4A!FaNRk^3_*FBbz4=+Ele$Zf*oP^6!mSE8SiSdyrpn4X$f5}%x(SCUv9pP!r= WUy_u$Zf)-7NMV;SE8SiSdyrpmRS*BQk0lioS0manV%P* Ulb>IppPZjpl32XCp68S~0PH0f`~Uy| diff --git a/tests/migration/__pycache__/test_original_contestation_validation.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_original_contestation_validation.cpython-313-pytest-9.0.2.pyc index c5a527f7dedee2bca799c4c97a4b968bb5931578..191195d96aecdcc390a1606b3423b456e8e58183 100644 GIT binary patch delta 152 zcmaESj_K+-Cf?7yyj%=Gpg*f8>%c}{4km{R{oK3~{glL#ME%6{)Vz}TjzO}3q0G@w1l>h($ delta 166 zcmcb5j_L6^Cf?7yyj%=G(D|(`>%~T14kooY{oK3~{glL#ME$hPiujVE#Ju9fegZzni!e@ diff --git a/tests/migration/__pycache__/test_original_vas_cancellation_message.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_original_vas_cancellation_message.cpython-313-pytest-9.0.2.pyc index 5f03a92dac4ac36bb6839fe0e414b2fa45176864..8cd338e5e97905c827b287915070b1374bae90ab 100644 GIT binary patch delta 92 zcmcb!i}BkoM()qNyj%=Gpg*f;BliI|hf4k2yb}GC#F9k)#Prm>lKABOypqJ?`26I| X_>$Dzf}F&X)OZuza+^Q0WrqO(8-pV> delta 66 zcmeyii}B7bM()qNyj%=G(D|)xBliI|wRrv9yb}GC#F9k)w9Jb5lA^@C;>6^V%>2Cg Uoc#O({p9?-lEmW8-0az505Yo>j{pDw diff --git a/tests/migration/__pycache__/test_original_vas_variation.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_original_vas_variation.cpython-313-pytest-9.0.2.pyc index b4b35042128f0a3c2bf7628536a222e0e504cc4e..15d1cff3191943b3693fdc558ee3dc9ad92dd0ea 100644 GIT binary patch delta 100 zcmX?ci{sHP4(`vqyj%=Gpg*f;Bll}ghdlklKABOypqJ?`26I| e_>$Dzf}F&X)OZuza?LVa?J``9+hw?zbd&){CnJ{t delta 74 zcmaEKi{r#C4(`vqyj%=G(D|)xBll}gwGjQ>yb}GC#F9k)w9Jb5lA^@C;>6^V%>2Cg coc#O({p9?-lEmU>Gp=?sF2?O(^b diff --git a/tests/migration/__pycache__/test_original_vas_variation_adversarial.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_original_vas_variation_adversarial.cpython-313-pytest-9.0.2.pyc index 3696800e486471f7350d94d8777b97c53482cdcd..e7f452d71307b43ddd90b923228e40e038a2cc19 100644 GIT binary patch delta 92 zcmdmTiRs)WChpI?yj%=Gpg*f;BljFJhbsNtyb}GC#F9k)#Prm>lKABOypqJ?`26I| X_>$Dzf}F&X)OZuza+}YJrB4C?3mqdT delta 66 zcmX?iiD}CvChpI?yj%=G(D|)xBljFJwFLd#yb}GC#F9k)w9Jb5lA^@C;>6^V%>2Cg Voc#O({p9?-lEmW8&&ARw0RSsJ8G!%* diff --git a/tests/migration/__pycache__/test_original_workflow_cases.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_original_workflow_cases.cpython-313-pytest-9.0.2.pyc index ec3cf2d3cb0939d895764eb6df2f42eaebc2ead7..e6769f3d021d3998caecb21081ad4aba35a31a42 100644 GIT binary patch delta 92 zcmdlsiSfcDM()qNyj%=Gpg*f;BX=vaL%x1)UWtB6Vo9QYVtQ&`NqlmCUP)qce139f Wd`W6xYP<<{8(aa;qaqdn delta 66 zcmcaGiE-N`M()qNyj%=G(D|)xBX=vaTBv?*UWtB6Vo9QYT4qIjNl{{6abj{wW`16L UPJVuYesX?ZNn-Kl3(O6!00I9PZ~y=R diff --git a/tests/migration/__pycache__/test_output_supervisor_no_contract_hardcodes.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_output_supervisor_no_contract_hardcodes.cpython-313-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ac620fe51dec46ca5174898f3e0b23952017f6be GIT binary patch literal 10012 zcmeHNYit}xa_)KTbCz666lFdnYemV5SC1tnijruFQg|XMQKVM(j@FVv0h8hGkQ{3{ zL-!0Nk%z-6PLSA_3mgM6Yy=6yJ0v(8$&dSYzU0pxE(nr;yP}k3Cg&tTk{|jfnK>MM zK!8;BJoX{Vlmf)S0dCCp^lPfStE;NN>fVi(mNkq2-&h4+I{gfQ6S^MERJnP z3O2MT_yfZ?=Vdltgv1Br2ID2=WsV9mPeoaPUPH1-!*ii@*lEvcHeLS4@@36di>j?6 z(TA`^#7T~1-%wt?GBt7j4J9`+F;x&e!uX27?|0z0@d`xyND4Zd_B$qdlJgi1l|hg> znU@7w?C0drkhq_m6lS?}I6J-)r8tDtg61S`jV|bhT2fRtFDJyR(xM|4%%bK*)Kba3 ztreXx)l|zgoall#>@>^_dZMimr3FW{w9>32+S(o4i4;r&6Bdp?l}b6^?prYIKAdcy zI;R=7f(=wlF$=n4YYU4d)z*~bPp|8e>-yo?PY#x^>*brY ze9fvP?Q+!q!os<~-POZ=0#X!lqKaau3!0)haYb1$i%TU;CluwaCAH+$Bo$>=rW z{Wkm%nR1t`zV?y$XK}`X2BpCTWlHlgBwVG*lVL6gx#l2qM}VakUmGqcRdXZA%iJp$ z2{D9eoF)s<4yBhEB&scFMV(2%6QS<%IMMNusi|*_oS#Gmw3in(C$XU3K_LRAvMndJNKHs6 zdNCbx#SNE`wjuFWO9d|LD_Rj$@QzK9n`wc*gbi>yu40R9d1yNp?10FL%#_T+O|8fj z0Cd}3G*^tDvR=M+v4wsOh@f_@M-%VGzZ3r>_1)wj#@Dy+{P5uW2UofG``(Fw-mP!z z_^|8!u8$*sG5Pn`ejF?3uCDj&S>L(u<2QctR{8bcs=TC@J7yk7#J2b&BF5rhSYe?0 z_DI{vc8>0cWHue8UGS#e81-PZ3nR2u^Z-Vvc62vJsAR6{FeOW279-@8g%K**?z^Lo zc;FX&B;*PiYtf))fqDK{Sm9>#T$2@l59{O5I1lj#n(h$v(iCK&pZNRa1nk4}AZ@p} z4}@$eK@2X><#5JL!QiJ+8(7G(-QUl-Z}V7QK-o1%eaXDQ6+z~w6MnlKGN>uQPA=xf zG*5B_xlLu0aCct$e#Qf<`dcKtGwX%B}X&j5s(QZ zB*)}IwA*Aehng^r+ zz{PTsnxW3XcDJZfFz8yz;qH9G{fZwRPID_0FTK3Dd@OCnzv(4X!zoPlr>%^OH{#z) z4ZCG0{AQ5wnjME`xv{IcH{#!NqD2pzQIveZCjyYc=om)FF*>o*s#=ytZPv%Bw1tJI z(ybKr%iTTMZX0&HW`vv&>%fWs=HfDf3`M2RHU+mPg=&km0OnJrU{;}8nOV|Hwr*HX z7)+oFQ}0x)d2^{$WKEU1k~sr73U_-ardaB%h7_FE5jG}3En}3L)M-~{O}e1kigpKZ zkHIWDY`Fr!7>c^$NZ6MLvVN044WAPc8YE(MXKM@ z3}t3n@v$5LCtJbgWTU5OqtRYk{|FHp>;H^*-|rn<>pfZCd+Hxvs>ENtdw#v6^TQkO z-&ozZO4m9LR+9(sUR;;j-#hp2xw4q~(>JRxW-2dcAX$cll&Ol|vnFQVITz&I!~-Zh z6_izKIjm@Ie4kPG$w6c2i{+p(^c9c^67a$20%<$+g@p#|?ey3Y?ytD9gW_M0o`Yne z9=rrL`~b*Uvkmtxw*i*Bn;1OU?EnD)VK2yhp7-r`icANVJ5I3yTC zUdSP)YYKAcOZEV;$(z}D(EqTh<-^R*-}Ws~@oyR|(B@V?l8=Cuk6wSh&dSH0%St|r zl^1>M;*af_tbFhlSjAYKCEI*Y2>E?%*)p(say%n2iy4(AIgyWg_A~Yz_A}=9>c2hv z83Oxx3sws?swv1VC?G~$ZZ%i(ktt&StdUYCESTqsuR*)J zwv@|Yep|MzNpQEP-HGRr*@QnQ|Lw}`;x&ea`0URZ7V611xB=+g{yF@Z|Lblc2=x0o z&$Sb>uJ;vlT{v4am;(ZEN>u3_K#QBV@oga;fBP0^)tj1g#@oc1W8S!p*ZGFQmYzA| zf|Rov{Q3ZpWBVU-z1liII#f;`C`S)?=NO>~w{p=vnVF@4U%>CYnVDOH6BLH=GEbbe zWC|rfDEjQOa$C3OmEa?#R9YAZFY*NRM^8fJ2vFigO{&k~DHFYl6+;jKIz0L%=&+y~ zMI8=|v>HGhOj`^f0r@jXWtfp)TpnzIeJ5SmchYGO#t-lenFhSR3Ws>S4u=ja+p+JX zfHZZBp+$h2um*q^kJ7V1w}B)8QhE+M+u2M~gX5;6Mth;Mo~DOrfo21|K)5gfzYXlc zm5n@UCl|rFHn(kh)IiYe-69`^QsgptrxHn#IgW`P?{qew!zj72Yq^Q5V{oeJ`tH2L zXZjtEHV9Mf3>?4#^rUB;iQZqdnatpyr~sz z_Y5KyNDe&@1EZrDjbSv7(FKfvsf12obO|Fo`M@(3YpG;gbPjUqR!3Sejhou?qG}iB z9TC-lUc<(d7$HulQxMfd^5Zlcl(@M3L_ID)Ro}M1K69+T*&w|FR4jyO2;gg>5z0TK z6`(fI*@px_1E9;Gyp&p#dhd>Y4rhkH@$X`?D!xz=UnqCZl#BECMg8aT?$!OPJ3sCC zyYZi0ti&(Zfd0XcXVyB7R+C2=(636nE7I<=czCskMHT6ARrH>F;^DHiJIK0;2jXD_ z`CgMsEe91r>oueoGzt<>48BEG+EtNum3JSjNCRc@^bc(}l1^7e@3|+QE=vP$_I_P@ z4O<7Tf&>)TksYi^C(7bf`IRX*u1Hf=(R=PexpczK-mgoqvGzf;AOYq7+?xILdUg0R z=)hWQwk&49I{*r@CSme{l&y*lPX+6Pvbx*@F$Mszcal>K3-|aR#)08>HWHNsQ&Q;mT71C=8 zc;PU_ftM6Ad-L3B5Ib|gM+L>d1XLUKKiJHF!F!{;0H`){eQzDAt$h=mRryp1+%_yqoX9jq0;#;fb=q`LOz)^v4#LS3*nn?2%L8;Y2k9+!DAqT!~!B zO=bG~kEXd_h2e-drNciPR(ATXk6Xgrp8;@j5I?}Bz5*|Fga#UXAauT_aSk5I<9=dj zWjp#nKsxo!-rU&hujao3)DNF8Zs}(6-6}{)4m}U+LX7AUfg9cEz zdNs&Z8gfA~G-9{N>77p0zbIk?>~tya)l$awf8io1Rs>oz?Xc&u7v7t%iK$}6!s)8sPrcMJ;+)% z3cAUzjF_{@^r7ie-HD!Y{}XeTeh0oqsBWRcJ`y;N`!_;wx<^`^ALm+&|BTPL?G}XqrE1Xx& MlHC#RAX}pU1rLmNBLDyZ literal 0 HcmV?d00001 diff --git a/tests/migration/__pycache__/test_pro_rata_full_parity.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_pro_rata_full_parity.cpython-313-pytest-9.0.2.pyc index 97520a67deaf4ad3bdcba1baae2c46fccfdfad3f..2968512a65006a0ed0a19e565d1f28420b0c6f05 100644 GIT binary patch delta 92 zcmdlznepmmM()qNyj%=Gpg*f;BX=f~LymrKUWtB6Vo9QYVtQ&`NqlmCUP)qce139f Wd`W6xYP<<=F delta 66 zcmcaQnQ`}IM()qNyj%=G(D|)xBX=f~T9AHjUWtB6Vo9QYT4qIjNl{{6abj{wW`16L UPJVuYesX?ZNn-KlEli5;0R9gb;s5{u diff --git a/tests/migration/__pycache__/test_rag_resilience_and_informational_context.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_rag_resilience_and_informational_context.cpython-313-pytest-9.0.2.pyc index 590bfa029347a40005b34596fbaeb7f9aeace7a8..26fadea19647b587e8c28fa4674b90daf1f28508 100644 GIT binary patch delta 90 zcmbQOw^fh(GcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IC08QW6<08@Yt<8 delta 64 zcmdn0H(QVUGcPX}0}yn6Yum`p%BGg4pPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4Gtyg7jFsQ>_~s}{Ea diff --git a/tests/migration/__pycache__/test_real_legacy_integration_compat.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_real_legacy_integration_compat.cpython-313-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2dc0536a380cd6b31d0388c71e3cfaff97a2d530 GIT binary patch literal 14183 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 pnmpol@m0Gdo_KYecSR9|9oEcw| Unp=>QSdtoVf?IBLIAgmx0JLf$T>t<8 delta 64 zcmexSc(0KAGcPX}0}yn6Yum`J#;6vlpPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4Gtyt$CE-5db!*B7?{ diff --git a/tests/migration/__pycache__/test_tim_contract_parity.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_tim_contract_parity.cpython-313-pytest-9.0.2.pyc index 3abaf8d8219cec7ebcd39e4715856f563375838f..5f56a30bbf45840da8cb4434e9a29f09d115a637 100644 GIT binary patch delta 90 zcmbQ7xHggdGcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IC$cHTQm0F$X9w*UYD delta 64 zcmZ3RI60B~GcPX}0}yn4Yum`(#;X>npPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4Gty!j&U9VGzPHy98A diff --git a/tests/migration/__pycache__/test_tim_contracts_and_idempotency.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_tim_contracts_and_idempotency.cpython-313-pytest-9.0.2.pyc index ab2bdc3e49065db29842bbd74796b3db5388be5d..5b74d75f1cc5480388102db45cfc6ede38302d7a 100644 GIT binary patch delta 90 zcmcam{HmDyGcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IBL15pF delta 64 zcmaD=e4&{8GcPX}0}yn4Yum`}&!iTupPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4Gtym=N=fH?s0(ign| diff --git a/tests/migration/__pycache__/test_tim_event_metadata_parity.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_tim_event_metadata_parity.cpython-313-pytest-9.0.2.pyc index e6a7ab4297667693680a2b9356741135c11eefc9..423397de99797c30ab5d478382b1809cbc199c79 100644 GIT binary patch delta 92 zcmcaMf$75pChpI?yj%=Gpg*f;BR3C|L!o|dUWtB6Vo9QYVtQ&`NqlmCUP)qce139f Wd`W6xYP<<h($ delta 64 zcmZ2#&~3o|nU|M~0SG$3wQc0i6jF=S&&?~*Pf09E)KAN-h%YHh%qvbzF3HT#i_gi= SFVIiU&nrnR-n>PqkQD&7X%_DQ diff --git a/tests/migration/__pycache__/test_vaa_dispute_parity.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_vaa_dispute_parity.cpython-313-pytest-9.0.2.pyc index ea3aaa7f1240fb79854bd7c70070b4e3c8a8823d..568136d96eac958dd4d79eca1101ae40af55bff1 100644 GIT binary patch delta 90 zcmaEs-H^lmnU|M~0SNSG^=#yx!03>rpPN^rpORRTsGpdgnpYB^oS#>cSR9|9oEcw| Unp=>QSdtoVf?IC$K}J;*0H$>zNB{r; delta 64 zcmZq3d6v!nnU|M~0SG$3wQb~{z^E3WpPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4Gty!kexstEw%h!>&& diff --git a/tests/migration/__pycache__/test_vas_response_renderer.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_vas_response_renderer.cpython-313-pytest-9.0.2.pyc index e68216e49a2b59424744daac94669bfb5ee481e3..12615a66244a17b6dd423d05da7e8fc8e86172aa 100644 GIT binary patch delta 90 zcmX@6^gxOGGcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IC0JLi9P0BRf{!2kdN delta 64 zcmaE$bWDl+GcPX}0}yn4Yum^z#;F#ppPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4Gtyg8BcKRW=rt``~r diff --git a/tests/migration/__pycache__/test_workflow_execution_latch.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_workflow_execution_latch.cpython-313-pytest-9.0.2.pyc index d76478105d5586168a79a0d546cc77bd8b30c086..131286acf5590779f9ed874ef8376e34330f3986 100644 GIT binary patch delta 90 zcmbQJv08)sGcPX}0}$xX>ecSR9|9oEcw| Unp=>QSdtoVf?IBLDdQX=094K(S^xk5 delta 64 zcmZ3jF;Rp2GcPX}0}yn6Yum`}!l)LepPN^rpORRTsGpWu5noc2m{**bT#}ie7oU@# SU!b3ypI4Gtyt$uojt~H<^%k@M diff --git a/tests/migration/__pycache__/test_wrapper_last_contracts.cpython-313-pytest-9.0.2.pyc b/tests/migration/__pycache__/test_wrapper_last_contracts.cpython-313-pytest-9.0.2.pyc index 44de84c8fe2e8db2660eab5591769ef9cd45537b..87a1a37af64f1ab7a62e7b5998bec78bb96e4456 100644 GIT binary patch delta 92 zcmdnm!Faxdk^3_*FBbz4=+Ele$j#5>kf)!USE8SiSdyrpn4X$f5}%x(SCUv9pP!r= WUy_u$j#5B7NVbIppPZjpl32Vsis`E(0OiFO+W-In diff --git a/tests/migration/test_invoice_context_framework_native.py b/tests/migration/test_invoice_context_framework_native.py index a07d589..9c9019a 100644 --- a/tests/migration/test_invoice_context_framework_native.py +++ b/tests/migration/test_invoice_context_framework_native.py @@ -25,7 +25,16 @@ class Client: def bill_pdf(self, msisdn, invoice_id, customer_id, **kwargs): self.pdf_calls += 1 - return {"119": {"SVA Detalhe Total": [{"desc": "Tamboro"}]}} + return { + "status": "SUCCESS", + "parsed_content": { + "total_geral": 191.97, + "Fatura Resumo": [ + {"desc": "Período", "period": "01/04/2026 a 30/04/2026"}, + {"desc": "Emissão", "emissao": "01/04/2026"}, + ], + }, + } @pytest.mark.asyncio @@ -196,3 +205,73 @@ async def test_invoice_context_cache_hit_expoe_cache_age_sem_republicar_eventos( assert cached.metadata["cache_hit"] is True assert cached.metadata["cache_age_ms"] >= 0 assert cached.business_events == [] + + +def test_extract_invoice_summary_context_restaura_semantica_do_original(): + from app.domain.contas.invoice_context import extract_invoice_summary_context + + result = extract_invoice_summary_context({ + "parsed_content": { + "total_geral": 191.97, + "Fatura Resumo": [ + {"desc": "Período", "period": "01/04/2026 a 30/04/2026"}, + {"desc": "Emissão", "emissao": "01/04/2026"}, + ], + } + }) + assert result == { + "invoice_amount": "191.97", + "invoice_amount_open": "191.97", + "invoice_period": "01/04/2026 a 30/04/2026", + "invoice_emissao": "01/04/2026", + } + + +@pytest.mark.asyncio +async def test_invoice_context_detail_expoe_invoice_amount_semantico(): + client = Client() + svc = InvoiceContextService(client, InMemoryCache(), ttl_seconds=60) # type: ignore[arg-type] + ctx = await svc.get(session_id="s1", msisdn="119", include_detail=True) + assert ctx.invoice_amount == "191.97" + assert ctx.invoice_amount_open == "191.97" + assert ctx.invoice_period == "01/04/2026 a 30/04/2026" + assert ctx.invoice_emissao == "01/04/2026" + assert ctx.as_dict()["invoice_amount"] == "191.97" + + +def test_consultar_faturas_reusa_prefetch_e_publica_valor_sem_reconsultar_backend(): + from app.domain.contas.service import ContasDomainService + + class C(Client): + def consultar_faturas(self, msisdn): + raise AssertionError("nao deveria consultar novamente") + + svc = ContasDomainService(client=C()) # type: ignore[arg-type] + result = svc.consultar_faturas( + msisdn="119", + complete_invoices_payload={"paymentItems": [{"invoiceId": "I1"}]}, + invoice_id="I1", + customer_id="C1", + invoice_amount="191.97", + invoice_amount_open="191.97", + ) + assert result["invoice_amount"] == "191.97" + assert result["invoice_amount_open"] == "191.97" + assert result["invoice_id"] == "I1" + assert result["customer_id"] == "C1" + +@pytest.mark.asyncio +async def test_mcp_consultar_faturas_enriquece_com_detail_e_valor(monkeypatch): + from contas_mcp.servers.contas_mcp_server import main + + client = Client() + context_service = InvoiceContextService(client, InMemoryCache(), ttl_seconds=60) # type: ignore[arg-type] + monkeypatch.setattr(main, "get_invoice_context_service", lambda: context_service) + + args = {"msisdn": "119", "session_id": "s1", "message_id": "m1"} + await main._enrich_invoice_context("consultar_faturas", args) + + assert client.pdf_calls == 1 + assert args["invoice_amount"] == "191.97" + assert args["invoice_amount_open"] == "191.97" + assert args["complete_invoices_payload"]["paymentItems"][0]["invoiceId"] == "I1"