@sogni-ai/sogni-client 4.2.0-alpha.2 → 4.2.0-alpha.21

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 (109) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/CLAUDE.md +25 -3
  3. package/README.md +411 -136
  4. package/dist/Account/index.d.ts +4 -2
  5. package/dist/Account/index.js +27 -23
  6. package/dist/Account/index.js.map +1 -1
  7. package/dist/Account/types.d.ts +7 -0
  8. package/dist/ApiClient/WebSocketClient/BrowserWebSocketClient/index.d.ts +3 -1
  9. package/dist/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js +26 -2
  10. package/dist/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js.map +1 -1
  11. package/dist/ApiClient/WebSocketClient/eventSubscriptions.d.ts +33 -0
  12. package/dist/ApiClient/WebSocketClient/eventSubscriptions.js +39 -0
  13. package/dist/ApiClient/WebSocketClient/eventSubscriptions.js.map +1 -0
  14. package/dist/ApiClient/WebSocketClient/events.d.ts +24 -7
  15. package/dist/ApiClient/WebSocketClient/index.d.ts +5 -1
  16. package/dist/ApiClient/WebSocketClient/index.js +24 -1
  17. package/dist/ApiClient/WebSocketClient/index.js.map +1 -1
  18. package/dist/ApiClient/WebSocketClient/messages.d.ts +2 -0
  19. package/dist/ApiClient/WebSocketClient/types.d.ts +2 -0
  20. package/dist/ApiClient/index.d.ts +6 -1
  21. package/dist/ApiClient/index.js +7 -3
  22. package/dist/ApiClient/index.js.map +1 -1
  23. package/dist/Chat/ChatTools.d.ts +5 -49
  24. package/dist/Chat/ChatTools.js +311 -88
  25. package/dist/Chat/ChatTools.js.map +1 -1
  26. package/dist/Chat/index.d.ts +11 -2
  27. package/dist/Chat/index.js +78 -4
  28. package/dist/Chat/index.js.map +1 -1
  29. package/dist/Chat/modelRouting.d.ts +100 -0
  30. package/dist/Chat/modelRouting.js +441 -0
  31. package/dist/Chat/modelRouting.js.map +1 -0
  32. package/dist/Chat/sogniHostedTools.generated.json +529 -0
  33. package/dist/Chat/tools.d.ts +9 -55
  34. package/dist/Chat/tools.js +72 -228
  35. package/dist/Chat/tools.js.map +1 -1
  36. package/dist/Chat/types.d.ts +91 -2
  37. package/dist/CreativeWorkflows/index.d.ts +23 -0
  38. package/dist/CreativeWorkflows/index.js +274 -0
  39. package/dist/CreativeWorkflows/index.js.map +1 -0
  40. package/dist/CreativeWorkflows/types.d.ts +106 -0
  41. package/dist/CreativeWorkflows/types.js +3 -0
  42. package/dist/CreativeWorkflows/types.js.map +1 -0
  43. package/dist/Projects/Job.d.ts +6 -0
  44. package/dist/Projects/Job.js +60 -5
  45. package/dist/Projects/Job.js.map +1 -1
  46. package/dist/Projects/Project.js +15 -3
  47. package/dist/Projects/Project.js.map +1 -1
  48. package/dist/Projects/createJobRequestMessage.js +140 -6
  49. package/dist/Projects/createJobRequestMessage.js.map +1 -1
  50. package/dist/Projects/index.d.ts +10 -1
  51. package/dist/Projects/index.js +197 -58
  52. package/dist/Projects/index.js.map +1 -1
  53. package/dist/Projects/types/ModelOptions.d.ts +3 -3
  54. package/dist/Projects/types/ModelOptions.js +12 -5
  55. package/dist/Projects/types/ModelOptions.js.map +1 -1
  56. package/dist/Projects/types/ModelTiersRaw.d.ts +7 -7
  57. package/dist/Projects/types/RawProject.d.ts +2 -0
  58. package/dist/Projects/types/events.d.ts +5 -4
  59. package/dist/Projects/types/index.d.ts +77 -7
  60. package/dist/Projects/types/index.js.map +1 -1
  61. package/dist/Projects/utils/index.d.ts +8 -1
  62. package/dist/Projects/utils/index.js +22 -8
  63. package/dist/Projects/utils/index.js.map +1 -1
  64. package/dist/index.d.ts +28 -3
  65. package/dist/index.js +19 -1
  66. package/dist/index.js.map +1 -1
  67. package/dist/lib/RestClient.d.ts +4 -1
  68. package/dist/lib/RestClient.js +17 -9
  69. package/dist/lib/RestClient.js.map +1 -1
  70. package/dist/lib/mediaValidation.d.ts +16 -0
  71. package/dist/lib/mediaValidation.js +280 -0
  72. package/dist/lib/mediaValidation.js.map +1 -0
  73. package/dist/lib/validation.d.ts +6 -1
  74. package/dist/lib/validation.js +28 -2
  75. package/dist/lib/validation.js.map +1 -1
  76. package/llms-full.txt +372 -133
  77. package/llms.txt +197 -86
  78. package/package.json +13 -4
  79. package/src/Account/index.ts +22 -2
  80. package/src/Account/types.ts +7 -0
  81. package/src/ApiClient/WebSocketClient/BrowserWebSocketClient/index.ts +47 -3
  82. package/src/ApiClient/WebSocketClient/eventSubscriptions.ts +92 -0
  83. package/src/ApiClient/WebSocketClient/events.ts +25 -7
  84. package/src/ApiClient/WebSocketClient/index.ts +33 -1
  85. package/src/ApiClient/WebSocketClient/messages.ts +2 -0
  86. package/src/ApiClient/WebSocketClient/types.ts +2 -0
  87. package/src/ApiClient/index.ts +32 -2
  88. package/src/Chat/ChatTools.ts +395 -95
  89. package/src/Chat/index.ts +149 -5
  90. package/src/Chat/modelRouting.ts +602 -0
  91. package/src/Chat/sogniHostedTools.generated.json +529 -0
  92. package/src/Chat/tools.ts +98 -245
  93. package/src/Chat/types.ts +100 -2
  94. package/src/CreativeWorkflows/index.ts +290 -0
  95. package/src/CreativeWorkflows/types.ts +134 -0
  96. package/src/Projects/Job.ts +76 -5
  97. package/src/Projects/Project.ts +13 -3
  98. package/src/Projects/createJobRequestMessage.ts +152 -13
  99. package/src/Projects/index.ts +230 -52
  100. package/src/Projects/types/ModelOptions.ts +15 -8
  101. package/src/Projects/types/ModelTiersRaw.ts +7 -7
  102. package/src/Projects/types/RawProject.ts +2 -0
  103. package/src/Projects/types/events.ts +5 -4
  104. package/src/Projects/types/index.ts +86 -6
  105. package/src/Projects/utils/index.ts +24 -8
  106. package/src/index.ts +93 -0
  107. package/src/lib/RestClient.ts +15 -5
  108. package/src/lib/mediaValidation.ts +367 -0
  109. package/src/lib/validation.ts +38 -2
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
+ return new (P || (P = Promise))(function (resolve, reject) {
19
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
23
+ });
24
+ };
25
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
26
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
27
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
28
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
29
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
30
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
31
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
32
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
33
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
34
+ function fulfill(value) { resume("next", value); }
35
+ function reject(value) { resume("throw", value); }
36
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.parseCreativeWorkflowSseChunk = parseCreativeWorkflowSseChunk;
43
+ const ApiGroup_1 = __importDefault(require("../ApiGroup"));
44
+ const ApiClient_1 = require("../ApiClient");
45
+ const TERMINAL_STATUSES = new Set(['completed', 'failed', 'cancelled']);
46
+ function toQuery(params) {
47
+ const query = new URLSearchParams();
48
+ for (const [key, value] of Object.entries(params)) {
49
+ if (value !== undefined) {
50
+ query.set(key, String(value));
51
+ }
52
+ }
53
+ const serialized = query.toString();
54
+ return serialized ? `?${serialized}` : '';
55
+ }
56
+ function isTerminalWorkflowStatus(value) {
57
+ return typeof value === 'string' && TERMINAL_STATUSES.has(value);
58
+ }
59
+ function parseJsonResponse(text) {
60
+ if (!text)
61
+ return {};
62
+ try {
63
+ return JSON.parse(text);
64
+ }
65
+ catch (_a) {
66
+ return { status: 'error', message: text, errorCode: 0 };
67
+ }
68
+ }
69
+ function parseEnvelope(response, key) {
70
+ const data = response.data;
71
+ if (!data || typeof data !== 'object') {
72
+ throw new Error('Creative workflow response did not include data');
73
+ }
74
+ if (!(key in data)) {
75
+ throw new Error(`Creative workflow response did not include data.${key}`);
76
+ }
77
+ return data[key];
78
+ }
79
+ function parseCreativeWorkflowSseChunk(chunk) {
80
+ return chunk
81
+ .split(/\r?\n\r?\n/)
82
+ .map((block) => block.trim())
83
+ .filter(Boolean)
84
+ .map((block) => {
85
+ const frame = {
86
+ event: 'message',
87
+ data: null,
88
+ raw: block
89
+ };
90
+ const dataLines = [];
91
+ for (const line of block.split(/\r?\n/)) {
92
+ if (!line || line.startsWith(':'))
93
+ continue;
94
+ const separator = line.indexOf(':');
95
+ const field = separator === -1 ? line : line.slice(0, separator);
96
+ const value = separator === -1 ? '' : line.slice(separator + 1).replace(/^ /, '');
97
+ if (field === 'id') {
98
+ frame.id = value;
99
+ }
100
+ else if (field === 'event') {
101
+ frame.event = value || 'message';
102
+ }
103
+ else if (field === 'data') {
104
+ dataLines.push(value);
105
+ }
106
+ }
107
+ const data = dataLines.join('\n');
108
+ if (data) {
109
+ try {
110
+ frame.data = JSON.parse(data);
111
+ }
112
+ catch (_a) {
113
+ frame.data = data;
114
+ }
115
+ }
116
+ return frame;
117
+ });
118
+ }
119
+ class CreativeWorkflowsApi extends ApiGroup_1.default {
120
+ constructor(config) {
121
+ super(config);
122
+ }
123
+ start(params_1) {
124
+ return __awaiter(this, arguments, void 0, function* (params, options = {}) {
125
+ var _a;
126
+ const body = {
127
+ kind: params.kind,
128
+ input: params.input
129
+ };
130
+ const tokenType = (_a = params.token_type) !== null && _a !== void 0 ? _a : params.tokenType;
131
+ if (tokenType) {
132
+ body.token_type = tokenType;
133
+ }
134
+ const response = yield this.request('/v1/creative-agent/workflows', {
135
+ method: 'POST',
136
+ headers: {
137
+ 'Content-Type': 'application/json'
138
+ },
139
+ body: JSON.stringify(body),
140
+ signal: options.signal
141
+ });
142
+ return parseEnvelope(response, 'workflow');
143
+ });
144
+ }
145
+ startImageToVideo(input, options = {}) {
146
+ return this.start({
147
+ kind: 'image_to_video',
148
+ input,
149
+ tokenType: options.tokenType
150
+ }, options);
151
+ }
152
+ startHostedToolSequence(input, options = {}) {
153
+ return this.start({
154
+ kind: 'hosted_tool_sequence',
155
+ input,
156
+ tokenType: options.tokenType
157
+ }, options);
158
+ }
159
+ list() {
160
+ return __awaiter(this, arguments, void 0, function* (options = {}) {
161
+ const response = yield this.request(`/v1/creative-agent/workflows${toQuery({
162
+ limit: options.limit,
163
+ offset: options.offset
164
+ })}`);
165
+ return parseEnvelope(response, 'workflows');
166
+ });
167
+ }
168
+ get(workflowId) {
169
+ return __awaiter(this, void 0, void 0, function* () {
170
+ const response = yield this.request(`/v1/creative-agent/workflows/${encodeURIComponent(workflowId)}`);
171
+ return parseEnvelope(response, 'workflow');
172
+ });
173
+ }
174
+ events(workflowId) {
175
+ return __awaiter(this, void 0, void 0, function* () {
176
+ const response = yield this.request(`/v1/creative-agent/workflows/${encodeURIComponent(workflowId)}/events`);
177
+ return parseEnvelope(response, 'events');
178
+ });
179
+ }
180
+ cancel(workflowId) {
181
+ return __awaiter(this, void 0, void 0, function* () {
182
+ const response = yield this.request(`/v1/creative-agent/workflows/${encodeURIComponent(workflowId)}/cancel`, {
183
+ method: 'POST'
184
+ });
185
+ return parseEnvelope(response, 'workflow');
186
+ });
187
+ }
188
+ streamEvents(workflowId_1) {
189
+ return __asyncGenerator(this, arguments, function* streamEvents_1(workflowId, options = {}) {
190
+ var _a, _b;
191
+ const after = (_a = options.after) !== null && _a !== void 0 ? _a : options.lastEventId;
192
+ const query = toQuery({ after });
193
+ const headers = {
194
+ Accept: 'text/event-stream'
195
+ };
196
+ if (options.lastEventId !== undefined) {
197
+ headers['Last-Event-ID'] = String(options.lastEventId);
198
+ }
199
+ const response = yield __await(this.fetch(`/v1/creative-agent/workflows/${encodeURIComponent(workflowId)}/events/stream${query}`, {
200
+ method: 'GET',
201
+ headers,
202
+ signal: options.signal
203
+ }));
204
+ if (!response.ok) {
205
+ throw yield __await(this.toApiError(response));
206
+ }
207
+ if (!response.body) {
208
+ return yield __await(void 0);
209
+ }
210
+ const reader = response.body.getReader();
211
+ const decoder = new TextDecoder();
212
+ let buffer = '';
213
+ try {
214
+ while (true) {
215
+ const { done, value } = yield __await(reader.read());
216
+ if (done)
217
+ break;
218
+ buffer += decoder.decode(value, { stream: true });
219
+ const parts = buffer.split(/\r?\n\r?\n/);
220
+ buffer = (_b = parts.pop()) !== null && _b !== void 0 ? _b : '';
221
+ for (const frame of parseCreativeWorkflowSseChunk(parts.join('\n\n'))) {
222
+ yield yield __await(frame);
223
+ const data = frame.data;
224
+ if (data && isTerminalWorkflowStatus(data.status)) {
225
+ yield __await(reader.cancel());
226
+ return yield __await(void 0);
227
+ }
228
+ }
229
+ }
230
+ buffer += decoder.decode();
231
+ for (const frame of parseCreativeWorkflowSseChunk(buffer)) {
232
+ yield yield __await(frame);
233
+ }
234
+ }
235
+ finally {
236
+ reader.releaseLock();
237
+ }
238
+ });
239
+ }
240
+ request(path_1) {
241
+ return __awaiter(this, arguments, void 0, function* (path, options = {}) {
242
+ const response = yield this.fetch(path, options);
243
+ if (!response.ok) {
244
+ throw yield this.toApiError(response);
245
+ }
246
+ return (yield response.json());
247
+ });
248
+ }
249
+ fetch(path_1) {
250
+ return __awaiter(this, arguments, void 0, function* (path, options = {}) {
251
+ const url = new URL(path, this.client.rest.baseUrl).toString();
252
+ const authenticated = yield this.client.auth.authenticateRequest(options);
253
+ return fetch(url, authenticated);
254
+ });
255
+ }
256
+ toApiError(response) {
257
+ return __awaiter(this, void 0, void 0, function* () {
258
+ var _a;
259
+ if (response.status === 401 && this.client.auth.isAuthenticated) {
260
+ this.client.auth.clear();
261
+ }
262
+ const body = parseJsonResponse(yield response.text());
263
+ const payload = body.status === 'error' ? body : ((_a = body.data) !== null && _a !== void 0 ? _a : body);
264
+ return new ApiClient_1.ApiError(response.status, {
265
+ status: 'error',
266
+ message: typeof payload.message === 'string' ? payload.message : response.statusText,
267
+ errorCode: typeof payload.errorCode === 'number' ? payload.errorCode : 0
268
+ });
269
+ });
270
+ }
271
+ }
272
+ exports.default = CreativeWorkflowsApi;
273
+ __exportStar(require("./types"), exports);
274
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/CreativeWorkflows/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { TokenType } from '../types/token';
2
+ export type CreativeWorkflowStatus = 'queued' | 'running' | 'completed' | 'failed' | 'cancelled' | string;
3
+ export type CreativeWorkflowKind = 'image_to_video' | 'hosted_tool_sequence' | string;
4
+ export type CreativeWorkflowHostedToolName = 'sogni_generate_image' | 'sogni_edit_image' | 'sogni_generate_video' | 'sogni_sound_to_video' | 'sogni_video_to_video' | 'sogni_generate_music';
5
+ export interface CreativeWorkflowArtifact {
6
+ id?: string;
7
+ url?: string;
8
+ type?: string;
9
+ mediaType?: string;
10
+ mimeType?: string;
11
+ width?: number;
12
+ height?: number;
13
+ duration?: number;
14
+ [key: string]: unknown;
15
+ }
16
+ export interface CreativeWorkflowEvent {
17
+ id?: string | number;
18
+ event?: string;
19
+ type?: string;
20
+ status?: CreativeWorkflowStatus;
21
+ message?: string;
22
+ timestamp?: number;
23
+ data?: unknown;
24
+ [key: string]: unknown;
25
+ }
26
+ export interface CreativeWorkflowRecord {
27
+ workflowId: string;
28
+ kind?: CreativeWorkflowKind;
29
+ title?: string;
30
+ status?: CreativeWorkflowStatus;
31
+ input?: Record<string, unknown>;
32
+ plan?: Record<string, unknown>;
33
+ steps?: unknown[];
34
+ events?: CreativeWorkflowEvent[];
35
+ artifacts?: CreativeWorkflowArtifact[];
36
+ billingPreview?: unknown;
37
+ billingPreviews?: unknown[];
38
+ createTime?: number;
39
+ updateTime?: number;
40
+ createdAt?: string;
41
+ updatedAt?: string;
42
+ error?: unknown;
43
+ [key: string]: unknown;
44
+ }
45
+ export interface StartImageToVideoWorkflowInput {
46
+ prompt: string;
47
+ videoPrompt?: string;
48
+ negativePrompt?: string;
49
+ width?: number;
50
+ height?: number;
51
+ duration?: number;
52
+ imageModel?: string;
53
+ videoModel?: string;
54
+ numberOfMedia?: number;
55
+ seed?: number;
56
+ [key: string]: unknown;
57
+ }
58
+ export interface StartHostedToolSequenceWorkflowDependency {
59
+ sourceStepId: string;
60
+ targetArgument: string;
61
+ transform: 'artifact_url' | 'artifact_data_uri';
62
+ sourceArtifactId?: string;
63
+ sourceArtifactIndex?: number;
64
+ mediaType?: 'image' | 'video' | 'audio';
65
+ required?: boolean;
66
+ }
67
+ export interface StartHostedToolSequenceWorkflowStep {
68
+ id?: string;
69
+ toolName: CreativeWorkflowHostedToolName;
70
+ arguments: Record<string, unknown>;
71
+ dependsOn?: StartHostedToolSequenceWorkflowDependency[];
72
+ }
73
+ export interface StartHostedToolSequenceWorkflowInput {
74
+ title?: string;
75
+ steps: StartHostedToolSequenceWorkflowStep[];
76
+ [key: string]: unknown;
77
+ }
78
+ export type StartCreativeWorkflowParams = {
79
+ kind: 'image_to_video';
80
+ input: StartImageToVideoWorkflowInput;
81
+ tokenType?: TokenType;
82
+ token_type?: TokenType;
83
+ } | {
84
+ kind: 'hosted_tool_sequence';
85
+ input: StartHostedToolSequenceWorkflowInput;
86
+ tokenType?: TokenType;
87
+ token_type?: TokenType;
88
+ };
89
+ export interface StartCreativeWorkflowOptions {
90
+ signal?: AbortSignal;
91
+ }
92
+ export interface ListCreativeWorkflowOptions {
93
+ limit?: number;
94
+ offset?: number;
95
+ }
96
+ export interface StreamCreativeWorkflowEventsOptions {
97
+ after?: string | number;
98
+ lastEventId?: string | number;
99
+ signal?: AbortSignal;
100
+ }
101
+ export interface CreativeWorkflowSseEvent {
102
+ id?: string;
103
+ event: string;
104
+ data: unknown;
105
+ raw: string;
106
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/CreativeWorkflows/types.ts"],"names":[],"mappings":""}
@@ -39,6 +39,11 @@ export interface JobData {
39
39
  positivePrompt?: string;
40
40
  negativePrompt?: string;
41
41
  jobIndex?: number;
42
+ /**
43
+ * Direct progress percentage from external API-backed workers. Values may be
44
+ * 0-1 or 0-100 depending on the upstream provider event.
45
+ */
46
+ externalProgress?: number;
42
47
  /**
43
48
  * Estimated time remaining in seconds (for long-running jobs like video generation).
44
49
  * Updated by ComfyUI workers during inference.
@@ -50,6 +55,7 @@ export interface JobData {
50
55
  * Updated by ComfyUI workers during inference.
51
56
  */
52
57
  eta?: Date;
58
+ etaStartedAt?: Date;
53
59
  }
54
60
  export interface JobEventMap extends EntityEvents {
55
61
  progress: number;
@@ -39,6 +39,34 @@ const JOB_STATUS_MAP = {
39
39
  jobCompleted: 'completed',
40
40
  jobError: 'failed'
41
41
  };
42
+ function clampProgress(value) {
43
+ return Math.max(0, Math.min(100, Math.round(value)));
44
+ }
45
+ function normalizeProgressPercent(value) {
46
+ if (typeof value !== 'number' || !Number.isFinite(value))
47
+ return undefined;
48
+ return clampProgress(value >= 0 && value <= 1 ? value * 100 : value);
49
+ }
50
+ function directResultUrlFromRawJob(rawJob) {
51
+ const legacy = rawJob;
52
+ return (rawJob.resultUrl ||
53
+ legacy.imageUrl ||
54
+ legacy.imageFile ||
55
+ legacy.videoUrl ||
56
+ legacy.videoFile ||
57
+ null);
58
+ }
59
+ function etaProgressPercent(startedAt, eta) {
60
+ if (!startedAt || !eta)
61
+ return undefined;
62
+ const totalMs = eta.getTime() - startedAt.getTime();
63
+ if (!Number.isFinite(totalMs) || totalMs <= 0)
64
+ return undefined;
65
+ const elapsedMs = Date.now() - startedAt.getTime();
66
+ if (!Number.isFinite(elapsedMs) || elapsedMs <= 0)
67
+ return 1;
68
+ return Math.max(1, Math.min(95, Math.round((elapsedMs / totalMs) * 100)));
69
+ }
42
70
  class Job extends DataEntity_1.default {
43
71
  static fromRaw(rawProject, rawJob, options) {
44
72
  return new Job({
@@ -49,7 +77,8 @@ class Job extends DataEntity_1.default {
49
77
  stepCount: rawProject.stepCount,
50
78
  workerName: rawJob.worker.name,
51
79
  seed: rawJob.seedUsed,
52
- isNSFW: rawJob.triggeredNSFWFilter
80
+ isNSFW: rawJob.triggeredNSFWFilter,
81
+ resultUrl: directResultUrlFromRawJob(rawJob)
53
82
  }, options);
54
83
  }
55
84
  constructor(data, options) {
@@ -80,7 +109,16 @@ class Job extends DataEntity_1.default {
80
109
  * Progress of the job in percentage (0-100).
81
110
  */
82
111
  get progress() {
83
- return Math.round((this.data.step / this.data.stepCount) * 100);
112
+ var _a;
113
+ if (this.status === 'completed')
114
+ return 100;
115
+ const externalProgress = normalizeProgressPercent(this.data.externalProgress);
116
+ if (externalProgress !== undefined)
117
+ return externalProgress;
118
+ if (this.data.stepCount > 0) {
119
+ return clampProgress((this.data.step / this.data.stepCount) * 100);
120
+ }
121
+ return (_a = etaProgressPercent(this.data.etaStartedAt, this.data.eta)) !== null && _a !== void 0 ? _a : 0;
84
122
  }
85
123
  /**
86
124
  * Current step of the job.
@@ -188,6 +226,9 @@ class Job extends DataEntity_1.default {
188
226
  */
189
227
  getResultUrl() {
190
228
  return __awaiter(this, void 0, void 0, function* () {
229
+ if (this.data.resultUrl) {
230
+ return this.data.resultUrl;
231
+ }
191
232
  if (this.data.status !== 'completed') {
192
233
  throw new Error('Job is not completed yet');
193
234
  }
@@ -241,16 +282,24 @@ class Job extends DataEntity_1.default {
241
282
  */
242
283
  _syncWithRestData(data) {
243
284
  return __awaiter(this, void 0, void 0, function* () {
285
+ var _a;
286
+ const directResultUrl = directResultUrlFromRawJob(data);
244
287
  const delta = {
245
288
  step: data.performedSteps,
246
- workerName: data.worker.name,
289
+ workerName: (_a = data.worker) === null || _a === void 0 ? void 0 : _a.name,
247
290
  seed: data.seedUsed,
248
291
  isNSFW: data.triggeredNSFWFilter
249
292
  };
250
293
  if (JOB_STATUS_MAP[data.status]) {
251
294
  delta.status = JOB_STATUS_MAP[data.status];
252
295
  }
253
- if (!this.data.resultUrl && delta.status === 'completed' && !data.triggeredNSFWFilter) {
296
+ if (!this.data.resultUrl && directResultUrl) {
297
+ delta.resultUrl = directResultUrl;
298
+ }
299
+ if (!this.data.resultUrl &&
300
+ !delta.resultUrl &&
301
+ delta.status === 'completed' &&
302
+ !data.triggeredNSFWFilter) {
254
303
  try {
255
304
  if (this.type === 'video' || this.type === 'audio') {
256
305
  delta.resultUrl = yield this._api.mediaDownloadUrl(Object.assign({ jobId: this.projectId, id: this.id, type: 'complete' }, (this.type === 'audio' ? { contentType: this._audioContentType } : {})));
@@ -276,12 +325,18 @@ class Job extends DataEntity_1.default {
276
325
  // Keeping etaSeconds for backwards compatibility
277
326
  if (delta.eta) {
278
327
  delta.etaSeconds = Math.round((delta.eta.getTime() - Date.now()) / 1000);
328
+ if (!this.data.etaStartedAt && !delta.etaStartedAt) {
329
+ delta.etaStartedAt = new Date();
330
+ }
279
331
  }
280
332
  }
281
333
  super._update(delta);
282
334
  }
283
335
  handleUpdated(keys) {
284
- if (keys.includes('step') || keys.includes('stepCount')) {
336
+ if (keys.includes('step') ||
337
+ keys.includes('stepCount') ||
338
+ keys.includes('externalProgress') ||
339
+ keys.includes('eta')) {
285
340
  this.emit('progress', this.progress);
286
341
  }
287
342
  if (keys.includes('status') && this.status === 'completed') {
@@ -1 +1 @@
1
- {"version":3,"file":"Job.js","sourceRoot":"","sources":["../../src/Projects/Job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Job.js","sourceRoot":"","sources":["../../src/Projects/Job.ts"],"names":[],"mappings":"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"}
@@ -77,11 +77,19 @@ class Project extends DataEntity_1.default {
77
77
  */
78
78
  get progress() {
79
79
  var _a;
80
+ if (this.status === 'completed')
81
+ return 100;
80
82
  // Worker can reduce the number of steps in the job, so we need to calculate the progress based on the actual number of steps
81
- const stepsPerJob = this.jobs.length ? this.jobs[0].stepCount : ((_a = this.data.params.steps) !== null && _a !== void 0 ? _a : 0);
82
- const jobCount = this.data.params.numberOfMedia;
83
+ const jobCount = Math.max(1, this.data.params.numberOfMedia);
84
+ if (this._jobs.length) {
85
+ const progressTotal = this._jobs.reduce((acc, job) => acc + job.progress, 0);
86
+ return Math.max(0, Math.min(100, Math.round(progressTotal / jobCount)));
87
+ }
88
+ const stepsPerJob = (_a = this.data.params.steps) !== null && _a !== void 0 ? _a : 0;
89
+ if (stepsPerJob <= 0)
90
+ return 0;
83
91
  const stepsDone = this._jobs.reduce((acc, job) => acc + job.step, 0);
84
- return Math.round((stepsDone / ((stepsPerJob !== null && stepsPerJob !== void 0 ? stepsPerJob : 1) * jobCount)) * 100);
92
+ return Math.max(0, Math.min(100, Math.round((stepsDone / (stepsPerJob * jobCount)) * 100)));
85
93
  }
86
94
  get queuePosition() {
87
95
  return this.data.queuePosition;
@@ -207,6 +215,10 @@ class Project extends DataEntity_1.default {
207
215
  this._failedSyncAttempts++;
208
216
  if (this._failedSyncAttempts >= MAX_FAILED_SYNC_ATTEMPTS) {
209
217
  this._logger.error(`Failed to sync project data after ${MAX_FAILED_SYNC_ATTEMPTS} attempts. Stopping further attempts.`);
218
+ this._api._notifyProjectTimedOut(this.id).catch((cancelError) => {
219
+ this._logger.error(`Failed to notify socket server that project ${this.id} timed out`);
220
+ this._logger.error(cancelError);
221
+ });
210
222
  clearInterval(this._timeout);
211
223
  this._timeout = null;
212
224
  this.jobs.forEach((job) => {