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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: crewai-stackresolve
3
- Version: 0.1.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.1.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
@@ -13,7 +13,7 @@ from .tools import (
13
13
  stackresolve_tools,
14
14
  )
15
15
 
16
- __version__ = "0.1.0"
16
+ __version__ = "0.2.0"
17
17
  __all__ = [
18
18
  "stackresolve_tools",
19
19
  "StackResolveFindTools",
@@ -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.1.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.1.0", "pydantic>=2.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
+ )