openai-sdk-helpers 0.1.0__py3-none-any.whl → 0.1.1__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 (38) hide show
  1. openai_sdk_helpers/__init__.py +41 -7
  2. openai_sdk_helpers/agent/base.py +5 -1
  3. openai_sdk_helpers/agent/coordination.py +4 -5
  4. openai_sdk_helpers/agent/runner.py +4 -1
  5. openai_sdk_helpers/agent/search/base.py +1 -0
  6. openai_sdk_helpers/agent/search/vector.py +2 -0
  7. openai_sdk_helpers/cli.py +265 -0
  8. openai_sdk_helpers/config.py +93 -2
  9. openai_sdk_helpers/context_manager.py +1 -1
  10. openai_sdk_helpers/deprecation.py +167 -0
  11. openai_sdk_helpers/environment.py +3 -2
  12. openai_sdk_helpers/errors.py +0 -12
  13. openai_sdk_helpers/logging_config.py +24 -95
  14. openai_sdk_helpers/prompt/base.py +1 -1
  15. openai_sdk_helpers/response/base.py +84 -115
  16. openai_sdk_helpers/response/messages.py +1 -0
  17. openai_sdk_helpers/retry.py +1 -1
  18. openai_sdk_helpers/streamlit_app/app.py +14 -3
  19. openai_sdk_helpers/streamlit_app/streamlit_web_search.py +15 -8
  20. openai_sdk_helpers/structure/base.py +6 -6
  21. openai_sdk_helpers/structure/plan/helpers.py +1 -0
  22. openai_sdk_helpers/structure/plan/task.py +7 -7
  23. openai_sdk_helpers/tools.py +116 -13
  24. openai_sdk_helpers/utils/__init__.py +82 -35
  25. openai_sdk_helpers/{async_utils.py → utils/async_utils.py} +5 -6
  26. openai_sdk_helpers/utils/coercion.py +138 -0
  27. openai_sdk_helpers/utils/deprecation.py +167 -0
  28. openai_sdk_helpers/utils/json_utils.py +98 -0
  29. openai_sdk_helpers/utils/output_validation.py +448 -0
  30. openai_sdk_helpers/utils/path_utils.py +46 -0
  31. openai_sdk_helpers/{validation.py → utils/validation.py} +7 -3
  32. openai_sdk_helpers/vector_storage/storage.py +9 -6
  33. {openai_sdk_helpers-0.1.0.dist-info → openai_sdk_helpers-0.1.1.dist-info}/METADATA +59 -3
  34. {openai_sdk_helpers-0.1.0.dist-info → openai_sdk_helpers-0.1.1.dist-info}/RECORD +37 -30
  35. openai_sdk_helpers-0.1.1.dist-info/entry_points.txt +2 -0
  36. openai_sdk_helpers/utils/core.py +0 -596
  37. {openai_sdk_helpers-0.1.0.dist-info → openai_sdk_helpers-0.1.1.dist-info}/WHEEL +0 -0
  38. {openai_sdk_helpers-0.1.0.dist-info → openai_sdk_helpers-0.1.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,14 +1,24 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openai-sdk-helpers
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Composable helpers for OpenAI SDK agents, prompts, and storage
5
5
  Author: openai-sdk-helpers maintainers
6
6
  License: MIT
7
7
  License-File: LICENSE
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
+ Classifier: Typing :: Typed
8
18
  Requires-Python: >=3.10
9
19
  Requires-Dist: jinja2
10
- Requires-Dist: openai
11
- Requires-Dist: openai-agents
20
+ Requires-Dist: openai-agents<1.0.0,>=0.6.4
21
+ Requires-Dist: openai<3.0.0,>=2.14.0
12
22
  Requires-Dist: pydantic<3,>=2.7
13
23
  Requires-Dist: python-dotenv
14
24
  Requires-Dist: streamlit
@@ -90,6 +100,26 @@ The `agent` module provides a higher-level abstraction for building agents, whil
90
100
  - **Tool execution framework** with custom handlers and structured outputs
91
101
  - **Session persistence** for saving and restoring conversation history
92
102
 
103
+ #### Infrastructure & Utilities
104
+ - **Centralized logger factory** for consistent application logging
105
+ - **Retry patterns** with exponential backoff and jitter
106
+ - **Output validation** framework with JSON schema, semantic, and length validators
107
+ - **CLI tool** for testing agents, validating templates, and inspecting registries
108
+ - **Deprecation utilities** for managing API changes
109
+
110
+ #### Shared Components
111
+ - **Typed structures** using Pydantic for prompts, responses, and search workflows
112
+ to ensure predictable inputs and outputs
113
+ - **OpenAI configuration management** with environment variable and `.env` file support
114
+ - **Vector storage abstraction** for seamless integration with OpenAI vector stores
115
+ - **Type-safe interfaces** with full type hints and `py.typed` marker for external projects
116
+ - **ValidatorAgent**: Check inputs and outputs against safety guardrails
117
+
118
+ #### Response Module (Built on `openai` SDK)
119
+ - **Response handling utilities** for direct API control with fine-grained message management
120
+ - **Tool execution framework** with custom handlers and structured outputs
121
+ - **Session persistence** for saving and restoring conversation history
122
+
93
123
  #### Shared Components
94
124
  - **Typed structures** using Pydantic for prompts, responses, and search workflows
95
125
  to ensure predictable inputs and outputs
@@ -502,6 +532,31 @@ See `AGENTS.md` for detailed contributing guidelines and conventions.
502
532
  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
503
533
  for details.
504
534
 
535
+ ## CLI Tool
536
+
537
+ The package includes a command-line tool for development and testing:
538
+
539
+ ```bash
540
+ # List all registered response configurations
541
+ openai-helpers registry list
542
+
543
+ # Inspect a specific configuration
544
+ openai-helpers registry inspect my_config
545
+
546
+ # Validate Jinja2 templates
547
+ openai-helpers template validate ./templates
548
+
549
+ # Test an agent (coming soon)
550
+ openai-helpers agent test MyAgent --input "test input"
551
+ ```
552
+
553
+ ### CLI Commands
554
+
555
+ - **registry list** - Show all registered response configurations
556
+ - **registry inspect** - Display details of a configuration
557
+ - **template validate** - Check template syntax and structure
558
+ - **agent test** - Test agents locally with sample inputs
559
+
505
560
  ## Troubleshooting
506
561
 
507
562
  ### Common Issues
@@ -523,6 +578,7 @@ OPENAI_API_KEY=your-api-key-here
523
578
  Vector search workflows require custom prompt templates. Either:
524
579
  1. Create the required `.jinja` files in your `prompt_dir`
525
580
  2. Omit the `prompt_dir` parameter to use built-in defaults (for text agents only)
581
+ 3. Use the CLI to validate templates: `openai-helpers template validate ./templates`
526
582
 
527
583
  **Import errors after installation**
528
584
 
@@ -1,50 +1,50 @@
1
- openai_sdk_helpers/__init__.py,sha256=yFWF1rBF8-mCVPK-_PfiCaBMIVl_NGvJb4wySXWenhg,3765
2
- openai_sdk_helpers/async_utils.py,sha256=_GPiSDQhWehiZu2S_jB_Xgl0p2qGc5MNu1NN92zz3bg,3726
3
- openai_sdk_helpers/config.py,sha256=841YGiUu7hvFrB2Bdr6ck4YKCtb2HRI0Uhk6HKpIqAc,7640
4
- openai_sdk_helpers/context_manager.py,sha256=9z54rjcJ-nAFdEoZHjFdk1YYpeD9bet13MOgn23FzM8,6629
5
- openai_sdk_helpers/environment.py,sha256=HSPI1h1JUuMxzcTSvr28ktHBvyEJLRzL4bZhNfy59lI,1372
6
- openai_sdk_helpers/errors.py,sha256=oytqn-6Jg6nPMQOP956ftfkLS0R5c1XBDX-lNstrb3Y,3135
7
- openai_sdk_helpers/logging_config.py,sha256=fOKBgisOkM0VYDt68pmUSxVWzTeO25_u-El0HOxqEYM,2928
1
+ openai_sdk_helpers/__init__.py,sha256=7UoioqeijT413TbjSjiAl64vKgJcQkY067OEpSDTdbU,4532
2
+ openai_sdk_helpers/cli.py,sha256=J62XKPkGgYzYHKHfnkFy53Dp4rvBXf9cPEl1hrev3ZU,7400
3
+ openai_sdk_helpers/config.py,sha256=pjBzjYM9Fs4DQqwio387lBt_4IwWKct_VNZBSe-bMqg,10972
4
+ openai_sdk_helpers/context_manager.py,sha256=QqlrtenwKoz2krY0IzuToKdTX1HptUYtIEylxieybgY,6633
5
+ openai_sdk_helpers/deprecation.py,sha256=VF0VDDegawYhsu5f-vE6dop9ob-jv8egxsm0KsPvP9E,4753
6
+ openai_sdk_helpers/environment.py,sha256=RBYpRFamclaom07msipJ7jnnPkfVqjl1PRhDE5phZdg,1401
7
+ openai_sdk_helpers/errors.py,sha256=0TLrcpRXPBvk2KlrU5I1VAQl-sYy-d15h_SMDkEawvI,2757
8
+ openai_sdk_helpers/logging_config.py,sha256=JcR0FTWht1tYdwD-bXH835pr0JV0RwHfY3poruiZGHM,795
8
9
  openai_sdk_helpers/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- openai_sdk_helpers/retry.py,sha256=3I5cZOq5X6d7kno3fk1SVDYJ7U2VDHqBS7ZsaXWbU6A,6529
10
- openai_sdk_helpers/tools.py,sha256=MW6bdJH9Ij16LKNCNNvSthq206T-orTOQTLFzLWxQTo,6043
10
+ openai_sdk_helpers/retry.py,sha256=J10oQYphfzDXm3BnLoXwxk7PAhN93TC2LQOv0VDGOwI,6533
11
+ openai_sdk_helpers/tools.py,sha256=C2xl0euovFyrDVh0qf1pEyuaicmrTmoZcJu9CxCKqic,9534
11
12
  openai_sdk_helpers/types.py,sha256=xzldCRfwCZ3rZl18IBmfgA-PVdoZKSWNrlSIhirumSo,1451
12
- openai_sdk_helpers/validation.py,sha256=fr3zVZ7uEokJJqF3LSIcQm4wV3MvWXcep2ZRpseXZBk,7789
13
13
  openai_sdk_helpers/agent/__init__.py,sha256=giowU8jke0z0h7FFUG9V6Vssja8AYwvJMQbiMb3s64k,960
14
- openai_sdk_helpers/agent/base.py,sha256=CKHfcUsBc8Hd5UAKehHw6E3GVEs7VasZZ0M8WrWJPv4,11737
14
+ openai_sdk_helpers/agent/base.py,sha256=8ZkW57vL8_fYzuLr6f9kMvBChYq5lN5vQ8MMJtcWD9s,11784
15
15
  openai_sdk_helpers/agent/config.py,sha256=htqy5bcrJeMf3rIpRdL9CKlYwyQI4po420rcgR3i8XI,1971
16
- openai_sdk_helpers/agent/coordination.py,sha256=00iJPHZvpLEDRDeon_HRQPEHdyQnEk4NTjAj9VgkqVI,16204
16
+ openai_sdk_helpers/agent/coordination.py,sha256=knhQtOyQGGkqKb6Q-pWSRwrVW0qJcVvxelinIctNs-A,16152
17
17
  openai_sdk_helpers/agent/prompt_utils.py,sha256=-1M66tqQxh9wWCFg6X-K7cCcqauca3yA04ZjvOpN3bA,337
18
- openai_sdk_helpers/agent/runner.py,sha256=XRa17OV8f0G8--6qyUFw6BwJSHBNe_Yx8DFajxVYFxA,4137
18
+ openai_sdk_helpers/agent/runner.py,sha256=1_azIWx1Bcy7RRlEbizTD0LXBdYgof_tYMpDUcnJJuM,4164
19
19
  openai_sdk_helpers/agent/summarizer.py,sha256=fH8AnYK_68ERf2U7mv0nwXL8KyhrluE-TDY_M5TCdD0,3266
20
20
  openai_sdk_helpers/agent/translator.py,sha256=GhUuwFTBecgOO9pMQ41VPvK9mTub5DXJ_7BIS9Xp7bs,5082
21
21
  openai_sdk_helpers/agent/utils.py,sha256=DTD5foCqGYfXf13F2bZMYIQROl7SbDSy5GDPGi0Zl-0,1089
22
22
  openai_sdk_helpers/agent/validation.py,sha256=JIYVhBTTs0tTxYyzYgY3BHC-9psyzE3LLQDZDqpg13M,4191
23
23
  openai_sdk_helpers/agent/search/__init__.py,sha256=xqosfzH4HcBs9IFZks9msG_694rS5q6Ea4_qNeRQRmU,798
24
- openai_sdk_helpers/agent/search/base.py,sha256=05ERHgNqUrG7bs0zrtFgDps_m_dq1b_Hr1W1aSWm5BM,8602
25
- openai_sdk_helpers/agent/search/vector.py,sha256=ebIRPFusLJa5SfwV4Ush_8eoLVMlH0OsOFi_dCFXF0M,13600
24
+ openai_sdk_helpers/agent/search/base.py,sha256=EP4WCIC-IItToTFVRVpg1pj1PC5QtqheIiK1l087yRg,8613
25
+ openai_sdk_helpers/agent/search/vector.py,sha256=xMWhuRQENdWfLN1NTBzEjMfq1WsaGS6yn70-Xq9oFj4,13622
26
26
  openai_sdk_helpers/agent/search/web.py,sha256=8le4xnZ3nllySqWb7rZaOq44ZR8q67c_WiE57ncmL90,10014
27
27
  openai_sdk_helpers/enums/__init__.py,sha256=aFf79C4JBeLC3kMlJfSpehyjx5uNCtW6eK5rD6ZFfhM,322
28
28
  openai_sdk_helpers/enums/base.py,sha256=cNllDtzcgI0_eZYXxFko14yhxwicX6xbeDfz9gFE3qo,2753
29
29
  openai_sdk_helpers/prompt/__init__.py,sha256=MOqgKwG9KLqKudoKRlUfLxiSmdOi2aD6hNrWDFqLHkk,418
30
- openai_sdk_helpers/prompt/base.py,sha256=FvQNEjIdYDLvGEiR9_dbEn6G47TPMsWm4r26jcLjgus,7569
30
+ openai_sdk_helpers/prompt/base.py,sha256=o-O5S-et4mE30_LkFPzL3o67Z_3KrLFG55gQDlL4vqE,7575
31
31
  openai_sdk_helpers/prompt/summarizer.jinja,sha256=jliSetWDISbql1EkWi1RB8-L_BXUg8JMkRRsPRHuzbY,309
32
32
  openai_sdk_helpers/prompt/translator.jinja,sha256=SZhW8ipEzM-9IA4wyS_r2wIMTAclWrilmk1s46njoL0,291
33
33
  openai_sdk_helpers/prompt/validator.jinja,sha256=6t8q_IdxFd3mVBGX6SFKNOert1Wo3YpTOji2SNEbbtE,547
34
34
  openai_sdk_helpers/response/__init__.py,sha256=eoQF086o3OZYmVfJWXhSpYlPhQBb-VLDA5hvw7guLEc,1741
35
- openai_sdk_helpers/response/base.py,sha256=-d-vvY4OId_MU6EAN55bBPEftnskw9Ry8TVQ705f9Xw,27965
35
+ openai_sdk_helpers/response/base.py,sha256=zxQQRKmmpzYPmw0aqIgwKry713gYmMLkA8jhSKIoyHY,26207
36
36
  openai_sdk_helpers/response/config.py,sha256=WheEWkTxNFHL54_yvFY3M0LclNmajwTiMftSFeAH2eI,10300
37
- openai_sdk_helpers/response/messages.py,sha256=oVSHpSV_iQxHreCXm--a6MlHg_kkElQi3R2Y8Y7VphA,9134
37
+ openai_sdk_helpers/response/messages.py,sha256=G4V8a9gis4b8wFW5XnvBE0AHMX0FrkOzqiQ6FxigpnU,9145
38
38
  openai_sdk_helpers/response/runner.py,sha256=Rf13cQGsR7sN9gA81Y5th1tfH2DCCAwQ6RMs3bVgjnk,4269
39
39
  openai_sdk_helpers/response/tool_call.py,sha256=VYPvKUR-Ren0Y_nYS4jUSinhTyXKzFwQLxu-d3r_YuM,4506
40
40
  openai_sdk_helpers/response/vector_store.py,sha256=MyHUu6P9ueNsd9erbBkyVqq3stLK6qVuehdvmFAHq9E,3074
41
41
  openai_sdk_helpers/streamlit_app/__init__.py,sha256=RjJbnBDS5_YmAmxvaa3phB5u9UcXsXDEk_jMlY_pa5Q,793
42
- openai_sdk_helpers/streamlit_app/app.py,sha256=ID3B4fUQHvv1Cwuuvrlm4nK4d0nWL6uBE40O_T6r7yY,10808
42
+ openai_sdk_helpers/streamlit_app/app.py,sha256=MBMtzZk3ywEccLHfy3K--pmKNGTBHw_PpQjIBeXzqtI,11099
43
43
  openai_sdk_helpers/streamlit_app/config.py,sha256=EK6LWACo7YIkDko1oesvupOx56cTuWWnwnXRiu8EYbs,15986
44
- openai_sdk_helpers/streamlit_app/streamlit_web_search.py,sha256=OrX-kgW_yaHgIsK6wY9gBVLbvDaMFXgkgdhKQDsA8kQ,2506
44
+ openai_sdk_helpers/streamlit_app/streamlit_web_search.py,sha256=0RjB545dIvEeZiiLWM7C4CufbD3DITOWLZEVgxAL6mo,2812
45
45
  openai_sdk_helpers/structure/__init__.py,sha256=QUvRdJMbKsumjwJdWq9ihfcOED4ZbJMBQbmA1nmYJVw,3339
46
46
  openai_sdk_helpers/structure/agent_blueprint.py,sha256=2W-RBM5G3ZefMcYHqqoV6Y1witcSbMlUpdU1CA9n3tg,9698
47
- openai_sdk_helpers/structure/base.py,sha256=7RMsCMjQR7u3mksirqd0E6AgCgWEMVRQtgNefwHWPGo,28278
47
+ openai_sdk_helpers/structure/base.py,sha256=i937ZjMqTcdFd8UQXcA1sv-Lz1WJZlweGd-qLdD8TQE,28322
48
48
  openai_sdk_helpers/structure/prompt.py,sha256=7DBdLu6WDvXy2RkEBayDiX2Jn8T4-hJuohsOaKEoqJs,1075
49
49
  openai_sdk_helpers/structure/responses.py,sha256=iYJBT_4VFifzQqPnTpRWTcB0o7xkhPIQ2ugedivrpto,4868
50
50
  openai_sdk_helpers/structure/summary.py,sha256=MyZzMuqHP9F8B4rYYxCGJwojy5RavWUkMiRZ6yMQzvU,3143
@@ -53,17 +53,24 @@ openai_sdk_helpers/structure/vector_search.py,sha256=A0w2AR0r6aIFoYbNkscUAGT7VzT
53
53
  openai_sdk_helpers/structure/web_search.py,sha256=S8OdllBWqEGXaKf6Alocl89ZuG7BlvXK5ra1Lm7lfjE,4572
54
54
  openai_sdk_helpers/structure/plan/__init__.py,sha256=IGr0Tk4inN_8o7fT2N02_FTi6U6l2T9_npcQHAlBwKA,1076
55
55
  openai_sdk_helpers/structure/plan/enum.py,sha256=seESSwH-IeeW-9BqIMUQyk3qjtchfU3TDhF9HPDB1OM,3079
56
- openai_sdk_helpers/structure/plan/helpers.py,sha256=25qXUMPY73y3E6EsE88n9VBwNj2JZkzXy1AaWGsoSLw,5132
56
+ openai_sdk_helpers/structure/plan/helpers.py,sha256=Vc6dBTMFrNWlsaCTpEImEIKjfFq4BSSxNjB4K8dywOQ,5139
57
57
  openai_sdk_helpers/structure/plan/plan.py,sha256=LtfwWwZiHGe06nFCXSbT8p3x3w9hhI0wXS7hTeeWXvY,9663
58
- openai_sdk_helpers/structure/plan/task.py,sha256=2dH8iaLhjC7MKZEW1T_HICaggi1RPyKSPOl9ORmmYdg,4538
58
+ openai_sdk_helpers/structure/plan/task.py,sha256=R2MInXiOWvs5zFGVOfAhVivRxXWTBp8NrmVpZ7aUmM8,4580
59
59
  openai_sdk_helpers/structure/plan/types.py,sha256=7y9QEVdZreQUXV7n-R4RoNZzw5HeOVbJGWx9QkSfuNY,418
60
- openai_sdk_helpers/utils/__init__.py,sha256=oNMc8xyOGmXLNIOjwC5EhN8Jjy_S74Vgwzzg41RNb4g,1566
61
- openai_sdk_helpers/utils/core.py,sha256=Ehm9WePZTl9ypbbKlHNiyRkhI4a5ZhbDwKiSJTNTgz8,17262
60
+ openai_sdk_helpers/utils/__init__.py,sha256=N4jHd0QXaqU7aDBYraRoXas-MG1_CKm8uU1HdPVDS_k,2875
61
+ openai_sdk_helpers/utils/async_utils.py,sha256=9KbPEVfi6IXdbwkTUE0h5DleK8TI7I6P_VPL8UgUv98,3689
62
+ openai_sdk_helpers/utils/coercion.py,sha256=Pq1u7tAbD7kTZ84lK-7Fb9CyYKKKQt4fypG5BlSI6oQ,3774
63
+ openai_sdk_helpers/utils/deprecation.py,sha256=VF0VDDegawYhsu5f-vE6dop9ob-jv8egxsm0KsPvP9E,4753
64
+ openai_sdk_helpers/utils/json_utils.py,sha256=dpv0IPZp4WKL7HsDAQY2za820ukn0cre6kAv-pYw7P0,3141
65
+ openai_sdk_helpers/utils/output_validation.py,sha256=O9Adt-fxL5DtnMd1GuZ9E2YxX3yj4uzSZuBNKVH2GkI,12152
66
+ openai_sdk_helpers/utils/path_utils.py,sha256=qGGDpuDnY5EODOACzH23MYECQOE2rKhrQ3sbDvefwEg,1307
67
+ openai_sdk_helpers/utils/validation.py,sha256=ZjnZNOy5AoFlszRxarNol6YZwfgw6LnwPtkCekZmwAU,7826
62
68
  openai_sdk_helpers/vector_storage/__init__.py,sha256=L5LxO09puh9_yBB9IDTvc1CvVkARVkHqYY1KX3inB4c,975
63
69
  openai_sdk_helpers/vector_storage/cleanup.py,sha256=ImWIE-9lli-odD8qIARvmeaa0y8ZD4pYYP-kT0O3178,3552
64
- openai_sdk_helpers/vector_storage/storage.py,sha256=ZiTZnvCY28R-WUQjHdnjQo1xIRbXAM6JL0VhqW9MM9I,21725
70
+ openai_sdk_helpers/vector_storage/storage.py,sha256=pRUPssHH_o-ydijGW8U9XC2Lu06HEO0KnrNd3X9_Qc0,21807
65
71
  openai_sdk_helpers/vector_storage/types.py,sha256=jTCcOYMeOpZWvcse0z4T3MVs-RBOPC-fqWTBeQrgafU,1639
66
- openai_sdk_helpers-0.1.0.dist-info/METADATA,sha256=R-Lc44fSOhAohVtwOAVW_pg3_GMHfYW5ve3bwZlIETE,18492
67
- openai_sdk_helpers-0.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
68
- openai_sdk_helpers-0.1.0.dist-info/licenses/LICENSE,sha256=CUhc1NrE50bs45tcXF7OcTQBKEvkUuLqeOHgrWQ5jaA,1067
69
- openai_sdk_helpers-0.1.0.dist-info/RECORD,,
72
+ openai_sdk_helpers-0.1.1.dist-info/METADATA,sha256=tFCRcJgKKEpRRDYFVYUSHwJ7GBKVtnK2h7x8MzopFMU,20927
73
+ openai_sdk_helpers-0.1.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
74
+ openai_sdk_helpers-0.1.1.dist-info/entry_points.txt,sha256=gEOD1ZeXe8d2OP-KzUlG-b_9D9yUZTCt-GFW3EDbIIY,63
75
+ openai_sdk_helpers-0.1.1.dist-info/licenses/LICENSE,sha256=CUhc1NrE50bs45tcXF7OcTQBKEvkUuLqeOHgrWQ5jaA,1067
76
+ openai_sdk_helpers-0.1.1.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ openai-helpers = openai_sdk_helpers.cli:main