@llmindset/hf-mcp 0.2.36 → 0.2.37
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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/jobs/api-client.d.ts.map +1 -1
- package/dist/jobs/api-client.js.map +1 -1
- package/dist/jobs/commands/run.d.ts.map +1 -1
- package/dist/jobs/commands/run.js +2 -13
- package/dist/jobs/commands/run.js.map +1 -1
- package/dist/jobs/commands/scheduled.d.ts.map +1 -1
- package/dist/jobs/commands/scheduled.js +2 -12
- package/dist/jobs/commands/scheduled.js.map +1 -1
- package/dist/jobs/commands/uv-utils.d.ts +3 -1
- package/dist/jobs/commands/uv-utils.d.ts.map +1 -1
- package/dist/jobs/commands/uv-utils.js +19 -3
- package/dist/jobs/commands/uv-utils.js.map +1 -1
- package/dist/jobs/{tool.d.ts → jobs-tool.d.ts} +2 -3
- package/dist/jobs/jobs-tool.d.ts.map +1 -0
- package/dist/jobs/{tool.js → jobs-tool.js} +103 -44
- package/dist/jobs/jobs-tool.js.map +1 -0
- package/dist/jobs/schema-help.d.ts +22 -0
- package/dist/jobs/schema-help.d.ts.map +1 -0
- package/dist/jobs/schema-help.js +155 -0
- package/dist/jobs/schema-help.js.map +1 -0
- package/dist/jobs/types.d.ts +0 -6
- package/dist/jobs/types.d.ts.map +1 -1
- package/dist/jobs/types.js +13 -14
- package/dist/jobs/types.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/jobs/api-client.ts +0 -2
- package/src/jobs/commands/run.ts +2 -15
- package/src/jobs/commands/scheduled.ts +2 -11
- package/src/jobs/commands/uv-utils.ts +25 -4
- package/src/jobs/{tool.ts → jobs-tool.ts} +112 -44
- package/src/jobs/schema-help.ts +230 -0
- package/src/jobs/types.ts +14 -14
- package/dist/jobs/tool.d.ts.map +0 -1
- package/dist/jobs/tool.js.map +0 -1
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export function unwrapType(zodType) {
|
|
3
|
+
let current = zodType;
|
|
4
|
+
let isOptional = false;
|
|
5
|
+
let isNullable = false;
|
|
6
|
+
let defaultValue;
|
|
7
|
+
while (true) {
|
|
8
|
+
if (current instanceof z.ZodOptional) {
|
|
9
|
+
isOptional = true;
|
|
10
|
+
current = current._def.innerType;
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
if (current instanceof z.ZodDefault) {
|
|
14
|
+
isOptional = true;
|
|
15
|
+
defaultValue = current._def.defaultValue();
|
|
16
|
+
current = current._def.innerType;
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
if (current instanceof z.ZodNullable) {
|
|
20
|
+
isNullable = true;
|
|
21
|
+
current = current._def.innerType;
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (current instanceof z.ZodEffects) {
|
|
25
|
+
current = current._def.schema;
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
return { baseType: current, isOptional, isNullable, defaultValue };
|
|
31
|
+
}
|
|
32
|
+
function isZodType(value) {
|
|
33
|
+
return value instanceof z.ZodType;
|
|
34
|
+
}
|
|
35
|
+
function isPlainObject(value) {
|
|
36
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
37
|
+
}
|
|
38
|
+
export function labelForType(zodType) {
|
|
39
|
+
if (zodType instanceof z.ZodString) {
|
|
40
|
+
return 'string';
|
|
41
|
+
}
|
|
42
|
+
if (zodType instanceof z.ZodNumber) {
|
|
43
|
+
return 'number';
|
|
44
|
+
}
|
|
45
|
+
if (zodType instanceof z.ZodBoolean) {
|
|
46
|
+
return 'boolean';
|
|
47
|
+
}
|
|
48
|
+
if (zodType instanceof z.ZodEnum) {
|
|
49
|
+
return `enum(${zodType.options.join(', ')})`;
|
|
50
|
+
}
|
|
51
|
+
if (zodType instanceof z.ZodLiteral) {
|
|
52
|
+
return `literal(${JSON.stringify(zodType.value)})`;
|
|
53
|
+
}
|
|
54
|
+
if (zodType instanceof z.ZodArray) {
|
|
55
|
+
return `array<${labelForType(zodType._def.type)}>`;
|
|
56
|
+
}
|
|
57
|
+
if (zodType instanceof z.ZodRecord) {
|
|
58
|
+
return `record<string, ${labelForType(zodType._def.valueType)}>`;
|
|
59
|
+
}
|
|
60
|
+
if (zodType instanceof z.ZodUnion) {
|
|
61
|
+
const options = zodType._def.options;
|
|
62
|
+
const labels = options.map((opt) => labelForType(opt));
|
|
63
|
+
return labels.join(' | ');
|
|
64
|
+
}
|
|
65
|
+
if (zodType instanceof z.ZodObject) {
|
|
66
|
+
return 'object';
|
|
67
|
+
}
|
|
68
|
+
return zodType.constructor.name.replace(/^Zod/, '').toLowerCase();
|
|
69
|
+
}
|
|
70
|
+
export function extractFieldDetails(schema) {
|
|
71
|
+
if (!(schema instanceof z.ZodObject)) {
|
|
72
|
+
return [];
|
|
73
|
+
}
|
|
74
|
+
const shape = schema.shape;
|
|
75
|
+
const keys = Object.keys(shape);
|
|
76
|
+
const details = [];
|
|
77
|
+
for (const key of keys) {
|
|
78
|
+
const candidate = shape[key];
|
|
79
|
+
if (!isZodType(candidate)) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const fieldSchema = candidate;
|
|
83
|
+
const { baseType, isOptional, isNullable, defaultValue } = unwrapType(fieldSchema);
|
|
84
|
+
details.push({
|
|
85
|
+
key: String(key),
|
|
86
|
+
description: fieldSchema.description ?? baseType.description,
|
|
87
|
+
typeLabel: labelForType(baseType),
|
|
88
|
+
isOptional,
|
|
89
|
+
isNullable,
|
|
90
|
+
defaultValue,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return details;
|
|
94
|
+
}
|
|
95
|
+
export function formatDefaultValue(value) {
|
|
96
|
+
if (value === undefined) {
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
if (typeof value === 'string') {
|
|
100
|
+
return `"${value}"`;
|
|
101
|
+
}
|
|
102
|
+
if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
|
|
103
|
+
return String(value);
|
|
104
|
+
}
|
|
105
|
+
if (typeof value === 'symbol') {
|
|
106
|
+
return value.description ? `Symbol(${value.description})` : 'Symbol()';
|
|
107
|
+
}
|
|
108
|
+
if (value === null) {
|
|
109
|
+
return 'null';
|
|
110
|
+
}
|
|
111
|
+
if (Array.isArray(value)) {
|
|
112
|
+
try {
|
|
113
|
+
return JSON.stringify(value);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return '[unserializable]';
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (isPlainObject(value)) {
|
|
120
|
+
try {
|
|
121
|
+
return JSON.stringify(value);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return '[unserializable]';
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return '[unsupported]';
|
|
128
|
+
}
|
|
129
|
+
export function formatCommandHelp(commandName, schema) {
|
|
130
|
+
if (!schema) {
|
|
131
|
+
return `No help available for '${commandName}'.`;
|
|
132
|
+
}
|
|
133
|
+
const fields = extractFieldDetails(schema);
|
|
134
|
+
if (fields.length === 0) {
|
|
135
|
+
return `No help available for '${commandName}'.`;
|
|
136
|
+
}
|
|
137
|
+
const header = `# Command help: ${commandName}\n\nArguments:\n`;
|
|
138
|
+
const lines = fields.map((field) => {
|
|
139
|
+
const parts = [];
|
|
140
|
+
parts.push(field.isOptional ? 'optional' : 'required');
|
|
141
|
+
parts.push(field.typeLabel);
|
|
142
|
+
if (field.isNullable) {
|
|
143
|
+
parts.push('nullable');
|
|
144
|
+
}
|
|
145
|
+
const defaultValue = formatDefaultValue(field.defaultValue);
|
|
146
|
+
if (defaultValue !== undefined) {
|
|
147
|
+
parts.push(`default: ${defaultValue}`);
|
|
148
|
+
}
|
|
149
|
+
const meta = parts.join(', ');
|
|
150
|
+
const description = field.description ?? 'No description provided.';
|
|
151
|
+
return `- \`${field.key}\` (${meta}): ${description}`;
|
|
152
|
+
});
|
|
153
|
+
return header + lines.join('\n');
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=schema-help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-help.js","sourceRoot":"","sources":["../../src/jobs/schema-help.ts"],"names":[],"mappings":"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"}
|
package/dist/jobs/types.d.ts
CHANGED
|
@@ -95,7 +95,6 @@ export declare const uvArgsSchema: z.ZodObject<{
|
|
|
95
95
|
namespace: z.ZodOptional<z.ZodString>;
|
|
96
96
|
} & {
|
|
97
97
|
script: z.ZodString;
|
|
98
|
-
repo: z.ZodOptional<z.ZodString>;
|
|
99
98
|
with_deps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
100
99
|
script_args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
101
100
|
python: z.ZodOptional<z.ZodString>;
|
|
@@ -112,7 +111,6 @@ export declare const uvArgsSchema: z.ZodObject<{
|
|
|
112
111
|
namespace?: string | undefined;
|
|
113
112
|
env?: Record<string, string> | undefined;
|
|
114
113
|
secrets?: Record<string, string> | undefined;
|
|
115
|
-
repo?: string | undefined;
|
|
116
114
|
with_deps?: string[] | undefined;
|
|
117
115
|
script_args?: string[] | undefined;
|
|
118
116
|
python?: string | undefined;
|
|
@@ -124,7 +122,6 @@ export declare const uvArgsSchema: z.ZodObject<{
|
|
|
124
122
|
secrets?: Record<string, string> | undefined;
|
|
125
123
|
timeout?: string | undefined;
|
|
126
124
|
detach?: boolean | undefined;
|
|
127
|
-
repo?: string | undefined;
|
|
128
125
|
with_deps?: string[] | undefined;
|
|
129
126
|
script_args?: string[] | undefined;
|
|
130
127
|
python?: string | undefined;
|
|
@@ -219,7 +216,6 @@ export declare const scheduledUvArgsSchema: z.ZodObject<{
|
|
|
219
216
|
namespace: z.ZodOptional<z.ZodString>;
|
|
220
217
|
} & {
|
|
221
218
|
script: z.ZodString;
|
|
222
|
-
repo: z.ZodOptional<z.ZodString>;
|
|
223
219
|
with_deps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
224
220
|
script_args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
225
221
|
python: z.ZodOptional<z.ZodString>;
|
|
@@ -241,7 +237,6 @@ export declare const scheduledUvArgsSchema: z.ZodObject<{
|
|
|
241
237
|
namespace?: string | undefined;
|
|
242
238
|
env?: Record<string, string> | undefined;
|
|
243
239
|
secrets?: Record<string, string> | undefined;
|
|
244
|
-
repo?: string | undefined;
|
|
245
240
|
with_deps?: string[] | undefined;
|
|
246
241
|
script_args?: string[] | undefined;
|
|
247
242
|
python?: string | undefined;
|
|
@@ -254,7 +249,6 @@ export declare const scheduledUvArgsSchema: z.ZodObject<{
|
|
|
254
249
|
secrets?: Record<string, string> | undefined;
|
|
255
250
|
timeout?: string | undefined;
|
|
256
251
|
detach?: boolean | undefined;
|
|
257
|
-
repo?: string | undefined;
|
|
258
252
|
with_deps?: string[] | undefined;
|
|
259
253
|
script_args?: string[] | undefined;
|
|
260
254
|
python?: string | undefined;
|
package/dist/jobs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/jobs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW,oEAAqE,CAAC;AAE9F,eAAO,MAAM,WAAW,oMAiBd,CAAC;AAEX,eAAO,MAAM,mBAAmB,qBAAsB,CAAC;AAEvD,eAAO,MAAM,WAAW,uQAAoE,CAAC;AAE7F,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAKrD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAKlF,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAKD,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;CACrB;AAMD,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,MAAM,WAAW,OAAO;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAKD,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACjB;AAKD,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,QAAQ;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACb;AAYD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/jobs/types.ts"],"names":[],"mappings":"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"}
|
package/dist/jobs/types.js
CHANGED
|
@@ -36,35 +36,36 @@ export const runArgsSchema = commonArgsSchema.extend({
|
|
|
36
36
|
.default('cpu-basic')
|
|
37
37
|
.describe(`Hardware flavor. Options: ${ALL_FLAVORS.join(', ')}`),
|
|
38
38
|
env: z.record(z.string()).optional().describe('Environment variables as key-value pairs'),
|
|
39
|
-
secrets: z
|
|
40
|
-
|
|
41
|
-
.string()
|
|
39
|
+
secrets: z
|
|
40
|
+
.record(z.string())
|
|
42
41
|
.optional()
|
|
43
|
-
.describe('
|
|
44
|
-
|
|
42
|
+
.describe('Secrets as key-value pairs. Use HF_TOKEN=$HF_TOKEN to include your token'),
|
|
43
|
+
timeout: z.string().optional().describe('Max duration (e.g., "5m", "2h", "30s"). Default: 30m').default('30m'),
|
|
45
44
|
detach: z
|
|
46
45
|
.boolean()
|
|
47
46
|
.optional()
|
|
48
47
|
.default(true)
|
|
49
|
-
.describe('Run in background and return
|
|
48
|
+
.describe('Run in background and return after 10 seconds (default: true)'),
|
|
50
49
|
});
|
|
51
50
|
export const uvArgsSchema = commonArgsSchema.extend({
|
|
52
51
|
script: z
|
|
53
52
|
.string()
|
|
54
53
|
.describe('Python script: local file path, URL, or inline code. UV will handle dependencies automatically.'),
|
|
55
|
-
repo: z.string().optional().describe('Persistent repository name for script storage'),
|
|
56
54
|
with_deps: z.array(z.string()).optional().describe('Additional package dependencies'),
|
|
57
55
|
script_args: z.array(z.string()).optional().describe('Arguments to pass to the script'),
|
|
58
56
|
python: z.string().optional().describe('Python interpreter version (e.g., "3.12")'),
|
|
59
57
|
flavor: z.enum(ALL_FLAVORS).optional().default('cpu-basic').describe('Hardware flavor'),
|
|
60
|
-
env: z.record(z.string()).optional().describe('Environment variables'),
|
|
61
|
-
secrets: z
|
|
58
|
+
env: z.record(z.string()).optional().describe('Environment variables as key-value pairs'),
|
|
59
|
+
secrets: z
|
|
60
|
+
.record(z.string())
|
|
61
|
+
.optional()
|
|
62
|
+
.describe('Secrets as key-value pairs. Use HF_TOKEN=$HF_TOKEN to include your token'),
|
|
62
63
|
timeout: z.string().optional().default('30m').describe('Max duration'),
|
|
63
|
-
detach: z.boolean().optional().default(true).describe('Run in background'),
|
|
64
|
+
detach: z.boolean().optional().default(true).describe('Run in background and return after 10 seconds'),
|
|
64
65
|
});
|
|
65
66
|
export const psArgsSchema = commonArgsSchema.extend({
|
|
66
67
|
all: z.boolean().optional().default(false).describe('Show all jobs (default: only running)'),
|
|
67
|
-
status: z.string().optional().describe('Filter by status (
|
|
68
|
+
status: z.string().optional().describe('Filter by status ("RUNNING", "COMPLETED", "CANCELED", "ERROR", "DELETED")'),
|
|
68
69
|
});
|
|
69
70
|
export const logsArgsSchema = commonArgsSchema.extend({
|
|
70
71
|
job_id: z.string().describe('Job ID to fetch logs from'),
|
|
@@ -77,9 +78,7 @@ export const cancelArgsSchema = commonArgsSchema.extend({
|
|
|
77
78
|
job_id: z.string().describe('Job ID to cancel'),
|
|
78
79
|
});
|
|
79
80
|
export const scheduledRunArgsSchema = runArgsSchema.extend({
|
|
80
|
-
schedule: z
|
|
81
|
-
.string()
|
|
82
|
-
.describe('Schedule: cron expression or shorthand (@hourly, @daily, @weekly, @monthly, @yearly)'),
|
|
81
|
+
schedule: z.string().describe('Schedule: cron expression or shorthand (@hourly, @daily, @weekly, @monthly, @yearly)'),
|
|
83
82
|
suspend: z.boolean().optional().default(false).describe('Create in suspended state'),
|
|
84
83
|
});
|
|
85
84
|
export const scheduledUvArgsSchema = uvArgsSchema.extend({
|
package/dist/jobs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/jobs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,CAAU,CAAC;AAE9F,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,OAAO;IACP,WAAW;IACX,UAAU;IACV,WAAW;IACX,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,cAAc;IACd,YAAY;IACZ,MAAM;IACN,QAAQ;CACC,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAU,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,EAAE,GAAG,mBAAmB,CAAU,CAAC;AAqG7F,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;CACnH,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACpD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;IAC7G,OAAO,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACxC,QAAQ,CACR,gFAAgF;QAC/E,yEAAyE;QACzE,8DAA8D,CAC/D;IACF,MAAM,EAAE,CAAC;SACP,IAAI,CAAC,WAAW,CAAC;SACjB,QAAQ,EAAE;SACV,OAAO,CAAC,WAAW,CAAC;SACpB,QAAQ,CAAC,6BAA6B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACjE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACzF,OAAO,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/jobs/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -19,7 +19,7 @@ export * from './docs-search/docs-semantic-search.js';
|
|
|
19
19
|
export * from './docs-search/doc-fetch.js';
|
|
20
20
|
export * from './readme-utils.js';
|
|
21
21
|
export * from './use-space.js';
|
|
22
|
-
export * from './jobs/tool.js';
|
|
22
|
+
export * from './jobs/jobs-tool.js';
|
|
23
23
|
|
|
24
24
|
// Export shared types
|
|
25
25
|
export * from './types/tool-result.js';
|
package/src/jobs/api-client.ts
CHANGED
|
@@ -52,8 +52,6 @@ export class JobsApiClient extends HfApiCall {
|
|
|
52
52
|
const ns = await this.getNamespace(namespace);
|
|
53
53
|
const url = `https://huggingface.co/api/jobs/${ns}`;
|
|
54
54
|
|
|
55
|
-
// Debug logging (will be visible in server logs)
|
|
56
|
-
|
|
57
55
|
const result = await this.fetchFromApi<JobInfo>(url, {
|
|
58
56
|
method: 'POST',
|
|
59
57
|
headers: {
|
package/src/jobs/commands/run.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { RunArgs, UvArgs } from '../types.js';
|
|
|
2
2
|
import type { JobsApiClient } from '../api-client.js';
|
|
3
3
|
import { createJobSpec } from './utils.js';
|
|
4
4
|
import { fetchJobLogs } from '../sse-handler.js';
|
|
5
|
-
import {
|
|
5
|
+
import { resolveUvCommand, UV_DEFAULT_IMAGE } from './uv-utils.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Execute the 'run' command
|
|
@@ -68,20 +68,7 @@ export async function uvCommand(args: UvArgs, client: JobsApiClient, token?: str
|
|
|
68
68
|
const image = UV_DEFAULT_IMAGE;
|
|
69
69
|
|
|
70
70
|
// Detect script source and build command
|
|
71
|
-
const
|
|
72
|
-
let command: string | string[];
|
|
73
|
-
|
|
74
|
-
if (scriptSource.startsWith('http://') || scriptSource.startsWith('https://')) {
|
|
75
|
-
// URL - download and run
|
|
76
|
-
command = buildUvCommand(scriptSource, args);
|
|
77
|
-
} else if (scriptSource.includes('\n')) {
|
|
78
|
-
// Inline multi-line script - encode it
|
|
79
|
-
const shellSnippet = wrapInlineScript(scriptSource, args);
|
|
80
|
-
command = ['/bin/sh', '-lc', shellSnippet];
|
|
81
|
-
} else {
|
|
82
|
-
// Assume it's a URL or path - UV will handle it
|
|
83
|
-
command = buildUvCommand(scriptSource, args);
|
|
84
|
-
}
|
|
71
|
+
const command = resolveUvCommand(args);
|
|
85
72
|
|
|
86
73
|
// Convert to run args
|
|
87
74
|
const runArgs: RunArgs = {
|
|
@@ -8,7 +8,7 @@ import type {
|
|
|
8
8
|
import type { JobsApiClient } from '../api-client.js';
|
|
9
9
|
import { formatScheduledJobsTable, formatScheduledJobDetails } from '../formatters.js';
|
|
10
10
|
import { createJobSpec } from './utils.js';
|
|
11
|
-
import {
|
|
11
|
+
import { resolveUvCommand, UV_DEFAULT_IMAGE } from './uv-utils.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Execute 'scheduled run' command
|
|
@@ -64,16 +64,7 @@ export async function scheduledUvCommand(
|
|
|
64
64
|
const image = UV_DEFAULT_IMAGE;
|
|
65
65
|
|
|
66
66
|
// Build UV command (similar to regular uv command)
|
|
67
|
-
const
|
|
68
|
-
let command: string;
|
|
69
|
-
|
|
70
|
-
if (scriptSource.startsWith('http://') || scriptSource.startsWith('https://')) {
|
|
71
|
-
command = buildUvCommand(scriptSource, args);
|
|
72
|
-
} else if (scriptSource.includes('\n')) {
|
|
73
|
-
command = wrapInlineScript(scriptSource, args);
|
|
74
|
-
} else {
|
|
75
|
-
command = buildUvCommand(scriptSource, args);
|
|
76
|
-
}
|
|
67
|
+
const command = resolveUvCommand(args);
|
|
77
68
|
|
|
78
69
|
// Convert to scheduled run args
|
|
79
70
|
const scheduledRunArgs: ScheduledRunArgs = {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { quote as shellQuote } from 'shell-quote';
|
|
1
2
|
import type { UvArgs } from '../types.js';
|
|
2
3
|
|
|
3
4
|
export const UV_DEFAULT_IMAGE = 'ghcr.io/astral-sh/uv:python3.12-bookworm';
|
|
4
5
|
|
|
5
6
|
type UvCommandOptions = Pick<UvArgs, 'with_deps' | 'python' | 'script_args'>;
|
|
7
|
+
type UvCommandLikeArgs = Pick<UvArgs, 'script' | 'with_deps' | 'python' | 'script_args'>;
|
|
6
8
|
|
|
7
|
-
export function buildUvCommand(script: string, args: UvCommandOptions): string {
|
|
9
|
+
export function buildUvCommand(script: string, args: UvCommandOptions): string[] {
|
|
8
10
|
const parts: string[] = ['uv', 'run'];
|
|
9
11
|
|
|
10
12
|
if (args.with_deps && args.with_deps.length > 0) {
|
|
@@ -23,11 +25,30 @@ export function buildUvCommand(script: string, args: UvCommandOptions): string {
|
|
|
23
25
|
parts.push(...args.script_args);
|
|
24
26
|
}
|
|
25
27
|
|
|
26
|
-
return parts
|
|
28
|
+
return parts;
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
export function wrapInlineScript(script: string, args: UvCommandOptions): string {
|
|
30
|
-
const encoded = Buffer.from(script).toString('base64');
|
|
31
|
-
const baseCommand = buildUvCommand('-', args);
|
|
32
|
+
const encoded = Buffer.from(script, 'utf-8').toString('base64');
|
|
33
|
+
const baseCommand = shellQuote(buildUvCommand('-', args));
|
|
32
34
|
return `echo "${encoded}" | base64 -d | ${baseCommand}`;
|
|
33
35
|
}
|
|
36
|
+
|
|
37
|
+
export function resolveUvCommand(args: UvCommandLikeArgs): string[] {
|
|
38
|
+
const options: UvCommandOptions = {
|
|
39
|
+
with_deps: args.with_deps,
|
|
40
|
+
python: args.python,
|
|
41
|
+
script_args: args.script_args,
|
|
42
|
+
};
|
|
43
|
+
const scriptSource = args.script;
|
|
44
|
+
|
|
45
|
+
if (scriptSource.startsWith('http://') || scriptSource.startsWith('https://')) {
|
|
46
|
+
return buildUvCommand(scriptSource, options);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (scriptSource.includes('\n')) {
|
|
50
|
+
return ['/bin/sh', '-lc', wrapInlineScript(scriptSource, options)];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return buildUvCommand(scriptSource, options);
|
|
54
|
+
}
|