ccproxy-api 0.1.2__py3-none-any.whl → 0.1.3__py3-none-any.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.
Files changed (108) hide show
  1. ccproxy/_version.py +2 -2
  2. ccproxy/adapters/openai/__init__.py +1 -2
  3. ccproxy/adapters/openai/adapter.py +218 -180
  4. ccproxy/adapters/openai/streaming.py +247 -65
  5. ccproxy/api/__init__.py +0 -3
  6. ccproxy/api/app.py +173 -40
  7. ccproxy/api/dependencies.py +62 -3
  8. ccproxy/api/middleware/errors.py +3 -7
  9. ccproxy/api/middleware/headers.py +0 -2
  10. ccproxy/api/middleware/logging.py +4 -3
  11. ccproxy/api/middleware/request_content_logging.py +297 -0
  12. ccproxy/api/middleware/request_id.py +5 -0
  13. ccproxy/api/middleware/server_header.py +0 -4
  14. ccproxy/api/routes/__init__.py +9 -1
  15. ccproxy/api/routes/claude.py +23 -32
  16. ccproxy/api/routes/health.py +58 -4
  17. ccproxy/api/routes/mcp.py +171 -0
  18. ccproxy/api/routes/metrics.py +4 -8
  19. ccproxy/api/routes/permissions.py +217 -0
  20. ccproxy/api/routes/proxy.py +0 -53
  21. ccproxy/api/services/__init__.py +6 -0
  22. ccproxy/api/services/permission_service.py +368 -0
  23. ccproxy/api/ui/__init__.py +6 -0
  24. ccproxy/api/ui/permission_handler_protocol.py +33 -0
  25. ccproxy/api/ui/terminal_permission_handler.py +593 -0
  26. ccproxy/auth/conditional.py +2 -2
  27. ccproxy/auth/dependencies.py +1 -1
  28. ccproxy/auth/oauth/models.py +0 -1
  29. ccproxy/auth/oauth/routes.py +1 -3
  30. ccproxy/auth/storage/json_file.py +0 -1
  31. ccproxy/auth/storage/keyring.py +0 -3
  32. ccproxy/claude_sdk/__init__.py +2 -0
  33. ccproxy/claude_sdk/client.py +91 -8
  34. ccproxy/claude_sdk/converter.py +405 -210
  35. ccproxy/claude_sdk/options.py +76 -29
  36. ccproxy/claude_sdk/parser.py +200 -0
  37. ccproxy/claude_sdk/streaming.py +286 -0
  38. ccproxy/cli/commands/__init__.py +5 -2
  39. ccproxy/cli/commands/auth.py +2 -4
  40. ccproxy/cli/commands/permission_handler.py +553 -0
  41. ccproxy/cli/commands/serve.py +30 -12
  42. ccproxy/cli/docker/params.py +0 -4
  43. ccproxy/cli/helpers.py +0 -2
  44. ccproxy/cli/main.py +5 -16
  45. ccproxy/cli/options/claude_options.py +19 -1
  46. ccproxy/cli/options/core_options.py +0 -3
  47. ccproxy/cli/options/security_options.py +0 -2
  48. ccproxy/cli/options/server_options.py +3 -2
  49. ccproxy/config/auth.py +0 -1
  50. ccproxy/config/claude.py +78 -2
  51. ccproxy/config/discovery.py +0 -1
  52. ccproxy/config/docker_settings.py +0 -1
  53. ccproxy/config/loader.py +1 -4
  54. ccproxy/config/scheduler.py +20 -0
  55. ccproxy/config/security.py +7 -2
  56. ccproxy/config/server.py +5 -0
  57. ccproxy/config/settings.py +13 -7
  58. ccproxy/config/validators.py +1 -1
  59. ccproxy/core/async_utils.py +1 -4
  60. ccproxy/core/errors.py +45 -1
  61. ccproxy/core/http_transformers.py +4 -3
  62. ccproxy/core/interfaces.py +2 -2
  63. ccproxy/core/logging.py +97 -95
  64. ccproxy/core/middleware.py +1 -1
  65. ccproxy/core/proxy.py +1 -1
  66. ccproxy/core/transformers.py +1 -1
  67. ccproxy/core/types.py +1 -1
  68. ccproxy/docker/models.py +1 -1
  69. ccproxy/docker/protocol.py +0 -3
  70. ccproxy/models/__init__.py +41 -0
  71. ccproxy/models/claude_sdk.py +420 -0
  72. ccproxy/models/messages.py +45 -18
  73. ccproxy/models/permissions.py +115 -0
  74. ccproxy/models/requests.py +1 -1
  75. ccproxy/models/responses.py +29 -2
  76. ccproxy/observability/access_logger.py +1 -2
  77. ccproxy/observability/context.py +17 -1
  78. ccproxy/observability/metrics.py +1 -3
  79. ccproxy/observability/pushgateway.py +0 -2
  80. ccproxy/observability/stats_printer.py +2 -4
  81. ccproxy/observability/storage/duckdb_simple.py +1 -1
  82. ccproxy/observability/storage/models.py +0 -1
  83. ccproxy/pricing/cache.py +0 -1
  84. ccproxy/pricing/loader.py +5 -21
  85. ccproxy/pricing/updater.py +0 -1
  86. ccproxy/scheduler/__init__.py +1 -0
  87. ccproxy/scheduler/core.py +6 -6
  88. ccproxy/scheduler/manager.py +35 -7
  89. ccproxy/scheduler/registry.py +1 -1
  90. ccproxy/scheduler/tasks.py +127 -2
  91. ccproxy/services/claude_sdk_service.py +220 -328
  92. ccproxy/services/credentials/manager.py +0 -1
  93. ccproxy/services/credentials/oauth_client.py +1 -2
  94. ccproxy/services/proxy_service.py +93 -222
  95. ccproxy/testing/config.py +1 -1
  96. ccproxy/testing/mock_responses.py +0 -1
  97. ccproxy/utils/model_mapping.py +197 -0
  98. ccproxy/utils/models_provider.py +150 -0
  99. ccproxy/utils/simple_request_logger.py +284 -0
  100. ccproxy/utils/version_checker.py +184 -0
  101. {ccproxy_api-0.1.2.dist-info → ccproxy_api-0.1.3.dist-info}/METADATA +63 -2
  102. ccproxy_api-0.1.3.dist-info/RECORD +166 -0
  103. ccproxy/cli/commands/permission.py +0 -128
  104. ccproxy_api-0.1.2.dist-info/RECORD +0 -150
  105. /ccproxy/scheduler/{exceptions.py → errors.py} +0 -0
  106. {ccproxy_api-0.1.2.dist-info → ccproxy_api-0.1.3.dist-info}/WHEEL +0 -0
  107. {ccproxy_api-0.1.2.dist-info → ccproxy_api-0.1.3.dist-info}/entry_points.txt +0 -0
  108. {ccproxy_api-0.1.2.dist-info → ccproxy_api-0.1.3.dist-info}/licenses/LICENSE +0 -0
@@ -1,150 +0,0 @@
1
- ccproxy/__init__.py,sha256=VrtzUTUA8MwpYqFJAiwKLPxRdMRc7UOzFi2VB_1W9qw,62
2
- ccproxy/__main__.py,sha256=kcejcfzAaMnFiSxEiVtNl-_TwynpntkupRxqG5XR15s,116
3
- ccproxy/_version.py,sha256=bSmADqydH8nBu-J4lG8UVuR7hnU_zcwhnSav2oQ0W0A,511
4
- ccproxy/adapters/__init__.py,sha256=CMr5MPIFigfazoXfhyD2eLqBrutzaSzBaEi8u2i9xJQ,206
5
- ccproxy/adapters/base.py,sha256=aufx8ho9LhF0kmTsCvw1a9K3lk5YyYymJV8h_wt5TpU,2191
6
- ccproxy/adapters/openai/__init__.py,sha256=ZBT4y3cHZHrhzsxETOJNDePDT-2rfWwsPOzDKDRZAvY,1125
7
- ccproxy/adapters/openai/adapter.py,sha256=PuN8YY-T0vk6eSxDwt_oG7TCcoA9odgQHPqFy_Er2dk,35747
8
- ccproxy/adapters/openai/models.py,sha256=tg5NLFmTAOjLd2-gjqRQPU3IkL9ATftXv4ZugGw-rwc,11645
9
- ccproxy/adapters/openai/streaming.py,sha256=y3GEGWpd_3Pyg4mclR5RB8xWMq7sYj1T4qx8eOLcJTU,15670
10
- ccproxy/api/__init__.py,sha256=m3t0z3_agXKDupMjmdFW1pu2_YrOTu6DKi0b1OdR-YM,558
11
- ccproxy/api/app.py,sha256=X7pNGqU6pUbuc86K5SMCdiInO54-UkVqfRN_7jCxZLg,10922
12
- ccproxy/api/dependencies.py,sha256=4n7eO4DV44EHMnkKAthePN4iiprBPP5EvDfiB9ykaUc,4169
13
- ccproxy/api/responses.py,sha256=eipdbHLQcrUjBYJd-Q5bEWUoiFlmPiDB0wdySFNubx4,2905
14
- ccproxy/api/middleware/__init__.py,sha256=S887PXY40Tnb0IFGei4Sgs7sygkcoT0IEOciOO7IDBc,284
15
- ccproxy/api/middleware/auth.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- ccproxy/api/middleware/cors.py,sha256=u8bnWmBXRG9J2etbQdNsQOTIQY6PFWawk2Oa0Ei1x3s,1666
17
- ccproxy/api/middleware/errors.py,sha256=XMpJui7i_OFGfymQTEPx-YqZ98M1W5VrO7fxdemSGMY,21929
18
- ccproxy/api/middleware/headers.py,sha256=Jkm61_gH7kCfo3WqTQuIXs1tUK8fWT5vnpjOR8GAcU4,1813
19
- ccproxy/api/middleware/logging.py,sha256=ab_V4eLrIZxqTUFQKkIOC4MMV55L50ies0kUbt-iFBQ,7064
20
- ccproxy/api/middleware/request_id.py,sha256=4VLbv1xT8gbRzd5z1kkV-YmeMmlwDf_HoldhrnjK9iA,2350
21
- ccproxy/api/middleware/server_header.py,sha256=G01U8Wlbj6ov5QEJwjf7UpwcNNPLEqQNom48Gzw-phw,2448
22
- ccproxy/api/routes/__init__.py,sha256=nuULLSLErxclqDEwNgpIxJVMqjMoBIZNyK7HmFwDxf0,519
23
- ccproxy/api/routes/claude.py,sha256=uy8KYYCvVUDVxkuu3LBGSsM_x0yfWvCdbj80yhPEDL4,6476
24
- ccproxy/api/routes/health.py,sha256=0lGKBT0ll5kn0UgtpA9TQwqVu_q07ITa-5Zgs7xhvvc,17254
25
- ccproxy/api/routes/metrics.py,sha256=38IwtMYGmcconhB8bIGBmjrvQWB7aZuGK_rQy0d7_wU,40985
26
- ccproxy/api/routes/proxy.py,sha256=ZWfswHCp1Xfr1Imwh6yaNHwSFBwRYA_X5oPpUPwUMh0,9083
27
- ccproxy/auth/__init__.py,sha256=frT0rDZVGs3zVgaI_z1OuEK6VqAccqRJBBmhlx8tlT4,1967
28
- ccproxy/auth/bearer.py,sha256=4K9y7kG29NNEhuqqpDvNusmDNWQah90nHGRZxBA1H2o,2015
29
- ccproxy/auth/conditional.py,sha256=6084w22Kwph7CgWygtHsp1jxROIcEQxWJ9TCJpslfec,2866
30
- ccproxy/auth/credentials_adapter.py,sha256=2BlihJ0KLcIq4hLVHPVaimS0JuZFINzGnBmm_SMPP6c,3279
31
- ccproxy/auth/dependencies.py,sha256=AOEdZ-6ZfzEMmLevKLlQq_j5YadClSqejiAdxeWQqp4,7083
32
- ccproxy/auth/exceptions.py,sha256=EUaT7qW0D8HHziX7HglZB-WnALQlbj1lt9OKvyZ97IA,1325
33
- ccproxy/auth/manager.py,sha256=AHVK4iq3LvavZeSyAmON1ExVA3GLdphe2jO4VuMmImA,2425
34
- ccproxy/auth/models.py,sha256=z2mkTc-Av2trF3fnqoBEQ7IAfgq96pRGtbjdzrXSFUI,3709
35
- ccproxy/auth/oauth/__init__.py,sha256=PEymCot9_oIj2mKFIyfmIlznoKwoBuSKqfRvH9k_QR0,508
36
- ccproxy/auth/oauth/models.py,sha256=c1-egh1iIeOMEkyHNmvGJo0XlGcUJvuLF2gZARqjdfY,2035
37
- ccproxy/auth/oauth/routes.py,sha256=qTazFFsHGLbE6iIFUBE8CpSl7eRQtAx81V-ew3TaUU4,13643
38
- ccproxy/auth/oauth/storage.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- ccproxy/auth/storage/__init__.py,sha256=5thfvXhc8HGJblQWMiG6ZPl594RpbTGdAgyAlpAe1TI,324
40
- ccproxy/auth/storage/base.py,sha256=Gw20tabOKTwey6YrOm09Bxu-MYJuMIrQULLJT6RQ07E,1357
41
- ccproxy/auth/storage/json_file.py,sha256=3vOHHIuUrjEQVVMOWJS8GX3EHIvQYeaUuTnlhV7mHRU,5055
42
- ccproxy/auth/storage/keyring.py,sha256=GS9UZrLEXSZPwGxsik6MiDWRpZoStGs-8o30qE8T4kA,6022
43
- ccproxy/claude_sdk/__init__.py,sha256=HezOzX8RaTw5MTYXZu27aaQYLX9x7jrpjZuT1kwJoKc,404
44
- ccproxy/claude_sdk/client.py,sha256=L48FJdY3gDSrYXK88tbV5kH6z6HZsjLS_erqdN3OUFA,5500
45
- ccproxy/claude_sdk/converter.py,sha256=u0lHOfltVgcsOBNufsVJzV1CPaSQKMmz43joy5cK3lU,11327
46
- ccproxy/claude_sdk/options.py,sha256=uvfR_wD2TGUHEN0ar5OFTgLpwznACWOmr38ndN-8Q2Y,4398
47
- ccproxy/cli/__init__.py,sha256=_vISKEqzAsAYrTZ-j9ScxTUtFZp3RVRbIvGpCcu--SU,262
48
- ccproxy/cli/helpers.py,sha256=cEgEeXP5Qpqq7Jxqy7wagAkJH_w9jPhQACt00IzhDdQ,3874
49
- ccproxy/cli/main.py,sha256=TO9AyVC1NpXZOMgF1g6yWumqPURdHfeEk0W5yOON9Ac,2752
50
- ccproxy/cli/commands/__init__.py,sha256=p6X5WO6r7Lik5bAi7GCetEokvTMvRTygjHMHiQe3k3g,249
51
- ccproxy/cli/commands/auth.py,sha256=iyRHj0eJ0VpgAqoNUD_jQEOcLvemtBp_Q7oqrBIu-PU,20797
52
- ccproxy/cli/commands/permission.py,sha256=FTnthns3rwvMsiX6rXE1vL0pVmQ-hilcEAERb0StozA,3860
53
- ccproxy/cli/commands/serve.py,sha256=FpXkDja5HSUIf6E8Yzq8WbOeUw3sfWFvRPWhI0NvzJc,28294
54
- ccproxy/cli/commands/config/__init__.py,sha256=uX8VewtrMu5X8VAx5ym1slwNtlICDBEs3S1HfoFe5Qo,376
55
- ccproxy/cli/commands/config/commands.py,sha256=ukAr55NLFTg67f5czpjbuz_Ap_mwFIMIfMGHeXv_E5c,28917
56
- ccproxy/cli/commands/config/schema_commands.py,sha256=ZSuK_Q1bWp8WUOSbkuwKz_4TwrxkRsA6MOt_-y1eiVs,4218
57
- ccproxy/cli/docker/__init__.py,sha256=4x9QO8SF9aloJFs4xrUEhGcSmoosIYmjcMTk4-GnHBE,791
58
- ccproxy/cli/docker/adapter_factory.py,sha256=dbO_MGrrAsyF0DDZMKbrk4oMx2xAMZPihOAviF7D5zY,5022
59
- ccproxy/cli/docker/params.py,sha256=2Wjn2WW7Q839QItcLQWQRgFoR8lue3GfikVstBZjTmI,7438
60
- ccproxy/cli/options/__init__.py,sha256=OiToWXDNOXnO-fuPz2H5qXYwp9ht7uB12-4wxqner1Q,340
61
- ccproxy/cli/options/claude_options.py,sha256=uMWYPjF2LXTrd1UnfA9L7QxjP_6PnvXmbkuE6uD2JCg,3674
62
- ccproxy/cli/options/core_options.py,sha256=PGr3fLdPVzX4T6vbMIlpyV-NIiNgbrwX7N9EXe6FHCk,589
63
- ccproxy/cli/options/security_options.py,sha256=bSewHc7qldtM8Tsf4rtQ1iw4a8F4ITDnl5DB_2kQFAw,897
64
- ccproxy/cli/options/server_options.py,sha256=YsEk_siSdlbjSczeC_1HljzXjE4aK6Yh_JQCPOLYWbk,1722
65
- ccproxy/config/__init__.py,sha256=RVXg7sdADdX9-Z-67OYoNlQxby6UN9tThNtg_XzjZ1I,976
66
- ccproxy/config/auth.py,sha256=6TlJTUJuH4oydB50HK0oRyzKSgscGgjZXkI1RjB9XGY,4663
67
- ccproxy/config/claude.py,sha256=ToNj7a9F_XX6PRPnXI-31VjsZxFvtljGZG-J3jxBRfY,4249
68
- ccproxy/config/cors.py,sha256=eNxrNuPN7Ujh9_2fIWu6kmOIeYNuqn0NTuCsBYvctFM,2505
69
- ccproxy/config/discovery.py,sha256=6-exBQ5FU0z0H7ViNVYSSFPg8qKXtqQU6VDB8aTLJj8,2283
70
- ccproxy/config/docker_settings.py,sha256=MpJ2jqF-gMSA9LC15KYUX3CO68EAjDv8ETKwsbeHjLU,8413
71
- ccproxy/config/loader.py,sha256=gX9R6GY9zE733VUIV-4ofPivgR4aftYxgqat5RXPPz4,3152
72
- ccproxy/config/observability.py,sha256=5AwQFEFxJLUStGP5gjL_5i8Hk8KdrXKY7ocITYg8jZQ,5466
73
- ccproxy/config/pricing.py,sha256=RzsNQHYmv5P-BcRDV4GSkSIDImFIFEEC7roFu5jeocE,2613
74
- ccproxy/config/reverse_proxy.py,sha256=hep4ubV7-4ZgdO1_WqY56b5yrYyHCdQgYayUHKH3tfo,866
75
- ccproxy/config/scheduler.py,sha256=7WOMJff-e_cHR72PvoJRc3w_Fu_9zPTItPr7vZIaYwM,2498
76
- ccproxy/config/security.py,sha256=8e8o2OsYgaOKpZoBcA4qqIcYp3NHYIR0QfM1HNUxvxg,330
77
- ccproxy/config/server.py,sha256=L42FUX8uEdVYP-3VP74lfTGVkzQgsv6PEOopEfHDb0U,2317
78
- ccproxy/config/settings.py,sha256=5lNv0IovU6yE7SuHe_o_z43iwwvn_eA0icm7uNGR-rQ,17687
79
- ccproxy/config/validators.py,sha256=A1AIwQnpuC-FSDaZDYisgx5RgHRS9pHs1feuKQKQKrk,5771
80
- ccproxy/core/__init__.py,sha256=ZreOdlUlCn7R5GlS3EdpvIj5fO9sySbQKnuR8o6vwXI,6400
81
- ccproxy/core/async_utils.py,sha256=tWsOXYtCC_zYSzYtTFiu45wG2-1P_6RLNx4yDAkdfgg,19949
82
- ccproxy/core/constants.py,sha256=mmkcOfKNnvu3h5paZ6GL72ecAK4XdBI4tXlmgImGyzI,2735
83
- ccproxy/core/errors.py,sha256=05tTMlBwNS1AWihS0LFOCsevCjZcOPgSUoH8sGuecy0,7091
84
- ccproxy/core/http.py,sha256=pj3UM9TDL13_sU0ULGuA2wvVg58uxOCy-ib3zugjelo,9317
85
- ccproxy/core/http_transformers.py,sha256=kBu4H9tAeiyMAfSlybZnRuCAe_iL4dVxwI8HDEL5L3o,15663
86
- ccproxy/core/interfaces.py,sha256=WliYsGhdF3-CxfH8XSng0JVaWOhLgJZDAwiZT1gYLLg,6405
87
- ccproxy/core/logging.py,sha256=UuIjAHU21Sv1yljCfdYEdGiZP934ovOD3xvzlOG0MOI,6841
88
- ccproxy/core/middleware.py,sha256=ot6rr84h9lLlHhBol7rHBNpB-RWlCEumUcNlv-4thmk,3370
89
- ccproxy/core/proxy.py,sha256=lsJzNuUnxHN75h6d9TRRcYt2mQ03tZRHwH2a7vQpvIA,4625
90
- ccproxy/core/system.py,sha256=91rMtlRtY4yxSsnPV5qZJaXHNFzvcrRZ1nQwS4CwG68,1019
91
- ccproxy/core/transformers.py,sha256=uPT9PsV_moU4dMg6qlOyvnAomrFmT-rKBwmWtEFkkMA,7709
92
- ccproxy/core/types.py,sha256=sbaeSQtDSPeEFXqPuB1JbD8YyxpxhxJZCa-ec1EDwyE,3571
93
- ccproxy/core/validators.py,sha256=k2z71lz-zKhRdtx3tYgJllqFnEcQ-eivj1kf3aVej0s,7367
94
- ccproxy/docker/__init__.py,sha256=gO9FJepIWneXPANgsAJKx_VL9rt7pcX3hbRcwnSyzJk,1833
95
- ccproxy/docker/adapter.py,sha256=P-GeLVu5hl4oMHQrQJU3AHnUxrps-iUd06r7IVnncoY,21176
96
- ccproxy/docker/docker_path.py,sha256=U_Di1bJDxDZNHW0cxGL31PD6RGKS9Sngs6_D7burmd0,6419
97
- ccproxy/docker/middleware.py,sha256=hFSvTf77zrOWTH_T3lAk_O7jNSnYDPV_YQoQ82deBsM,3282
98
- ccproxy/docker/models.py,sha256=RdgHpb4Oyzh19RfWZn-R61OX2R7c1cwAh5ZT7-egJuQ,7500
99
- ccproxy/docker/protocol.py,sha256=4asLeKpP1Su9HzEQVm_AIdMa1nzWMuGpuJ2BHPEkEVA,6561
100
- ccproxy/docker/stream_process.py,sha256=XahXegGG6B-7RsZAb9J8OA7sz7xi8CmRzEI4vBJLwTI,9071
101
- ccproxy/docker/validators.py,sha256=OY-dkU88CLIeMBfv4P5QoVB7miQ8BD7kIgaMHxF7TsU,5764
102
- ccproxy/models/__init__.py,sha256=XOkiHVzKuMSL8v0NNdL4WxBKrgeItnCeu9p9yYphQkY,2568
103
- ccproxy/models/errors.py,sha256=B2rbL-17ZI9emDOca2A2fLOcH1-_77t_xqDmiPf6fgY,1329
104
- ccproxy/models/messages.py,sha256=-Zz9E6FFQkvlBq7ldbTl6KTIMCkx5vm2x-bg8CcIeXM,7743
105
- ccproxy/models/requests.py,sha256=bhpxN19rvV5gyZPQxriFotJ9rwtMaZF9astMT4qnMz0,2766
106
- ccproxy/models/responses.py,sha256=PPZ1ajF8Z9anPbY04krxPnFmj-9lAEEsPgSbaoJePOc,7044
107
- ccproxy/models/types.py,sha256=27MUg7pVGrK5oWzcrtG_IAoScEcrF20thO94bxZXQww,2729
108
- ccproxy/observability/__init__.py,sha256=5n9yQBbMLAQVAEJZD-2t4CKfI0Wx2aoDH7d2ynPM4bg,1503
109
- ccproxy/observability/access_logger.py,sha256=hhP-dgWPmbFhviPqJhrb7AlRcvfF1uONbKlqzDvAvAI,13120
110
- ccproxy/observability/context.py,sha256=VOFLP_OUDvPeIX45l-hbnbRXBLM1Hr9g0Prb2FSTIA0,13969
111
- ccproxy/observability/metrics.py,sha256=iVEkAWMXsnWjlAacFcMhl_cVBb5OQTt0f_UzQZ7jpCA,16197
112
- ccproxy/observability/pushgateway.py,sha256=TlaVhqhzvL4kTeNsnoTfPYMvs1yD5-v0xkhrB2nTVsw,12737
113
- ccproxy/observability/sse_events.py,sha256=CVumUxVlXV5tpqVozymaLW4pBTEM90KBYWS9jAJ6Dzk,10697
114
- ccproxy/observability/stats_printer.py,sha256=_-VU86UbnJHJMWJgEulKcazJRlF_s3LFw2jocPNrknE,30207
115
- ccproxy/observability/storage/__init__.py,sha256=iAnhODA2PD3PxheoRgJv5KFCTUK_QwxxFa2Ne230RTg,47
116
- ccproxy/observability/storage/duckdb_simple.py,sha256=kQXJhcc8tWtnGXIZkHtia_4CU1oLlehdCl7sBvzQT-w,24799
117
- ccproxy/observability/storage/models.py,sha256=njN-sY0kQZICo0um25JwQ8JBplDsPZwitG1wSwO-QJM,1451
118
- ccproxy/pricing/__init__.py,sha256=8EKUTusWT_URBO8_jzHQ2JWIv11JYZxiyk1WoA_slHE,450
119
- ccproxy/pricing/cache.py,sha256=UBr4iTS3220VAunVmyOp_pJpKJRn6eij2GZO42XJHps,6531
120
- ccproxy/pricing/loader.py,sha256=b7rdYjMkWp4ImQBQBqq6h0Pp7yAHZWgh5IlzKpnriuU,9486
121
- ccproxy/pricing/models.py,sha256=Sl4rQJyQ9x_-UqGzXItomnURtAGAWtLUHdTdjRKW6pM,3572
122
- ccproxy/pricing/updater.py,sha256=RFhofp5m4CUc4huEyg5d4a3JRXg52kDsRnm7-IxvQXs,10200
123
- ccproxy/scheduler/__init__.py,sha256=6eEXMl8B3l69-O4OCwIYeL_DPGV59TJ9n2Q330hyh5g,1139
124
- ccproxy/scheduler/core.py,sha256=TCBn8DLzPjd6juLUYF3zKmBzw4HVm37zNy01kpOshzM,10343
125
- ccproxy/scheduler/exceptions.py,sha256=k7dcid0_te7IwwQaad-Jkj7MWFBgIOdgD_y_n5joio0,817
126
- ccproxy/scheduler/manager.py,sha256=WXREf7nCUqINk5rv--l-xFiecH_qddBfXHe4BhYKDVw,5793
127
- ccproxy/scheduler/registry.py,sha256=E2636J1Pj5G9cqr3UZO4D8hVCzt3cMd8rkanvXLF72M,4062
128
- ccproxy/scheduler/tasks.py,sha256=y6FdhkXg7Irgf5CAqXAWlR5j2viZQKuRuG3ydtWpKdc,16058
129
- ccproxy/services/__init__.py,sha256=ZvnelD15eFLlWHsucYXBFGNrdT7ncdP1KLnqzJNGOCs,251
130
- ccproxy/services/claude_sdk_service.py,sha256=6lqygBZvLmRNJgfOgZFZaeKcIUDskiclUCFsKEdbUqU,22277
131
- ccproxy/services/proxy_service.py,sha256=OPZRgq-jgq2pP3ZuOZ6VjSBv-mxgSZa5bcCsgPYTAwU,59244
132
- ccproxy/services/credentials/__init__.py,sha256=fkCWqxlUyGVA1mxGicn4cvdbYJQo09SG9NoGKzUun3s,1394
133
- ccproxy/services/credentials/config.py,sha256=97W3GqtxZlBv45oDHJ-plsHiSeFvNI-FTMZEw4CsPes,3221
134
- ccproxy/services/credentials/manager.py,sha256=p7yLb3nO34nh2yVb3HIFrwDEM2RQE4ym-GKW8tkaZj4,19971
135
- ccproxy/services/credentials/oauth_client.py,sha256=ldnRl1XQsKEVGiOYc2gI8br92CEY9jBCoPeaJCaZS7M,16605
136
- ccproxy/static/.keep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
- ccproxy/testing/__init__.py,sha256=-W01VLA1RfopmwVaeWH32gstERNsjFcNIIynZjZjzls,1071
138
- ccproxy/testing/config.py,sha256=TQLEYHCwdyXzlnk5xQOjIUD0cef5QfWd70nAZG0g_xY,4875
139
- ccproxy/testing/content_generation.py,sha256=in2F_W1RSnQYKXYCavMrYXPLBrqVn_Bogx84oF242iY,8585
140
- ccproxy/testing/mock_responses.py,sha256=bskAbk2YecbpAoOCVrP4LCkO-lQhspwhAlpC2pXdypY,9212
141
- ccproxy/testing/response_handlers.py,sha256=TSfBHzHLw8d3Y95zJ8wYewU9f5Wh89bl7DRfa-49ze0,6311
142
- ccproxy/testing/scenarios.py,sha256=lVTkf1TbqPnWAfY2VbXez6dSFHsohuXerDmh37iC5VU,9200
143
- ccproxy/utils/__init__.py,sha256=MBEWNgdZh4Ev-LcltUhkMBboR1QHYNeri3oOy1KQeDo,213
144
- ccproxy/utils/cost_calculator.py,sha256=mHquyA_1vnPVZ2smjdPwThCJtGu-rF9n8ZvIrAwTF78,7276
145
- ccproxy/utils/streaming_metrics.py,sha256=JkvmWJ9s1fuKi7x1NoSoderUuT-mU6MQfbnN5GmziYE,7761
146
- ccproxy_api-0.1.2.dist-info/METADATA,sha256=mb6SGhFGTP38JayodrZMZHoZX4gN_KHFiitHMPFJ1v8,9793
147
- ccproxy_api-0.1.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
148
- ccproxy_api-0.1.2.dist-info/entry_points.txt,sha256=XLke7uRmx6c1G3Ejnvm74x_eTKKtCgRRSk1dXIBFyg4,128
149
- ccproxy_api-0.1.2.dist-info/licenses/LICENSE,sha256=httxSCpTrEOkipisMeGXSrZhTB-4MRIorQU0hS1B6eQ,1066
150
- ccproxy_api-0.1.2.dist-info/RECORD,,
File without changes