@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.
Files changed (96) hide show
  1. package/dist/extensions/dataset-uploader/analyzer.d.ts +103 -0
  2. package/dist/extensions/dataset-uploader/analyzer.d.ts.map +1 -0
  3. package/dist/extensions/dataset-uploader/analyzer.js +266 -0
  4. package/dist/extensions/dataset-uploader/cleaner.d.ts +59 -0
  5. package/dist/extensions/dataset-uploader/cleaner.d.ts.map +1 -0
  6. package/dist/extensions/dataset-uploader/cleaner.js +118 -0
  7. package/dist/extensions/dataset-uploader/exporter.d.ts +147 -0
  8. package/dist/extensions/dataset-uploader/exporter.d.ts.map +1 -0
  9. package/dist/extensions/dataset-uploader/exporter.js +313 -0
  10. package/dist/extensions/dataset-uploader/extra-values.d.ts +17 -0
  11. package/dist/extensions/dataset-uploader/extra-values.d.ts.map +1 -0
  12. package/dist/extensions/dataset-uploader/extra-values.js +51 -0
  13. package/dist/extensions/dataset-uploader/index.d.ts +22 -0
  14. package/dist/extensions/dataset-uploader/index.d.ts.map +1 -0
  15. package/dist/extensions/dataset-uploader/index.js +247 -0
  16. package/dist/extensions/dataset-uploader/scrubber.d.ts +34 -0
  17. package/dist/extensions/dataset-uploader/scrubber.d.ts.map +1 -0
  18. package/dist/extensions/dataset-uploader/scrubber.js +91 -0
  19. package/dist/extensions/dataset-uploader/upload.d.ts +105 -0
  20. package/dist/extensions/dataset-uploader/upload.d.ts.map +1 -0
  21. package/dist/extensions/dataset-uploader/upload.js +274 -0
  22. package/dist/generated/zeus/const.d.ts.map +1 -1
  23. package/dist/generated/zeus/const.js +80 -6
  24. package/dist/generated/zeus/index.d.ts +432 -36
  25. package/dist/generated/zeus/index.d.ts.map +1 -1
  26. package/dist/mcp/commands.d.ts.map +1 -1
  27. package/dist/mcp/commands.js +3 -0
  28. package/dist/mcp/direct-tools.d.ts.map +1 -1
  29. package/dist/mcp/direct-tools.js +4 -3
  30. package/dist/mcp/index.d.ts.map +1 -1
  31. package/dist/mcp/index.js +5 -1
  32. package/dist/mcp/mcp-auth-flow.d.ts +5 -1
  33. package/dist/mcp/mcp-auth-flow.d.ts.map +1 -1
  34. package/dist/mcp/mcp-auth-flow.js +20 -4
  35. package/dist/mcp/mcp-auth-start.d.ts +64 -0
  36. package/dist/mcp/mcp-auth-start.d.ts.map +1 -0
  37. package/dist/mcp/mcp-auth-start.js +136 -0
  38. package/dist/mcp/proxy-modes.d.ts +7 -0
  39. package/dist/mcp/proxy-modes.d.ts.map +1 -1
  40. package/dist/mcp/proxy-modes.js +71 -11
  41. package/dist/mcp/server-manager.d.ts +2 -1
  42. package/dist/mcp/server-manager.d.ts.map +1 -1
  43. package/dist/mcp/server-manager.js +8 -4
  44. package/dist/memory/commands/status.d.ts.map +1 -1
  45. package/dist/memory/commands/status.js +2 -1
  46. package/dist/memory/hooks/compaction-trigger.d.ts +14 -1
  47. package/dist/memory/hooks/compaction-trigger.d.ts.map +1 -1
  48. package/dist/memory/hooks/compaction-trigger.js +31 -4
  49. package/dist/relay/dispatcher.d.ts.map +1 -1
  50. package/dist/relay/dispatcher.js +4 -47
  51. package/dist/relay/routing.d.ts +1 -1
  52. package/dist/relay/routing.d.ts.map +1 -1
  53. package/dist/relay/routing.js +9 -0
  54. package/dist/sdk/ai/utils/image-source.d.ts +26 -11
  55. package/dist/sdk/ai/utils/image-source.d.ts.map +1 -1
  56. package/dist/sdk/ai/utils/image-source.js +184 -47
  57. package/dist/sdk/ai/utils/transient-error.d.ts +4 -0
  58. package/dist/sdk/ai/utils/transient-error.d.ts.map +1 -1
  59. package/dist/sdk/ai/utils/transient-error.js +15 -0
  60. package/dist/sdk/coding-agent/core/compaction/policy.d.ts +2 -0
  61. package/dist/sdk/coding-agent/core/compaction/policy.d.ts.map +1 -1
  62. package/dist/sdk/coding-agent/core/compaction/policy.js +2 -0
  63. package/dist/sdk/coding-agent/core/extensions/native-extensions.d.ts.map +1 -1
  64. package/dist/sdk/coding-agent/core/extensions/native-extensions.js +10 -0
  65. package/dist/sdk/coding-agent/core/system-prompt.d.ts.map +1 -1
  66. package/dist/sdk/coding-agent/core/system-prompt.js +4 -0
  67. package/dist/sdk/coding-agent/core/tools/read.d.ts.map +1 -1
  68. package/dist/sdk/coding-agent/core/tools/read.js +14 -7
  69. package/dist/sdk/coding-agent/index.d.ts +1 -1
  70. package/dist/sdk/coding-agent/index.d.ts.map +1 -1
  71. package/dist/sdk/coding-agent/index.js +1 -1
  72. package/dist/sdk/coding-agent/utils/image-resize.d.ts +25 -11
  73. package/dist/sdk/coding-agent/utils/image-resize.d.ts.map +1 -1
  74. package/dist/sdk/coding-agent/utils/image-resize.js +54 -36
  75. package/dist/sdk/coding-agent/utils/photon.d.ts.map +1 -1
  76. package/dist/sdk/coding-agent/utils/photon.js +11 -2
  77. package/dist/server/agent-bridge.d.ts +32 -0
  78. package/dist/server/agent-bridge.d.ts.map +1 -1
  79. package/dist/server/agent-bridge.js +59 -9
  80. package/dist/server/handlers/mcp-auth.d.ts +28 -0
  81. package/dist/server/handlers/mcp-auth.d.ts.map +1 -0
  82. package/dist/server/handlers/mcp-auth.js +41 -0
  83. package/dist/server/handlers/mcp-status.d.ts +8 -2
  84. package/dist/server/handlers/mcp-status.d.ts.map +1 -1
  85. package/dist/server/handlers/mcp-status.js +15 -3
  86. package/dist/server/preset-chain.d.ts +0 -13
  87. package/dist/server/preset-chain.d.ts.map +1 -1
  88. package/dist/server/preset-chain.js +0 -25
  89. package/dist/server/session-stream/memory.d.ts.map +1 -1
  90. package/dist/server/session-stream/memory.js +8 -1
  91. package/dist/server/session-stream.d.ts +15 -56
  92. package/dist/server/session-stream.d.ts.map +1 -1
  93. package/dist/server/session-stream.js +41 -271
  94. package/dist/server/wire.d.ts +18 -32
  95. package/dist/server/wire.d.ts.map +1 -1
  96. 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,CA24B5C,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAC,GAAG,CAy0C1C,CAAA;AAED,eAAO,MAAM,GAAG;;;;CAIf,CAAA"}
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"