elmo-sdk 0.1.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.
Files changed (97) hide show
  1. elmo_sdk-0.1.0/.github/workflows/publish.yml +51 -0
  2. elmo_sdk-0.1.0/.gitignore +4 -0
  3. elmo_sdk-0.1.0/.hey-api/.gitignore +1 -0
  4. elmo_sdk-0.1.0/.hey-api/config.json +11 -0
  5. elmo_sdk-0.1.0/.hey-api/generate-lock.json +354 -0
  6. elmo_sdk-0.1.0/.hey-api/release-lock.json +11 -0
  7. elmo_sdk-0.1.0/LICENSE.md +21 -0
  8. elmo_sdk-0.1.0/PKG-INFO +343 -0
  9. elmo_sdk-0.1.0/README.md +317 -0
  10. elmo_sdk-0.1.0/pyproject.toml +84 -0
  11. elmo_sdk-0.1.0/src/elmo_sdk/__init__.py +191 -0
  12. elmo_sdk-0.1.0/src/elmo_sdk/_internal/__init__.py +0 -0
  13. elmo_sdk-0.1.0/src/elmo_sdk/_internal/binding/__init__.py +0 -0
  14. elmo_sdk-0.1.0/src/elmo_sdk/_internal/binding/rest/__init__.py +0 -0
  15. elmo_sdk-0.1.0/src/elmo_sdk/_internal/binding/rest/binding.py +152 -0
  16. elmo_sdk-0.1.0/src/elmo_sdk/_internal/binding/rest/encode.py +16 -0
  17. elmo_sdk-0.1.0/src/elmo_sdk/_internal/binding/rest/errors.py +110 -0
  18. elmo_sdk-0.1.0/src/elmo_sdk/_internal/binding/rest/url.py +104 -0
  19. elmo_sdk-0.1.0/src/elmo_sdk/_internal/codec/__init__.py +0 -0
  20. elmo_sdk-0.1.0/src/elmo_sdk/_internal/codec/json.py +115 -0
  21. elmo_sdk-0.1.0/src/elmo_sdk/_internal/codec/registry.py +34 -0
  22. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/__init__.py +0 -0
  23. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/backoff.py +171 -0
  24. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/client.py +77 -0
  25. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/config.py +71 -0
  26. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/dispatch.py +321 -0
  27. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/env.py +42 -0
  28. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/errors.py +475 -0
  29. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/features.py +182 -0
  30. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/metadata.py +55 -0
  31. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/missing.py +21 -0
  32. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/params.py +134 -0
  33. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/protocol.py +19 -0
  34. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/response.py +157 -0
  35. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/text.py +15 -0
  36. elmo_sdk-0.1.0/src/elmo_sdk/_internal/core/types.py +397 -0
  37. elmo_sdk-0.1.0/src/elmo_sdk/_internal/feature/__init__.py +0 -0
  38. elmo_sdk-0.1.0/src/elmo_sdk/_internal/feature/auth.py +281 -0
  39. elmo_sdk-0.1.0/src/elmo_sdk/_internal/feature/interceptors.py +103 -0
  40. elmo_sdk-0.1.0/src/elmo_sdk/_internal/feature/logger.py +238 -0
  41. elmo_sdk-0.1.0/src/elmo_sdk/_internal/feature/retry.py +318 -0
  42. elmo_sdk-0.1.0/src/elmo_sdk/_internal/page/__init__.py +0 -0
  43. elmo_sdk-0.1.0/src/elmo_sdk/_internal/page/page.py +495 -0
  44. elmo_sdk-0.1.0/src/elmo_sdk/_internal/transport/__init__.py +0 -0
  45. elmo_sdk-0.1.0/src/elmo_sdk/_internal/transport/httpx.py +434 -0
  46. elmo_sdk-0.1.0/src/elmo_sdk/client.py +768 -0
  47. elmo_sdk-0.1.0/src/elmo_sdk/py.typed +0 -0
  48. elmo_sdk-0.1.0/src/elmo_sdk/resources/__init__.py +266 -0
  49. elmo_sdk-0.1.0/src/elmo_sdk/resources/analytics.py +899 -0
  50. elmo_sdk-0.1.0/src/elmo_sdk/resources/brands.py +668 -0
  51. elmo_sdk-0.1.0/src/elmo_sdk/resources/competitors.py +499 -0
  52. elmo_sdk-0.1.0/src/elmo_sdk/resources/identity.py +112 -0
  53. elmo_sdk-0.1.0/src/elmo_sdk/resources/models.py +114 -0
  54. elmo_sdk-0.1.0/src/elmo_sdk/resources/opportunities.py +158 -0
  55. elmo_sdk-0.1.0/src/elmo_sdk/resources/organizations.py +373 -0
  56. elmo_sdk-0.1.0/src/elmo_sdk/resources/prompts.py +616 -0
  57. elmo_sdk-0.1.0/src/elmo_sdk/resources/reports.py +377 -0
  58. elmo_sdk-0.1.0/src/elmo_sdk/resources/runs.py +271 -0
  59. elmo_sdk-0.1.0/src/elmo_sdk/resources/shared/__init__.py +30 -0
  60. elmo_sdk-0.1.0/src/elmo_sdk/resources/shared/auth.py +5 -0
  61. elmo_sdk-0.1.0/src/elmo_sdk/resources/shared/request_options.py +110 -0
  62. elmo_sdk-0.1.0/src/elmo_sdk/resources/snapshots.py +180 -0
  63. elmo_sdk-0.1.0/src/elmo_sdk/resources/tags.py +144 -0
  64. elmo_sdk-0.1.0/src/elmo_sdk/resources/tools.py +188 -0
  65. elmo_sdk-0.1.0/src/elmo_sdk/types/__init__.py +401 -0
  66. elmo_sdk-0.1.0/src/elmo_sdk/types/analytics.py +422 -0
  67. elmo_sdk-0.1.0/src/elmo_sdk/types/brands.py +152 -0
  68. elmo_sdk-0.1.0/src/elmo_sdk/types/competitors.py +80 -0
  69. elmo_sdk-0.1.0/src/elmo_sdk/types/identity.py +84 -0
  70. elmo_sdk-0.1.0/src/elmo_sdk/types/models.py +30 -0
  71. elmo_sdk-0.1.0/src/elmo_sdk/types/opportunities.py +111 -0
  72. elmo_sdk-0.1.0/src/elmo_sdk/types/organizations.py +165 -0
  73. elmo_sdk-0.1.0/src/elmo_sdk/types/prompts.py +128 -0
  74. elmo_sdk-0.1.0/src/elmo_sdk/types/reports.py +245 -0
  75. elmo_sdk-0.1.0/src/elmo_sdk/types/runs.py +124 -0
  76. elmo_sdk-0.1.0/src/elmo_sdk/types/shared/__init__.py +36 -0
  77. elmo_sdk-0.1.0/src/elmo_sdk/types/shared/common.py +22 -0
  78. elmo_sdk-0.1.0/src/elmo_sdk/types/shared/error.py +23 -0
  79. elmo_sdk-0.1.0/src/elmo_sdk/types/shared/mention_entry.py +44 -0
  80. elmo_sdk-0.1.0/src/elmo_sdk/types/shared/pagination.py +18 -0
  81. elmo_sdk-0.1.0/src/elmo_sdk/types/snapshots.py +79 -0
  82. elmo_sdk-0.1.0/src/elmo_sdk/types/tags.py +37 -0
  83. elmo_sdk-0.1.0/src/elmo_sdk/types/tools.py +74 -0
  84. elmo_sdk-0.1.0/tests/__init__.py +0 -0
  85. elmo_sdk-0.1.0/tests/conftest.py +18 -0
  86. elmo_sdk-0.1.0/tests/stand_in.py +151 -0
  87. elmo_sdk-0.1.0/tests/test_build.py +26 -0
  88. elmo_sdk-0.1.0/tests/test_client.py +77 -0
  89. elmo_sdk-0.1.0/tests/test_errors.py +35 -0
  90. elmo_sdk-0.1.0/tests/test_live.py +12 -0
  91. elmo_sdk-0.1.0/tests/test_logging.py +33 -0
  92. elmo_sdk-0.1.0/tests/test_readme.py +12 -0
  93. elmo_sdk-0.1.0/tests/test_reply.py +38 -0
  94. elmo_sdk-0.1.0/tests/test_retry.py +41 -0
  95. elmo_sdk-0.1.0/tests/test_surface.py +15 -0
  96. elmo_sdk-0.1.0/tests/test_timeout.py +26 -0
  97. elmo_sdk-0.1.0/tests/types.py +44 -0
@@ -0,0 +1,51 @@
1
+ name: Publish
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - main
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+ id-token: write
12
+
13
+ jobs:
14
+ build:
15
+ if: github.event_name == 'pull_request'
16
+ permissions:
17
+ contents: read
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
21
+
22
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
23
+ with:
24
+ node-version: '24'
25
+
26
+ - uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
27
+
28
+ - name: Build the package
29
+ run: npx --yes --registry https://npm.pkg.heyapi.dev/ hey-api@0.1.0-elmo.1 publish --build
30
+ env:
31
+ npm_config_//npm.pkg.heyapi.dev/:_authToken: ${{ secrets.HEY_API_PKG_TOKEN }}
32
+
33
+ pypi:
34
+ if: github.event_name != 'pull_request'
35
+ runs-on: ubuntu-latest
36
+ environment:
37
+ name: pypi
38
+ url: https://pypi.org/project/elmo-sdk/
39
+ steps:
40
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
41
+
42
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
43
+ with:
44
+ node-version: '24'
45
+
46
+ - uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
47
+
48
+ - name: Publish to PyPI
49
+ run: npx --yes --registry https://npm.pkg.heyapi.dev/ hey-api@0.1.0-elmo.1 publish --destination pypi
50
+ env:
51
+ npm_config_//npm.pkg.heyapi.dev/:_authToken: ${{ secrets.HEY_API_PKG_TOKEN }}
@@ -0,0 +1,4 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ .venv/
4
+ dist/
@@ -0,0 +1 @@
1
+ _*
@@ -0,0 +1,11 @@
1
+ {
2
+ "targets": {
3
+ "python": {
4
+ "package": {
5
+ "destination": [
6
+ "pypi"
7
+ ]
8
+ }
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,354 @@
1
+ {
2
+ "digest": "sha256",
3
+ "outputs": {
4
+ ".": {
5
+ "exports": {
6
+ "src/elmo_sdk/__init__.py": [
7
+ "APIError",
8
+ "AsyncAuthResolver",
9
+ "AsyncAuthValue",
10
+ "AsyncCredentialValue",
11
+ "AsyncElmo",
12
+ "AsyncHttpxLike",
13
+ "AsyncPage",
14
+ "AsyncRequestOptions",
15
+ "AuthResolver",
16
+ "AuthScheme",
17
+ "AuthToken",
18
+ "AuthValue",
19
+ "AuthenticationError",
20
+ "BadRequestError",
21
+ "CallTimeout",
22
+ "ConflictError",
23
+ "CredentialValue",
24
+ "DecodeError",
25
+ "Elmo",
26
+ "ElmoError",
27
+ "ErrorHook",
28
+ "FailureBody",
29
+ "HttpxLike",
30
+ "Interceptors",
31
+ "InternalServerError",
32
+ "Jitter",
33
+ "LogLevel",
34
+ "MISSING",
35
+ "Missing",
36
+ "MissingCredentialError",
37
+ "NotFoundError",
38
+ "Page",
39
+ "PaymentRequiredError",
40
+ "PermissionDeniedError",
41
+ "PhasedTimeout",
42
+ "PreparedRequest",
43
+ "RateLimitError",
44
+ "RawResponse",
45
+ "RequestHook",
46
+ "RequestOptions",
47
+ "Response",
48
+ "ResponseHook",
49
+ "Result",
50
+ "RetryAfterHeader",
51
+ "RetryOptions",
52
+ "RetryValue",
53
+ "TimeoutPolicy",
54
+ "TimeoutValue",
55
+ "TransportError",
56
+ "TransportTimeoutError",
57
+ "UnprocessableEntityError",
58
+ "__version__"
59
+ ],
60
+ "src/elmo_sdk/resources/__init__.py": [
61
+ "Analytics",
62
+ "AnalyticsWithResponse",
63
+ "AsyncAnalytics",
64
+ "AsyncAnalyticsWithResponse",
65
+ "AsyncBilling",
66
+ "AsyncBillingWithResponse",
67
+ "AsyncBrands",
68
+ "AsyncBrandsWithResponse",
69
+ "AsyncCitations",
70
+ "AsyncCitationsWithResponse",
71
+ "AsyncCompetitors",
72
+ "AsyncCompetitorsWithResponse",
73
+ "AsyncDomains",
74
+ "AsyncDomainsWithResponse",
75
+ "AsyncMe",
76
+ "AsyncMeWithResponse",
77
+ "AsyncModels",
78
+ "AsyncModelsWithResponse",
79
+ "AsyncOpportunities",
80
+ "AsyncOpportunitiesWithResponse",
81
+ "AsyncOrganizations",
82
+ "AsyncOrganizationsWithResponse",
83
+ "AsyncPromptPerformance",
84
+ "AsyncPromptPerformanceWithResponse",
85
+ "AsyncPrompts",
86
+ "AsyncPromptsWithResponse",
87
+ "AsyncQueryFanout",
88
+ "AsyncQueryFanoutWithResponse",
89
+ "AsyncReports",
90
+ "AsyncReportsWithResponse",
91
+ "AsyncRequestOptions",
92
+ "AsyncRuns",
93
+ "AsyncRunsWithResponse",
94
+ "AsyncSnapshot",
95
+ "AsyncSnapshotWithResponse",
96
+ "AsyncTags",
97
+ "AsyncTagsWithResponse",
98
+ "AsyncTools",
99
+ "AsyncToolsWithResponse",
100
+ "AsyncURLs",
101
+ "AsyncURLsWithResponse",
102
+ "Billing",
103
+ "BillingWithResponse",
104
+ "Brands",
105
+ "BrandsWithResponse",
106
+ "Citations",
107
+ "CitationsWithResponse",
108
+ "Competitors",
109
+ "CompetitorsWithResponse",
110
+ "Domains",
111
+ "DomainsWithResponse",
112
+ "Me",
113
+ "MeWithResponse",
114
+ "Models",
115
+ "ModelsWithResponse",
116
+ "Opportunities",
117
+ "OpportunitiesWithResponse",
118
+ "Organizations",
119
+ "OrganizationsWithResponse",
120
+ "PromptPerformance",
121
+ "PromptPerformanceWithResponse",
122
+ "Prompts",
123
+ "PromptsWithResponse",
124
+ "QueryFanout",
125
+ "QueryFanoutWithResponse",
126
+ "Reports",
127
+ "ReportsWithResponse",
128
+ "RequestOptions",
129
+ "Runs",
130
+ "RunsWithResponse",
131
+ "Snapshot",
132
+ "SnapshotWithResponse",
133
+ "Tags",
134
+ "TagsWithResponse",
135
+ "Tools",
136
+ "ToolsWithResponse",
137
+ "URLs",
138
+ "URLsWithResponse"
139
+ ],
140
+ "src/elmo_sdk/types/__init__.py": [
141
+ "APIKeyIdentity",
142
+ "APIKeyIdentityKeyType",
143
+ "APIKeyIdentityRateLimit",
144
+ "APIKeyIdentityRateLimitWindow",
145
+ "APIKeyIdentityScopesItem",
146
+ "AnalyzeBrandRequest",
147
+ "AnalyzeBrandResponse",
148
+ "BillingPlan",
149
+ "BillingPlanInterval",
150
+ "BillingPlanStanding",
151
+ "Brand",
152
+ "BrandAnalytics",
153
+ "BrandAnalyticsShareOfVoice",
154
+ "BrandAnalyticsTotals",
155
+ "BrandAnalyticsVisibility",
156
+ "BrandOpportunities",
157
+ "BrandOpportunitiesStatus",
158
+ "BrandQueryFanout",
159
+ "BrandsList",
160
+ "CitationDomain",
161
+ "CitationDomainCategory",
162
+ "CitationDomainList",
163
+ "CitationDomainListTotals",
164
+ "CitationURL",
165
+ "CitationURLCategory",
166
+ "CitationURLList",
167
+ "CitationURLListTotals",
168
+ "CitationURLPageType",
169
+ "CitedPage",
170
+ "CitedURLEntry",
171
+ "Competitor",
172
+ "CompetitorsList",
173
+ "CreateBrandRequest",
174
+ "CreateBrandRequestCompetitorsItem",
175
+ "CreateBrandRequestCompetitorsItemDict",
176
+ "CreateBrandRequestPromptsItem",
177
+ "CreateBrandRequestPromptsItemDict",
178
+ "CreateBrandResponse",
179
+ "CreateCompetitorRequest",
180
+ "CreateCompetitorResponse",
181
+ "CreatePromptRequest",
182
+ "CreatePromptResponse",
183
+ "CreateReportRequest",
184
+ "CreateReportResponse",
185
+ "CreateReportStatus",
186
+ "DateRange",
187
+ "DeleteCompetitorResponse",
188
+ "DeletePromptResponse",
189
+ "Error",
190
+ "FanoutQuery",
191
+ "GetBrandAnalyticsResponse",
192
+ "GetBrandOpportunitiesResponse",
193
+ "GetBrandQueryFanoutResponse",
194
+ "GetBrandResponse",
195
+ "GetCompetitorResponse",
196
+ "GetMeResponse",
197
+ "GetOrganizationBillingResponse",
198
+ "GetOrganizationResponse",
199
+ "GetPromptResponse",
200
+ "GetPromptSnapshotResponse",
201
+ "GetReportResponse",
202
+ "GetReportStatus",
203
+ "GetReportUnstable",
204
+ "GetReportUnstableCompetitorsItem",
205
+ "GetRunResponse",
206
+ "ListBrandCitationDomainsResponse",
207
+ "ListBrandCitationURLsResponse",
208
+ "ListBrandPromptPerformanceResponse",
209
+ "ListBrandTagsResponse",
210
+ "ListModelsResponse",
211
+ "MentionEntry",
212
+ "MentionsSummary",
213
+ "Model",
214
+ "ModelList",
215
+ "ModelVisibility",
216
+ "OnboardingSuggestion",
217
+ "OnboardingSuggestionCompetitorsItem",
218
+ "OnboardingSuggestionSuggestedPromptsItem",
219
+ "OpenEnum",
220
+ "Opportunity",
221
+ "OpportunityCategory",
222
+ "OpportunityPrompt",
223
+ "Organization",
224
+ "OrganizationBilling",
225
+ "OrganizationBillingUsage",
226
+ "OrganizationList",
227
+ "Pagination",
228
+ "PlanLimits",
229
+ "Prompt",
230
+ "PromptPerformance",
231
+ "PromptPerformanceList",
232
+ "PromptSnapshot",
233
+ "PromptSnapshotCitations",
234
+ "ReportPromptSnapshot",
235
+ "ReportSummary",
236
+ "ReportSummaryStatus",
237
+ "Run",
238
+ "RunAnswer",
239
+ "RunCitation",
240
+ "RunList",
241
+ "RunSummary",
242
+ "ShareOfVoiceEntry",
243
+ "ShareOfVoicePoint",
244
+ "Tag",
245
+ "TagList",
246
+ "UpdateBrandRequest",
247
+ "UpdateBrandResponse",
248
+ "UpdateCompetitorRequest",
249
+ "UpdateCompetitorResponse",
250
+ "UpdatePromptRequest",
251
+ "UpdatePromptResponse",
252
+ "VisibilityPoint"
253
+ ]
254
+ },
255
+ "files": {
256
+ ".gitignore": "0e3713d01b398ef1152b85cca5e9af584c2477c71a4cce485207d8879ac8917e",
257
+ "LICENSE.md": "be45cfe055e9ec284837e42e6c2aa6cc67112ad0615fe6d77cb6d0e8792d20ee",
258
+ "pyproject.toml": "f1ca581176a2c7de668ebdfef19d3e398ceedcac43cbcf815fd798f96d1bbcca",
259
+ "README.md": "d37b0178593f7edd01e232c7c0ca6f03a8b4e39d091d03fadb307fe9dcd785ba",
260
+ "src/elmo_sdk/__init__.py": "2f23ddff4e2e97e388160104fe4d40fcafbfa2f2f626afe41371c54ac5673b4f",
261
+ "src/elmo_sdk/_internal/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
262
+ "src/elmo_sdk/_internal/binding/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
263
+ "src/elmo_sdk/_internal/binding/rest/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
264
+ "src/elmo_sdk/_internal/binding/rest/binding.py": "384850b56521d61d686c2536ca61e8c9a1f0a74c1cfdeeaf822207bbeac9fa84",
265
+ "src/elmo_sdk/_internal/binding/rest/encode.py": "cbf905ab1abd264e10df242d25100cdb1d71f618e7d72cd10caa2fac5c26f4f0",
266
+ "src/elmo_sdk/_internal/binding/rest/errors.py": "482e319c959a84dcdd468b70c243e53a6e586419b698d2265002f7ee587a2199",
267
+ "src/elmo_sdk/_internal/binding/rest/url.py": "e370bd7a230e150a06549fb81fb331450a32aea5f863912a1ad1719ed1c78d3b",
268
+ "src/elmo_sdk/_internal/codec/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
269
+ "src/elmo_sdk/_internal/codec/json.py": "0022ecf37980e2f38e923164141e87b9a82de612e66833d3a0344cf6986d4526",
270
+ "src/elmo_sdk/_internal/codec/registry.py": "a80368503b126387e923dbe42ca87825456605c6f8c120ee5be306604f87039c",
271
+ "src/elmo_sdk/_internal/core/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
272
+ "src/elmo_sdk/_internal/core/backoff.py": "0e4b3f3e1f6e5cf5442a963f5845828cdb3a21cadeb03f8ffef869822ea8a3ee",
273
+ "src/elmo_sdk/_internal/core/client.py": "eedb8381f291978df165d5172c9539b50bafbc62a90e4e91217f196f068771ac",
274
+ "src/elmo_sdk/_internal/core/config.py": "9d18615eba36696cfd9ab97ea0f640ae725b2ae57f1fa2437e66ee25b005d474",
275
+ "src/elmo_sdk/_internal/core/dispatch.py": "5f3530055e40adfe7ef62e0545531896d81bea8deebcd4cff4ff52f71ef6efb0",
276
+ "src/elmo_sdk/_internal/core/env.py": "8b23834a52532c085eb628f97db6a04a36fa918a9933327944b4abe86cfe88dd",
277
+ "src/elmo_sdk/_internal/core/errors.py": "c93ca93e28bf1ee245a456df24b5188e0327a748abc6c1d267d1083ccf9d74a6",
278
+ "src/elmo_sdk/_internal/core/features.py": "ae120aac848ea7d5f9973b4bf8fa91e7c5e694ab1f8b303c2a05749e6dc816d0",
279
+ "src/elmo_sdk/_internal/core/metadata.py": "c687e75824fd943d399cefb0dc89b29fb1c4676637cb3b2925d7830c17517d84",
280
+ "src/elmo_sdk/_internal/core/missing.py": "1cf65e01b8acf3b7881163e8c90679c55d39807b00dd84fec39efd743de35b45",
281
+ "src/elmo_sdk/_internal/core/params.py": "7706fe70ce46118fbc1547dcf01385295473e48b429bd5ff297169368535649e",
282
+ "src/elmo_sdk/_internal/core/protocol.py": "aa0cdfc265a902743739623f8b936f343f37b07cea0ed26cc56ca5ea09b79720",
283
+ "src/elmo_sdk/_internal/core/response.py": "1ddfc5508f26ba9045343b119b880d0ac7c23109e3e62bc6bca1637c7620d172",
284
+ "src/elmo_sdk/_internal/core/text.py": "98c624f4aa38b8bfbc06b1ebd2714ae830b95966d840d672440a29178bead094",
285
+ "src/elmo_sdk/_internal/core/types.py": "5896a87c10ee3a2ee235355efb00c2500ca9e93d752f4fed08f411a72c07d109",
286
+ "src/elmo_sdk/_internal/feature/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
287
+ "src/elmo_sdk/_internal/feature/auth.py": "32f686b43fad5f2b5cc0374f4f116081671e79ea04e7261c2dbfc9087a7ab260",
288
+ "src/elmo_sdk/_internal/feature/interceptors.py": "71c918cf88402b23cd74f108a6f789eaf9cb15ce3fedf2a999622f955d72671b",
289
+ "src/elmo_sdk/_internal/feature/logger.py": "7b786674a64d377600b5dc9c4fb45f5054050802a299a9acb202896a52edbd80",
290
+ "src/elmo_sdk/_internal/feature/retry.py": "9a1b221e749689ba72367969945b3522591d612f4241708de55ec726aa4c1947",
291
+ "src/elmo_sdk/_internal/page/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
292
+ "src/elmo_sdk/_internal/page/page.py": "f37cd3e5cdfff0ddbb3c3677585bc22ac804c2fdf4c42ee3bc6d323ab851c1cb",
293
+ "src/elmo_sdk/_internal/transport/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
294
+ "src/elmo_sdk/_internal/transport/httpx.py": "a2f39fade2aa6530ad5aad02b2b2f6372b89106ee4311bf42e7a698b83c25740",
295
+ "src/elmo_sdk/client.py": "15e3c9893023df0d3531c3a4941a753846b67795edd5ddccb235300b066b8a28",
296
+ "src/elmo_sdk/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
297
+ "src/elmo_sdk/resources/__init__.py": "95d38d2a1945acca937621086d4a852120a39c7f4f85526f93648e0a4535c8c3",
298
+ "src/elmo_sdk/resources/analytics.py": "6203084a79f840fd2562b221a023bea4fb174f32e19b073221cc81344154870b",
299
+ "src/elmo_sdk/resources/brands.py": "95ed3e49fb20901d2199691b47538323f6c66835596906bbee8bdf5d2eff6dbb",
300
+ "src/elmo_sdk/resources/competitors.py": "b4e29fb4e5afbb74e333125522d71e27e59ca94eae60a5370cbb4b92bbf123a8",
301
+ "src/elmo_sdk/resources/identity.py": "5c46d1846d1ed71fe632eaa2300c1e70ae132132dafb02e0160410b322f073a8",
302
+ "src/elmo_sdk/resources/models.py": "68bbb0824c26b20512a629dc35b83a723019eda9f978a8e526e7327b2323378d",
303
+ "src/elmo_sdk/resources/opportunities.py": "cb5490fd8050c53c0f192e353f51d01ab65235ba261250e8cbdfced733fd1ca5",
304
+ "src/elmo_sdk/resources/organizations.py": "c1a2de8ea643a9f5bbe91b5dd0cc6ccb415323e91148ede3d8cb4d7f39d76906",
305
+ "src/elmo_sdk/resources/prompts.py": "9a032788ebdc0e20a419e415afca822c7d5ee327009979cb13bf1d4cb5fe0ef3",
306
+ "src/elmo_sdk/resources/reports.py": "b8cf85c374609115051214f7cfae43414ddce76d31564b71901f1e43b9a95864",
307
+ "src/elmo_sdk/resources/runs.py": "d089df6316a2c785e16af5b1c212bc001b45a007fbf92a6fdfbbe53cecd311a7",
308
+ "src/elmo_sdk/resources/shared/__init__.py": "c09a857e5f96bed0d5f8e8921bf5fee2b586a07c126bd806bc035bc7e3bc9561",
309
+ "src/elmo_sdk/resources/shared/auth.py": "a08d4c25319187d11b0434255c93aeb1fddc53115afd820556c119b7396660a2",
310
+ "src/elmo_sdk/resources/shared/request_options.py": "e590a14e71a9c0b2572be4bb2f157e9b11b3fe46c01fb7cea15b4aad74bd5bd4",
311
+ "src/elmo_sdk/resources/snapshots.py": "a72ea21d8072e8a696225e6b35846e307ff3efaedc19d0c35aed0e1ea0669d87",
312
+ "src/elmo_sdk/resources/tags.py": "9f5821a0f06bb41375383ff14d4516a02c5d6fdcc7ad3bf16c22c57112d3da7c",
313
+ "src/elmo_sdk/resources/tools.py": "fffe8c8a1ae943957ae320768367ce7054e3fcfe3d5f4ec0760b25d6b6ec7093",
314
+ "src/elmo_sdk/types/__init__.py": "9140ab7a8d7454e17b1f78b83ed5693758ebb4329bbba40d61ca63de28193803",
315
+ "src/elmo_sdk/types/analytics.py": "a8f3af87f9af246682d949022d07532f47ca2e5c48b76182a0d68996ca98c5a3",
316
+ "src/elmo_sdk/types/brands.py": "daa2dd19c1f53eb57cfc9d95eaa89a17321a360f083542a89d05c5d20d37a5f6",
317
+ "src/elmo_sdk/types/competitors.py": "29d82a8841a08db2054556fd1a5d20afa8c713b893b3fc52070085068a6d3058",
318
+ "src/elmo_sdk/types/identity.py": "e059fbd431d3559b45b0d60bd0533b2c2bae15f2e4fcd2100b0adf4d7474904a",
319
+ "src/elmo_sdk/types/models.py": "6c46982a10b03d29fe364c37da43abe6a2e569e5d5cbf86bec1b084d86263b76",
320
+ "src/elmo_sdk/types/opportunities.py": "b76d0fc1441e6936d2aeafe51ca897d926d05c4f3fe9fa1a0ccf49fef7650343",
321
+ "src/elmo_sdk/types/organizations.py": "a3d2206886178786e17c445db3c18d046b2991dc5d4b3d014ace26524f1f87fd",
322
+ "src/elmo_sdk/types/prompts.py": "426ee8fa655b1325d3752f2a20745eb4d743870c7d7c93e456ef9140abdd41e5",
323
+ "src/elmo_sdk/types/reports.py": "a984cf0a6706e596f05b34521f6fc463b0f41c6f86c2debc2b3a0bc1cb2e3e2c",
324
+ "src/elmo_sdk/types/runs.py": "4f52239180d163c071ce8adbcd386d1d40db572b97b9777af7d0187ea14a892f",
325
+ "src/elmo_sdk/types/shared/__init__.py": "ba4136f4875206198f38494149c7e323854d5af0787ee9a354231ec2ada40b4c",
326
+ "src/elmo_sdk/types/shared/common.py": "58fb908b3a9183c600a16d786aa64ca52194098f031b45541f3935a3ed1c17a8",
327
+ "src/elmo_sdk/types/shared/error.py": "b240b43c39ca937eec287f4cd88feb8e5a75c4cde78b298a88231f317a4be190",
328
+ "src/elmo_sdk/types/shared/mention_entry.py": "0eb26572554f56137be54ef0e2d1bed841c39bd0f9ac4d9501e8386c76cd0886",
329
+ "src/elmo_sdk/types/shared/pagination.py": "327e2d8f6c720ea190faa7a7428d683ab8cc49c6e73e8790e43c0ad827c532fd",
330
+ "src/elmo_sdk/types/snapshots.py": "7013147b3114c00ed08a0187867cb5cfb7567d4cf7f2eac8383b7116e7f24c2e",
331
+ "src/elmo_sdk/types/tags.py": "59dae2b4d32dab5f78fb2070f097fa7c19b5ae910a44772bd3167e821f32b570",
332
+ "src/elmo_sdk/types/tools.py": "658d1f740f8e7275c3cb6bac8c338d2d7969154bcb24ce38e1a7b9b127547a3e",
333
+ "tests/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
334
+ "tests/conftest.py": "df2b23f8f68d4ed710185ad1aab168a5c41cbad1e1bd2899f50371b287ac7fa6",
335
+ "tests/stand_in.py": "16ad5a8f3578b39c620ab8e57d0e89cd2607fe73329d1c8685380a1a6088a959",
336
+ "tests/test_build.py": "f198a5ed3b70606f9e65b96a8c60abb69a681a1f5dac97eba88facaf8d1ed8bd",
337
+ "tests/test_client.py": "5fbb784db9b859d2ce503e72308a8841a69b63d73131ccce0897d88403efbdff",
338
+ "tests/test_errors.py": "d22739225eb76b911b5ea451c4e130a76fafa0ea8c68a2701dadffefa5447349",
339
+ "tests/test_live.py": "01d6bf41acd96328295e5c6b6111a0597e40406be75848e9f957cc3c65fa023b",
340
+ "tests/test_logging.py": "b85163f608a05b6a19007a59a79afc808be87f19803289c09644b9b0357fc1fe",
341
+ "tests/test_readme.py": "655d73ea9d642b5437335178a24c7644a72c242e6e670ad5233cd8269b888cf1",
342
+ "tests/test_reply.py": "135c9e97b83ab275578cbeab9e27b61fc91a304e4b2765ffb56866ead73a31ca",
343
+ "tests/test_retry.py": "747edbaee2615915c0a45899d1506787c5020e5f99b3384c460c638fa0786e42",
344
+ "tests/test_surface.py": "6e70a328e22ccdca8259d989d28200be2b88b34300b4fc25340a0a5d32ae0311",
345
+ "tests/test_timeout.py": "f0d996600b45d5432ff9ed7cd313c6c312cd8d875d4e8ecb7af5c6185755799e",
346
+ "tests/types.py": "3b73ae64e0bc4523ae68b80ae36c96961d5a72da640e4b17c6451d97c3ada937"
347
+ },
348
+ "targets": [
349
+ "python"
350
+ ]
351
+ }
352
+ },
353
+ "version": 1
354
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "targets": {
3
+ "python": {
4
+ "commit": "d7f167fd84ae2f3876f10b70ccddf94bfe7da19c",
5
+ "contract": "sha256:9cdf2b9073b2512ffaa0329e7724988db96e5c93a657a3e67b41cf908d9ef55e",
6
+ "generator": "0.0.24",
7
+ "version": "0.1.0"
8
+ }
9
+ },
10
+ "version": 1
11
+ }
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Blue Whale Software, LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.