@agents-at-scale/ark 0.1.67 → 0.1.68
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.
package/dist/arkServices.js
CHANGED
|
@@ -202,6 +202,27 @@ const defaultArkServices = {
|
|
|
202
202
|
k8sServicePort: 8639,
|
|
203
203
|
k8sDeploymentName: 'noah-mcp',
|
|
204
204
|
},
|
|
205
|
+
'kubernetes-mcp-server': {
|
|
206
|
+
name: 'kubernetes-mcp-server',
|
|
207
|
+
helmReleaseName: 'kubernetes-mcp-server',
|
|
208
|
+
description: 'Read-only Kubernetes MCP server exposing cluster resources as tools',
|
|
209
|
+
enabled: true,
|
|
210
|
+
category: 'service',
|
|
211
|
+
chartPath: `${getMarketplaceRegistry()}/kubernetes-mcp-server`,
|
|
212
|
+
installArgs: [],
|
|
213
|
+
k8sServiceName: 'kubernetes-mcp-server',
|
|
214
|
+
k8sServicePort: 8080,
|
|
215
|
+
k8sDeploymentName: 'kubernetes-mcp-server',
|
|
216
|
+
},
|
|
217
|
+
'argo-make-author': {
|
|
218
|
+
name: 'argo-make-author',
|
|
219
|
+
helmReleaseName: 'argo-make-author',
|
|
220
|
+
description: 'Conversational Argo WorkflowTemplate authoring agent',
|
|
221
|
+
enabled: false,
|
|
222
|
+
category: 'service',
|
|
223
|
+
chartPath: `${getMarketplaceRegistry()}/argo-make-author`,
|
|
224
|
+
installArgs: [],
|
|
225
|
+
},
|
|
205
226
|
};
|
|
206
227
|
function applyConfigOverrides(defaults) {
|
|
207
228
|
const config = loadConfig();
|
|
@@ -14,6 +14,65 @@ const RESOURCE_ORDER = [
|
|
|
14
14
|
'mcpservers',
|
|
15
15
|
'a2aservers',
|
|
16
16
|
];
|
|
17
|
+
const SERVER_MANAGED_METADATA_FIELDS = [
|
|
18
|
+
'resourceVersion',
|
|
19
|
+
'uid',
|
|
20
|
+
'generation',
|
|
21
|
+
'creationTimestamp',
|
|
22
|
+
'managedFields',
|
|
23
|
+
'selfLink',
|
|
24
|
+
'deletionTimestamp',
|
|
25
|
+
'deletionGracePeriodSeconds',
|
|
26
|
+
'ownerReferences',
|
|
27
|
+
'finalizers',
|
|
28
|
+
];
|
|
29
|
+
const LAST_APPLIED_ANNOTATION = 'kubectl.kubernetes.io/last-applied-configuration';
|
|
30
|
+
function isRecord(value) {
|
|
31
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
32
|
+
}
|
|
33
|
+
function sanitizeResource(resource) {
|
|
34
|
+
const sanitized = { ...resource };
|
|
35
|
+
delete sanitized.status;
|
|
36
|
+
const metadata = { ...resource.metadata };
|
|
37
|
+
for (const field of SERVER_MANAGED_METADATA_FIELDS) {
|
|
38
|
+
delete metadata[field];
|
|
39
|
+
}
|
|
40
|
+
if (isRecord(metadata.annotations)) {
|
|
41
|
+
const annotations = { ...metadata.annotations };
|
|
42
|
+
delete annotations[LAST_APPLIED_ANNOTATION];
|
|
43
|
+
if (Object.keys(annotations).length === 0) {
|
|
44
|
+
delete metadata.annotations;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
metadata.annotations = annotations;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
sanitized.metadata = metadata;
|
|
51
|
+
return sanitized;
|
|
52
|
+
}
|
|
53
|
+
function isExcludedSecret(resource) {
|
|
54
|
+
const isHelmRelease = resource.type === 'helm.sh/release.v1' &&
|
|
55
|
+
resource.metadata.name.startsWith('sh.helm.release.v1.');
|
|
56
|
+
return (isHelmRelease || resource.type === 'kubernetes.io/service-account-token');
|
|
57
|
+
}
|
|
58
|
+
function hasOwnerReference(resource, ownerKind) {
|
|
59
|
+
return (Array.isArray(resource.metadata.ownerReferences) &&
|
|
60
|
+
resource.metadata.ownerReferences.some((ownerReference) => isRecord(ownerReference) && ownerReference.kind === ownerKind));
|
|
61
|
+
}
|
|
62
|
+
function isControllerManagedResource(resourceType, resource) {
|
|
63
|
+
const labels = isRecord(resource.metadata.labels)
|
|
64
|
+
? resource.metadata.labels
|
|
65
|
+
: {};
|
|
66
|
+
if (resourceType === 'tools') {
|
|
67
|
+
return (typeof labels['mcp/server'] === 'string' ||
|
|
68
|
+
hasOwnerReference(resource, 'MCPServer'));
|
|
69
|
+
}
|
|
70
|
+
if (resourceType === 'agents') {
|
|
71
|
+
return (typeof labels['a2a/server'] === 'string' ||
|
|
72
|
+
hasOwnerReference(resource, 'A2AServer'));
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
17
76
|
async function exportResources(options, config) {
|
|
18
77
|
try {
|
|
19
78
|
const allResourceTypes = config.defaultExportTypes || RESOURCE_ORDER;
|
|
@@ -28,6 +87,8 @@ async function exportResources(options, config) {
|
|
|
28
87
|
output.info(`exporting ark resources to ${outputPath}...`);
|
|
29
88
|
const allResources = [];
|
|
30
89
|
let allResourceCount = 0;
|
|
90
|
+
let excludedSecretCount = 0;
|
|
91
|
+
let excludedManagedResourceCount = 0;
|
|
31
92
|
for (const resourceType of resourceTypes) {
|
|
32
93
|
if (!RESOURCE_ORDER.includes(resourceType)) {
|
|
33
94
|
output.warning(`unknown resource type: ${resourceType}, skipping`);
|
|
@@ -41,10 +102,26 @@ async function exportResources(options, config) {
|
|
|
41
102
|
const resourceCount = resources.length;
|
|
42
103
|
if (resources.length > 0) {
|
|
43
104
|
output.success(`found ${resourceCount} ${resourceType}`);
|
|
44
|
-
|
|
45
|
-
|
|
105
|
+
let exportableResources = resourceType === 'secrets'
|
|
106
|
+
? resources.filter((resource) => !isExcludedSecret(resource))
|
|
107
|
+
: resources;
|
|
108
|
+
excludedSecretCount += resourceCount - exportableResources.length;
|
|
109
|
+
const resourceCountAfterSecretFiltering = exportableResources.length;
|
|
110
|
+
exportableResources = exportableResources.filter((resource) => !isControllerManagedResource(resourceType, resource));
|
|
111
|
+
excludedManagedResourceCount +=
|
|
112
|
+
resourceCountAfterSecretFiltering - exportableResources.length;
|
|
113
|
+
allResources.push(...exportableResources.map(sanitizeResource));
|
|
114
|
+
allResourceCount += exportableResources.length;
|
|
46
115
|
}
|
|
47
116
|
}
|
|
117
|
+
if (excludedSecretCount > 0) {
|
|
118
|
+
const secretLabel = excludedSecretCount === 1 ? 'secret' : 'secrets';
|
|
119
|
+
output.info(`excluded ${excludedSecretCount} system-managed ${secretLabel}`);
|
|
120
|
+
}
|
|
121
|
+
if (excludedManagedResourceCount > 0) {
|
|
122
|
+
const resourceLabel = excludedManagedResourceCount === 1 ? 'resource' : 'resources';
|
|
123
|
+
output.info(`excluded ${excludedManagedResourceCount} controller-managed ${resourceLabel}`);
|
|
124
|
+
}
|
|
48
125
|
if (allResourceCount === 0) {
|
|
49
126
|
output.warning('no resources found to export');
|
|
50
127
|
return;
|
|
@@ -40,6 +40,12 @@ export declare class ArkApiClient {
|
|
|
40
40
|
private baseUrl;
|
|
41
41
|
constructor(arkApiUrl: string);
|
|
42
42
|
getBaseUrl(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Fetch every page of a cursor-paginated ark-api list endpoint and return
|
|
45
|
+
* the concatenated items. Follows the `continue_token` returned by ark-api
|
|
46
|
+
* until the server reports the last page (`continue_token` null/absent).
|
|
47
|
+
*/
|
|
48
|
+
private fetchAllPages;
|
|
43
49
|
getQueryTargets(): Promise<QueryTarget[]>;
|
|
44
50
|
getAgents(): Promise<Agent[]>;
|
|
45
51
|
getModels(): Promise<Model[]>;
|
package/dist/lib/arkApiClient.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const PAGE_LIMIT = 100;
|
|
1
2
|
export class ArkApiClient {
|
|
2
3
|
baseUrl;
|
|
3
4
|
constructor(arkApiUrl) {
|
|
@@ -6,6 +7,31 @@ export class ArkApiClient {
|
|
|
6
7
|
getBaseUrl() {
|
|
7
8
|
return this.baseUrl;
|
|
8
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Fetch every page of a cursor-paginated ark-api list endpoint and return
|
|
12
|
+
* the concatenated items. Follows the `continue_token` returned by ark-api
|
|
13
|
+
* until the server reports the last page (`continue_token` null/absent).
|
|
14
|
+
*/
|
|
15
|
+
async fetchAllPages(path) {
|
|
16
|
+
const items = [];
|
|
17
|
+
let continueToken;
|
|
18
|
+
do {
|
|
19
|
+
const url = new URL(`${this.baseUrl}${path}`);
|
|
20
|
+
url.searchParams.set('limit', String(PAGE_LIMIT));
|
|
21
|
+
if (continueToken) {
|
|
22
|
+
url.searchParams.set('continue', continueToken);
|
|
23
|
+
}
|
|
24
|
+
const response = await fetch(url.toString());
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
27
|
+
}
|
|
28
|
+
const data = (await response.json());
|
|
29
|
+
if (data.items)
|
|
30
|
+
items.push(...data.items);
|
|
31
|
+
continueToken = data.continue_token;
|
|
32
|
+
} while (continueToken);
|
|
33
|
+
return items;
|
|
34
|
+
}
|
|
9
35
|
async getQueryTargets() {
|
|
10
36
|
try {
|
|
11
37
|
const targets = [];
|
|
@@ -17,17 +43,14 @@ export class ArkApiClient {
|
|
|
17
43
|
];
|
|
18
44
|
for (const ep of endpoints) {
|
|
19
45
|
try {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
description: item.description || item.name,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
46
|
+
const items = await this.fetchAllPages(ep.path);
|
|
47
|
+
for (const item of items) {
|
|
48
|
+
targets.push({
|
|
49
|
+
id: `${ep.type}/${item.name}`,
|
|
50
|
+
name: item.name,
|
|
51
|
+
type: ep.type,
|
|
52
|
+
description: item.description || item.name,
|
|
53
|
+
});
|
|
31
54
|
}
|
|
32
55
|
}
|
|
33
56
|
catch {
|
|
@@ -42,12 +65,7 @@ export class ArkApiClient {
|
|
|
42
65
|
}
|
|
43
66
|
async getAgents() {
|
|
44
67
|
try {
|
|
45
|
-
|
|
46
|
-
if (!response.ok) {
|
|
47
|
-
throw new Error(`HTTP error! status: ${response.status}`);
|
|
48
|
-
}
|
|
49
|
-
const data = (await response.json());
|
|
50
|
-
return data.items || [];
|
|
68
|
+
return await this.fetchAllPages('/v1/agents');
|
|
51
69
|
}
|
|
52
70
|
catch (error) {
|
|
53
71
|
throw new Error(`Failed to get agents: ${error instanceof Error ? error.message : 'Unknown error'}`, { cause: error });
|
|
@@ -55,12 +73,7 @@ export class ArkApiClient {
|
|
|
55
73
|
}
|
|
56
74
|
async getModels() {
|
|
57
75
|
try {
|
|
58
|
-
|
|
59
|
-
if (!response.ok) {
|
|
60
|
-
throw new Error(`HTTP error! status: ${response.status}`);
|
|
61
|
-
}
|
|
62
|
-
const data = (await response.json());
|
|
63
|
-
return data.items || [];
|
|
76
|
+
return await this.fetchAllPages('/v1/models');
|
|
64
77
|
}
|
|
65
78
|
catch (error) {
|
|
66
79
|
throw new Error(`Failed to get models: ${error instanceof Error ? error.message : 'Unknown error'}`, { cause: error });
|
|
@@ -68,12 +81,7 @@ export class ArkApiClient {
|
|
|
68
81
|
}
|
|
69
82
|
async getTools() {
|
|
70
83
|
try {
|
|
71
|
-
|
|
72
|
-
if (!response.ok) {
|
|
73
|
-
throw new Error(`HTTP error! status: ${response.status}`);
|
|
74
|
-
}
|
|
75
|
-
const data = (await response.json());
|
|
76
|
-
return data.items || [];
|
|
84
|
+
return await this.fetchAllPages('/v1/tools');
|
|
77
85
|
}
|
|
78
86
|
catch (error) {
|
|
79
87
|
throw new Error(`Failed to get tools: ${error instanceof Error ? error.message : 'Unknown error'}`, { cause: error });
|
|
@@ -81,12 +89,7 @@ export class ArkApiClient {
|
|
|
81
89
|
}
|
|
82
90
|
async getTeams() {
|
|
83
91
|
try {
|
|
84
|
-
|
|
85
|
-
if (!response.ok) {
|
|
86
|
-
throw new Error(`HTTP error! status: ${response.status}`);
|
|
87
|
-
}
|
|
88
|
-
const data = (await response.json());
|
|
89
|
-
return data.items || [];
|
|
92
|
+
return await this.fetchAllPages('/v1/teams');
|
|
90
93
|
}
|
|
91
94
|
catch (error) {
|
|
92
95
|
throw new Error(`Failed to get teams: ${error instanceof Error ? error.message : 'Unknown error'}`, { cause: error });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agents-at-scale/ark",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.68",
|
|
4
4
|
"description": "Ark CLI - Interactive terminal interface for ARK agents",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@kubernetes/client-node": "^1.3.0",
|
|
46
46
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
47
|
-
"axios": "^1.
|
|
47
|
+
"axios": "^1.18.0",
|
|
48
48
|
"chalk": "^4.1.2",
|
|
49
49
|
"commander": "^12.1.0",
|
|
50
50
|
"debug": "^4.4.1",
|
|
@@ -85,17 +85,20 @@
|
|
|
85
85
|
"node": ">=18.0.0"
|
|
86
86
|
},
|
|
87
87
|
"overrides": {
|
|
88
|
-
"brace-expansion": ">=5.0.
|
|
88
|
+
"brace-expansion": ">=5.0.9",
|
|
89
|
+
"ip-address": "^10.3.1",
|
|
90
|
+
"js-yaml": "^4.3.1",
|
|
89
91
|
"minimatch": "^10.2.3",
|
|
90
92
|
"rollup": "4.59.0",
|
|
91
93
|
"hono": "^4.12.25",
|
|
92
|
-
"@hono/node-server": "^
|
|
94
|
+
"@hono/node-server": "^2.0.5",
|
|
93
95
|
"flatted": "^3.4.2",
|
|
94
96
|
"tar": "^7.5.11",
|
|
95
97
|
"express-rate-limit": "^8.3.0",
|
|
96
|
-
"fast-uri": "^3.1.
|
|
98
|
+
"fast-uri": "^3.1.5",
|
|
97
99
|
"ws": "^8.21.0",
|
|
98
100
|
"esbuild": "^0.28.1",
|
|
99
|
-
"form-data": "^4.0.6"
|
|
101
|
+
"form-data": "^4.0.6",
|
|
102
|
+
"postcss": "^8.5.18"
|
|
100
103
|
}
|
|
101
104
|
}
|
|
@@ -63,7 +63,7 @@ ENTRYPOINT [ "/bin/bash", "-c", "mcp-proxy --debug --port 8080 --host 0.0.0.0 --
|
|
|
63
63
|
{{- end }}
|
|
64
64
|
|
|
65
65
|
{{- else if eq .Values.technology "go" }}
|
|
66
|
-
FROM golang:1.26.
|
|
66
|
+
FROM golang:1.26.6-alpine AS go-builder
|
|
67
67
|
{{- if .Values.packageSource }}
|
|
68
68
|
{{- if eq .Values.packageSource "go-install" }}
|
|
69
69
|
RUN go install {{ .Values.packageName }}@latest
|
package/templates/tool/uv.lock
CHANGED
|
@@ -192,55 +192,52 @@ wheels = [
|
|
|
192
192
|
|
|
193
193
|
[[package]]
|
|
194
194
|
name = "cryptography"
|
|
195
|
-
version = "
|
|
195
|
+
version = "50.0.0"
|
|
196
196
|
source = { registry = "https://pypi.org/simple" }
|
|
197
197
|
dependencies = [
|
|
198
198
|
{ name = "cffi", marker = "platform_python_implementation != 'PyPy'" },
|
|
199
199
|
]
|
|
200
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
201
|
-
wheels = [
|
|
202
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
203
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
204
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
205
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
206
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
207
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
208
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
209
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
210
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
211
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
212
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
213
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
214
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
215
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
216
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
217
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
218
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
219
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
220
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
221
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
222
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
223
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
224
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
225
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
226
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
227
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
228
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
229
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
230
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
231
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
232
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
233
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
234
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
235
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
236
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
237
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
238
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
239
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
240
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
241
|
-
{ url = "https://files.pythonhosted.org/packages/52/41/04cb5eb17085ade6f50cc611fb657df6a0f5885350de8764ece89c050197/cryptography-48.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:86fe77abb1bd87afb251d4d02ada7ecf53a32cee9b67d976abb2e45a13297475", size = 4964539, upload-time = "2026-06-09T22:31:18.793Z" },
|
|
242
|
-
{ url = "https://files.pythonhosted.org/packages/36/bf/ed70785c496e89d7e73b7cda2d21f2447fd6d4e821714b8d04ff217fed92/cryptography-48.0.1-cp39-abi3-win32.whl", hash = "sha256:6b2c0c3e6ccf3ade7750f836ef3ee36eea250cc467d45c256895573ac08cc6f1", size = 3282307, upload-time = "2026-06-09T22:30:53.162Z" },
|
|
243
|
-
{ url = "https://files.pythonhosted.org/packages/b3/ff/371ea7d252656ee1eb6d83eeeef3d1d0c6baf1d6497687d081ea03814670/cryptography-48.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:9a49ca6c81417f6a5edb50375a60cccdd70fa0a91a5211829dbea74eba94d2ac", size = 3793408, upload-time = "2026-06-09T22:32:15.191Z" },
|
|
200
|
+
sdist = { url = "https://files.pythonhosted.org/packages/de/41/6cbdcf9142d00fe82836fbb51e503e58088575cf7a0fe1dbff6695bf0840/cryptography-50.0.0.tar.gz", hash = "sha256:eeac2acb5a20ed25e0ad6d1df9891a520b78b404266b6d11778f25d5d691a6c9", size = 880201, upload-time = "2026-07-31T14:25:10.11Z" }
|
|
201
|
+
wheels = [
|
|
202
|
+
{ url = "https://files.pythonhosted.org/packages/c5/5c/59086b4aac5e879d38ddbcf74e4be7ade89cebc3eb199a55da998c3bb46a/cryptography-50.0.0-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:031e2d5dd4bb9caa3ca9c82e5a197fd8ae680232cee62603d1a813f3f07e3d03", size = 4001252, upload-time = "2026-07-31T14:23:33.331Z" },
|
|
203
|
+
{ url = "https://files.pythonhosted.org/packages/57/ef/8f2df13c7216bcad3e1c74e07f6e193d93e998e114f524a53877c9af27ad/cryptography-50.0.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fd9192b7b70c573d7f214eb1ae35e00d359f6f5e4b27c7e21e30de1fc6204645", size = 4719554, upload-time = "2026-07-31T14:23:35.611Z" },
|
|
204
|
+
{ url = "https://files.pythonhosted.org/packages/d9/41/029086c34d91052fc3b88bcc8056f709a7c915c7a23b235a54eb800b1c97/cryptography-50.0.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:06a32a980526a6ab9a4b9bf8f7385800791e2bb960903cb6b530e4817509a3b7", size = 4702130, upload-time = "2026-07-31T14:23:37.635Z" },
|
|
205
|
+
{ url = "https://files.pythonhosted.org/packages/7d/ff/b6ce0954962e7f7b969f850a883744197bb3910bdfd7b6da162eab7d9f68/cryptography-50.0.0-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:a1b30560f2acc95aa8b2e06e716a13dbfc97314747b80d9707e307f77b40d6b3", size = 4725244, upload-time = "2026-07-31T14:23:39.471Z" },
|
|
206
|
+
{ url = "https://files.pythonhosted.org/packages/06/1e/63a1027cb7fec360a182208e1b7767d5aa1fe57be3d6aa856e69a321edc0/cryptography-50.0.0-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:8d89f3976b10b4ce31118de72329025f70d2c6ead14a8217c5514dd2c6d5a78f", size = 5342265, upload-time = "2026-07-31T14:23:41.286Z" },
|
|
207
|
+
{ url = "https://files.pythonhosted.org/packages/6b/72/a1116d683a6d7ece94590013882515de087edf9ef0e6292aae615a44df73/cryptography-50.0.0-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b42a28c1844fd9de8f3f7d540e36b66f3a9c83fceac7170ebc7a6a19edd9dcae", size = 4734609, upload-time = "2026-07-31T14:23:43.139Z" },
|
|
208
|
+
{ url = "https://files.pythonhosted.org/packages/15/37/36a9c479bbe49acea2636c7fd3360d20f7b7e079c300352011c44850b181/cryptography-50.0.0-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:900131fafd8aead39ac7dd3a7e833be754c17a95cfd91221636949fe4eb0aa8a", size = 4356517, upload-time = "2026-07-31T14:23:44.939Z" },
|
|
209
|
+
{ url = "https://files.pythonhosted.org/packages/32/98/8a151d64367204cbc63ec65d37502f1d9c53cf4bfc6ec3c532614dbec60d/cryptography-50.0.0-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:07949c449a1abcf60d1ee6e88956d89404c7df3c8258f46589e912988e551987", size = 4724529, upload-time = "2026-07-31T14:23:46.93Z" },
|
|
210
|
+
{ url = "https://files.pythonhosted.org/packages/22/f6/ec13b470172126464a86bf54d2294a46d29837fc51ba3e45d4047946fb5e/cryptography-50.0.0-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:f89831ef99dd7dd169ab06d63a831adb9e20a87aac6d380266bbda5823349169", size = 5299852, upload-time = "2026-07-31T14:23:48.851Z" },
|
|
211
|
+
{ url = "https://files.pythonhosted.org/packages/da/3a/f05e32c99d440c9bb891ea0e36c9091891e36be5a9a87ab2ee6ea20729f6/cryptography-50.0.0-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:82148ec5bddac30b51a5b3c1945075f896fa022cb93f8e4a01e9f6ee95292c5f", size = 4734462, upload-time = "2026-07-31T14:23:50.861Z" },
|
|
212
|
+
{ url = "https://files.pythonhosted.org/packages/ca/dc/bd72b26be8953f80625f63151efd38eee71c76ca6cf591c08ff34615a79e/cryptography-50.0.0-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1489e263a8048bb8b6a8bac662eb2d402ea5d2b7b4699b72f385f1e2772db105", size = 4852708, upload-time = "2026-07-31T14:23:52.715Z" },
|
|
213
|
+
{ url = "https://files.pythonhosted.org/packages/27/20/c930314a2ab476d15dec966ec87e2e9637bb02b06106b12c0396c57bb603/cryptography-50.0.0-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7cec5b856506da6defb290f30c9ee687d5f5e8cb0bd3f6459dde43b0b4fa40ef", size = 5004179, upload-time = "2026-07-31T14:23:54.887Z" },
|
|
214
|
+
{ url = "https://files.pythonhosted.org/packages/32/2e/c9db68a0c4bfa28e310707527c0ee3a2bd254104d2e02e68f368e197aa4c/cryptography-50.0.0-cp311-abi3-win_amd64.whl", hash = "sha256:bd1c592e4d5974f0d08d4888e432157adba757c66da0246918e43677fafa2d30", size = 3840395, upload-time = "2026-07-31T14:23:56.677Z" },
|
|
215
|
+
{ url = "https://files.pythonhosted.org/packages/c3/fb/951032a3bf22a5697c83183fb6294a4843772947a70e616c57b3ff5f522e/cryptography-50.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:49e7d93abdbd2990caced757e5fade25302f719c3c8fb6e6fff2dde98999fc41", size = 3989258, upload-time = "2026-07-31T14:23:58.881Z" },
|
|
216
|
+
{ url = "https://files.pythonhosted.org/packages/d4/67/91eb047e69c5e845f2f14b8a2e4a1aab0f283cb885531e9e22c8adb176bc/cryptography-50.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:19736989797678c6af1e55cd49055cdbcb55d8f6b5583ac5335f933aba9101dc", size = 4700648, upload-time = "2026-07-31T14:24:00.702Z" },
|
|
217
|
+
{ url = "https://files.pythonhosted.org/packages/30/82/85f0f7425c856b9f96459411eb12e74ef72df9caf6f8f15bf23a33ff131f/cryptography-50.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:80b63928fa35083b33966ce1efb70e5b9607181e49dcd1c22c8c005e319f667f", size = 4682442, upload-time = "2026-07-31T14:24:02.538Z" },
|
|
218
|
+
{ url = "https://files.pythonhosted.org/packages/1a/28/b555a365adff1cca2fbe7b9e487d68a40de6bc67ff2cb587473eb43de0e7/cryptography-50.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:d58c3db7cd6eed54e6c06744db55456b65ebd7492ddeae9c1e93cfca7aa857d3", size = 4707596, upload-time = "2026-07-31T14:24:04.394Z" },
|
|
219
|
+
{ url = "https://files.pythonhosted.org/packages/72/d8/f52538140cc719df62a01cf87d1c7142318d235817109d6f4054d7c352d6/cryptography-50.0.0-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:df2a58a472f332225671c35b0a830208b86d004f82baa8530fa3782c85646533", size = 5314552, upload-time = "2026-07-31T14:24:06.31Z" },
|
|
220
|
+
{ url = "https://files.pythonhosted.org/packages/38/14/6120e5bd7c5aa022ad15424ba4d5c5269d0d9448ed4d55e492ea91e3c1c4/cryptography-50.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:11b74db56cdbe3cdee6e3f6982ecb70334fa10dce99ed58bf7894aaaa3b2a037", size = 4717113, upload-time = "2026-07-31T14:24:08.349Z" },
|
|
221
|
+
{ url = "https://files.pythonhosted.org/packages/fa/71/190bf38c3ee2e0f8efc9860ae100c9df4169742eef274b91e7aa1cb133b9/cryptography-50.0.0-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:f59e38625469987d7ef6d495323c55e7db6c212eaf6112267e0d3b565a2e9c9f", size = 4338580, upload-time = "2026-07-31T14:24:10.227Z" },
|
|
222
|
+
{ url = "https://files.pythonhosted.org/packages/3a/63/504ccfbbe61fd8aa983f7f146399cdf034c72c2fc55f5b2dfdcdcdb20c99/cryptography-50.0.0-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:ecfed7367f965a0328cfbdd70da860f15441f002f613185668c6e6ebf5a0ac11", size = 4707038, upload-time = "2026-07-31T14:24:12.169Z" },
|
|
223
|
+
{ url = "https://files.pythonhosted.org/packages/01/77/2cf79bbfc4d12ca106437a6e170d6aaa01a373e93093118aaaef0e801bd4/cryptography-50.0.0-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:9aa87839c383bdbab6ef865787a1fb877af8dd03464c4400322726feaaadfc6d", size = 5273110, upload-time = "2026-07-31T14:24:14.38Z" },
|
|
224
|
+
{ url = "https://files.pythonhosted.org/packages/e5/45/8aae2972c520145377ea3559a605a899bebe227bf070b33cdb445929a9b9/cryptography-50.0.0-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:6ba6a53445bd3cfa809ef3ef5f1589aa6ba08784a1d962bf47d0940e871dab1c", size = 4716439, upload-time = "2026-07-31T14:24:16.415Z" },
|
|
225
|
+
{ url = "https://files.pythonhosted.org/packages/7b/20/4fe50b619a48c2525cc46e2dbc1ac490708d704be5d467bdaac6dc955682/cryptography-50.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3f5735ffe4996d28b809371756219f5354864902a3b9e7c0b9ee87041209fc9c", size = 4837383, upload-time = "2026-07-31T14:24:18.553Z" },
|
|
226
|
+
{ url = "https://files.pythonhosted.org/packages/92/91/3a31366e183343d3703f8995c095f5734676bd6938118047e50fcf279eb4/cryptography-50.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:1b4a266766514614f8aa60416e71f2fc6e575d36e7bdc90f644fadb2f4b75b95", size = 4985772, upload-time = "2026-07-31T14:24:20.385Z" },
|
|
227
|
+
{ url = "https://files.pythonhosted.org/packages/74/9a/02ffe35b2853d121689871eb5dce862092562b3a1ed5cc98f1aaed441506/cryptography-50.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:12b9c6996425c76ea6c457ace4f3073e715b8c545add07cd1a8f3a4f90691269", size = 3816291, upload-time = "2026-07-31T14:24:22.125Z" },
|
|
228
|
+
{ url = "https://files.pythonhosted.org/packages/03/37/73d005be173aff344af30e9fd2a576575cb2391a7101d9cd3842e1fa8cce/cryptography-50.0.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:ccdc4a71a4dabae05de219404f9f4abc38e3b58422177ff93d0da05967dafa07", size = 4036009, upload-time = "2026-07-31T14:24:24.122Z" },
|
|
229
|
+
{ url = "https://files.pythonhosted.org/packages/ff/c6/7a6202a534e32103a285b7834a120869557fe198d51d7cfe59754c8bda9c/cryptography-50.0.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:910e1d2668e7de9648f2bcee30e180db2a6b15c30f887d7c4c93ddf96e3992e3", size = 4745252, upload-time = "2026-07-31T14:24:26.118Z" },
|
|
230
|
+
{ url = "https://files.pythonhosted.org/packages/85/4f/0fa8c2f4428198f15d9ff8d63400e27afbf94ce833f6108da1eb3753f945/cryptography-50.0.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a91296cb61e8df6f86d0c19cc4068228da256bf59bf86049fbd821084565327f", size = 4728939, upload-time = "2026-07-31T14:24:27.994Z" },
|
|
231
|
+
{ url = "https://files.pythonhosted.org/packages/d1/63/54dd723490ba2dc09b299682c10b38db38f159728bcaae8c591b8af2f22d/cryptography-50.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e722f16708d854fe924790e051061f6704a472c3bac347b6fd88033ea8dd0dc5", size = 4748483, upload-time = "2026-07-31T14:24:30.254Z" },
|
|
232
|
+
{ url = "https://files.pythonhosted.org/packages/1d/dd/7c77d26285cc7f6991efce64a0f5b4f9383bfa5dd8c5033003eaf7db4cdb/cryptography-50.0.0-cp39-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:d764dcf130c428ef66786f866dd750f53182bc608813489915e9fc106bb0c82f", size = 5367599, upload-time = "2026-07-31T14:24:32.457Z" },
|
|
233
|
+
{ url = "https://files.pythonhosted.org/packages/46/c9/f60aed34c013f317f92817b6c171c2d22a78270fa41109bd4b08af26b194/cryptography-50.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:105110f43a471dbd0060b9c9516cb8a6a79233631a04cc2ba16f28323ac6e025", size = 4762647, upload-time = "2026-07-31T14:24:34.599Z" },
|
|
234
|
+
{ url = "https://files.pythonhosted.org/packages/be/f3/f9a0173b139372c3a48ed98154b45cc6b9de17c789d5ab552e621c293609/cryptography-50.0.0-cp39-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:828743d939e9629bc267b8e2d08d8bb67cd4319c771a33d4b18b22dd8fb7440a", size = 4385197, upload-time = "2026-07-31T14:24:36.647Z" },
|
|
235
|
+
{ url = "https://files.pythonhosted.org/packages/d8/36/83bb81f6e569bc38e1e4a7bc80f29b46bb9601920bc455fc8e888f5d5742/cryptography-50.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:2a8183b489dc1f7f80f135780fadc1108f14b31b8a40411c7a5b17425f65f28b", size = 4748095, upload-time = "2026-07-31T14:24:39.493Z" },
|
|
236
|
+
{ url = "https://files.pythonhosted.org/packages/6b/16/d3008eff98c764979865834c3d386d4fd041b5f52e7f34fc29ac1a5eb515/cryptography-50.0.0-cp39-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:6e7d61120573a7f2cd94cc095f9e81f6967c61ccdf194285aa143ecec8e0b708", size = 5325948, upload-time = "2026-07-31T14:24:41.556Z" },
|
|
237
|
+
{ url = "https://files.pythonhosted.org/packages/9c/f8/d97f9603efda3888187bfdb893f26c41be4735c10631d05d284ee6b047c4/cryptography-50.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:37fdb0d0111f1e2ff07139dfb79f1b49531f8e213c46f1163dd7642979b58c47", size = 4762400, upload-time = "2026-07-31T14:24:43.636Z" },
|
|
238
|
+
{ url = "https://files.pythonhosted.org/packages/64/a2/4615c8f7d81a00b1d6e6afe19f694e1543582349fb5f4076f6cb5dc36485/cryptography-50.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c87f62a3d3b9888ed0fdde100ec06aa61ca9cd44bad9057d1dff9a516b5f5bb9", size = 4878208, upload-time = "2026-07-31T14:24:45.522Z" },
|
|
239
|
+
{ url = "https://files.pythonhosted.org/packages/d2/1a/efcfb02f91407149a0dacffffab791f7e19bf6385f63b3666dc8b5e5c9c8/cryptography-50.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:65c2c3add92b45fd0709db8594536aea39c2a67af0e27ffcf049c498501140b7", size = 5037050, upload-time = "2026-07-31T14:24:47.697Z" },
|
|
240
|
+
{ url = "https://files.pythonhosted.org/packages/57/30/4a22984d4f1bdfb8c054f07a92bc176b97a3134cc1d6c4b3bffb1f3688b4/cryptography-50.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:d24fead1d4d076e1bfb006dcec392074a3cd8d7b4fc8a595aa64073b2b7a96ba", size = 3874135, upload-time = "2026-07-31T14:24:50.085Z" },
|
|
244
241
|
]
|
|
245
242
|
|
|
246
243
|
[[package]]
|
|
@@ -672,10 +669,10 @@ resolution-markers = [
|
|
|
672
669
|
"python_full_version < '3.14' and sys_platform != 'win32'",
|
|
673
670
|
]
|
|
674
671
|
dependencies = [
|
|
675
|
-
{ name = "annotated-types"
|
|
676
|
-
{ name = "pydantic-core", version = "2.33.2", source = { registry = "https://pypi.org/simple" }
|
|
677
|
-
{ name = "typing-extensions"
|
|
678
|
-
{ name = "typing-inspection", version = "0.4.1", source = { registry = "https://pypi.org/simple" }
|
|
672
|
+
{ name = "annotated-types" },
|
|
673
|
+
{ name = "pydantic-core", version = "2.33.2", source = { registry = "https://pypi.org/simple" } },
|
|
674
|
+
{ name = "typing-extensions" },
|
|
675
|
+
{ name = "typing-inspection", version = "0.4.1", source = { registry = "https://pypi.org/simple" } },
|
|
679
676
|
]
|
|
680
677
|
sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = 788350, upload-time = "2025-06-14T08:33:17.137Z" }
|
|
681
678
|
wheels = [
|
|
@@ -684,7 +681,7 @@ wheels = [
|
|
|
684
681
|
|
|
685
682
|
[package.optional-dependencies]
|
|
686
683
|
email = [
|
|
687
|
-
{ name = "email-validator"
|
|
684
|
+
{ name = "email-validator" },
|
|
688
685
|
]
|
|
689
686
|
|
|
690
687
|
[[package]]
|
|
@@ -696,10 +693,10 @@ resolution-markers = [
|
|
|
696
693
|
"python_full_version >= '3.14' and sys_platform != 'win32'",
|
|
697
694
|
]
|
|
698
695
|
dependencies = [
|
|
699
|
-
{ name = "annotated-types"
|
|
700
|
-
{ name = "pydantic-core", version = "2.46.4", source = { registry = "https://pypi.org/simple" }
|
|
701
|
-
{ name = "typing-extensions"
|
|
702
|
-
{ name = "typing-inspection", version = "0.4.2", source = { registry = "https://pypi.org/simple" }
|
|
696
|
+
{ name = "annotated-types" },
|
|
697
|
+
{ name = "pydantic-core", version = "2.46.4", source = { registry = "https://pypi.org/simple" } },
|
|
698
|
+
{ name = "typing-extensions" },
|
|
699
|
+
{ name = "typing-inspection", version = "0.4.2", source = { registry = "https://pypi.org/simple" } },
|
|
703
700
|
]
|
|
704
701
|
sdist = { url = "https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size = 844775, upload-time = "2026-05-06T13:43:05.343Z" }
|
|
705
702
|
wheels = [
|
|
@@ -708,7 +705,7 @@ wheels = [
|
|
|
708
705
|
|
|
709
706
|
[package.optional-dependencies]
|
|
710
707
|
email = [
|
|
711
|
-
{ name = "email-validator"
|
|
708
|
+
{ name = "email-validator" },
|
|
712
709
|
]
|
|
713
710
|
|
|
714
711
|
[[package]]
|
|
@@ -720,7 +717,7 @@ resolution-markers = [
|
|
|
720
717
|
"python_full_version < '3.14' and sys_platform != 'win32'",
|
|
721
718
|
]
|
|
722
719
|
dependencies = [
|
|
723
|
-
{ name = "typing-extensions"
|
|
720
|
+
{ name = "typing-extensions" },
|
|
724
721
|
]
|
|
725
722
|
sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195, upload-time = "2025-04-23T18:33:52.104Z" }
|
|
726
723
|
wheels = [
|
|
@@ -766,7 +763,7 @@ resolution-markers = [
|
|
|
766
763
|
"python_full_version >= '3.14' and sys_platform != 'win32'",
|
|
767
764
|
]
|
|
768
765
|
dependencies = [
|
|
769
|
-
{ name = "typing-extensions"
|
|
766
|
+
{ name = "typing-extensions" },
|
|
770
767
|
]
|
|
771
768
|
sdist = { url = "https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size = 471464, upload-time = "2026-05-06T13:37:06.98Z" }
|
|
772
769
|
wheels = [
|
|
@@ -1099,8 +1096,8 @@ name = "secretstorage"
|
|
|
1099
1096
|
version = "3.5.0"
|
|
1100
1097
|
source = { registry = "https://pypi.org/simple" }
|
|
1101
1098
|
dependencies = [
|
|
1102
|
-
{ name = "cryptography"
|
|
1103
|
-
{ name = "jeepney"
|
|
1099
|
+
{ name = "cryptography" },
|
|
1100
|
+
{ name = "jeepney" },
|
|
1104
1101
|
]
|
|
1105
1102
|
sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" }
|
|
1106
1103
|
wheels = [
|
|
@@ -1170,7 +1167,7 @@ resolution-markers = [
|
|
|
1170
1167
|
"python_full_version < '3.14' and sys_platform != 'win32'",
|
|
1171
1168
|
]
|
|
1172
1169
|
dependencies = [
|
|
1173
|
-
{ name = "typing-extensions"
|
|
1170
|
+
{ name = "typing-extensions" },
|
|
1174
1171
|
]
|
|
1175
1172
|
sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28", size = 75726, upload-time = "2025-05-21T18:55:23.885Z" }
|
|
1176
1173
|
wheels = [
|
|
@@ -1186,7 +1183,7 @@ resolution-markers = [
|
|
|
1186
1183
|
"python_full_version >= '3.14' and sys_platform != 'win32'",
|
|
1187
1184
|
]
|
|
1188
1185
|
dependencies = [
|
|
1189
|
-
{ name = "typing-extensions"
|
|
1186
|
+
{ name = "typing-extensions" },
|
|
1190
1187
|
]
|
|
1191
1188
|
sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" }
|
|
1192
1189
|
wheels = [
|