@agents-at-scale/ark 0.1.66 → 0.1.67
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/commands/import/index.js +47 -12
- package/dist/commands/query/index.js +1 -1
- package/dist/lib/executeQuery.js +5 -1
- package/dist/lib/formatEvent.d.ts +29 -0
- package/dist/lib/formatEvent.js +138 -0
- package/dist/lib/kubectl.d.ts +1 -1
- package/dist/lib/kubectl.js +20 -11
- package/package.json +2 -2
- package/templates/tool/uv.lock +161 -18
|
@@ -1,27 +1,62 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { execa } from 'execa';
|
|
3
3
|
import output from '../../lib/output.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
4
|
+
function countApplied(stdout) {
|
|
5
|
+
const counts = { created: 0, configured: 0, unchanged: 0 };
|
|
6
|
+
for (const line of stdout.split('\n')) {
|
|
7
|
+
const trimmed = line.trim();
|
|
8
|
+
if (trimmed.endsWith(' created')) {
|
|
9
|
+
counts.created++;
|
|
10
|
+
}
|
|
11
|
+
else if (trimmed.endsWith(' configured')) {
|
|
12
|
+
counts.configured++;
|
|
13
|
+
}
|
|
14
|
+
else if (trimmed.endsWith(' unchanged')) {
|
|
15
|
+
counts.unchanged++;
|
|
16
|
+
}
|
|
12
17
|
}
|
|
13
|
-
|
|
14
|
-
|
|
18
|
+
return counts;
|
|
19
|
+
}
|
|
20
|
+
async function importResources(filepath, options) {
|
|
21
|
+
if (!options.upsert) {
|
|
22
|
+
try {
|
|
23
|
+
output.info(`importing ark resources from ${filepath}...`);
|
|
24
|
+
const args = ['create', '-f', filepath];
|
|
25
|
+
await execa('kubectl', args, {
|
|
26
|
+
stdio: 'pipe',
|
|
27
|
+
});
|
|
28
|
+
output.success(`imported resources from ${filepath}`);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
output.error('import failed:', error instanceof Error ? error.message : error);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
output.info(`importing ark resources from ${filepath} (upsert)...`);
|
|
37
|
+
const result = await execa('kubectl', ['apply', '-f', filepath], {
|
|
38
|
+
stdio: 'pipe',
|
|
39
|
+
reject: false,
|
|
40
|
+
});
|
|
41
|
+
const counts = countApplied(result.stdout ?? '');
|
|
42
|
+
if (result.exitCode !== 0) {
|
|
43
|
+
output.error(`import failed (${counts.created} created, ${counts.configured} configured, ${counts.unchanged} unchanged before errors):`);
|
|
44
|
+
const details = (result.stderr || result.stdout || '').trim();
|
|
45
|
+
if (details) {
|
|
46
|
+
output.error(details);
|
|
47
|
+
}
|
|
15
48
|
process.exit(1);
|
|
16
49
|
}
|
|
50
|
+
output.success(`import complete: ${counts.created} created, ${counts.configured} configured, ${counts.unchanged} unchanged`);
|
|
17
51
|
}
|
|
18
52
|
export function createImportCommand(_) {
|
|
19
53
|
const importCommand = new Command('import');
|
|
20
54
|
importCommand
|
|
21
55
|
.description('import ARK resources from a file')
|
|
22
56
|
.argument('<filepath>', 'input file path')
|
|
23
|
-
.
|
|
24
|
-
|
|
57
|
+
.option('--upsert', 'create or update resources (kubectl apply); allows re-import onto a cluster that already has some of these resources')
|
|
58
|
+
.action(async (filepath, options) => {
|
|
59
|
+
await importResources(filepath, options);
|
|
25
60
|
});
|
|
26
61
|
return importCommand;
|
|
27
62
|
}
|
|
@@ -8,7 +8,7 @@ export function createQueryCommand(config) {
|
|
|
8
8
|
.description('Execute a single query against a model or agent')
|
|
9
9
|
.argument('<target>', 'Query target (e.g., model/default, agent/my-agent)')
|
|
10
10
|
.argument('<message>', 'Message to send')
|
|
11
|
-
.option('-o, --output <format>', 'Output format: yaml, json, name
|
|
11
|
+
.option('-o, --output <format>', 'Output format: yaml, json, name, events (structured event data), or events-pretty (events with color-coded reasons and expanded key/value detail)')
|
|
12
12
|
.option('--timeout <timeout>', 'Query timeout (e.g., 30s, 5m, 1h)')
|
|
13
13
|
.option('-p, --parameter <name=value>', 'Template parameter in name=value format (can be used multiple times)', (val, acc) => [...acc, val], [])
|
|
14
14
|
.option('--session-id <sessionId>', 'Session ID to associate with the query for conversation continuity')
|
package/dist/lib/executeQuery.js
CHANGED
|
@@ -137,6 +137,10 @@ async function executeQueryWithFormat(options) {
|
|
|
137
137
|
await watchEventsLive(queryName);
|
|
138
138
|
return;
|
|
139
139
|
}
|
|
140
|
+
if (options.outputFormat === 'events-pretty') {
|
|
141
|
+
await watchEventsLive(queryName, true);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
140
144
|
const timeoutSeconds = 300;
|
|
141
145
|
await execa('kubectl', [
|
|
142
146
|
'wait',
|
|
@@ -153,7 +157,7 @@ async function executeQueryWithFormat(options) {
|
|
|
153
157
|
console.log(stdout);
|
|
154
158
|
}
|
|
155
159
|
else {
|
|
156
|
-
console.error(chalk.red(`Invalid output format: ${options.outputFormat}. Use: yaml, json, name, or events`));
|
|
160
|
+
console.error(chalk.red(`Invalid output format: ${options.outputFormat}. Use: yaml, json, name, events, or events-pretty`));
|
|
157
161
|
process.exit(ExitCodes.CliError);
|
|
158
162
|
}
|
|
159
163
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface K8sEvent {
|
|
2
|
+
type?: string;
|
|
3
|
+
reason?: string;
|
|
4
|
+
eventTime?: string;
|
|
5
|
+
lastTimestamp?: string;
|
|
6
|
+
firstTimestamp?: string;
|
|
7
|
+
metadata?: {
|
|
8
|
+
uid?: string;
|
|
9
|
+
creationTimestamp?: string;
|
|
10
|
+
annotations?: Record<string, string>;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export declare function pad(value: number, width: number): string;
|
|
14
|
+
/**
|
|
15
|
+
* Derive an HH:MM:SS.mmm timestamp, preferring the event-data payload timestamp
|
|
16
|
+
* and falling back through the native Event time fields to wall-clock now.
|
|
17
|
+
*/
|
|
18
|
+
export declare function formatEventTimestamp(event: K8sEvent): string;
|
|
19
|
+
/**
|
|
20
|
+
* Render the structured event-data payload as `message > key=value ...`.
|
|
21
|
+
* The message is clipped and colored red for Warning/Error events; trailing
|
|
22
|
+
* fields keep their full value. Non-object payloads are echoed as-is.
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatEventData(eventData: string, eventType?: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Format a Kubernetes Event carrying an ark event-data annotation into a
|
|
27
|
+
* single human-readable line. Returns null when the event has no payload.
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatEvent(event: K8sEvent): string | null;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { EVENT_ANNOTATIONS } from './constants.js';
|
|
3
|
+
/**
|
|
4
|
+
* Shape of the JSON carried in the `ark.mckinsey.com/event-data` annotation:
|
|
5
|
+
*
|
|
6
|
+
* {
|
|
7
|
+
* "durationMs": "7084.30",
|
|
8
|
+
* "input": "ok?",
|
|
9
|
+
* "message": "Query execution completed",
|
|
10
|
+
* "queryId": "0b61250b-...",
|
|
11
|
+
* "queryName": "cli-query-1784110137509",
|
|
12
|
+
* "queryNamespace": "ark-system",
|
|
13
|
+
* "sessionId": "0b61250b-...",
|
|
14
|
+
* "targetType": "model",
|
|
15
|
+
* "timestamp": "2026-07-15T10:09:04.602422162Z"
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
18
|
+
const NUMERIC = /^-?\d+(\.\d+)?$/;
|
|
19
|
+
const MAX_MESSAGE_LENGTH = 120;
|
|
20
|
+
// Fields rendered first (in this order); everything else is sorted alphabetically.
|
|
21
|
+
const FIELD_PRIORITY = { input: 0, durationMs: 1 };
|
|
22
|
+
// Keys pulled out of the trailing field list because they are rendered elsewhere.
|
|
23
|
+
const RESERVED_KEYS = new Set(['message', 'timestamp']);
|
|
24
|
+
export function pad(value, width) {
|
|
25
|
+
return value.toString().padStart(width, '0');
|
|
26
|
+
}
|
|
27
|
+
function parseEventData(raw) {
|
|
28
|
+
if (!raw) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const parsed = JSON.parse(raw);
|
|
33
|
+
return parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
34
|
+
? parsed
|
|
35
|
+
: null;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function firstValidDate(candidates) {
|
|
42
|
+
for (const candidate of candidates) {
|
|
43
|
+
if (!candidate) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const date = new Date(candidate);
|
|
47
|
+
if (!Number.isNaN(date.getTime())) {
|
|
48
|
+
return date;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return new Date();
|
|
52
|
+
}
|
|
53
|
+
function truncate(value, max = MAX_MESSAGE_LENGTH) {
|
|
54
|
+
return value.length > max ? `${value.slice(0, max)}…` : value;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Derive an HH:MM:SS.mmm timestamp, preferring the event-data payload timestamp
|
|
58
|
+
* and falling back through the native Event time fields to wall-clock now.
|
|
59
|
+
*/
|
|
60
|
+
export function formatEventTimestamp(event) {
|
|
61
|
+
const data = parseEventData(event.metadata?.annotations?.[EVENT_ANNOTATIONS.EVENT_DATA]);
|
|
62
|
+
const dataTimestamp = typeof data?.timestamp === 'string' ? data.timestamp : undefined;
|
|
63
|
+
const date = firstValidDate([
|
|
64
|
+
dataTimestamp,
|
|
65
|
+
event.eventTime,
|
|
66
|
+
event.lastTimestamp,
|
|
67
|
+
event.firstTimestamp,
|
|
68
|
+
event.metadata?.creationTimestamp,
|
|
69
|
+
]);
|
|
70
|
+
return `${pad(date.getHours(), 2)}:${pad(date.getMinutes(), 2)}:${pad(date.getSeconds(), 2)}.${pad(date.getMilliseconds(), 3)}`;
|
|
71
|
+
}
|
|
72
|
+
function colorReason(reason, eventType) {
|
|
73
|
+
if (eventType === 'Warning') {
|
|
74
|
+
return chalk.yellow(reason);
|
|
75
|
+
}
|
|
76
|
+
if (eventType === 'Normal') {
|
|
77
|
+
return chalk.green(reason);
|
|
78
|
+
}
|
|
79
|
+
return chalk.red(reason);
|
|
80
|
+
}
|
|
81
|
+
function isErrorType(eventType) {
|
|
82
|
+
return eventType === 'Warning' || eventType === 'Error';
|
|
83
|
+
}
|
|
84
|
+
function compareKeys(a, b) {
|
|
85
|
+
const rank = (key) => FIELD_PRIORITY[key] ?? Number.MAX_SAFE_INTEGER;
|
|
86
|
+
return rank(a) - rank(b) || a.localeCompare(b);
|
|
87
|
+
}
|
|
88
|
+
function renderFieldValue(key, value) {
|
|
89
|
+
if (typeof value === 'number') {
|
|
90
|
+
return chalk.green(String(value));
|
|
91
|
+
}
|
|
92
|
+
if (value !== null && typeof value === 'object') {
|
|
93
|
+
return chalk.white(JSON.stringify(value));
|
|
94
|
+
}
|
|
95
|
+
const str = String(value);
|
|
96
|
+
if (NUMERIC.test(str)) {
|
|
97
|
+
return chalk.green(str);
|
|
98
|
+
}
|
|
99
|
+
return chalk.white(key === 'input' ? `"${str}"` : str);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Render the structured event-data payload as `message > key=value ...`.
|
|
103
|
+
* The message is clipped and colored red for Warning/Error events; trailing
|
|
104
|
+
* fields keep their full value. Non-object payloads are echoed as-is.
|
|
105
|
+
*/
|
|
106
|
+
export function formatEventData(eventData, eventType = 'Normal') {
|
|
107
|
+
const data = parseEventData(eventData);
|
|
108
|
+
if (!data) {
|
|
109
|
+
return ` ${eventData}`;
|
|
110
|
+
}
|
|
111
|
+
const messageColor = isErrorType(eventType) ? chalk.red : chalk.white;
|
|
112
|
+
const messagePart = typeof data.message === 'string'
|
|
113
|
+
? ` ${messageColor(truncate(data.message))}`
|
|
114
|
+
: '';
|
|
115
|
+
const fields = Object.keys(data)
|
|
116
|
+
.filter((key) => !RESERVED_KEYS.has(key))
|
|
117
|
+
.sort(compareKeys)
|
|
118
|
+
.map((key) => `${chalk.blue(key)}${chalk.dim('=')}${renderFieldValue(key, data[key])}`)
|
|
119
|
+
.join(' ');
|
|
120
|
+
if (!fields) {
|
|
121
|
+
return messagePart;
|
|
122
|
+
}
|
|
123
|
+
return `${messagePart} ${chalk.dim('>')} ${fields}`;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Format a Kubernetes Event carrying an ark event-data annotation into a
|
|
127
|
+
* single human-readable line. Returns null when the event has no payload.
|
|
128
|
+
*/
|
|
129
|
+
export function formatEvent(event) {
|
|
130
|
+
const eventData = event.metadata?.annotations?.[EVENT_ANNOTATIONS.EVENT_DATA];
|
|
131
|
+
if (!eventData) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
const timestamp = formatEventTimestamp(event);
|
|
135
|
+
const reason = event.reason || 'Unknown';
|
|
136
|
+
const eventType = event.type || 'Normal';
|
|
137
|
+
return `${chalk.dim(timestamp)} [${colorReason(reason, eventType)}]${formatEventData(eventData, eventType)}`;
|
|
138
|
+
}
|
package/dist/lib/kubectl.d.ts
CHANGED
|
@@ -14,5 +14,5 @@ export declare function deleteResource(resourceType: string, name?: string, opti
|
|
|
14
14
|
all?: boolean;
|
|
15
15
|
}): Promise<void>;
|
|
16
16
|
export declare function replaceResource<T extends K8sResource>(resource: T): Promise<T>;
|
|
17
|
-
export declare function watchEventsLive(queryName: string): Promise<void>;
|
|
17
|
+
export declare function watchEventsLive(queryName: string, pretty?: boolean): Promise<void>;
|
|
18
18
|
export {};
|
package/dist/lib/kubectl.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { execa } from 'execa';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { EVENT_ANNOTATIONS } from './constants.js';
|
|
4
|
+
import { formatEvent } from './formatEvent.js';
|
|
4
5
|
export async function getResource(resourceType, name) {
|
|
5
6
|
if (name === '@latest') {
|
|
6
7
|
const result = await execa('kubectl', [
|
|
@@ -53,7 +54,7 @@ export async function replaceResource(resource) {
|
|
|
53
54
|
});
|
|
54
55
|
return JSON.parse(result.stdout);
|
|
55
56
|
}
|
|
56
|
-
export async function watchEventsLive(queryName) {
|
|
57
|
+
export async function watchEventsLive(queryName, pretty = false) {
|
|
57
58
|
const seenEvents = new Set();
|
|
58
59
|
const pollEvents = async () => {
|
|
59
60
|
try {
|
|
@@ -73,16 +74,24 @@ export async function watchEventsLive(queryName) {
|
|
|
73
74
|
const annotations = event.metadata?.annotations || {};
|
|
74
75
|
const eventData = annotations[EVENT_ANNOTATIONS.EVENT_DATA];
|
|
75
76
|
if (eventData) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
77
|
+
if (pretty) {
|
|
78
|
+
const line = formatEvent(event);
|
|
79
|
+
if (line !== null) {
|
|
80
|
+
console.log(line);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const now = new Date();
|
|
85
|
+
const hours = now.getHours().toString().padStart(2, '0');
|
|
86
|
+
const minutes = now.getMinutes().toString().padStart(2, '0');
|
|
87
|
+
const seconds = now.getSeconds().toString().padStart(2, '0');
|
|
88
|
+
const millis = now.getMilliseconds().toString().padStart(3, '0');
|
|
89
|
+
const timestamp = `${hours}:${minutes}:${seconds}.${millis}`;
|
|
90
|
+
const reason = event.reason || 'Unknown';
|
|
91
|
+
const eventType = event.type || 'Normal';
|
|
92
|
+
const colorCode = eventType === 'Normal' ? 32 : eventType === 'Warning' ? 33 : 31;
|
|
93
|
+
console.log(`${timestamp} \x1b[${colorCode}m${reason}\x1b[0m ${eventData}`);
|
|
94
|
+
}
|
|
86
95
|
}
|
|
87
96
|
}
|
|
88
97
|
}
|
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.67",
|
|
4
4
|
"description": "Ark CLI - Interactive terminal interface for ARK agents",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"flatted": "^3.4.2",
|
|
94
94
|
"tar": "^7.5.11",
|
|
95
95
|
"express-rate-limit": "^8.3.0",
|
|
96
|
-
"fast-uri": "^3.1.
|
|
96
|
+
"fast-uri": "^3.1.4",
|
|
97
97
|
"ws": "^8.21.0",
|
|
98
98
|
"esbuild": "^0.28.1",
|
|
99
99
|
"form-data": "^4.0.6"
|
package/templates/tool/uv.lock
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
version = 1
|
|
2
2
|
revision = 3
|
|
3
3
|
requires-python = ">=3.12"
|
|
4
|
+
resolution-markers = [
|
|
5
|
+
"python_full_version >= '3.14' and sys_platform == 'win32'",
|
|
6
|
+
"python_full_version >= '3.14' and sys_platform != 'win32'",
|
|
7
|
+
"python_full_version < '3.14' and sys_platform == 'win32'",
|
|
8
|
+
"python_full_version < '3.14' and sys_platform != 'win32'",
|
|
9
|
+
]
|
|
4
10
|
|
|
5
11
|
[[package]]
|
|
6
12
|
name = "aiofile"
|
|
@@ -321,7 +327,8 @@ dependencies = [
|
|
|
321
327
|
{ name = "packaging" },
|
|
322
328
|
{ name = "platformdirs" },
|
|
323
329
|
{ name = "py-key-value-aio", extra = ["filetree", "keyring", "memory"] },
|
|
324
|
-
{ name = "pydantic", extra = ["email"] },
|
|
330
|
+
{ name = "pydantic", version = "2.11.7", source = { registry = "https://pypi.org/simple" }, extra = ["email"], marker = "python_full_version < '3.14'" },
|
|
331
|
+
{ name = "pydantic", version = "2.13.4", source = { registry = "https://pypi.org/simple" }, extra = ["email"], marker = "python_full_version >= '3.14'" },
|
|
325
332
|
{ name = "pyperclip" },
|
|
326
333
|
{ name = "python-dotenv" },
|
|
327
334
|
{ name = "pyyaml" },
|
|
@@ -526,14 +533,15 @@ wheels = [
|
|
|
526
533
|
|
|
527
534
|
[[package]]
|
|
528
535
|
name = "mcp"
|
|
529
|
-
version = "1.
|
|
536
|
+
version = "1.28.1"
|
|
530
537
|
source = { registry = "https://pypi.org/simple" }
|
|
531
538
|
dependencies = [
|
|
532
539
|
{ name = "anyio" },
|
|
533
540
|
{ name = "httpx" },
|
|
534
541
|
{ name = "httpx-sse" },
|
|
535
542
|
{ name = "jsonschema" },
|
|
536
|
-
{ name = "pydantic" },
|
|
543
|
+
{ name = "pydantic", version = "2.11.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.14'" },
|
|
544
|
+
{ name = "pydantic", version = "2.13.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.14'" },
|
|
537
545
|
{ name = "pydantic-settings" },
|
|
538
546
|
{ name = "pyjwt", extra = ["crypto"] },
|
|
539
547
|
{ name = "python-multipart" },
|
|
@@ -541,12 +549,13 @@ dependencies = [
|
|
|
541
549
|
{ name = "sse-starlette" },
|
|
542
550
|
{ name = "starlette" },
|
|
543
551
|
{ name = "typing-extensions" },
|
|
544
|
-
{ name = "typing-inspection" },
|
|
552
|
+
{ name = "typing-inspection", version = "0.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.14'" },
|
|
553
|
+
{ name = "typing-inspection", version = "0.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.14'" },
|
|
545
554
|
{ name = "uvicorn", marker = "sys_platform != 'emscripten'" },
|
|
546
555
|
]
|
|
547
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
556
|
+
sdist = { url = "https://files.pythonhosted.org/packages/6e/77/9450b8f251a13affb6281997d0523c4615f8a8b35d0b21ff30db3a5aac9d/mcp-1.28.1.tar.gz", hash = "sha256:d51e36a5f5644faea4f85ea649bfffa6bc6c26770d42798ad6a3de3d2ba69683", size = 638501, upload-time = "2026-06-26T12:57:29.093Z" }
|
|
548
557
|
wheels = [
|
|
549
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
558
|
+
{ url = "https://files.pythonhosted.org/packages/e2/5e/d118fce19f87a2e7d8101c35c8ae0ec289098a4df0ff244cec23e415aca0/mcp-1.28.1-py3-none-any.whl", hash = "sha256:2726bca5e7193f61c5dde8b12500a6de2d9acf6d1a1c0be9e8c2e706437991df", size = 222620, upload-time = "2026-06-26T12:57:27.218Z" },
|
|
550
559
|
]
|
|
551
560
|
|
|
552
561
|
[[package]]
|
|
@@ -572,7 +581,8 @@ name = "openapi-pydantic"
|
|
|
572
581
|
version = "0.5.1"
|
|
573
582
|
source = { registry = "https://pypi.org/simple" }
|
|
574
583
|
dependencies = [
|
|
575
|
-
{ name = "pydantic" },
|
|
584
|
+
{ name = "pydantic", version = "2.11.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.14'" },
|
|
585
|
+
{ name = "pydantic", version = "2.13.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.14'" },
|
|
576
586
|
]
|
|
577
587
|
sdist = { url = "https://files.pythonhosted.org/packages/02/2e/58d83848dd1a79cb92ed8e63f6ba901ca282c5f09d04af9423ec26c56fd7/openapi_pydantic-0.5.1.tar.gz", hash = "sha256:ff6835af6bde7a459fb93eb93bb92b8749b754fc6e51b2f1590a19dc3005ee0d", size = 60892, upload-time = "2025-01-08T19:29:27.083Z" }
|
|
578
588
|
wheels = [
|
|
@@ -657,11 +667,15 @@ wheels = [
|
|
|
657
667
|
name = "pydantic"
|
|
658
668
|
version = "2.11.7"
|
|
659
669
|
source = { registry = "https://pypi.org/simple" }
|
|
670
|
+
resolution-markers = [
|
|
671
|
+
"python_full_version < '3.14' and sys_platform == 'win32'",
|
|
672
|
+
"python_full_version < '3.14' and sys_platform != 'win32'",
|
|
673
|
+
]
|
|
660
674
|
dependencies = [
|
|
661
|
-
{ name = "annotated-types" },
|
|
662
|
-
{ name = "pydantic-core" },
|
|
663
|
-
{ name = "typing-extensions" },
|
|
664
|
-
{ name = "typing-inspection" },
|
|
675
|
+
{ name = "annotated-types", marker = "python_full_version < '3.14'" },
|
|
676
|
+
{ name = "pydantic-core", version = "2.33.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.14'" },
|
|
677
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.14'" },
|
|
678
|
+
{ name = "typing-inspection", version = "0.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.14'" },
|
|
665
679
|
]
|
|
666
680
|
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" }
|
|
667
681
|
wheels = [
|
|
@@ -670,15 +684,43 @@ wheels = [
|
|
|
670
684
|
|
|
671
685
|
[package.optional-dependencies]
|
|
672
686
|
email = [
|
|
673
|
-
{ name = "email-validator" },
|
|
687
|
+
{ name = "email-validator", marker = "python_full_version < '3.14'" },
|
|
688
|
+
]
|
|
689
|
+
|
|
690
|
+
[[package]]
|
|
691
|
+
name = "pydantic"
|
|
692
|
+
version = "2.13.4"
|
|
693
|
+
source = { registry = "https://pypi.org/simple" }
|
|
694
|
+
resolution-markers = [
|
|
695
|
+
"python_full_version >= '3.14' and sys_platform == 'win32'",
|
|
696
|
+
"python_full_version >= '3.14' and sys_platform != 'win32'",
|
|
697
|
+
]
|
|
698
|
+
dependencies = [
|
|
699
|
+
{ name = "annotated-types", marker = "python_full_version >= '3.14'" },
|
|
700
|
+
{ name = "pydantic-core", version = "2.46.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.14'" },
|
|
701
|
+
{ name = "typing-extensions", marker = "python_full_version >= '3.14'" },
|
|
702
|
+
{ name = "typing-inspection", version = "0.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.14'" },
|
|
703
|
+
]
|
|
704
|
+
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
|
+
wheels = [
|
|
706
|
+
{ url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size = 472262, upload-time = "2026-05-06T13:43:02.641Z" },
|
|
707
|
+
]
|
|
708
|
+
|
|
709
|
+
[package.optional-dependencies]
|
|
710
|
+
email = [
|
|
711
|
+
{ name = "email-validator", marker = "python_full_version >= '3.14'" },
|
|
674
712
|
]
|
|
675
713
|
|
|
676
714
|
[[package]]
|
|
677
715
|
name = "pydantic-core"
|
|
678
716
|
version = "2.33.2"
|
|
679
717
|
source = { registry = "https://pypi.org/simple" }
|
|
718
|
+
resolution-markers = [
|
|
719
|
+
"python_full_version < '3.14' and sys_platform == 'win32'",
|
|
720
|
+
"python_full_version < '3.14' and sys_platform != 'win32'",
|
|
721
|
+
]
|
|
680
722
|
dependencies = [
|
|
681
|
-
{ name = "typing-extensions" },
|
|
723
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.14'" },
|
|
682
724
|
]
|
|
683
725
|
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" }
|
|
684
726
|
wheels = [
|
|
@@ -715,14 +757,95 @@ wheels = [
|
|
|
715
757
|
{ url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777, upload-time = "2025-04-23T18:32:25.088Z" },
|
|
716
758
|
]
|
|
717
759
|
|
|
760
|
+
[[package]]
|
|
761
|
+
name = "pydantic-core"
|
|
762
|
+
version = "2.46.4"
|
|
763
|
+
source = { registry = "https://pypi.org/simple" }
|
|
764
|
+
resolution-markers = [
|
|
765
|
+
"python_full_version >= '3.14' and sys_platform == 'win32'",
|
|
766
|
+
"python_full_version >= '3.14' and sys_platform != 'win32'",
|
|
767
|
+
]
|
|
768
|
+
dependencies = [
|
|
769
|
+
{ name = "typing-extensions", marker = "python_full_version >= '3.14'" },
|
|
770
|
+
]
|
|
771
|
+
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
|
+
wheels = [
|
|
773
|
+
{ url = "https://files.pythonhosted.org/packages/ce/8c/af022f0af448d7747c5154288d46b5f2bc5f17366eaa0e23e9aa04d59f3b/pydantic_core-2.46.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2", size = 2106158, upload-time = "2026-05-06T13:38:57.215Z" },
|
|
774
|
+
{ url = "https://files.pythonhosted.org/packages/19/95/6195171e385007300f0f5574592e467c568becce2d937a0b6804f218bc49/pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f", size = 1951724, upload-time = "2026-05-06T13:37:02.697Z" },
|
|
775
|
+
{ url = "https://files.pythonhosted.org/packages/8e/bc/f47d1ff9cbb1620e1b5b697eef06010035735f07820180e74178226b27b3/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7", size = 1975742, upload-time = "2026-05-06T13:37:09.448Z" },
|
|
776
|
+
{ url = "https://files.pythonhosted.org/packages/5b/11/9b9a5b0306345664a2da6410877af6e8082481b5884b3ddd78d47c6013ce/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7", size = 2052418, upload-time = "2026-05-06T13:37:38.234Z" },
|
|
777
|
+
{ url = "https://files.pythonhosted.org/packages/f1/b7/a65fec226f5d78fc39f4a13c4cc0c768c22b113438f60c14adc9d2865038/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712", size = 2232274, upload-time = "2026-05-06T13:38:27.753Z" },
|
|
778
|
+
{ url = "https://files.pythonhosted.org/packages/68/f0/92039db98b907ef49269a8271f67db9cb78ae2fc68062ef7e4e77adb5f61/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4", size = 2309940, upload-time = "2026-05-06T13:38:05.353Z" },
|
|
779
|
+
{ url = "https://files.pythonhosted.org/packages/5f/97/2aab507d3d00ca626e8e57c1eac6a79e4e5fbcc63eb99733ff55d1717f65/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce", size = 2094516, upload-time = "2026-05-06T13:39:10.577Z" },
|
|
780
|
+
{ url = "https://files.pythonhosted.org/packages/22/37/a8aca44d40d737dde2bc05b3c6c07dff0de07ce6f82e9f3167aeaf4d5dea/pydantic_core-2.46.4-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987", size = 2136854, upload-time = "2026-05-06T13:40:22.59Z" },
|
|
781
|
+
{ url = "https://files.pythonhosted.org/packages/24/99/fcef1b79238c06a8cbec70819ac722ba76e02bc8ada9b0fd66eba40da01b/pydantic_core-2.46.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b", size = 2180306, upload-time = "2026-05-06T13:40:10.666Z" },
|
|
782
|
+
{ url = "https://files.pythonhosted.org/packages/ae/6c/fc44000918855b42779d007ae63b0532794739027b2f417321cddbc44f6a/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458", size = 2190044, upload-time = "2026-05-06T13:40:43.231Z" },
|
|
783
|
+
{ url = "https://files.pythonhosted.org/packages/6b/65/d9cadc9f1920d7a127ad2edba16c1db7916e59719285cd6c94600b0080ba/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b", size = 2329133, upload-time = "2026-05-06T13:39:57.365Z" },
|
|
784
|
+
{ url = "https://files.pythonhosted.org/packages/d0/cf/c873d91679f3a30bcf5e7ac280ce5573483e72295307685120d0d5ad3416/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c", size = 2374464, upload-time = "2026-05-06T13:38:06.976Z" },
|
|
785
|
+
{ url = "https://files.pythonhosted.org/packages/47/bd/6f2fc8188f31bf10590f1e98e7b306336161fac930a8c514cd7bd828c7dc/pydantic_core-2.46.4-cp312-cp312-win32.whl", hash = "sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894", size = 1974823, upload-time = "2026-05-06T13:40:47.985Z" },
|
|
786
|
+
{ url = "https://files.pythonhosted.org/packages/40/8c/985c1d41ea1107c2534abd9870e4ed5c8e7669b5c308297835c001e7a1c4/pydantic_core-2.46.4-cp312-cp312-win_amd64.whl", hash = "sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89", size = 2072919, upload-time = "2026-05-06T13:39:21.153Z" },
|
|
787
|
+
{ url = "https://files.pythonhosted.org/packages/c4/ba/f463d006e0c47373ca7ec5e1a261c59dc01ef4d62b2657af925fb0deee3a/pydantic_core-2.46.4-cp312-cp312-win_arm64.whl", hash = "sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a", size = 2027604, upload-time = "2026-05-06T13:39:03.753Z" },
|
|
788
|
+
{ url = "https://files.pythonhosted.org/packages/51/a2/5d30b469c5267a17b39dec53208222f76a8d351dfac4af661888c5aee77d/pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008", size = 2106306, upload-time = "2026-05-06T13:37:48.029Z" },
|
|
789
|
+
{ url = "https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4", size = 1951906, upload-time = "2026-05-06T13:37:17.012Z" },
|
|
790
|
+
{ url = "https://files.pythonhosted.org/packages/03/d5/fd02da45b659668b05923b17ba3a0100a0a3d5541e3bd8fcc4ecb711309e/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76", size = 1976802, upload-time = "2026-05-06T13:37:35.113Z" },
|
|
791
|
+
{ url = "https://files.pythonhosted.org/packages/21/f2/95727e1368be3d3ed485eaab7adbd7dda408f33f7a36e8b48e0144002b91/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3", size = 2052446, upload-time = "2026-05-06T13:37:12.313Z" },
|
|
792
|
+
{ url = "https://files.pythonhosted.org/packages/9c/86/5d99feea3f77c7234b8718075b23db11532773c1a0dbd9b9490215dc2eeb/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76", size = 2232757, upload-time = "2026-05-06T13:39:01.149Z" },
|
|
793
|
+
{ url = "https://files.pythonhosted.org/packages/d2/3a/508ac615935ef7588cf6d9e9b91309fdc2da751af865e02a9098de88258c/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4", size = 2309275, upload-time = "2026-05-06T13:37:41.406Z" },
|
|
794
|
+
{ url = "https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a", size = 2094467, upload-time = "2026-05-06T13:39:18.847Z" },
|
|
795
|
+
{ url = "https://files.pythonhosted.org/packages/2c/e2/f35033184cb11d0052daf4416e8e10a502ea2ac006fc4f459aee872727d1/pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262", size = 2134417, upload-time = "2026-05-06T13:40:17.944Z" },
|
|
796
|
+
{ url = "https://files.pythonhosted.org/packages/7e/7b/6ceeb1cc90e193862f444ebe373d8fdf613f0a82572dde03fb10734c6c71/pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e", size = 2179782, upload-time = "2026-05-06T13:40:32.618Z" },
|
|
797
|
+
{ url = "https://files.pythonhosted.org/packages/5a/f2/c8d7773ede6af08036423a00ae0ceffce266c3c52a096c435d68c896083f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd", size = 2188782, upload-time = "2026-05-06T13:36:51.018Z" },
|
|
798
|
+
{ url = "https://files.pythonhosted.org/packages/59/31/0c864784e31f09f05cdd87606f08923b9c9e7f6e51dd27f20f62f975ce9f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be", size = 2328334, upload-time = "2026-05-06T13:40:37.764Z" },
|
|
799
|
+
{ url = "https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d", size = 2372986, upload-time = "2026-05-06T13:39:34.152Z" },
|
|
800
|
+
{ url = "https://files.pythonhosted.org/packages/5b/24/b375a480d53113860c299764bfe9f349a3dc9108b3adc0d7f0d786492ebf/pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb", size = 1973693, upload-time = "2026-05-06T13:37:55.072Z" },
|
|
801
|
+
{ url = "https://files.pythonhosted.org/packages/7e/e8/cff247591966f2d22ec8c003cd7587e27b7ba7b81ab2fb888e3ab75dc285/pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292", size = 2071819, upload-time = "2026-05-06T13:38:49.139Z" },
|
|
802
|
+
{ url = "https://files.pythonhosted.org/packages/c6/1a/f4aee670d5670e9e148e0c82c7db98d780be566c6e6a97ee8035528ca0b3/pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d", size = 2027411, upload-time = "2026-05-06T13:40:45.796Z" },
|
|
803
|
+
{ url = "https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb", size = 2102079, upload-time = "2026-05-06T13:38:41.019Z" },
|
|
804
|
+
{ url = "https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462", size = 1952179, upload-time = "2026-05-06T13:36:59.812Z" },
|
|
805
|
+
{ url = "https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9", size = 1978926, upload-time = "2026-05-06T13:37:39.933Z" },
|
|
806
|
+
{ url = "https://files.pythonhosted.org/packages/57/e9/689668733b1eb67adeef047db3c2e8788fcf65a7fd9c9e2b46b7744fe245/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4", size = 2046785, upload-time = "2026-05-06T13:38:01.995Z" },
|
|
807
|
+
{ url = "https://files.pythonhosted.org/packages/60/d9/6715260422ff50a2109878fd24d948a6c3446bb2664f34ee78cd972b3acd/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914", size = 2228733, upload-time = "2026-05-06T13:40:50.371Z" },
|
|
808
|
+
{ url = "https://files.pythonhosted.org/packages/18/ae/fdb2f64316afca925640f8e70bb1a564b0ec2721c1389e25b8eb4bf9a299/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28", size = 2307534, upload-time = "2026-05-06T13:37:21.531Z" },
|
|
809
|
+
{ url = "https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b", size = 2099732, upload-time = "2026-05-06T13:39:31.942Z" },
|
|
810
|
+
{ url = "https://files.pythonhosted.org/packages/06/d5/ee5a3366637fee41dee51a1fc91562dcf12ddbc68fda34e6b253da2324bb/pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c", size = 2129627, upload-time = "2026-05-06T13:37:25.033Z" },
|
|
811
|
+
{ url = "https://files.pythonhosted.org/packages/94/33/2414be571d2c6a6c4d08be21f9292b6d3fdb08949a97b6dfe985017821db/pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb", size = 2179141, upload-time = "2026-05-06T13:37:14.046Z" },
|
|
812
|
+
{ url = "https://files.pythonhosted.org/packages/7b/79/7daa95be995be0eecc4cf75064cb33f9bbbfe3fe0158caf2f0d4a996a5c7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898", size = 2184325, upload-time = "2026-05-06T13:36:53.615Z" },
|
|
813
|
+
{ url = "https://files.pythonhosted.org/packages/9f/cb/d0a382f5c0de8a222dc61c65348e0ce831b1f68e0a018450d31c2cace3a5/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e", size = 2323990, upload-time = "2026-05-06T13:40:29.971Z" },
|
|
814
|
+
{ url = "https://files.pythonhosted.org/packages/05/db/d9ba624cc4a5aced1598e88c04fdbd8310c8a69b9d38b9a3d39ce3a61ed7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519", size = 2369978, upload-time = "2026-05-06T13:37:23.027Z" },
|
|
815
|
+
{ url = "https://files.pythonhosted.org/packages/f2/20/d15df15ba918c423461905802bfd2981c3af0bfa0e40d05e13edbfa48bc3/pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4", size = 1966354, upload-time = "2026-05-06T13:38:03.499Z" },
|
|
816
|
+
{ url = "https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac", size = 2072238, upload-time = "2026-05-06T13:39:40.807Z" },
|
|
817
|
+
{ url = "https://files.pythonhosted.org/packages/32/36/51eb763beec1f4cf59b1db243a7dcc39cbb41230f050a09b9d69faaf0a48/pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a", size = 2018251, upload-time = "2026-05-06T13:37:26.72Z" },
|
|
818
|
+
{ url = "https://files.pythonhosted.org/packages/e8/91/855af51d625b23aa987116a19e231d2aaef9c4a415273ddc189b79a45fee/pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0", size = 2099593, upload-time = "2026-05-06T13:39:47.682Z" },
|
|
819
|
+
{ url = "https://files.pythonhosted.org/packages/fb/1b/8784a54c65edb5f49f0a14d6977cf1b209bba85a4c77445b255c2de58ab3/pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d", size = 1935226, upload-time = "2026-05-06T13:40:40.428Z" },
|
|
820
|
+
{ url = "https://files.pythonhosted.org/packages/e8/e7/1955d28d1afc56dd4b3ad7cc0cf39df1b9852964cf16e5d13912756d6d6b/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b", size = 1974605, upload-time = "2026-05-06T13:37:32.029Z" },
|
|
821
|
+
{ url = "https://files.pythonhosted.org/packages/93/e2/3fedbf0ba7a22850e6e9fd78117f1c0f10f950182344d8a6c535d468fdd8/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000", size = 2030777, upload-time = "2026-05-06T13:38:55.239Z" },
|
|
822
|
+
{ url = "https://files.pythonhosted.org/packages/f8/61/46be275fcaaba0b4f5b9669dd852267ce1ff616592dccf7a7845588df091/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e", size = 2236641, upload-time = "2026-05-06T13:37:08.096Z" },
|
|
823
|
+
{ url = "https://files.pythonhosted.org/packages/60/db/12e93e46a8bac9988be3c016860f83293daea8c716c029c9ace279036f2f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd", size = 2286404, upload-time = "2026-05-06T13:40:20.221Z" },
|
|
824
|
+
{ url = "https://files.pythonhosted.org/packages/e2/4a/4d8b19008f38d31c53b8219cfedc2e3d5de5fe99d90076b7e767de29274f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3", size = 2109219, upload-time = "2026-05-06T13:38:12.153Z" },
|
|
825
|
+
{ url = "https://files.pythonhosted.org/packages/88/70/3cbc40978fefb7bb09c6708d40d4ad1a5d70fd7213c3d17f971de868ec1f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7", size = 2110594, upload-time = "2026-05-06T13:40:02.971Z" },
|
|
826
|
+
{ url = "https://files.pythonhosted.org/packages/9d/20/b8d36736216e29491125531685b2f9e61aa5b4b2599893f8268551da3338/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff", size = 2159542, upload-time = "2026-05-06T13:39:27.506Z" },
|
|
827
|
+
{ url = "https://files.pythonhosted.org/packages/1d/a2/367df868eb584dacf6bf82a389272406d7178e301c4ac82545ab98bc2dd9/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424", size = 2168146, upload-time = "2026-05-06T13:38:31.93Z" },
|
|
828
|
+
{ url = "https://files.pythonhosted.org/packages/c1/b8/4460f77f7e201893f649a29ab355dddd3beee8a97bcb1a320db414f9a06e/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6", size = 2306309, upload-time = "2026-05-06T13:37:44.717Z" },
|
|
829
|
+
{ url = "https://files.pythonhosted.org/packages/64/c4/be2639293acd87dc8ddbcec41a73cee9b2ebf996fe6d892a1a74e88ad3f7/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565", size = 2369736, upload-time = "2026-05-06T13:37:05.645Z" },
|
|
830
|
+
{ url = "https://files.pythonhosted.org/packages/30/a6/9f9f380dbb301f67023bf8f707aaa75daadf84f7152d95c410fd7e81d994/pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02", size = 1955575, upload-time = "2026-05-06T13:38:51.116Z" },
|
|
831
|
+
{ url = "https://files.pythonhosted.org/packages/40/1f/f1eb9eb350e795d1af8586289746f5c5677d16043040d63710e22abc43c9/pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5", size = 2051624, upload-time = "2026-05-06T13:38:21.672Z" },
|
|
832
|
+
{ url = "https://files.pythonhosted.org/packages/f6/d2/42dd53d0a85c27606f316d3aa5d2869c4e8470a5ed6dec30e4a1abe19192/pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596", size = 2017325, upload-time = "2026-05-06T13:40:52.723Z" },
|
|
833
|
+
{ url = "https://files.pythonhosted.org/packages/9d/1d/8987ad40f65ae1432753072f214fb5c74fe47ffbd0698bb9cbbb585664f8/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7", size = 2095527, upload-time = "2026-05-06T13:39:52.283Z" },
|
|
834
|
+
{ url = "https://files.pythonhosted.org/packages/64/d3/84c282a7eee1d3ac4c0377546ef5a1ea436ce26840d9ac3b7ed54a377507/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df", size = 1936024, upload-time = "2026-05-06T13:40:15.671Z" },
|
|
835
|
+
{ url = "https://files.pythonhosted.org/packages/d7/ca/eac61596cdeb4d7e174d3dc0bd8a6238f14f75f97a24e7b7db4c7e7340a0/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526", size = 1990696, upload-time = "2026-05-06T13:38:34.717Z" },
|
|
836
|
+
{ url = "https://files.pythonhosted.org/packages/fa/c3/7c8b240552251faf6b3a957db200fcfbbcec36763c050428b601e0c9b83b/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0", size = 2147590, upload-time = "2026-05-06T13:39:29.883Z" },
|
|
837
|
+
]
|
|
838
|
+
|
|
718
839
|
[[package]]
|
|
719
840
|
name = "pydantic-settings"
|
|
720
841
|
version = "2.10.1"
|
|
721
842
|
source = { registry = "https://pypi.org/simple" }
|
|
722
843
|
dependencies = [
|
|
723
|
-
{ name = "pydantic" },
|
|
844
|
+
{ name = "pydantic", version = "2.11.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.14'" },
|
|
845
|
+
{ name = "pydantic", version = "2.13.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.14'" },
|
|
724
846
|
{ name = "python-dotenv" },
|
|
725
|
-
{ name = "typing-inspection" },
|
|
847
|
+
{ name = "typing-inspection", version = "0.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.14'" },
|
|
848
|
+
{ name = "typing-inspection", version = "0.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.14'" },
|
|
726
849
|
]
|
|
727
850
|
sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee", size = 172583, upload-time = "2025-06-24T13:26:46.841Z" }
|
|
728
851
|
wheels = [
|
|
@@ -976,8 +1099,8 @@ name = "secretstorage"
|
|
|
976
1099
|
version = "3.5.0"
|
|
977
1100
|
source = { registry = "https://pypi.org/simple" }
|
|
978
1101
|
dependencies = [
|
|
979
|
-
{ name = "cryptography" },
|
|
980
|
-
{ name = "jeepney" },
|
|
1102
|
+
{ name = "cryptography", marker = "sys_platform != 'win32'" },
|
|
1103
|
+
{ name = "jeepney", marker = "sys_platform != 'win32'" },
|
|
981
1104
|
]
|
|
982
1105
|
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" }
|
|
983
1106
|
wheels = [
|
|
@@ -1042,14 +1165,34 @@ wheels = [
|
|
|
1042
1165
|
name = "typing-inspection"
|
|
1043
1166
|
version = "0.4.1"
|
|
1044
1167
|
source = { registry = "https://pypi.org/simple" }
|
|
1168
|
+
resolution-markers = [
|
|
1169
|
+
"python_full_version < '3.14' and sys_platform == 'win32'",
|
|
1170
|
+
"python_full_version < '3.14' and sys_platform != 'win32'",
|
|
1171
|
+
]
|
|
1045
1172
|
dependencies = [
|
|
1046
|
-
{ name = "typing-extensions" },
|
|
1173
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.14'" },
|
|
1047
1174
|
]
|
|
1048
1175
|
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" }
|
|
1049
1176
|
wheels = [
|
|
1050
1177
|
{ url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552, upload-time = "2025-05-21T18:55:22.152Z" },
|
|
1051
1178
|
]
|
|
1052
1179
|
|
|
1180
|
+
[[package]]
|
|
1181
|
+
name = "typing-inspection"
|
|
1182
|
+
version = "0.4.2"
|
|
1183
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1184
|
+
resolution-markers = [
|
|
1185
|
+
"python_full_version >= '3.14' and sys_platform == 'win32'",
|
|
1186
|
+
"python_full_version >= '3.14' and sys_platform != 'win32'",
|
|
1187
|
+
]
|
|
1188
|
+
dependencies = [
|
|
1189
|
+
{ name = "typing-extensions", marker = "python_full_version >= '3.14'" },
|
|
1190
|
+
]
|
|
1191
|
+
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
|
+
wheels = [
|
|
1193
|
+
{ url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" },
|
|
1194
|
+
]
|
|
1195
|
+
|
|
1053
1196
|
[[package]]
|
|
1054
1197
|
name = "uncalled-for"
|
|
1055
1198
|
version = "0.2.0"
|