openai-sdk-helpers 0.0.2__tar.gz → 0.0.3__tar.gz
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.
- {openai_sdk_helpers-0.0.2 → openai_sdk_helpers-0.0.3}/PKG-INFO +57 -4
- {openai_sdk_helpers-0.0.2 → openai_sdk_helpers-0.0.3}/README.md +56 -3
- {openai_sdk_helpers-0.0.2 → openai_sdk_helpers-0.0.3}/pyproject.toml +7 -1
- openai_sdk_helpers-0.0.3/src/openai_sdk_helpers/prompt/summarizer.jinja +7 -0
- openai_sdk_helpers-0.0.3/src/openai_sdk_helpers/prompt/translator.jinja +7 -0
- openai_sdk_helpers-0.0.3/src/openai_sdk_helpers/prompt/validator.jinja +7 -0
- openai_sdk_helpers-0.0.3/src/openai_sdk_helpers/py.typed +0 -0
- openai_sdk_helpers-0.0.2/.github/dependabot.yml +0 -10
- openai_sdk_helpers-0.0.2/.github/workflows/ci.yml +0 -44
- openai_sdk_helpers-0.0.2/.github/workflows/python-publish.yml +0 -39
- openai_sdk_helpers-0.0.2/AGENTS.md +0 -82
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/__init__.py +0 -34
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/agent/__init__.py +0 -23
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/agent/base.py +0 -432
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/agent/config.py +0 -66
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/agent/project_manager.py +0 -416
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/agent/runner.py +0 -117
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/agent/utils.py +0 -47
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/agent/vector_search.py +0 -418
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/agent/web_search.py +0 -404
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/config.py +0 -141
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/enums/__init__.py +0 -7
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/enums/base.py +0 -17
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/environment.py +0 -27
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/prompt/__init__.py +0 -77
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/response/__init__.py +0 -16
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/response/base.py +0 -477
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/response/messages.py +0 -211
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/response/runner.py +0 -42
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/response/tool_call.py +0 -70
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/structure/__init__.py +0 -57
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/structure/base.py +0 -591
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/structure/plan/__init__.py +0 -13
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/structure/plan/enum.py +0 -48
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/structure/plan/plan.py +0 -104
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/structure/plan/task.py +0 -122
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/structure/prompt.py +0 -24
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/structure/responses.py +0 -148
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/structure/summary.py +0 -65
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/structure/vector_search.py +0 -82
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/structure/web_search.py +0 -46
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/utils/__init__.py +0 -13
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/utils/core.py +0 -208
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/vector_storage/__init__.py +0 -15
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/vector_storage/cleanup.py +0 -91
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/vector_storage/storage.py +0 -501
- openai_sdk_helpers-0.0.2/src/openai_sdk_helpers/vector_storage/types.py +0 -58
- openai_sdk_helpers-0.0.2/tests/agent/test_agent_base.py +0 -116
- openai_sdk_helpers-0.0.2/tests/agent/test_agent_runner.py +0 -45
- openai_sdk_helpers-0.0.2/tests/agent/test_agent_utils.py +0 -27
- openai_sdk_helpers-0.0.2/tests/agent/test_project_manager.py +0 -159
- openai_sdk_helpers-0.0.2/tests/conftest.py +0 -12
- openai_sdk_helpers-0.0.2/tests/response/test_response_base.py +0 -31
- openai_sdk_helpers-0.0.2/tests/response/test_response_base_unit.py +0 -63
- openai_sdk_helpers-0.0.2/tests/structure/test_structure_base.py +0 -148
- openai_sdk_helpers-0.0.2/tests/test_config.py +0 -58
- openai_sdk_helpers-0.0.2/tests/test_imports.py +0 -21
- openai_sdk_helpers-0.0.2/tests/test_integration.py +0 -57
- openai_sdk_helpers-0.0.2/tests/test_prompt_renderer.py +0 -26
- openai_sdk_helpers-0.0.2/tests/test_utils.py +0 -108
- openai_sdk_helpers-0.0.2/tests/test_vector_types.py +0 -35
- openai_sdk_helpers-0.0.2/tests/vector_storage/test_cleanup.py +0 -116
- openai_sdk_helpers-0.0.2/tests/vector_storage/test_storage.py +0 -163
- openai_sdk_helpers-0.0.2/tests/vector_storage/test_vector_storage.py +0 -64
- {openai_sdk_helpers-0.0.2 → openai_sdk_helpers-0.0.3}/.gitignore +0 -0
- {openai_sdk_helpers-0.0.2 → openai_sdk_helpers-0.0.3}/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openai-sdk-helpers
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.3
|
|
4
4
|
Summary: Composable helpers for OpenAI SDK agents, prompts, and storage
|
|
5
5
|
Author: openai-sdk-helpers maintainers
|
|
6
6
|
License: MIT
|
|
@@ -39,6 +39,7 @@ application-specific prompts and tools to the consuming project.
|
|
|
39
39
|
predictable inputs and outputs.
|
|
40
40
|
- **Vector and web search flows** that coordinate planning, execution, and
|
|
41
41
|
reporting.
|
|
42
|
+
- **Reusable text agents** for summarization and translation tasks.
|
|
42
43
|
|
|
43
44
|
## Installation
|
|
44
45
|
|
|
@@ -48,6 +49,9 @@ Install the package directly from PyPI to reuse it across projects:
|
|
|
48
49
|
pip install openai-sdk-helpers
|
|
49
50
|
```
|
|
50
51
|
|
|
52
|
+
Type information ships with the published wheel via `py.typed`, so external
|
|
53
|
+
projects can rely on the bundled annotations without adding custom stubs.
|
|
54
|
+
|
|
51
55
|
For local development, install with editable sources and the optional dev
|
|
52
56
|
dependencies:
|
|
53
57
|
|
|
@@ -74,9 +78,39 @@ report = vector_search.run_agent_sync("Explain quantum entanglement for beginner
|
|
|
74
78
|
print(report.report)
|
|
75
79
|
```
|
|
76
80
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
81
|
+
### Text utilities
|
|
82
|
+
|
|
83
|
+
Use the built-in text helpers when you need lightweight single-step agents.
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
from openai_sdk_helpers.agent import (
|
|
87
|
+
SummarizerAgent,
|
|
88
|
+
TranslatorAgent,
|
|
89
|
+
ValidatorAgent,
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
summarizer = SummarizerAgent(default_model="gpt-4o-mini")
|
|
94
|
+
translator = TranslatorAgent(default_model="gpt-4o-mini")
|
|
95
|
+
validator = ValidatorAgent(default_model="gpt-4o-mini")
|
|
96
|
+
|
|
97
|
+
summary = summarizer.run_sync("Long-form content to condense")
|
|
98
|
+
translation = translator.run_sync("Bonjour", target_language="English")
|
|
99
|
+
guardrails = validator.run_sync(
|
|
100
|
+
"Share meeting notes with names removed", agent_output=summary.text
|
|
101
|
+
)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Prompt templates are optional for the built-in text helpers. They already ship
|
|
105
|
+
with defaults under `src/openai_sdk_helpers/prompt`, so you do **not** need to
|
|
106
|
+
create placeholder files when installing from PyPI. Only pass a `prompt_dir`
|
|
107
|
+
when you have real replacements you want to load.
|
|
108
|
+
|
|
109
|
+
The vector search workflow expects real prompts for each agent (for example,
|
|
110
|
+
`vector_planner.jinja`, `vector_search.jinja`, and `vector_writer.jinja`). If
|
|
111
|
+
you point `prompt_dir` at a folder that does not contain those files, agent
|
|
112
|
+
construction fails with a `FileNotFoundError`. Skip `prompt_dir` entirely unless
|
|
113
|
+
you have working templates ready.
|
|
80
114
|
|
|
81
115
|
### Centralized OpenAI configuration
|
|
82
116
|
|
|
@@ -129,6 +163,25 @@ pytest -q --cov=src --cov-report=term-missing --cov-fail-under=70
|
|
|
129
163
|
- `src/openai_sdk_helpers/vector_storage`: Minimal vector store abstraction.
|
|
130
164
|
- `tests/`: Unit tests covering core modules and structures.
|
|
131
165
|
|
|
166
|
+
## Key modules
|
|
167
|
+
|
|
168
|
+
The package centers around a handful of cohesive building blocks:
|
|
169
|
+
|
|
170
|
+
- `openai_sdk_helpers.agent.project_manager.ProjectManager` coordinates prompt
|
|
171
|
+
creation, plan building, task execution, and summarization while persisting
|
|
172
|
+
intermediate artifacts to disk.
|
|
173
|
+
- `openai_sdk_helpers.agent.vector_search.VectorSearch` bundles the planners,
|
|
174
|
+
executors, and summarizers required to run a multi-turn vector search flow
|
|
175
|
+
from a single entry point.
|
|
176
|
+
- `openai_sdk_helpers.agent.summarizer.SummarizerAgent`,
|
|
177
|
+
`agent.translator.TranslatorAgent`, and `agent.validator.ValidatorAgent`
|
|
178
|
+
expose streamlined text-processing utilities that reuse shared prompt
|
|
179
|
+
templates.
|
|
180
|
+
- `openai_sdk_helpers.response` contains the response runners and helpers used
|
|
181
|
+
to normalize outputs from agents, including streaming responses.
|
|
182
|
+
- `openai_sdk_helpers.utils` holds JSON serialization helpers, logging
|
|
183
|
+
utilities, and common validation helpers used across modules.
|
|
184
|
+
|
|
132
185
|
## Contributing
|
|
133
186
|
|
|
134
187
|
Contributions are welcome! Please accompany functional changes with relevant
|
|
@@ -23,6 +23,7 @@ application-specific prompts and tools to the consuming project.
|
|
|
23
23
|
predictable inputs and outputs.
|
|
24
24
|
- **Vector and web search flows** that coordinate planning, execution, and
|
|
25
25
|
reporting.
|
|
26
|
+
- **Reusable text agents** for summarization and translation tasks.
|
|
26
27
|
|
|
27
28
|
## Installation
|
|
28
29
|
|
|
@@ -32,6 +33,9 @@ Install the package directly from PyPI to reuse it across projects:
|
|
|
32
33
|
pip install openai-sdk-helpers
|
|
33
34
|
```
|
|
34
35
|
|
|
36
|
+
Type information ships with the published wheel via `py.typed`, so external
|
|
37
|
+
projects can rely on the bundled annotations without adding custom stubs.
|
|
38
|
+
|
|
35
39
|
For local development, install with editable sources and the optional dev
|
|
36
40
|
dependencies:
|
|
37
41
|
|
|
@@ -58,9 +62,39 @@ report = vector_search.run_agent_sync("Explain quantum entanglement for beginner
|
|
|
58
62
|
print(report.report)
|
|
59
63
|
```
|
|
60
64
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
### Text utilities
|
|
66
|
+
|
|
67
|
+
Use the built-in text helpers when you need lightweight single-step agents.
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
from openai_sdk_helpers.agent import (
|
|
71
|
+
SummarizerAgent,
|
|
72
|
+
TranslatorAgent,
|
|
73
|
+
ValidatorAgent,
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
summarizer = SummarizerAgent(default_model="gpt-4o-mini")
|
|
78
|
+
translator = TranslatorAgent(default_model="gpt-4o-mini")
|
|
79
|
+
validator = ValidatorAgent(default_model="gpt-4o-mini")
|
|
80
|
+
|
|
81
|
+
summary = summarizer.run_sync("Long-form content to condense")
|
|
82
|
+
translation = translator.run_sync("Bonjour", target_language="English")
|
|
83
|
+
guardrails = validator.run_sync(
|
|
84
|
+
"Share meeting notes with names removed", agent_output=summary.text
|
|
85
|
+
)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Prompt templates are optional for the built-in text helpers. They already ship
|
|
89
|
+
with defaults under `src/openai_sdk_helpers/prompt`, so you do **not** need to
|
|
90
|
+
create placeholder files when installing from PyPI. Only pass a `prompt_dir`
|
|
91
|
+
when you have real replacements you want to load.
|
|
92
|
+
|
|
93
|
+
The vector search workflow expects real prompts for each agent (for example,
|
|
94
|
+
`vector_planner.jinja`, `vector_search.jinja`, and `vector_writer.jinja`). If
|
|
95
|
+
you point `prompt_dir` at a folder that does not contain those files, agent
|
|
96
|
+
construction fails with a `FileNotFoundError`. Skip `prompt_dir` entirely unless
|
|
97
|
+
you have working templates ready.
|
|
64
98
|
|
|
65
99
|
### Centralized OpenAI configuration
|
|
66
100
|
|
|
@@ -113,6 +147,25 @@ pytest -q --cov=src --cov-report=term-missing --cov-fail-under=70
|
|
|
113
147
|
- `src/openai_sdk_helpers/vector_storage`: Minimal vector store abstraction.
|
|
114
148
|
- `tests/`: Unit tests covering core modules and structures.
|
|
115
149
|
|
|
150
|
+
## Key modules
|
|
151
|
+
|
|
152
|
+
The package centers around a handful of cohesive building blocks:
|
|
153
|
+
|
|
154
|
+
- `openai_sdk_helpers.agent.project_manager.ProjectManager` coordinates prompt
|
|
155
|
+
creation, plan building, task execution, and summarization while persisting
|
|
156
|
+
intermediate artifacts to disk.
|
|
157
|
+
- `openai_sdk_helpers.agent.vector_search.VectorSearch` bundles the planners,
|
|
158
|
+
executors, and summarizers required to run a multi-turn vector search flow
|
|
159
|
+
from a single entry point.
|
|
160
|
+
- `openai_sdk_helpers.agent.summarizer.SummarizerAgent`,
|
|
161
|
+
`agent.translator.TranslatorAgent`, and `agent.validator.ValidatorAgent`
|
|
162
|
+
expose streamlined text-processing utilities that reuse shared prompt
|
|
163
|
+
templates.
|
|
164
|
+
- `openai_sdk_helpers.response` contains the response runners and helpers used
|
|
165
|
+
to normalize outputs from agents, including streaming responses.
|
|
166
|
+
- `openai_sdk_helpers.utils` holds JSON serialization helpers, logging
|
|
167
|
+
utilities, and common validation helpers used across modules.
|
|
168
|
+
|
|
116
169
|
## Contributing
|
|
117
170
|
|
|
118
171
|
Contributions are welcome! Please accompany functional changes with relevant
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "openai-sdk-helpers"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.3"
|
|
4
4
|
requires-python = ">=3.10"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
description = "Composable helpers for OpenAI SDK agents, prompts, and storage"
|
|
@@ -49,6 +49,12 @@ dev = [
|
|
|
49
49
|
requires = ["hatchling"]
|
|
50
50
|
build-backend = "hatchling.build"
|
|
51
51
|
|
|
52
|
+
[tool.hatch.build]
|
|
53
|
+
include = [
|
|
54
|
+
"src/openai_sdk_helpers/prompt/*.jinja",
|
|
55
|
+
"src/openai_sdk_helpers/py.typed",
|
|
56
|
+
]
|
|
57
|
+
|
|
52
58
|
[tool.hatch.build.targets.wheel]
|
|
53
59
|
packages = ["src/openai_sdk_helpers"]
|
|
54
60
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
You are a concise assistant that summarizes long-form text into crisp findings.
|
|
2
|
+
|
|
3
|
+
Instructions:
|
|
4
|
+
- Focus on factual statements present in the source text.
|
|
5
|
+
- Prefer short bullet points over paragraphs.
|
|
6
|
+
- Call out key entities, dates, and figures when present.
|
|
7
|
+
- Note any missing context or unanswered questions.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
You are a professional translator.
|
|
2
|
+
|
|
3
|
+
Instructions:
|
|
4
|
+
- Rewrite the provided text into the requested target language.
|
|
5
|
+
- Preserve the intent and meaning of the original content.
|
|
6
|
+
- Keep terminology consistent and avoid embellishment.
|
|
7
|
+
- If the input text is empty, respond with "No text provided."
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
You are a meticulous safety validator that enforces product guardrails.
|
|
2
|
+
|
|
3
|
+
Instructions:
|
|
4
|
+
- Inspect the provided user_input and optional agent_output for policy violations, safety risks, or missing disclaimers.
|
|
5
|
+
- Highlight any prohibited content (violence, hate, sensitive data, PII) and note why it violates guardrails.
|
|
6
|
+
- Recommend concise remediation steps (redaction, refusal, rephrasing) and provide sanitized_output when possible.
|
|
7
|
+
- If everything is within guardrails, confirm both input_safe and output_safe are true and keep violations empty.
|
|
File without changes
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# To get started with Dependabot version updates, you'll need to specify which
|
|
2
|
-
# package ecosystems to update and where the package manifests are located.
|
|
3
|
-
# Please see the documentation for all configuration options:
|
|
4
|
-
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
|
|
5
|
-
version: 2
|
|
6
|
-
updates:
|
|
7
|
-
- package-ecosystem: "" # See documentation for possible values
|
|
8
|
-
directory: "/" # Location of package manifests
|
|
9
|
-
schedule:
|
|
10
|
-
interval: "weekly"
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
name: Python CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ main ]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [ main ]
|
|
8
|
-
|
|
9
|
-
permissions:
|
|
10
|
-
contents: read
|
|
11
|
-
|
|
12
|
-
jobs:
|
|
13
|
-
build:
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
strategy:
|
|
16
|
-
matrix:
|
|
17
|
-
python-version: ["3.10", "3.11", "3.12"]
|
|
18
|
-
|
|
19
|
-
steps:
|
|
20
|
-
- uses: actions/checkout@v3
|
|
21
|
-
|
|
22
|
-
- name: Set up Python ${{ matrix.python-version }}
|
|
23
|
-
uses: actions/setup-python@v4
|
|
24
|
-
with:
|
|
25
|
-
python-version: ${{ matrix.python-version }}
|
|
26
|
-
cache: "pip"
|
|
27
|
-
|
|
28
|
-
- name: Install dependencies
|
|
29
|
-
run: |
|
|
30
|
-
python -m pip install --upgrade pip
|
|
31
|
-
pip install -e . --group dev
|
|
32
|
-
|
|
33
|
-
- name: Run style checks
|
|
34
|
-
run: |
|
|
35
|
-
pydocstyle .
|
|
36
|
-
black --check .
|
|
37
|
-
|
|
38
|
-
- name: Run static type analysis
|
|
39
|
-
run: |
|
|
40
|
-
pyright .
|
|
41
|
-
|
|
42
|
-
- name: Run tests with coverage
|
|
43
|
-
run: |
|
|
44
|
-
pytest -q --cov=src --cov-report=term-missing --cov-fail-under=70
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# This workflow will upload a Python Package using Twine when a release is created
|
|
2
|
-
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
|
|
3
|
-
|
|
4
|
-
# This workflow uses actions that are not certified by GitHub.
|
|
5
|
-
# They are provided by a third-party and are governed by
|
|
6
|
-
# separate terms of service, privacy policy, and support
|
|
7
|
-
# documentation.
|
|
8
|
-
|
|
9
|
-
name: Upload Python Package
|
|
10
|
-
|
|
11
|
-
on:
|
|
12
|
-
release:
|
|
13
|
-
types: [published]
|
|
14
|
-
|
|
15
|
-
permissions:
|
|
16
|
-
contents: read
|
|
17
|
-
|
|
18
|
-
jobs:
|
|
19
|
-
deploy:
|
|
20
|
-
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
|
|
23
|
-
steps:
|
|
24
|
-
- uses: actions/checkout@v3
|
|
25
|
-
- name: Set up Python
|
|
26
|
-
uses: actions/setup-python@v3
|
|
27
|
-
with:
|
|
28
|
-
python-version: '3.x'
|
|
29
|
-
- name: Install dependencies
|
|
30
|
-
run: |
|
|
31
|
-
python -m pip install --upgrade pip
|
|
32
|
-
pip install build
|
|
33
|
-
- name: Build package
|
|
34
|
-
run: python -m build
|
|
35
|
-
- name: Publish package
|
|
36
|
-
uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
|
|
37
|
-
with:
|
|
38
|
-
user: __token__
|
|
39
|
-
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# AGENTS.md
|
|
2
|
-
|
|
3
|
-
These instructions apply to any automated agent contributing to this repository.
|
|
4
|
-
|
|
5
|
-
## 1. Code Style
|
|
6
|
-
|
|
7
|
-
- Use standard PEP 8 formatting for all Python code.
|
|
8
|
-
- Write commit messages in the imperative mood (e.g., "Add feature" not "Added feature").
|
|
9
|
-
- Keep the implementation Pythonic and maintainable.
|
|
10
|
-
|
|
11
|
-
## 2. Docstring Style
|
|
12
|
-
|
|
13
|
-
- Use **NumPy-style** docstrings following [PEP 257](https://peps.python.org/pep-0257/) conventions.
|
|
14
|
-
- **Do not** use `:param` / `:type` syntax (reST/Sphinx style) or Google-style `Args`.
|
|
15
|
-
- Always include type hints in function signatures.
|
|
16
|
-
- Begin docstrings with a **short, one-line summary**, followed by a blank line and an optional extended description.
|
|
17
|
-
- Use the following NumPy-style sections:
|
|
18
|
-
- `Parameters`
|
|
19
|
-
- `Returns`
|
|
20
|
-
- `Raises`
|
|
21
|
-
- `Examples`
|
|
22
|
-
- Document all public classes, methods, and functions.
|
|
23
|
-
- **For classes, the main docstring should include a `Methods` section summarizing each public method and its one-line description.**
|
|
24
|
-
- For optional parameters, note the default value in the description.
|
|
25
|
-
- Use imperative present tense and active voice (“Return…”, “Fetch…”).
|
|
26
|
-
|
|
27
|
-
## 3. Code Quality and Testing
|
|
28
|
-
|
|
29
|
-
Before running tests, install the development dependencies:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# Install the package with dev dependency group (PEP 735)
|
|
33
|
-
pip install -e . --group dev
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
To ensure your changes will pass the automated checks in our Continuous Integration (CI) pipeline, run the following commands locally before committing. All checks must pass.
|
|
37
|
-
|
|
38
|
-
**Style Checks:**
|
|
39
|
-
```bash
|
|
40
|
-
pydocstyle src
|
|
41
|
-
black --check .
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**Static Type Analysis:**
|
|
45
|
-
```bash
|
|
46
|
-
pyright src
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**Unit Tests and Coverage:**
|
|
50
|
-
```bash
|
|
51
|
-
pytest -q --cov=src --cov-report=term-missing --cov-fail-under=70
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
## 4. Directory Layout
|
|
55
|
-
|
|
56
|
-
- Production code lives in `src/`.
|
|
57
|
-
- Tests live in `tests/`.
|
|
58
|
-
- Keep imports relative within the package (e.g., `from rda_bundle...`).
|
|
59
|
-
|
|
60
|
-
## 5. Pull Request Messages
|
|
61
|
-
|
|
62
|
-
Each pull request should include:
|
|
63
|
-
|
|
64
|
-
1. **Summary** – brief description of the change.
|
|
65
|
-
2. **Testing** – commands run and confirmation that the tests passed.
|
|
66
|
-
|
|
67
|
-
Example PR body:
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
### Summary
|
|
71
|
-
- add new helper to utils.list
|
|
72
|
-
- expand tests for list chunking
|
|
73
|
-
|
|
74
|
-
### Testing
|
|
75
|
-
- `pytest` (all tests passed)
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## 6. General Guidelines
|
|
79
|
-
|
|
80
|
-
- Avoid pushing large data files to the repository.
|
|
81
|
-
- Prefer small, focused commits over sweeping changes.
|
|
82
|
-
- Update or add tests whenever you modify functionality.
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"""Shared AI helpers and base structures."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
__version__ = "0.0.1"
|
|
6
|
-
|
|
7
|
-
from .structure import (
|
|
8
|
-
BaseStructure,
|
|
9
|
-
SchemaOptions,
|
|
10
|
-
spec_field,
|
|
11
|
-
assistant_tool_definition,
|
|
12
|
-
assistant_format,
|
|
13
|
-
response_tool_definition,
|
|
14
|
-
response_format,
|
|
15
|
-
)
|
|
16
|
-
from .prompt import PromptRenderer
|
|
17
|
-
from .config import OpenAISettings
|
|
18
|
-
from .vector_storage import VectorStorage, VectorStorageFileInfo, VectorStorageFileStats
|
|
19
|
-
|
|
20
|
-
__all__ = [
|
|
21
|
-
"__version__",
|
|
22
|
-
"BaseStructure",
|
|
23
|
-
"SchemaOptions",
|
|
24
|
-
"spec_field",
|
|
25
|
-
"PromptRenderer",
|
|
26
|
-
"OpenAISettings",
|
|
27
|
-
"VectorStorage",
|
|
28
|
-
"VectorStorageFileInfo",
|
|
29
|
-
"VectorStorageFileStats",
|
|
30
|
-
"assistant_tool_definition",
|
|
31
|
-
"assistant_format",
|
|
32
|
-
"response_tool_definition",
|
|
33
|
-
"response_format",
|
|
34
|
-
]
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"""Shared agent helpers built on the OpenAI Agents SDK."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from .base import BaseAgent
|
|
6
|
-
from .config import AgentConfig
|
|
7
|
-
from .project_manager import ProjectManager
|
|
8
|
-
from .runner import run, run_streamed, run_sync
|
|
9
|
-
from .utils import run_coro_sync
|
|
10
|
-
from .vector_search import VectorSearch
|
|
11
|
-
from .web_search import WebAgentSearch
|
|
12
|
-
|
|
13
|
-
__all__ = [
|
|
14
|
-
"BaseAgent",
|
|
15
|
-
"AgentConfig",
|
|
16
|
-
"ProjectManager",
|
|
17
|
-
"run",
|
|
18
|
-
"run_sync",
|
|
19
|
-
"run_streamed",
|
|
20
|
-
"run_coro_sync",
|
|
21
|
-
"VectorSearch",
|
|
22
|
-
"WebAgentSearch",
|
|
23
|
-
]
|