roksta 0.3.4__cp314-cp314t-macosx_10_13_universal2.whl → 0.3.5__cp314-cp314t-macosx_10_13_universal2.whl

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.

Potentially problematic release.


This version of roksta might be problematic. Click here for more details.

Files changed (57) hide show
  1. roksta/ai/llm.cpython-314t-darwin.so +0 -0
  2. roksta/ai/tools/__init__.cpython-314t-darwin.so +0 -0
  3. roksta/ai/tools/tool_defs.cpython-314t-darwin.so +0 -0
  4. roksta/ai/tools/web_fetch.cpython-314t-darwin.so +0 -0
  5. roksta/build_project.cpython-314t-darwin.so +0 -0
  6. roksta/clarify_goal.cpython-314t-darwin.so +0 -0
  7. roksta/env.cpython-314t-darwin.so +0 -0
  8. roksta/fix_tests.cpython-314t-darwin.so +0 -0
  9. roksta/goal_workflow.cpython-314t-darwin.so +0 -0
  10. roksta/new_features.cpython-314t-darwin.so +0 -0
  11. roksta/propose_solution.cpython-314t-darwin.so +0 -0
  12. roksta/select_files.cpython-314t-darwin.so +0 -0
  13. roksta/utils.cpython-314t-darwin.so +0 -0
  14. roksta/write_code.cpython-314t-darwin.so +0 -0
  15. {roksta-0.3.4.dist-info → roksta-0.3.5.dist-info}/METADATA +2 -1
  16. {roksta-0.3.4.dist-info → roksta-0.3.5.dist-info}/RECORD +19 -56
  17. {roksta-0.3.4.dist-info → roksta-0.3.5.dist-info}/top_level.txt +0 -1
  18. tests/__init__.py +0 -2
  19. tests/conftest.py +0 -211
  20. tests/functions/__init__.py +0 -2
  21. tests/functions/api_v1_00/__init__.py +0 -2
  22. tests/functions/api_v1_00/test__analytics.py +0 -416
  23. tests/functions/api_v1_00/test__gemini_proxy.py +0 -352
  24. tests/functions/api_v1_00/test__generic_proxy.py +0 -428
  25. tests/functions/api_v1_00/test__get_payment_details.py +0 -356
  26. tests/functions/api_v1_00/test__openai_proxy.py +0 -449
  27. tests/functions/api_v1_00/test__redeem_credit_code.py +0 -167
  28. tests/functions/api_v1_00/test__sync_emails.py +0 -325
  29. tests/functions/api_v1_00/test__take_payment.py +0 -491
  30. tests/functions/api_v1_00/test__use_activation_code.py +0 -438
  31. tests/functions/api_v1_01/__init__.py +0 -2
  32. tests/functions/api_v1_01/test__analytics.py +0 -416
  33. tests/functions/api_v1_01/test__gemini_proxy.py +0 -352
  34. tests/functions/api_v1_01/test__generic_proxy.py +0 -428
  35. tests/functions/api_v1_01/test__get_payment_details.py +0 -356
  36. tests/functions/api_v1_01/test__openai_proxy.py +0 -449
  37. tests/functions/api_v1_01/test__redeem_credit_code.py +0 -167
  38. tests/functions/api_v1_01/test__sync_emails.py +0 -325
  39. tests/functions/api_v1_01/test__take_payment.py +0 -491
  40. tests/functions/api_v1_01/test__use_activation_code.py +0 -438
  41. tests/functions/api_v1_02/__init__.py +0 -2
  42. tests/functions/api_v1_02/test__analytics.py +0 -416
  43. tests/functions/api_v1_02/test__gemini_proxy.py +0 -352
  44. tests/functions/api_v1_02/test__generic_proxy.py +0 -428
  45. tests/functions/api_v1_02/test__get_payment_details.py +0 -356
  46. tests/functions/api_v1_02/test__openai_proxy.py +0 -449
  47. tests/functions/api_v1_02/test__redeem_credit_code.py +0 -167
  48. tests/functions/api_v1_02/test__sync_emails.py +0 -325
  49. tests/functions/api_v1_02/test__take_payment.py +0 -491
  50. tests/functions/api_v1_02/test__use_activation_code.py +0 -438
  51. tests/functions/api_v1_02/test_proxy_keyword_replacement.py +0 -557
  52. tests/functions/api_v1_02/test_replace_keywords.py +0 -74
  53. tests/functions/test_auth.py +0 -24
  54. tests/functions/test_main.py +0 -73
  55. tests/functions/test_utils.py +0 -484
  56. {roksta-0.3.4.dist-info → roksta-0.3.5.dist-info}/WHEEL +0 -0
  57. {roksta-0.3.4.dist-info → roksta-0.3.5.dist-info}/entry_points.txt +0 -0
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: roksta
3
- Version: 0.3.4
3
+ Version: 0.3.5
4
4
  Summary: An AI coding assistant
5
5
  Author-email: Prash Naidu <prash@roksta.ai>
6
6
  Project-URL: Homepage, https://roksta.ai
@@ -22,6 +22,7 @@ Requires-Dist: jsonref>=1.1.0
22
22
  Requires-Dist: pathspec>=0.12.1
23
23
  Requires-Dist: psutil>=7.1.0
24
24
  Requires-Dist: PyNaCl>=1.6.0
25
+ Requires-Dist: markdownify>=1.2.0
25
26
  Provides-Extra: tests
26
27
  Requires-Dist: pytest>=8.4.1; extra == "tests"
27
28
  Requires-Dist: pytest-asyncio>=1.0.0; extra == "tests"
@@ -1,11 +1,11 @@
1
- roksta-0.3.4.dist-info/RECORD,,
2
- roksta-0.3.4.dist-info/WHEEL,sha256=ERcDdRDi5tXqNjUI3Zpgr5_CkfUS0k_e9FvQ5FQhNCU,143
3
- roksta-0.3.4.dist-info/entry_points.txt,sha256=mzRdYg_DlzZRwjxYUt9-gyoRCkM1QBTeTbwETgiTdGw,44
4
- roksta-0.3.4.dist-info/top_level.txt,sha256=lvciNZQ1dPGXpiCLdWVXK03n9fKHjbQdwjqQbnUjeYM,13
5
- roksta-0.3.4.dist-info/METADATA,sha256=g6ygccU21yrpUPzBgzazE1-nKbmCKTkNBPO04PIAF8g,1507
1
+ roksta-0.3.5.dist-info/RECORD,,
2
+ roksta-0.3.5.dist-info/WHEEL,sha256=ERcDdRDi5tXqNjUI3Zpgr5_CkfUS0k_e9FvQ5FQhNCU,143
3
+ roksta-0.3.5.dist-info/entry_points.txt,sha256=mzRdYg_DlzZRwjxYUt9-gyoRCkM1QBTeTbwETgiTdGw,44
4
+ roksta-0.3.5.dist-info/top_level.txt,sha256=Worlz0mMqoxRSgPmoN1j_P-sJgIrmzD0uJ08qJwpWpQ,7
5
+ roksta-0.3.5.dist-info/METADATA,sha256=fUkW_cyFhjvaOIHJRFPDVZA3n_kIprlA4jpPUZblviY,1541
6
6
  roksta/default_config.cpython-314t-darwin.so,sha256=qVmZK893wlh3cnVQCefHp-PUn9Zfk9zbBpu9w3n05BY,102424
7
7
  roksta/get_failing_tests.cpython-314t-darwin.so,sha256=TgiPDwlMZlUssV_VAxkv2iITeamCP2-QGiK5sS8mI9o,241096
8
- roksta/select_files.cpython-314t-darwin.so,sha256=i7azNFwGLgqW0kywaeu-8WReijLxf8FkHH94BpnEVtA,224704
8
+ roksta/select_files.cpython-314t-darwin.so,sha256=sfdKq5s57us32CjoHL_Q6Bn044oK6OoHF2iHPQerFdA,224640
9
9
  roksta/run_cli_goal.cpython-314t-darwin.so,sha256=ttg_PJw87gmjhnXLV7cmYL7u9xJvmXaqemiGIOcHuPY,240624
10
10
  roksta/tips.cpython-314t-darwin.so,sha256=_GFurjxzjz3IUS2JAfLQ36eIv5JHA5Ra5QJ3L5H-wRc,85864
11
11
  roksta/codebase_listing.cpython-314t-darwin.so,sha256=RA8iTkU9V8T-OwmCvMWgvJyB8dmIriM7ByPW8oXAE_g,188856
@@ -16,11 +16,11 @@ roksta/balance.cpython-314t-darwin.so,sha256=PcZawKA2S-ZJw7DZPgMNg7SggYkYFnyg5Gw
16
16
  roksta/create_default_config.cpython-314t-darwin.so,sha256=e2vg-eL5wJmKX55pTP22gY-7u84iLPhHr7pbPgUcTlA,121872
17
17
  roksta/save_chat_transcript.cpython-314t-darwin.so,sha256=BnmEe-RSc6z1BWoMi9GTuA2IE5zJqckdrbX0pNlzGA8,224568
18
18
  roksta/lint_code.cpython-314t-darwin.so,sha256=ReFQCO8ceBgiZD62UZsaHus7wjRC3IbvXf7eK7G0yAU,241408
19
- roksta/clarify_goal.cpython-314t-darwin.so,sha256=SOCw-JC9TqA1BZIcSf1PUZHsgYtuXVl_Pf3M8UboAbA,224720
19
+ roksta/clarify_goal.cpython-314t-darwin.so,sha256=6vpzvYxs8aIHwzhnaeQY8sWowytTA2YQHpD_hfkXrns,224720
20
20
  roksta/firebase_auth_web.cpython-314t-darwin.so,sha256=MtPd76Sg1mK_CF75xGgsXSGXW7QwAgjr48ieaGnxDNw,539064
21
21
  roksta/roksta.cpython-314t-darwin.so,sha256=dvXVoqi1A9SVfiNv7L62x1qRbQDWYNhIW9OqwSjfZfI,638080
22
22
  roksta/firebase_config.cpython-314t-darwin.so,sha256=50G4FEKgT6xC1EkRY7t9K_sV-qaZfJ7kxhN2S9Z3Ujg,86424
23
- roksta/propose_solution.cpython-314t-darwin.so,sha256=UwKDYhn4r2aBV8hyu4yLw8wfdxOV6Urlq_4OQdMNxsc,207896
23
+ roksta/propose_solution.cpython-314t-darwin.so,sha256=kND2h1uewMXcxLDsQ3CfH-9puDZVTQ-WHp6xY77Xsm0,224408
24
24
  roksta/parse_readme.cpython-314t-darwin.so,sha256=wt3fxkkhrw9sb7Mrx03_7l1FOACFtDHH75rX2DsONNs,224144
25
25
  roksta/gen_one_line_goal.cpython-314t-darwin.so,sha256=o3prlvNNJ_hwPUaUj9jYvG0nQpdmAUWdFPksdRMwqrI,224680
26
26
  roksta/check_for_updates.cpython-314t-darwin.so,sha256=_5NXBGJ0xdSsC-npTGSdG2QwmBIjkXFl1kuTpTVFnNM,323704
@@ -28,20 +28,20 @@ roksta/gen_codebase_summaries.cpython-314t-darwin.so,sha256=caLC6vHBDUINIBUtDOSS
28
28
  roksta/main.cpython-314t-darwin.so,sha256=ZJuA1mhClpGYd-AnbvM_gApJCn8hCLLbOKlFrLsgj_0,155432
29
29
  roksta/enums.cpython-314t-darwin.so,sha256=cV5j_scSnb5xFPzihRYmd6WtiNVrrwWgJekcdNwDFWk,322320
30
30
  roksta/__init__.cpython-314t-darwin.so,sha256=wi8Vybo_OIgiP0nw3dYRY1WuU-_XToX7Kg214k5KG1Q,85824
31
- roksta/goal_workflow.cpython-314t-darwin.so,sha256=ptyo4x1M8G4xBssT3BVMWMYRzDB4Fd04RPe0W32h3_E,571816
31
+ roksta/goal_workflow.cpython-314t-darwin.so,sha256=mrOjajquKadjZ3tJEUdTULpxG9y4ONwrpLjS3dZkcRQ,588216
32
32
  roksta/analytics.cpython-314t-darwin.so,sha256=L3PW9-z0x095D8pNXFJsaOaXgcfIdll9ZophlWdpwBA,340208
33
- roksta/write_code.cpython-314t-darwin.so,sha256=hVqAQ9T_paeRuGV2ElNt1VFjWPnUaTW7zXrCQcaNup4,207920
34
- roksta/env.cpython-314t-darwin.so,sha256=9zDuBs-sN_g4msUIWX7RMQXDDmONtFr-hdTF2czmLP0,87928
35
- roksta/new_features.cpython-314t-darwin.so,sha256=BwisP58GGEi_pPs_Q4SD6jfENflhy9pBC3Z90mWs5UA,85904
36
- roksta/build_project.cpython-314t-darwin.so,sha256=4F7-EKDWTNCFQ3laC2_qU_5Y7hB7YhUntTpCY_84WNM,207960
37
- roksta/fix_tests.cpython-314t-darwin.so,sha256=9gEd76JwRw6CfjpnTnnutFlUeVX44mx0ZU0oFAvHZzk,257632
33
+ roksta/write_code.cpython-314t-darwin.so,sha256=gjuX0aodwNAusbqjhhBP3ascil4RGkacvrHPcHMGZq8,207856
34
+ roksta/env.cpython-314t-darwin.so,sha256=B7C3PHjZ5NlLDUdYw8dJOYXhSsVY28NpRBW6Qfu76Uc,87928
35
+ roksta/new_features.cpython-314t-darwin.so,sha256=CxgePpuEPCPArbMPCXSLp-DERSsd42_3k_CfxJpyqOE,85904
36
+ roksta/build_project.cpython-314t-darwin.so,sha256=6p5Whyim2BJnKGWd12XiMwaKZsfj4zIsvK7w99uje6A,207960
37
+ roksta/fix_tests.cpython-314t-darwin.so,sha256=cSx-jKrk5KI7d6JVJZP5KkMINSYPqE8Uo_fstssLPcQ,257632
38
38
  roksta/logger.cpython-314t-darwin.so,sha256=dS3nkICf5rs50jppXacQE4zWPJqVOt6cah_DBwdL5Cw,155216
39
39
  roksta/chat_workflow.cpython-314t-darwin.so,sha256=qgQUBii--TVD5qHVjpyU_pwJH97GHiGAMy6uimWVy6w,290712
40
40
  roksta/response_formats.cpython-314t-darwin.so,sha256=8pWaDZuRf-9ZUpR8p8kZkIOg0ovPKGbQ44DE1i2ZRng,121208
41
41
  roksta/get_codebase_structure.cpython-314t-darwin.so,sha256=L4OJLaFY0K-rjQYH3ur_w01ag2SC3JojmJapfcEl_Ts,239520
42
42
  roksta/make_issue.cpython-314t-darwin.so,sha256=89-HoemTI3hU94_Ll7p4NpVGCNqkQpgWm07dcUEfEyc,238624
43
43
  roksta/rewrite_goal.cpython-314t-darwin.so,sha256=-MtU1o7UfREP8kOXzpmtz5zTxu6gcEoRYh_I2_byl8k,207872
44
- roksta/utils.cpython-314t-darwin.so,sha256=6OBmmowgYRIvqZIMri0UjDlJeV3CRkdeQOvf54VuZZc,721280
44
+ roksta/utils.cpython-314t-darwin.so,sha256=8-lBK9uRhQ_i_201n4_S6EY6FX3nxZ96ZzTyT30IA6E,754112
45
45
  roksta/extended_text_area.cpython-314t-darwin.so,sha256=lkE5lVWoNvXNA2X6HPuBzVSJxkix6LtcdbjCeaXoT7Y,324072
46
46
  roksta/command_handlers/handle_dev_rate_command.cpython-314t-darwin.so,sha256=BOLjCAGa7ykCtNNuKXjyJQ67zqFMANUVOs4qiCwmtpE,156368
47
47
  roksta/command_handlers/handle_building_command.cpython-314t-darwin.so,sha256=U1yasCfFL1jNOnEBBQ971E0C-sflfE1PVUrQGQLjc8Q,156256
@@ -69,54 +69,17 @@ roksta/ai/call_ai.cpython-314t-darwin.so,sha256=utAI0UB3o0i3wwxJTVSfaNFoN85FXkzw
69
69
  roksta/ai/__init__.cpython-314t-darwin.so,sha256=ADxSpO91HkA6gk1RUfnjAxO8etJfH2MS2Ku7jcZI2JI,85824
70
70
  roksta/ai/generic.cpython-314t-darwin.so,sha256=FXZqKaZvr5zusnC1hGgPCqWqWslgrsAlgGuaGAM0nR0,340256
71
71
  roksta/ai/gemini.cpython-314t-darwin.so,sha256=WBi3VWJHLl3oyVKOpHFJHjUlxQ3ZzEcch2dQXTCkuzs,439584
72
- roksta/ai/llm.cpython-314t-darwin.so,sha256=vyBa-TTUKx2sAY_si5dBrB-rF2M4Kqj-Ki8G3T8bhKw,271880
72
+ roksta/ai/llm.cpython-314t-darwin.so,sha256=MwN35DVIHwhwQJgapBUdLPPqixqnUvMZWv6TVA3H1nQ,271880
73
73
  roksta/ai/tools/final_response.cpython-314t-darwin.so,sha256=ofB0mXDgvG06RGPoR_NiS_Yva_Oqbx8LqkLuXFaSXVA,88040
74
74
  roksta/ai/tools/shell_any.cpython-314t-darwin.so,sha256=-QRkZKu65jjj32Uq2Vz11gSODUMPyGW-g7OW3hH_MGE,240960
75
75
  roksta/ai/tools/get_file_summaries.cpython-314t-darwin.so,sha256=jOegeSULw86gsDsMnlDg8RT9eoop7B_3e-pEcHTlKBI,155976
76
+ roksta/ai/tools/web_fetch.cpython-314t-darwin.so,sha256=yNra2esIlIeat9lY79x9i31qiyBAY0x4aTWR0MHRS6Q,337776
76
77
  roksta/ai/tools/edit_file.cpython-314t-darwin.so,sha256=lespXuYkJc8ntkyGp9VpP3pPzNLRCDmSwIP3cXIYnpA,155440
77
78
  roksta/ai/tools/write_file.cpython-314t-darwin.so,sha256=kKK2ZG9TlffBPK7_RT3Yi2TlraGWuj9yjlyE-S-AtPE,155232
78
79
  roksta/ai/tools/delete_file.cpython-314t-darwin.so,sha256=BEj2B0I5DbWnxkrNykTTC7ZHVo_oJdso7JWs3oC28KU,122272
79
80
  roksta/ai/tools/read_file.cpython-314t-darwin.so,sha256=TOljG7TOdoV_ifGDnYBkwMMgYv2iKinP1QhJ_uJwOCs,172672
80
- roksta/ai/tools/__init__.cpython-314t-darwin.so,sha256=wa8aCNa2ANhrtjhfWKTXQA9tLz_qs0eY-Z3q7WN9sSI,87216
81
- roksta/ai/tools/tool_defs.cpython-314t-darwin.so,sha256=KvPkr_xE0b2_mQ4_KJ4HKLejrQ1CLVo_Q8tSIUM2rK4,137664
81
+ roksta/ai/tools/__init__.cpython-314t-darwin.so,sha256=tV_WWiM1-6FKUD8j7rJUlSV-Sco9V79EoojcZQ0Seew,87216
82
+ roksta/ai/tools/tool_defs.cpython-314t-darwin.so,sha256=uwu0E1a7AI4KyTpEcJLC9FREJGFuddUawtKG0VADFrs,137664
82
83
  roksta/ai/tools/regex_replace.cpython-314t-darwin.so,sha256=jtDtxyBlYSw5qwMuFYgFPzH5AFck0QwuaFIPlOCw7vM,155848
83
84
  roksta/ai/tools/shell_limited.cpython-314t-darwin.so,sha256=4nPS7l9veVF_Axjae2ify5Oj8X1O2lpRR7hHQnLuWOc,191384
84
85
  roksta/ai/tools/tool_utils.cpython-314t-darwin.so,sha256=y6DKt--sVrfSgORsaUE23F4IPNFra6G4eU31KZZT6ZE,341024
85
- tests/conftest.py,sha256=Y2cx3Jups9GkKGxOG2fSSoIr3rgfUa9QzipMoQ-ehKU,7878
86
- tests/__init__.py,sha256=J6ztnXNqM8TSQCgHXMWb6NRq1kN_h4ql63Jq-TYR8XE,124
87
- tests/functions/test_utils.py,sha256=_zlgSa99JYVyJ0LDe3yaPztS92kqGRKkgjon__XmfFM,16721
88
- tests/functions/test_auth.py,sha256=I3oFTw2LTuUsnQ75v5SCfgUPnpel_pDKqUH0VAJpXQw,992
89
- tests/functions/__init__.py,sha256=mLXx3UARcv07vs_fGJuy3L5ZRn9IRsF9zIuL5IOnwdk,95
90
- tests/functions/test_main.py,sha256=h0W_4ISo95WzRy2HpXZw3cuNOTcYk_2QCIZffZJEfEU,2575
91
- tests/functions/api_v1_02/test__sync_emails.py,sha256=OTyf2YbBK7e4pWIQTUGYR4x6il1Hb3g4FYqQ_fRj1nA,12699
92
- tests/functions/api_v1_02/test__take_payment.py,sha256=I-XJasGuLW5wTMAu4nAgFkA8Mo_zVpGPvkJ2LrrJGCk,18022
93
- tests/functions/api_v1_02/test_replace_keywords.py,sha256=pa7bZ8I9XgtI5dUZq-efcHh9amN2_XHP8abXYqtDGc0,2683
94
- tests/functions/api_v1_02/test__gemini_proxy.py,sha256=mf8ubRmNxxxN80H6EA-iDPwu6Oue6Rmgxl6tiFNpfrU,13344
95
- tests/functions/api_v1_02/test_proxy_keyword_replacement.py,sha256=I5H73_QydSKLiDp7hDHGHbSkDOdv-BT4gYHGqEiVtM0,23632
96
- tests/functions/api_v1_02/test__analytics.py,sha256=oKjd7_zjnttcb-5BuA93yllkm0OOF4YWnfTUW1-icnM,15806
97
- tests/functions/api_v1_02/__init__.py,sha256=3RCSoj_5UQPw9Z5NeAgYz2s4gfcZIi7g36qk_Ed5TiA,124
98
- tests/functions/api_v1_02/test__use_activation_code.py,sha256=tNyTkkRtrpjei-7F31UNwrcU-PbP-QnkWNU7h2n5Yqo,16960
99
- tests/functions/api_v1_02/test__redeem_credit_code.py,sha256=7GD3tGgO2Lk0BCjUmzZACJiwocEhLBvXrrut0x13IWU,6347
100
- tests/functions/api_v1_02/test__openai_proxy.py,sha256=xlO2zmG64LlrKrbjFz-ds6Map7vy4SjIuHfZJDAqGK8,17726
101
- tests/functions/api_v1_02/test__get_payment_details.py,sha256=i5Px3NkLxqw8D3tVPrYdRJJF5jlNmysSuX_NNolbIa4,13735
102
- tests/functions/api_v1_02/test__generic_proxy.py,sha256=KZkOtmc71aOnWlz2L7B6CFhRNEV73bExG3GR14oD2L0,17673
103
- tests/functions/api_v1_01/test__sync_emails.py,sha256=OTyf2YbBK7e4pWIQTUGYR4x6il1Hb3g4FYqQ_fRj1nA,12699
104
- tests/functions/api_v1_01/test__take_payment.py,sha256=I-XJasGuLW5wTMAu4nAgFkA8Mo_zVpGPvkJ2LrrJGCk,18022
105
- tests/functions/api_v1_01/test__gemini_proxy.py,sha256=mf8ubRmNxxxN80H6EA-iDPwu6Oue6Rmgxl6tiFNpfrU,13344
106
- tests/functions/api_v1_01/test__analytics.py,sha256=oKjd7_zjnttcb-5BuA93yllkm0OOF4YWnfTUW1-icnM,15806
107
- tests/functions/api_v1_01/__init__.py,sha256=3RCSoj_5UQPw9Z5NeAgYz2s4gfcZIi7g36qk_Ed5TiA,124
108
- tests/functions/api_v1_01/test__use_activation_code.py,sha256=tNyTkkRtrpjei-7F31UNwrcU-PbP-QnkWNU7h2n5Yqo,16960
109
- tests/functions/api_v1_01/test__redeem_credit_code.py,sha256=7GD3tGgO2Lk0BCjUmzZACJiwocEhLBvXrrut0x13IWU,6347
110
- tests/functions/api_v1_01/test__openai_proxy.py,sha256=xlO2zmG64LlrKrbjFz-ds6Map7vy4SjIuHfZJDAqGK8,17726
111
- tests/functions/api_v1_01/test__get_payment_details.py,sha256=i5Px3NkLxqw8D3tVPrYdRJJF5jlNmysSuX_NNolbIa4,13735
112
- tests/functions/api_v1_01/test__generic_proxy.py,sha256=KZkOtmc71aOnWlz2L7B6CFhRNEV73bExG3GR14oD2L0,17673
113
- tests/functions/api_v1_00/test__sync_emails.py,sha256=OTyf2YbBK7e4pWIQTUGYR4x6il1Hb3g4FYqQ_fRj1nA,12699
114
- tests/functions/api_v1_00/test__take_payment.py,sha256=I-XJasGuLW5wTMAu4nAgFkA8Mo_zVpGPvkJ2LrrJGCk,18022
115
- tests/functions/api_v1_00/test__gemini_proxy.py,sha256=mf8ubRmNxxxN80H6EA-iDPwu6Oue6Rmgxl6tiFNpfrU,13344
116
- tests/functions/api_v1_00/test__analytics.py,sha256=oKjd7_zjnttcb-5BuA93yllkm0OOF4YWnfTUW1-icnM,15806
117
- tests/functions/api_v1_00/__init__.py,sha256=3RCSoj_5UQPw9Z5NeAgYz2s4gfcZIi7g36qk_Ed5TiA,124
118
- tests/functions/api_v1_00/test__use_activation_code.py,sha256=tNyTkkRtrpjei-7F31UNwrcU-PbP-QnkWNU7h2n5Yqo,16960
119
- tests/functions/api_v1_00/test__redeem_credit_code.py,sha256=7GD3tGgO2Lk0BCjUmzZACJiwocEhLBvXrrut0x13IWU,6347
120
- tests/functions/api_v1_00/test__openai_proxy.py,sha256=xlO2zmG64LlrKrbjFz-ds6Map7vy4SjIuHfZJDAqGK8,17726
121
- tests/functions/api_v1_00/test__get_payment_details.py,sha256=i5Px3NkLxqw8D3tVPrYdRJJF5jlNmysSuX_NNolbIa4,13735
122
- tests/functions/api_v1_00/test__generic_proxy.py,sha256=KZkOtmc71aOnWlz2L7B6CFhRNEV73bExG3GR14oD2L0,17673
tests/__init__.py DELETED
@@ -1,2 +0,0 @@
1
- # tests package marker
2
- # This file allows pytest to import tests using package-qualified names, avoiding import collisions.
tests/conftest.py DELETED
@@ -1,211 +0,0 @@
1
- import os
2
- import sys
3
- import importlib
4
- import types as _types_mod
5
-
6
- # Ensure local package is imported before any globally installed packages.
7
- sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
8
-
9
- # Ensure functions directory is on sys.path so top-level function helpers (e.g. 'utils')
10
- # can be imported by tests after the functions/ reorganisation.
11
- _functions_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'functions'))
12
- if _functions_root not in sys.path:
13
- sys.path.insert(0, _functions_root)
14
-
15
- # Ensure functions/api_v0_01 (or a compatible API directory) is on sys.path so tests that import top-level function
16
- # modules (e.g. '_analytics') can still find them after the functions/ reorganisation.
17
- _api_candidates = ['api_v0_01', 'api_v001', 'api_v0_1', 'api_v01']
18
- _functions_api_dir = None
19
- for candidate in _api_candidates:
20
- candidate_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'functions', candidate))
21
- if os.path.isdir(candidate_path):
22
- _functions_api_dir = candidate_path
23
- break
24
- if _functions_api_dir and _functions_api_dir not in sys.path:
25
- sys.path.insert(0, _functions_api_dir)
26
-
27
- # Provide a minimal google.genai.types stub if the real package is not available.
28
- # This avoids import-time errors in tests that import modules which reference
29
- # google.genai.types at import time. The stub is intentionally lightweight and
30
- # only implements the attributes needed for import and simple spec-based mocks
31
- # used in the test-suite. Individual tests may still override these with more
32
- # detailed fakes when required.
33
-
34
-
35
- def _attach_gtypes_stubs(gtypes_mod):
36
- """
37
- Attach minimal placeholder implementations to the provided module object.
38
- Only attaches attributes that are missing on the module to avoid clobbering
39
- a real installed package.
40
- """
41
- # Minimal placeholder implementations
42
- class GenerateContentConfig:
43
- def __init__(self, **kwargs):
44
- self.__dict__.update(kwargs)
45
- self.kwargs = kwargs
46
- def to_json_dict(self):
47
- return dict(self.kwargs)
48
-
49
- class ThinkingConfig:
50
- def __init__(self, thinking_budget=None):
51
- self.thinking_budget = thinking_budget
52
-
53
- class AutomaticFunctionCallingConfig:
54
- def __init__(self, disable=False):
55
- self.disable = disable
56
-
57
- class GoogleSearch:
58
- def __init__(self):
59
- pass
60
-
61
- class Tool:
62
- def __init__(self, **kwargs):
63
- self.kwargs = kwargs
64
-
65
- class UsageMetadata:
66
- def __init__(self, prompt_token_count=0, total_token_count=0):
67
- self.prompt_token_count = prompt_token_count
68
- self.total_token_count = total_token_count
69
-
70
- class FinishReasonEnum:
71
- def __init__(self, name='FINISH_REASON_UNSPECIFIED'):
72
- self.name = name
73
-
74
- class FinishReason:
75
- FINISH_REASON_UNSPECIFIED = FinishReasonEnum('FINISH_REASON_UNSPECIFIED')
76
-
77
- class Part:
78
- def __init__(self, text=None, function_call=None):
79
- self.text = text
80
- self.function_call = function_call
81
-
82
- @classmethod
83
- def from_function_response(cls, name=None, response=None):
84
- inst = cls()
85
- inst.function_response = _types_mod.SimpleNamespace(name=name, response=response)
86
- return inst
87
-
88
- class Content:
89
- def __init__(self, role=None, parts=None):
90
- self.role = role
91
- self.parts = parts or []
92
-
93
- def model_dump(self, mode='json'):
94
- return {'role': self.role, 'parts': [getattr(p, 'text', p) for p in self.parts]}
95
-
96
- class FunctionCall:
97
- def __init__(self, name=None, args=None):
98
- self.name = name
99
- self.args = args
100
-
101
- class Candidate:
102
- def __init__(self, content=None, finish_reason=None):
103
- self.content = content
104
- self.finish_reason = finish_reason
105
-
106
- class GenerateContentResponse:
107
- def __init__(self, **kwargs):
108
- for k, v in kwargs.items():
109
- setattr(self, k, v)
110
- # sensible defaults
111
- if not hasattr(self, 'text'):
112
- self.text = ''
113
- if not hasattr(self, 'candidates'):
114
- self.candidates = []
115
- if not hasattr(self, 'usage_metadata'):
116
- self.usage_metadata = None
117
-
118
- def to_json_dict(self):
119
- return {k: getattr(self, k) for k in self.__dict__}
120
-
121
- stubs = {
122
- 'GenerateContentConfig': GenerateContentConfig,
123
- 'ThinkingConfig': ThinkingConfig,
124
- 'AutomaticFunctionCallingConfig': AutomaticFunctionCallingConfig,
125
- 'GoogleSearch': GoogleSearch,
126
- 'Tool': Tool,
127
- 'UsageMetadata': UsageMetadata,
128
- 'FinishReason': FinishReason,
129
- 'Part': Part,
130
- 'Content': Content,
131
- 'FunctionCall': FunctionCall,
132
- 'Candidate': Candidate,
133
- 'GenerateContentResponse': GenerateContentResponse,
134
- }
135
-
136
- for name, obj in stubs.items():
137
- if not hasattr(gtypes_mod, name):
138
- setattr(gtypes_mod, name, obj)
139
-
140
-
141
- # Try to import the real google.genai.types module. If it exists, only patch in
142
- # any missing attributes. If it doesn't exist, create minimal stub modules and
143
- # register them on sys.modules so imports like `from google.genai import types`
144
- # work during the tests.
145
- try:
146
- gtypes = importlib.import_module('google.genai.types')
147
- _attach_gtypes_stubs(gtypes)
148
- except Exception:
149
- # Ensure top-level `google` module exists in sys.modules, but do not overwrite
150
- # a real `google` module if it is already installed.
151
- try:
152
- google = importlib.import_module('google')
153
- except Exception:
154
- google = _types_mod.ModuleType('google')
155
- sys.modules['google'] = google
156
-
157
- # Ensure `google.genai` exists; prefer the real module if present.
158
- try:
159
- genai = importlib.import_module('google.genai')
160
- except Exception:
161
- genai = _types_mod.ModuleType('google.genai')
162
- sys.modules['google.genai'] = genai
163
- setattr(google, 'genai', genai)
164
-
165
- # Create and attach the minimal `google.genai.types` stub
166
- gtypes = _types_mod.ModuleType('google.genai.types')
167
- _attach_gtypes_stubs(gtypes)
168
- genai.types = gtypes
169
- sys.modules['google.genai.types'] = gtypes
170
-
171
- # Provide a minimal nacl.public stub if PyNaCl is not installed. This prevents
172
- # import-time failures in tests that import `roksta.firebase` which does
173
- # `from nacl.public import PublicKey, SealedBox`.
174
- try:
175
- import nacl.public # type: ignore
176
- except Exception:
177
- # Create lightweight stub modules to satisfy `from nacl.public import PublicKey, SealedBox`
178
- nacl = _types_mod.ModuleType('nacl')
179
- nacl_public = _types_mod.ModuleType('nacl.public')
180
-
181
- class PublicKey:
182
- def __init__(self, data):
183
- # Accept bytes-like input; ensure it's bytes when possible.
184
- try:
185
- self._data = bytes(data)
186
- except Exception:
187
- self._data = data
188
-
189
- def __repr__(self):
190
- try:
191
- length = len(self._data)
192
- except Exception:
193
- length = 'unknown'
194
- return f"<PublicKey len={length}>"
195
-
196
- class SealedBox:
197
- def __init__(self, public_key):
198
- self.public_key = public_key
199
-
200
- def encrypt(self, plaintext: bytes) -> bytes:
201
- # Return deterministic bytes so callers can base64-encode the result.
202
- if not isinstance(plaintext, (bytes, bytearray)):
203
- plaintext = str(plaintext).encode('utf-8')
204
- return b"STUB_ENCRYPTED:" + bytes(plaintext)
205
-
206
- nacl_public.PublicKey = PublicKey
207
- nacl_public.SealedBox = SealedBox
208
- # Attach the submodule on the parent module object for attribute access
209
- nacl.public = nacl_public
210
- sys.modules['nacl'] = nacl
211
- sys.modules['nacl.public'] = nacl_public
@@ -1,2 +0,0 @@
1
- # tests.functions package marker
2
- # Ensures subtests are imported as package-qualified modules.
@@ -1,2 +0,0 @@
1
- # tests.functions.api_v1_00 package marker
2
- # Allows tests under this directory to be imported with package-qualified names.