@aexol/spectral 0.9.251 → 0.9.255
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/extensions/dataset-uploader/analyzer.d.ts +103 -0
- package/dist/extensions/dataset-uploader/analyzer.d.ts.map +1 -0
- package/dist/extensions/dataset-uploader/analyzer.js +266 -0
- package/dist/extensions/dataset-uploader/cleaner.d.ts +59 -0
- package/dist/extensions/dataset-uploader/cleaner.d.ts.map +1 -0
- package/dist/extensions/dataset-uploader/cleaner.js +118 -0
- package/dist/extensions/dataset-uploader/exporter.d.ts +147 -0
- package/dist/extensions/dataset-uploader/exporter.d.ts.map +1 -0
- package/dist/extensions/dataset-uploader/exporter.js +313 -0
- package/dist/extensions/dataset-uploader/extra-values.d.ts +17 -0
- package/dist/extensions/dataset-uploader/extra-values.d.ts.map +1 -0
- package/dist/extensions/dataset-uploader/extra-values.js +51 -0
- package/dist/extensions/dataset-uploader/index.d.ts +22 -0
- package/dist/extensions/dataset-uploader/index.d.ts.map +1 -0
- package/dist/extensions/dataset-uploader/index.js +247 -0
- package/dist/extensions/dataset-uploader/scrubber.d.ts +34 -0
- package/dist/extensions/dataset-uploader/scrubber.d.ts.map +1 -0
- package/dist/extensions/dataset-uploader/scrubber.js +91 -0
- package/dist/extensions/dataset-uploader/upload.d.ts +105 -0
- package/dist/extensions/dataset-uploader/upload.d.ts.map +1 -0
- package/dist/extensions/dataset-uploader/upload.js +274 -0
- package/dist/generated/zeus/const.d.ts.map +1 -1
- package/dist/generated/zeus/const.js +80 -6
- package/dist/generated/zeus/index.d.ts +432 -36
- package/dist/generated/zeus/index.d.ts.map +1 -1
- package/dist/mcp/commands.d.ts.map +1 -1
- package/dist/mcp/commands.js +3 -0
- package/dist/mcp/direct-tools.d.ts.map +1 -1
- package/dist/mcp/direct-tools.js +4 -3
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +5 -1
- package/dist/mcp/mcp-auth-flow.d.ts +5 -1
- package/dist/mcp/mcp-auth-flow.d.ts.map +1 -1
- package/dist/mcp/mcp-auth-flow.js +20 -4
- package/dist/mcp/mcp-auth-start.d.ts +64 -0
- package/dist/mcp/mcp-auth-start.d.ts.map +1 -0
- package/dist/mcp/mcp-auth-start.js +136 -0
- package/dist/mcp/proxy-modes.d.ts +7 -0
- package/dist/mcp/proxy-modes.d.ts.map +1 -1
- package/dist/mcp/proxy-modes.js +71 -11
- package/dist/mcp/server-manager.d.ts +2 -1
- package/dist/mcp/server-manager.d.ts.map +1 -1
- package/dist/mcp/server-manager.js +8 -4
- package/dist/memory/commands/status.d.ts.map +1 -1
- package/dist/memory/commands/status.js +2 -1
- package/dist/memory/hooks/compaction-trigger.d.ts +14 -1
- package/dist/memory/hooks/compaction-trigger.d.ts.map +1 -1
- package/dist/memory/hooks/compaction-trigger.js +31 -4
- package/dist/relay/dispatcher.d.ts.map +1 -1
- package/dist/relay/dispatcher.js +4 -47
- package/dist/relay/routing.d.ts +1 -1
- package/dist/relay/routing.d.ts.map +1 -1
- package/dist/relay/routing.js +9 -0
- package/dist/sdk/ai/utils/image-source.d.ts +26 -11
- package/dist/sdk/ai/utils/image-source.d.ts.map +1 -1
- package/dist/sdk/ai/utils/image-source.js +184 -47
- package/dist/sdk/ai/utils/transient-error.d.ts +4 -0
- package/dist/sdk/ai/utils/transient-error.d.ts.map +1 -1
- package/dist/sdk/ai/utils/transient-error.js +15 -0
- package/dist/sdk/coding-agent/core/compaction/policy.d.ts +2 -0
- package/dist/sdk/coding-agent/core/compaction/policy.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/compaction/policy.js +2 -0
- package/dist/sdk/coding-agent/core/extensions/native-extensions.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/extensions/native-extensions.js +10 -0
- package/dist/sdk/coding-agent/core/system-prompt.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/system-prompt.js +4 -0
- package/dist/sdk/coding-agent/core/tools/read.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/tools/read.js +14 -7
- package/dist/sdk/coding-agent/index.d.ts +1 -1
- package/dist/sdk/coding-agent/index.d.ts.map +1 -1
- package/dist/sdk/coding-agent/index.js +1 -1
- package/dist/sdk/coding-agent/utils/image-resize.d.ts +25 -11
- package/dist/sdk/coding-agent/utils/image-resize.d.ts.map +1 -1
- package/dist/sdk/coding-agent/utils/image-resize.js +54 -36
- package/dist/sdk/coding-agent/utils/photon.d.ts.map +1 -1
- package/dist/sdk/coding-agent/utils/photon.js +11 -2
- package/dist/server/agent-bridge.d.ts +32 -0
- package/dist/server/agent-bridge.d.ts.map +1 -1
- package/dist/server/agent-bridge.js +59 -9
- package/dist/server/handlers/mcp-auth.d.ts +28 -0
- package/dist/server/handlers/mcp-auth.d.ts.map +1 -0
- package/dist/server/handlers/mcp-auth.js +41 -0
- package/dist/server/handlers/mcp-status.d.ts +8 -2
- package/dist/server/handlers/mcp-status.d.ts.map +1 -1
- package/dist/server/handlers/mcp-status.js +15 -3
- package/dist/server/preset-chain.d.ts +0 -13
- package/dist/server/preset-chain.d.ts.map +1 -1
- package/dist/server/preset-chain.js +0 -25
- package/dist/server/session-stream/memory.d.ts.map +1 -1
- package/dist/server/session-stream/memory.js +8 -1
- package/dist/server/session-stream.d.ts +15 -56
- package/dist/server/session-stream.d.ts.map +1 -1
- package/dist/server/session-stream.js +41 -271
- package/dist/server/wire.d.ts +18 -32
- package/dist/server/wire.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chunked dataset upload to the team dataset vault (Dataset-uploader.md §3.2 —
|
|
3
|
+
* the `dataset_upload` tool's core).
|
|
4
|
+
*
|
|
5
|
+
* Loads a (cleaned) sharegpt JSONL, validates each line, groups it into
|
|
6
|
+
* batches of `batchSize` and calls the backend MCP tool
|
|
7
|
+
* `upload_dataset_samples` (JSON-RPC tools/call, Bearer auth) per batch,
|
|
8
|
+
* then sums the per-batch `DatasetUploadResult` ({accepted, duplicates,
|
|
9
|
+
* rejected}).
|
|
10
|
+
*
|
|
11
|
+
* Auth/URL resolution mirrors `aexol-mcp.ts`: `~/.spectral/config.json`
|
|
12
|
+
* (`readConfig()`), token = `teamApiKey || userJwt`, URL via `getApiUrl()`,
|
|
13
|
+
* and a single `ensureAuthenticated()` OAuth retry on 401/403.
|
|
14
|
+
*
|
|
15
|
+
* projectId: the Studio binding (`.aexol/aexol.jsonc`) supplies a single
|
|
16
|
+
* batch-level projectId for ALL batches — the exporter does not persist
|
|
17
|
+
* per-sample project provenance in the JSONL, so per-project grouping is not
|
|
18
|
+
* possible without exporter rework (documented in the result notes).
|
|
19
|
+
*
|
|
20
|
+
* Testability: the backend call lives behind `callBackendTool`, overridable
|
|
21
|
+
* per-call (`options.callBackendTool`) or via `setCallBackendToolForTesting`
|
|
22
|
+
* (module-level), so tests can stub the network entirely.
|
|
23
|
+
*/
|
|
24
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
25
|
+
import { getApiUrl, readConfig } from "../../config.js";
|
|
26
|
+
import { AexolMcpClient, AexolMcpError } from "../../mcp-client.js";
|
|
27
|
+
import { ensureAuthenticated } from "../../auth-helper.js";
|
|
28
|
+
import { readStudioBinding } from "../../studio-binding.js";
|
|
29
|
+
import { renderContentToString } from "../aexol-backend-client.js";
|
|
30
|
+
import { loadJsonl } from "./analyzer.js";
|
|
31
|
+
import { scrub } from "./scrubber.js";
|
|
32
|
+
export const DEFAULT_BATCH_SIZE = 50;
|
|
33
|
+
/** Backend MCP tool that ingests one batch of samples. */
|
|
34
|
+
export const BACKEND_UPLOAD_TOOL = "upload_dataset_samples";
|
|
35
|
+
/** Backend MCP tool returning vault stats (best-effort, post-upload). */
|
|
36
|
+
export const BACKEND_VAULT_STATS_TOOL = "dataset_vault_stats";
|
|
37
|
+
export const DATASET_FORMAT = "sharegpt";
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
// Default backend call (real network path)
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
let testOverride = null;
|
|
42
|
+
/**
|
|
43
|
+
* Test hook: override the backend call for the whole module. Pass null to
|
|
44
|
+
* restore the real implementation. Prefer `options.callBackendTool` for
|
|
45
|
+
* per-call injection; this exists so tests that drive code through other
|
|
46
|
+
* entry points (e.g. the extension index) can stub the network too.
|
|
47
|
+
*/
|
|
48
|
+
export function setCallBackendToolForTesting(fn) {
|
|
49
|
+
testOverride = fn;
|
|
50
|
+
}
|
|
51
|
+
function resolveCallBackendTool(options) {
|
|
52
|
+
return options.callBackendTool ?? testOverride ?? defaultCallBackendTool;
|
|
53
|
+
}
|
|
54
|
+
function firstJsonContent(content) {
|
|
55
|
+
if (content.length === 0)
|
|
56
|
+
return null;
|
|
57
|
+
const first = content[0];
|
|
58
|
+
if (first.json !== undefined)
|
|
59
|
+
return first.json;
|
|
60
|
+
if (typeof first.text === "string") {
|
|
61
|
+
try {
|
|
62
|
+
return JSON.parse(first.text);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return first.text;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Real backend call: config → token → AexolMcpClient.tools/call, with a
|
|
72
|
+
* single OAuth re-auth retry on 401/403 (same flow as aexol-mcp.ts).
|
|
73
|
+
*/
|
|
74
|
+
async function defaultCallBackendTool(tool, args) {
|
|
75
|
+
const cfg = await readConfig();
|
|
76
|
+
if (!cfg) {
|
|
77
|
+
throw new Error("No Spectral config found — run `spectral login` before uploading. No data was sent.");
|
|
78
|
+
}
|
|
79
|
+
const apiUrl = getApiUrl(cfg.apiUrl);
|
|
80
|
+
let token = cfg.teamApiKey || cfg.userJwt || "";
|
|
81
|
+
if (!token) {
|
|
82
|
+
throw new Error("No auth token in Spectral config — run `spectral login` before uploading. No data was sent.");
|
|
83
|
+
}
|
|
84
|
+
let client = new AexolMcpClient(apiUrl, token);
|
|
85
|
+
try {
|
|
86
|
+
const res = await client.callTool(tool, args);
|
|
87
|
+
if (res.isError === true) {
|
|
88
|
+
throw new Error(`Backend tool "${tool}" reported an error: ${renderContentToString(res.content)}`);
|
|
89
|
+
}
|
|
90
|
+
return firstJsonContent(res.content);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
if (err instanceof AexolMcpError && (err.status === 401 || err.status === 403)) {
|
|
94
|
+
const auth = await ensureAuthenticated();
|
|
95
|
+
if (auth.ok && auth.config) {
|
|
96
|
+
const newToken = auth.config.teamApiKey || auth.config.userJwt || "";
|
|
97
|
+
if (newToken && newToken !== token) {
|
|
98
|
+
client = new AexolMcpClient(apiUrl, newToken);
|
|
99
|
+
const res = await client.callTool(tool, args);
|
|
100
|
+
if (res.isError === true) {
|
|
101
|
+
throw new Error(`Backend tool "${tool}" reported an error after re-auth: ${renderContentToString(res.content)}`);
|
|
102
|
+
}
|
|
103
|
+
return firstJsonContent(res.content);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
throw new Error(`Authentication failed (HTTP ${err.status}) and re-authentication did not produce a working token. ` +
|
|
107
|
+
`Run \`spectral login\`. Original error: ${err.message}`);
|
|
108
|
+
}
|
|
109
|
+
throw err;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
// Upload
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
function toInt(value, fallback) {
|
|
116
|
+
return typeof value === "number" && Number.isFinite(value) ? Math.trunc(value) : fallback;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Upload a dataset JSONL to the team vault in chunks.
|
|
120
|
+
*
|
|
121
|
+
* dryRun: parse + validate only — no backend call, `wouldUpload` carries the
|
|
122
|
+
* count, totals stay zero.
|
|
123
|
+
*/
|
|
124
|
+
export async function uploadDataset(options) {
|
|
125
|
+
if (!existsSync(options.inputPath)) {
|
|
126
|
+
throw new Error(`Dataset file not found: ${options.inputPath}`);
|
|
127
|
+
}
|
|
128
|
+
const batchSize = typeof options.batchSize === "number" && options.batchSize > 0
|
|
129
|
+
? Math.trunc(options.batchSize)
|
|
130
|
+
: DEFAULT_BATCH_SIZE;
|
|
131
|
+
const { samples, malformedLines } = loadJsonl(options.inputPath);
|
|
132
|
+
const notes = [];
|
|
133
|
+
// ---- team / project resolution (single projectId for all batches) ------
|
|
134
|
+
const cwd = options.cwd ?? process.cwd();
|
|
135
|
+
let binding = null;
|
|
136
|
+
try {
|
|
137
|
+
binding = await readStudioBinding(cwd);
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
binding = null;
|
|
141
|
+
}
|
|
142
|
+
const teamId = options.teamId ?? binding?.teamId ?? null;
|
|
143
|
+
const projectId = binding?.projectId ?? null;
|
|
144
|
+
if (projectId) {
|
|
145
|
+
notes.push(`All batches use Studio binding projectId ${projectId} (batch-level provenance).`);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
notes.push("No Studio binding found — batches are sent without projectId (sessions without a bound project).");
|
|
149
|
+
}
|
|
150
|
+
notes.push("Per-project batching is not supported by the exporter JSONL (no per-sample project provenance); " +
|
|
151
|
+
"a single projectId from the binding is used for all batches.");
|
|
152
|
+
const validSamples = samples.map((s) => JSON.stringify(s));
|
|
153
|
+
const invalidLines = malformedLines;
|
|
154
|
+
// ---- pre-upload residue warning (pattern-only dry-run scrub) ------------
|
|
155
|
+
// Runs in BOTH dry-run and real uploads, before the first network batch.
|
|
156
|
+
// Pattern rules only (no extraValues) — counts only, never values.
|
|
157
|
+
let residueWarning = null;
|
|
158
|
+
try {
|
|
159
|
+
const rawContent = readFileSync(options.inputPath, "utf8");
|
|
160
|
+
const scrubResult = scrub(rawContent);
|
|
161
|
+
const totalRedactions = scrubResult.redactions.reduce((sum, r) => sum + r.count, 0);
|
|
162
|
+
if (totalRedactions > 0) {
|
|
163
|
+
residueWarning = {
|
|
164
|
+
totalRedactions,
|
|
165
|
+
kinds: scrubResult.redactions.map((r) => r.kind),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// Non-fatal — the warning is advisory.
|
|
171
|
+
}
|
|
172
|
+
const chunkCount = Math.ceil(validSamples.length / batchSize);
|
|
173
|
+
const batches = [];
|
|
174
|
+
const totals = { accepted: 0, duplicates: 0, rejected: 0 };
|
|
175
|
+
let vaultStats;
|
|
176
|
+
if (options.dryRun === true) {
|
|
177
|
+
for (let i = 0; i < chunkCount; i++) {
|
|
178
|
+
const chunk = validSamples.slice(i * batchSize, (i + 1) * batchSize);
|
|
179
|
+
batches.push({ projectId, sent: chunk.length, accepted: 0, duplicates: 0, rejected: 0 });
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
const call = resolveCallBackendTool(options);
|
|
184
|
+
for (let i = 0; i < chunkCount; i++) {
|
|
185
|
+
const chunk = validSamples.slice(i * batchSize, (i + 1) * batchSize);
|
|
186
|
+
const args = {
|
|
187
|
+
format: DATASET_FORMAT,
|
|
188
|
+
samples: chunk,
|
|
189
|
+
};
|
|
190
|
+
if (teamId)
|
|
191
|
+
args.teamId = teamId;
|
|
192
|
+
if (projectId)
|
|
193
|
+
args.projectId = projectId;
|
|
194
|
+
const payload = await call(BACKEND_UPLOAD_TOOL, args);
|
|
195
|
+
const result = (payload && typeof payload === "object" ? payload : {});
|
|
196
|
+
const accepted = toInt(result.accepted, 0);
|
|
197
|
+
const duplicates = toInt(result.duplicates, 0);
|
|
198
|
+
const rejected = toInt(result.rejected, 0);
|
|
199
|
+
batches.push({ projectId, sent: chunk.length, accepted, duplicates, rejected });
|
|
200
|
+
totals.accepted += accepted;
|
|
201
|
+
totals.duplicates += duplicates;
|
|
202
|
+
totals.rejected += rejected;
|
|
203
|
+
}
|
|
204
|
+
// Best-effort vault stats — a failure here never fails the upload.
|
|
205
|
+
try {
|
|
206
|
+
const statsArgs = {};
|
|
207
|
+
if (teamId)
|
|
208
|
+
statsArgs.teamId = teamId;
|
|
209
|
+
vaultStats = await call(BACKEND_VAULT_STATS_TOOL, statsArgs);
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
vaultStats = undefined;
|
|
213
|
+
notes.push("Vault stats could not be fetched (non-fatal).");
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
inputPath: options.inputPath,
|
|
218
|
+
dryRun: options.dryRun === true,
|
|
219
|
+
totalLines: validSamples.length + invalidLines,
|
|
220
|
+
validSamples: validSamples.length,
|
|
221
|
+
invalidLines,
|
|
222
|
+
batchSize,
|
|
223
|
+
teamId,
|
|
224
|
+
projectId,
|
|
225
|
+
batches,
|
|
226
|
+
totals,
|
|
227
|
+
wouldUpload: validSamples.length,
|
|
228
|
+
...(vaultStats !== undefined ? { vaultStats } : {}),
|
|
229
|
+
...(residueWarning !== null ? { residueWarning } : {}),
|
|
230
|
+
notes,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
// ---------------------------------------------------------------------------
|
|
234
|
+
// Markdown rendering
|
|
235
|
+
// ---------------------------------------------------------------------------
|
|
236
|
+
/** Render an upload result as a markdown summary for the agent. */
|
|
237
|
+
export function renderUploadMarkdown(result) {
|
|
238
|
+
const lines = [];
|
|
239
|
+
lines.push(`# Dataset upload ${result.dryRun ? "(dry run)" : ""} — ${result.inputPath}`);
|
|
240
|
+
if (result.residueWarning) {
|
|
241
|
+
lines.push("");
|
|
242
|
+
lines.push(`⚠️ residue detected (${result.residueWarning.totalRedactions} redactions across kinds: ${result.residueWarning.kinds.join(", ")}) — run dataset_clean before uploading`);
|
|
243
|
+
}
|
|
244
|
+
lines.push("");
|
|
245
|
+
lines.push(`- Samples: **${result.validSamples}** valid` +
|
|
246
|
+
(result.invalidLines > 0 ? ` (${result.invalidLines} invalid line(s) skipped)` : "") +
|
|
247
|
+
`, batch size ${result.batchSize}`);
|
|
248
|
+
lines.push(`- Scope: team ${result.teamId ?? "(resolved by backend)"} / project ${result.projectId ?? "none"}`);
|
|
249
|
+
if (result.dryRun) {
|
|
250
|
+
lines.push(`- Dry run: **${result.wouldUpload} sample(s) would be uploaded in ${result.batches.length} batch(es)** — no data was sent.`);
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
lines.push(`- Totals: accepted **${result.totals.accepted}**, duplicates **${result.totals.duplicates}**, rejected **${result.totals.rejected}**`);
|
|
254
|
+
lines.push("");
|
|
255
|
+
lines.push("| Batch | Sent | Accepted | Duplicates | Rejected |");
|
|
256
|
+
lines.push("| ---: | ---: | ---: | ---: | ---: |");
|
|
257
|
+
result.batches.forEach((b, i) => {
|
|
258
|
+
lines.push(`| ${i + 1} | ${b.sent} | ${b.accepted} | ${b.duplicates} | ${b.rejected} |`);
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
if (result.vaultStats !== undefined) {
|
|
262
|
+
lines.push("");
|
|
263
|
+
lines.push("## Vault stats");
|
|
264
|
+
lines.push("");
|
|
265
|
+
lines.push("```json");
|
|
266
|
+
lines.push(JSON.stringify(result.vaultStats, null, 2));
|
|
267
|
+
lines.push("```");
|
|
268
|
+
}
|
|
269
|
+
lines.push("");
|
|
270
|
+
lines.push("## Notes");
|
|
271
|
+
for (const note of result.notes)
|
|
272
|
+
lines.push(`- ${note}`);
|
|
273
|
+
return lines.join("\n");
|
|
274
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../src/generated/zeus/const.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../src/generated/zeus/const.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAC,GAAG,CAw7B5C,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAC,GAAG,CAw3C1C,CAAA;AAED,eAAO,MAAM,GAAG;;;;CAIf,CAAA"}
|
|
@@ -207,6 +207,8 @@ export const AllTypesProps = {
|
|
|
207
207
|
syntheticDataset: {},
|
|
208
208
|
fineTuneJobs: {},
|
|
209
209
|
fineTuneJob: {},
|
|
210
|
+
datasetSamples: {},
|
|
211
|
+
datasetVaultStats: {},
|
|
210
212
|
dedicatedUsage: {},
|
|
211
213
|
seoSearchAnalytics: {
|
|
212
214
|
input: "SeoSearchAnalyticsInput"
|
|
@@ -222,7 +224,8 @@ export const AllTypesProps = {
|
|
|
222
224
|
adminVastAiOffers: {
|
|
223
225
|
query: "AdminVastAiOfferQueryInput"
|
|
224
226
|
},
|
|
225
|
-
adminRunPodPods: {}
|
|
227
|
+
adminRunPodPods: {},
|
|
228
|
+
adminDeployConfig: {}
|
|
226
229
|
},
|
|
227
230
|
Mutation: {
|
|
228
231
|
register: {
|
|
@@ -382,6 +385,13 @@ export const AllTypesProps = {
|
|
|
382
385
|
input: "AdminUpdateCreditPackInput"
|
|
383
386
|
},
|
|
384
387
|
adminDeleteCreditPack: {},
|
|
388
|
+
adminCreateDeployConfig: {
|
|
389
|
+
input: "AdminCreateDeployConfigInput"
|
|
390
|
+
},
|
|
391
|
+
adminUpdateDeployConfig: {
|
|
392
|
+
input: "AdminUpdateDeployConfigInput"
|
|
393
|
+
},
|
|
394
|
+
adminDeleteDeployConfig: {},
|
|
385
395
|
adminCreateBuiltInModel: {
|
|
386
396
|
input: "CreateBuiltInModelInput"
|
|
387
397
|
},
|
|
@@ -411,12 +421,18 @@ export const AllTypesProps = {
|
|
|
411
421
|
adminCreateVastAiInstance: {
|
|
412
422
|
input: "AdminCreateVastAiInstanceInput"
|
|
413
423
|
},
|
|
424
|
+
adminUpdateVastAiInstance: {
|
|
425
|
+
input: "AdminUpdateVastAiInstanceInput"
|
|
426
|
+
},
|
|
414
427
|
adminStartVastAiInstance: {},
|
|
415
428
|
adminStopVastAiInstance: {},
|
|
416
429
|
adminDestroyVastAiInstance: {},
|
|
417
430
|
adminCreateRunPod: {
|
|
418
431
|
input: "AdminCreateRunPodInput"
|
|
419
432
|
},
|
|
433
|
+
adminUpdateRunPod: {
|
|
434
|
+
input: "AdminUpdateRunPodInput"
|
|
435
|
+
},
|
|
420
436
|
adminStartRunPod: {},
|
|
421
437
|
adminStopRunPod: {},
|
|
422
438
|
adminTerminateRunPod: {},
|
|
@@ -466,6 +482,10 @@ export const AllTypesProps = {
|
|
|
466
482
|
cancelFineTuneJob: {},
|
|
467
483
|
deleteFineTuneJob: {},
|
|
468
484
|
deleteSyntheticDataset: {},
|
|
485
|
+
uploadDatasetSamples: {
|
|
486
|
+
input: "UploadDatasetSamplesInput"
|
|
487
|
+
},
|
|
488
|
+
deleteDatasetSample: {},
|
|
469
489
|
deployDedicated: {
|
|
470
490
|
input: "DeployDedicatedInput"
|
|
471
491
|
},
|
|
@@ -524,6 +544,7 @@ export const AllTypesProps = {
|
|
|
524
544
|
GenerateSyntheticDatasetInput: {},
|
|
525
545
|
ImportSyntheticDatasetInput: {},
|
|
526
546
|
StartFineTuneJobInput: {},
|
|
547
|
+
UploadDatasetSamplesInput: {},
|
|
527
548
|
AdminCreateBillingPlanInput: {},
|
|
528
549
|
AdminUpdateBillingPlanInput: {},
|
|
529
550
|
AdminCreateCreditPackInput: {},
|
|
@@ -536,9 +557,15 @@ export const AllTypesProps = {
|
|
|
536
557
|
},
|
|
537
558
|
AdminVastAiOfferQueryInput: {},
|
|
538
559
|
AdminCreateVastAiInstanceInput: {},
|
|
560
|
+
AdminUpdateVastAiInstanceInput: {},
|
|
539
561
|
AdminCreateRunPodInput: {
|
|
540
562
|
env: "JSON"
|
|
541
563
|
},
|
|
564
|
+
AdminUpdateRunPodInput: {
|
|
565
|
+
env: "JSON"
|
|
566
|
+
},
|
|
567
|
+
AdminCreateDeployConfigInput: {},
|
|
568
|
+
AdminUpdateDeployConfigInput: {},
|
|
542
569
|
BaseModelUpdateInput: {},
|
|
543
570
|
BaseModelCreateInput: {
|
|
544
571
|
capabilities: "JSON"
|
|
@@ -826,9 +853,6 @@ export const ReturnTypes = {
|
|
|
826
853
|
riskLevel: "RiskLevel",
|
|
827
854
|
source: "PresetSource",
|
|
828
855
|
isEnabled: "Boolean",
|
|
829
|
-
loopEnabled: "Boolean",
|
|
830
|
-
maxIterations: "Int",
|
|
831
|
-
goal: "String",
|
|
832
856
|
intervalMinutes: "Int",
|
|
833
857
|
languageTags: "LanguageTag",
|
|
834
858
|
followUpMessages: "PresetFollowUpMessage",
|
|
@@ -1091,6 +1115,8 @@ export const ReturnTypes = {
|
|
|
1091
1115
|
syntheticDataset: "SyntheticDataset",
|
|
1092
1116
|
fineTuneJobs: "FineTuneJob",
|
|
1093
1117
|
fineTuneJob: "FineTuneJob",
|
|
1118
|
+
datasetSamples: "DatasetSample",
|
|
1119
|
+
datasetVaultStats: "DatasetVaultStats",
|
|
1094
1120
|
dedicatedHardwareOptions: "DedicatedHardware",
|
|
1095
1121
|
dedicatedUsage: "DedicatedUsageSummary",
|
|
1096
1122
|
latestSpectralRelease: "SpectralRelease",
|
|
@@ -1115,7 +1141,9 @@ export const ReturnTypes = {
|
|
|
1115
1141
|
adminRunPodAccount: "AdminRunPodAccount",
|
|
1116
1142
|
adminRunPodSettings: "AdminRunPodSettings",
|
|
1117
1143
|
adminRunPodPods: "AdminRunPodPod",
|
|
1118
|
-
adminRunPodGpuTypes: "AdminRunPodGpuType"
|
|
1144
|
+
adminRunPodGpuTypes: "AdminRunPodGpuType",
|
|
1145
|
+
adminDeployConfigs: "AdminDeployConfig",
|
|
1146
|
+
adminDeployConfig: "AdminDeployConfig"
|
|
1119
1147
|
},
|
|
1120
1148
|
Mutation: {
|
|
1121
1149
|
register: "AuthPayload",
|
|
@@ -1204,6 +1232,9 @@ export const ReturnTypes = {
|
|
|
1204
1232
|
adminCreateCreditPack: "AdminCreditPack",
|
|
1205
1233
|
adminUpdateCreditPack: "AdminCreditPack",
|
|
1206
1234
|
adminDeleteCreditPack: "Boolean",
|
|
1235
|
+
adminCreateDeployConfig: "AdminDeployConfig",
|
|
1236
|
+
adminUpdateDeployConfig: "AdminDeployConfig",
|
|
1237
|
+
adminDeleteDeployConfig: "Boolean",
|
|
1207
1238
|
adminCreateBuiltInModel: "UserModel",
|
|
1208
1239
|
adminUpdateBuiltInModel: "UserModel",
|
|
1209
1240
|
adminDeleteBuiltInModel: "Boolean",
|
|
@@ -1217,10 +1248,12 @@ export const ReturnTypes = {
|
|
|
1217
1248
|
adminInstallLyceumModel: "AdminLyceumVmOperation",
|
|
1218
1249
|
adminStopLyceumModel: "AdminLyceumVmOperation",
|
|
1219
1250
|
adminCreateVastAiInstance: "AdminVastAiInstance",
|
|
1251
|
+
adminUpdateVastAiInstance: "AdminVastAiInstance",
|
|
1220
1252
|
adminStartVastAiInstance: "AdminVastAiOperation",
|
|
1221
1253
|
adminStopVastAiInstance: "AdminVastAiOperation",
|
|
1222
1254
|
adminDestroyVastAiInstance: "AdminVastAiOperation",
|
|
1223
1255
|
adminCreateRunPod: "AdminRunPodPod",
|
|
1256
|
+
adminUpdateRunPod: "AdminRunPodPod",
|
|
1224
1257
|
adminStartRunPod: "AdminRunPodOperation",
|
|
1225
1258
|
adminStopRunPod: "AdminRunPodOperation",
|
|
1226
1259
|
adminTerminateRunPod: "AdminRunPodOperation",
|
|
@@ -1247,6 +1280,8 @@ export const ReturnTypes = {
|
|
|
1247
1280
|
cancelFineTuneJob: "Boolean",
|
|
1248
1281
|
deleteFineTuneJob: "Boolean",
|
|
1249
1282
|
deleteSyntheticDataset: "Boolean",
|
|
1283
|
+
uploadDatasetSamples: "DatasetUploadResult",
|
|
1284
|
+
deleteDatasetSample: "Boolean",
|
|
1250
1285
|
deployDedicated: "UserModel",
|
|
1251
1286
|
updateDedicated: "UserModel",
|
|
1252
1287
|
destroyDedicated: "UserModel",
|
|
@@ -1446,6 +1481,27 @@ export const ReturnTypes = {
|
|
|
1446
1481
|
message: "String",
|
|
1447
1482
|
outputModelName: "String"
|
|
1448
1483
|
},
|
|
1484
|
+
DatasetSample: {
|
|
1485
|
+
id: "ID",
|
|
1486
|
+
teamId: "ID",
|
|
1487
|
+
projectId: "ID",
|
|
1488
|
+
contentHash: "String",
|
|
1489
|
+
format: "String",
|
|
1490
|
+
sampleCount: "Int",
|
|
1491
|
+
sourceSessionId: "String",
|
|
1492
|
+
createdAt: "DateTime"
|
|
1493
|
+
},
|
|
1494
|
+
DatasetUploadResult: {
|
|
1495
|
+
accepted: "Int",
|
|
1496
|
+
duplicates: "Int",
|
|
1497
|
+
rejected: "Int",
|
|
1498
|
+
sampleIds: "ID"
|
|
1499
|
+
},
|
|
1500
|
+
DatasetVaultStats: {
|
|
1501
|
+
count: "Int",
|
|
1502
|
+
totalBytes: "Int",
|
|
1503
|
+
topTools: "String"
|
|
1504
|
+
},
|
|
1449
1505
|
DedicatedHardware: {
|
|
1450
1506
|
id: "String",
|
|
1451
1507
|
name: "String",
|
|
@@ -1747,10 +1803,18 @@ export const ReturnTypes = {
|
|
|
1747
1803
|
sshPort: "Int",
|
|
1748
1804
|
sshCommand: "String",
|
|
1749
1805
|
publicIpaddr: "String",
|
|
1806
|
+
publicIp: "String",
|
|
1807
|
+
portMappings: "VastAiPortMapping",
|
|
1750
1808
|
uptimeMins: "Int",
|
|
1751
1809
|
diskSpaceGb: "Float",
|
|
1752
1810
|
imageUuid: "String",
|
|
1753
|
-
startedAt: "String"
|
|
1811
|
+
startedAt: "String",
|
|
1812
|
+
ports: "Int",
|
|
1813
|
+
startCommand: "String"
|
|
1814
|
+
},
|
|
1815
|
+
VastAiPortMapping: {
|
|
1816
|
+
containerPort: "Int",
|
|
1817
|
+
hostPort: "Int"
|
|
1754
1818
|
},
|
|
1755
1819
|
AdminVastAiOperation: {
|
|
1756
1820
|
instanceId: "String",
|
|
@@ -1773,6 +1837,7 @@ export const ReturnTypes = {
|
|
|
1773
1837
|
image: "String",
|
|
1774
1838
|
containerDiskInGb: "Int",
|
|
1775
1839
|
ports: "String",
|
|
1840
|
+
runtimePorts: "JSON",
|
|
1776
1841
|
env: "JSON",
|
|
1777
1842
|
status: "String",
|
|
1778
1843
|
locked: "Boolean",
|
|
@@ -1809,6 +1874,15 @@ export const ReturnTypes = {
|
|
|
1809
1874
|
status: "String",
|
|
1810
1875
|
message: "String"
|
|
1811
1876
|
},
|
|
1877
|
+
AdminDeployConfig: {
|
|
1878
|
+
id: "String",
|
|
1879
|
+
name: "String",
|
|
1880
|
+
dockerImage: "String",
|
|
1881
|
+
hfModel: "String",
|
|
1882
|
+
startCommand: "String",
|
|
1883
|
+
createdAt: "DateTime",
|
|
1884
|
+
updatedAt: "DateTime"
|
|
1885
|
+
},
|
|
1812
1886
|
OpenRouterModelProvider: {
|
|
1813
1887
|
name: "String",
|
|
1814
1888
|
label: "String"
|