crewai-stackresolve 0.1.0__tar.gz → 0.2.0__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.
- {crewai_stackresolve-0.1.0 → crewai_stackresolve-0.2.0}/PKG-INFO +2 -2
- {crewai_stackresolve-0.1.0 → crewai_stackresolve-0.2.0}/crewai_stackresolve/__init__.py +1 -1
- {crewai_stackresolve-0.1.0 → crewai_stackresolve-0.2.0}/crewai_stackresolve/_common.py +8 -0
- {crewai_stackresolve-0.1.0 → crewai_stackresolve-0.2.0}/pyproject.toml +2 -2
- {crewai_stackresolve-0.1.0 → crewai_stackresolve-0.2.0}/tests/test_tools.py +10 -0
- {crewai_stackresolve-0.1.0 → crewai_stackresolve-0.2.0}/.gitignore +0 -0
- {crewai_stackresolve-0.1.0 → crewai_stackresolve-0.2.0}/LICENSE +0 -0
- {crewai_stackresolve-0.1.0 → crewai_stackresolve-0.2.0}/README.md +0 -0
- {crewai_stackresolve-0.1.0 → crewai_stackresolve-0.2.0}/crewai_stackresolve/tools.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: crewai-stackresolve
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: CrewAI tools for StackResolve: find, compare, and audit software for AI agents, plus structured company research.
|
|
5
5
|
Project-URL: Homepage, https://stackresolve.dev
|
|
6
6
|
Project-URL: Repository, https://github.com/autorevai/stackresolve
|
|
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
15
15
|
Requires-Python: <3.14,>=3.10
|
|
16
16
|
Requires-Dist: crewai>=0.100.0
|
|
17
17
|
Requires-Dist: pydantic>=2.0
|
|
18
|
-
Requires-Dist: stackresolve>=0.
|
|
18
|
+
Requires-Dist: stackresolve>=0.2.0
|
|
19
19
|
Provides-Extra: test
|
|
20
20
|
Requires-Dist: pytest>=7.0; extra == 'test'
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
@@ -20,6 +20,9 @@ from stackresolve import StackResolve, StackResolveError
|
|
|
20
20
|
# can run to tens of kilobytes and the tail is rarely what the model needs.
|
|
21
21
|
MAX_CHARS = 6000
|
|
22
22
|
|
|
23
|
+
# Sent in the User-Agent so API traffic from this adapter is attributable.
|
|
24
|
+
INTEGRATION = "crewai-stackresolve/0.2.0"
|
|
25
|
+
|
|
23
26
|
|
|
24
27
|
def build_client(
|
|
25
28
|
api_key: Optional[str] = None, base_url: Optional[str] = None
|
|
@@ -32,6 +35,11 @@ def build_client(
|
|
|
32
35
|
url = base_url or os.environ.get("STACKRESOLVE_BASE_URL")
|
|
33
36
|
if url:
|
|
34
37
|
opts["base_url"] = url
|
|
38
|
+
# Identify the adapter in the User-Agent. Without this a call through this
|
|
39
|
+
# package is indistinguishable from a raw SDK call, and we cannot tell which
|
|
40
|
+
# distribution surface is actually being used.
|
|
41
|
+
if INTEGRATION:
|
|
42
|
+
opts["integration"] = INTEGRATION
|
|
35
43
|
return StackResolve(**opts)
|
|
36
44
|
|
|
37
45
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "crewai-stackresolve"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.2.0"
|
|
8
8
|
description = "CrewAI tools for StackResolve: find, compare, and audit software for AI agents, plus structured company research."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10,<3.14"
|
|
@@ -18,7 +18,7 @@ classifiers = [
|
|
|
18
18
|
"License :: OSI Approved :: MIT License",
|
|
19
19
|
"Programming Language :: Python :: 3",
|
|
20
20
|
]
|
|
21
|
-
dependencies = ["crewai>=0.100.0", "stackresolve>=0.
|
|
21
|
+
dependencies = ["crewai>=0.100.0", "stackresolve>=0.2.0", "pydantic>=2.0"]
|
|
22
22
|
|
|
23
23
|
[project.optional-dependencies]
|
|
24
24
|
test = ["pytest>=7.0"]
|
|
@@ -135,3 +135,13 @@ def test_research_forwards_the_optional_question():
|
|
|
135
135
|
tools = {t.name: t for t in stackresolve_tools(client=client)}
|
|
136
136
|
tools["Research a company"].run(domain="anthropic.com", question="SLA?")
|
|
137
137
|
assert client.calls[0] == ("research", ("anthropic.com", "SLA?"), {})
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def test_integration_label_matches_the_package_version():
|
|
141
|
+
"""The User-Agent label is how we attribute traffic; a stale one misreports it."""
|
|
142
|
+
import crewai_stackresolve as pkg
|
|
143
|
+
from crewai_stackresolve._common import INTEGRATION
|
|
144
|
+
|
|
145
|
+
assert INTEGRATION.endswith("/" + pkg.__version__), (
|
|
146
|
+
f"INTEGRATION={INTEGRATION!r} does not match __version__={pkg.__version__!r}"
|
|
147
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|