@convilyn/sdk 0.2.0 → 0.4.0
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/CHANGELOG.md +66 -0
- package/LICENSE +201 -201
- package/README.md +1 -1
- package/dist/{chunk-UJHZKIP6.js → chunk-Z5IPYRO3.js} +206 -23
- package/dist/chunk-Z5IPYRO3.js.map +1 -0
- package/dist/cli.cjs +200 -20
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.cjs +204 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +144 -3
- package/dist/index.d.ts +144 -3
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-UJHZKIP6.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -22,10 +22,29 @@
|
|
|
22
22
|
* `code` / `statusCode` fields for typed handling.
|
|
23
23
|
*/
|
|
24
24
|
type ErrorDetails = Record<string, unknown>;
|
|
25
|
+
/**
|
|
26
|
+
* Well-known brand for {@link ConvilynError}. `Symbol.for` resolves to the
|
|
27
|
+
* *same* symbol from the global registry regardless of which module instance
|
|
28
|
+
* (ESM vs. CJS) created it, so {@link isConvilynError} stays reliable even
|
|
29
|
+
* when a process ends up loading both entry points of this package (a classic
|
|
30
|
+
* Node.js dual-package hazard where `instanceof` across the two module graphs
|
|
31
|
+
* can false-negative). Prefer the guard function over `instanceof` unless you
|
|
32
|
+
* can guarantee a single module graph.
|
|
33
|
+
*/
|
|
34
|
+
declare const CONVILYN_ERROR_BRAND: unique symbol;
|
|
25
35
|
/** Base class for every error this SDK throws. */
|
|
26
36
|
declare class ConvilynError extends Error {
|
|
37
|
+
/** @internal brand marker — see {@link isConvilynError} */
|
|
38
|
+
readonly [CONVILYN_ERROR_BRAND] = true;
|
|
27
39
|
constructor(message: string);
|
|
28
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Reliable `err instanceof ConvilynError` replacement across module graphs.
|
|
43
|
+
* Use this (not `instanceof`) when the error may have crossed an ESM/CJS
|
|
44
|
+
* boundary — e.g. a dependency `require()`s this package while your own code
|
|
45
|
+
* `import`s it.
|
|
46
|
+
*/
|
|
47
|
+
declare function isConvilynError(err: unknown): err is ConvilynError;
|
|
29
48
|
/** Authentication / authorization failed before any HTTP call. */
|
|
30
49
|
declare class AuthError extends ConvilynError {
|
|
31
50
|
constructor(message: string);
|
|
@@ -123,10 +142,17 @@ declare class GoalJobTimeoutError extends ConvilynError {
|
|
|
123
142
|
readonly jobSpecId: string;
|
|
124
143
|
readonly elapsed: number;
|
|
125
144
|
readonly timeout: number;
|
|
145
|
+
/**
|
|
146
|
+
* `'total'` — the overall `timeout` budget lapsed; `'idle'` —
|
|
147
|
+
* `idleTimeout` lapsed with no status/progress change (the job may still
|
|
148
|
+
* be healthy on a long phase; `retrieve()` before assuming failure).
|
|
149
|
+
*/
|
|
150
|
+
readonly reason: 'total' | 'idle';
|
|
126
151
|
constructor(opts: {
|
|
127
152
|
jobSpecId: string;
|
|
128
153
|
elapsed: number;
|
|
129
154
|
timeout: number;
|
|
155
|
+
reason?: 'total' | 'idle';
|
|
130
156
|
});
|
|
131
157
|
}
|
|
132
158
|
/** Raised when the goal event stream cannot proceed. */
|
|
@@ -234,6 +260,35 @@ interface GoalJob {
|
|
|
234
260
|
declare function isGoalJobTerminal(job: Pick<GoalJob, 'status'>): boolean;
|
|
235
261
|
/** True when the agent is blocked waiting on the user (`slots_pending`). */
|
|
236
262
|
declare function goalJobNeedsInput(job: Pick<GoalJob, 'status'>): boolean;
|
|
263
|
+
/**
|
|
264
|
+
* One output artifact produced by a goal (agentic) job. `downloadUrl` is a
|
|
265
|
+
* presigned storage URL valid for one hour from issuance — re-call
|
|
266
|
+
* `goals.artifacts()` (or `goals.downloadArtifactUrl()`) for a fresh one
|
|
267
|
+
* instead of persisting it.
|
|
268
|
+
*/
|
|
269
|
+
interface Artifact {
|
|
270
|
+
readonly artifactId: string;
|
|
271
|
+
readonly fileName: string;
|
|
272
|
+
readonly mimeType: string;
|
|
273
|
+
readonly sizeBytes: number;
|
|
274
|
+
readonly downloadUrl: string | null;
|
|
275
|
+
readonly artifactType: string | null;
|
|
276
|
+
readonly platform: string | null;
|
|
277
|
+
readonly metadata: Record<string, unknown> | null;
|
|
278
|
+
readonly isPrimary: boolean;
|
|
279
|
+
readonly description: string;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* A freshly minted presigned download URL for a single artifact. `expiresAt`
|
|
283
|
+
* marks the end of the URL's 1-hour validity window.
|
|
284
|
+
*/
|
|
285
|
+
interface ArtifactDownload {
|
|
286
|
+
readonly downloadUrl: string;
|
|
287
|
+
readonly fileName: string;
|
|
288
|
+
readonly sizeBytes: number;
|
|
289
|
+
readonly mimeType: string;
|
|
290
|
+
readonly expiresAt: Date;
|
|
291
|
+
}
|
|
237
292
|
/** Discriminator for a server-sent event in a goal execution stream. */
|
|
238
293
|
type GoalEventType = 'tool_started' | 'tool_finished' | 'agent_step_started' | 'agent_step_finished' | 'orchestration_transition' | 'status' | 'progress' | 'completed' | 'failed' | 'slot_needed' | 'keepalive' | 'agent_text' | 'agent_text_done';
|
|
239
294
|
/** The known event `type` values (forward-compat: pre-listed so the SDK need
|
|
@@ -297,6 +352,33 @@ interface WorkflowSearchPage {
|
|
|
297
352
|
readonly items: WorkflowSummary[];
|
|
298
353
|
readonly cursor: string | null;
|
|
299
354
|
}
|
|
355
|
+
/**
|
|
356
|
+
* One built-in AI workflow from the platform catalog — distinct from
|
|
357
|
+
* the user-published community listing. Pass `workflowId` as
|
|
358
|
+
* `goals.start({ workflowId })` to run it directly.
|
|
359
|
+
*
|
|
360
|
+
* `tier` names the subscription tier the workflow is designed for (`null` =
|
|
361
|
+
* free); `freeTierAllowed` is a tri-state gate hint — only an explicit `false`
|
|
362
|
+
* means a Free-tier run is blocked.
|
|
363
|
+
*/
|
|
364
|
+
interface CatalogWorkflow {
|
|
365
|
+
readonly workflowId: string;
|
|
366
|
+
readonly name: string;
|
|
367
|
+
readonly description: string;
|
|
368
|
+
readonly icon: string | null;
|
|
369
|
+
readonly supportedInputTypes: string[];
|
|
370
|
+
readonly supportedInputFormats: string[] | null;
|
|
371
|
+
readonly category: string;
|
|
372
|
+
readonly requiredSlotCount: number;
|
|
373
|
+
readonly subcategory: string | null;
|
|
374
|
+
readonly skuGroup: string | null;
|
|
375
|
+
readonly status: string;
|
|
376
|
+
readonly supportedLocales: string[] | null;
|
|
377
|
+
readonly maxInputSizeBytes: number | null;
|
|
378
|
+
readonly minFileCount: number | null;
|
|
379
|
+
readonly tier: string | null;
|
|
380
|
+
readonly freeTierAllowed: boolean | null;
|
|
381
|
+
}
|
|
300
382
|
/** Result of `workflows.like` — toggle state + fresh count. */
|
|
301
383
|
interface LikeResponse {
|
|
302
384
|
readonly liked: boolean;
|
|
@@ -680,6 +762,17 @@ declare class Files {
|
|
|
680
762
|
* `path` (Node) or `content` (bytes/string).
|
|
681
763
|
*/
|
|
682
764
|
upload(options: UploadOptions): Promise<File>;
|
|
765
|
+
/**
|
|
766
|
+
* Delete an uploaded file's cloud copy (storage object + metadata record).
|
|
767
|
+
*
|
|
768
|
+
* Only the uploader can delete; a missing or unowned `fileId` surfaces as
|
|
769
|
+
* a 404 `APIError` and a file attached to a still-running job as a 409
|
|
770
|
+
* (`FILE_IN_USE`). The platform deletes input files automatically ~1 hour
|
|
771
|
+
* after upload anyway — call this when you want the cloud copy gone
|
|
772
|
+
* deterministically the moment your workflow is done (e.g. privacy-
|
|
773
|
+
* sensitive documents on an edge device). Port of Python `files.delete`.
|
|
774
|
+
*/
|
|
775
|
+
delete(fileId: string): Promise<void>;
|
|
683
776
|
}
|
|
684
777
|
|
|
685
778
|
/**
|
|
@@ -714,6 +807,14 @@ interface StartGoalOptions {
|
|
|
714
807
|
interface GoalWaitOptions {
|
|
715
808
|
timeout?: number;
|
|
716
809
|
pollInterval?: number;
|
|
810
|
+
/**
|
|
811
|
+
* Seconds tolerated WITHOUT any status or progress change before the wait
|
|
812
|
+
* gives up with `reason: 'idle'`. An agentic run's analyze/execute phases
|
|
813
|
+
* can legitimately take many minutes, so raise `timeout` to your hard
|
|
814
|
+
* deadline and bound stalls with this instead — a job that keeps advancing
|
|
815
|
+
* holds the loop open. Omitted = disabled (total `timeout` only).
|
|
816
|
+
*/
|
|
817
|
+
idleTimeout?: number;
|
|
717
818
|
}
|
|
718
819
|
/** Constructor options + test seams for {@link Goals}. */
|
|
719
820
|
interface GoalsResourceOptions {
|
|
@@ -748,7 +849,15 @@ declare class Goals {
|
|
|
748
849
|
fillSlots(jobSpecId: string, answers: Record<string, unknown>, options?: {
|
|
749
850
|
expectedVersion?: number;
|
|
750
851
|
}): Promise<GoalJob>;
|
|
751
|
-
/**
|
|
852
|
+
/**
|
|
853
|
+
* Confirm a slots-filled job, queueing it for execution.
|
|
854
|
+
*
|
|
855
|
+
* `expectedVersion` is optional — the server re-reads the current version
|
|
856
|
+
* at submit time regardless, so most callers should simply omit it. The
|
|
857
|
+
* request always carries a JSON object (`{}` when empty): older backend
|
|
858
|
+
* builds declare the confirm body as a required parameter and reject a
|
|
859
|
+
* body-less POST with 422 before the handler runs.
|
|
860
|
+
*/
|
|
752
861
|
confirm(jobSpecId: string, options?: {
|
|
753
862
|
expectedVersion?: number;
|
|
754
863
|
}): Promise<GoalJob>;
|
|
@@ -759,6 +868,29 @@ declare class Goals {
|
|
|
759
868
|
rerunMode?: 'retry_same_thread' | 'fresh_rerun';
|
|
760
869
|
reason?: string;
|
|
761
870
|
}): Promise<GoalJob>;
|
|
871
|
+
/**
|
|
872
|
+
* List a completed job's output artifacts with fresh download URLs.
|
|
873
|
+
*
|
|
874
|
+
* Available once the job is terminal-successful (`completed` or `partial`);
|
|
875
|
+
* any other status surfaces the backend's 400 as an `APIError`. Each
|
|
876
|
+
* artifact's `downloadUrl` is presigned and valid for one hour — re-call
|
|
877
|
+
* this method for fresh URLs rather than persisting one.
|
|
878
|
+
*/
|
|
879
|
+
artifacts(jobSpecId: string): Promise<Artifact[]>;
|
|
880
|
+
/**
|
|
881
|
+
* Mint a fresh presigned download URL for one artifact. Prefer this over
|
|
882
|
+
* reusing a stale {@link Artifact.downloadUrl} when more than an hour may
|
|
883
|
+
* have passed since {@link artifacts}.
|
|
884
|
+
*/
|
|
885
|
+
downloadArtifactUrl(jobSpecId: string, artifactId: string): Promise<ArtifactDownload>;
|
|
886
|
+
/**
|
|
887
|
+
* Download one artifact to `to` (Node) and return that path. Mints a fresh
|
|
888
|
+
* presigned URL first, then streams the body to disk (shares the size-cap
|
|
889
|
+
* and symlink-refusal contract with `convert.downloadTo`).
|
|
890
|
+
*/
|
|
891
|
+
downloadArtifactTo(jobSpecId: string, artifactId: string, { to }: {
|
|
892
|
+
to: string;
|
|
893
|
+
}): Promise<string>;
|
|
762
894
|
/**
|
|
763
895
|
* Stream goal execution events for a job. Opens a WebSocket, subscribes,
|
|
764
896
|
* then yields each {@link GoalEvent} in order; the iterator ends (and the
|
|
@@ -819,6 +951,15 @@ interface PatchWorkflowOptions {
|
|
|
819
951
|
declare class Workflows {
|
|
820
952
|
#private;
|
|
821
953
|
constructor(http: HttpClient);
|
|
954
|
+
/**
|
|
955
|
+
* List the platform's built-in AI-workflow catalog.
|
|
956
|
+
*
|
|
957
|
+
* Distinct from {@link search}, which browses the user-published community
|
|
958
|
+
* marketplace — the catalog is the curated set of built-in workflows
|
|
959
|
+
* runnable directly via `goals.start({ workflowId })`. Anonymous callers
|
|
960
|
+
* are allowed; deprecated entries are filtered out server-side.
|
|
961
|
+
*/
|
|
962
|
+
catalog(): Promise<CatalogWorkflow[]>;
|
|
822
963
|
/** Browse the public community listing (one page + a `cursor`). */
|
|
823
964
|
search(options?: WorkflowSearchOptions): Promise<WorkflowSearchPage>;
|
|
824
965
|
/** Fetch a single workflow by id. */
|
|
@@ -888,6 +1029,6 @@ declare class Convilyn {
|
|
|
888
1029
|
* Single source of truth for the package version. Kept in lockstep with
|
|
889
1030
|
* package.json + CHANGELOG.md (guarded by test/packaging/version-changelog.test.ts).
|
|
890
1031
|
*/
|
|
891
|
-
declare const VERSION = "0.
|
|
1032
|
+
declare const VERSION = "0.4.0";
|
|
892
1033
|
|
|
893
|
-
export { APIError, AuthError, AutoThrottleConfig, CONVERT_JOB_TERMINAL_STATUSES, type ConvertJob, Convilyn, ConvilynError, type ConvilynOptions, type CostEstimate, type CreateConvertOptions, type ErrorDetails, ExponentialBackoffRetry, type File, type ForkWorkflowOptions, GOAL_EVENT_TERMINAL_TYPES, GOAL_EVENT_TYPES, GOAL_JOB_TERMINAL_STATUSES, type GetQuotaOptions, type GoalEvent, type GoalEventType, type GoalJob, GoalJobFailedError, type GoalJobStatus, GoalJobTimeoutError, type GoalWaitOptions, type JobError, JobFailedError, type JobStatus, JobTimeoutError, type LikeResponse, NoRetry, type PatchWorkflowOptions, type PendingSlot, type Plan, PlanRequiredError, type PlanTier, type QuotaCheck, QuotaExceededError, type QuotaState, RateLimitError, type ResultFile, RetryExhaustedError, type RetryPolicy, S3UploadError, type StartGoalOptions, type ToolCostEstimate, type UploadOptions, type UsageHistoryEntry, VERSION, type WSTransport, type WaitOptions, WebSocketError, type Workflow, type WorkflowSearchOptions, type WorkflowSearchPage, type WorkflowSortMode, type WorkflowStats, type WorkflowSummary, type WorkflowVisibility, goalJobNeedsInput, isConvertJobTerminal, isGoalEventTerminal, isGoalEventType, isGoalJobTerminal };
|
|
1034
|
+
export { APIError, type Artifact, type ArtifactDownload, AuthError, AutoThrottleConfig, CONVERT_JOB_TERMINAL_STATUSES, type CatalogWorkflow, type ConvertJob, Convilyn, ConvilynError, type ConvilynOptions, type CostEstimate, type CreateConvertOptions, type ErrorDetails, ExponentialBackoffRetry, type File, type ForkWorkflowOptions, GOAL_EVENT_TERMINAL_TYPES, GOAL_EVENT_TYPES, GOAL_JOB_TERMINAL_STATUSES, type GetQuotaOptions, type GoalEvent, type GoalEventType, type GoalJob, GoalJobFailedError, type GoalJobStatus, GoalJobTimeoutError, type GoalWaitOptions, type JobError, JobFailedError, type JobStatus, JobTimeoutError, type LikeResponse, NoRetry, type PatchWorkflowOptions, type PendingSlot, type Plan, PlanRequiredError, type PlanTier, type QuotaCheck, QuotaExceededError, type QuotaState, RateLimitError, type ResultFile, RetryExhaustedError, type RetryPolicy, S3UploadError, type StartGoalOptions, type ToolCostEstimate, type UploadOptions, type UsageHistoryEntry, VERSION, type WSTransport, type WaitOptions, WebSocketError, type Workflow, type WorkflowSearchOptions, type WorkflowSearchPage, type WorkflowSortMode, type WorkflowStats, type WorkflowSummary, type WorkflowVisibility, goalJobNeedsInput, isConvertJobTerminal, isConvilynError, isGoalEventTerminal, isGoalEventType, isGoalJobTerminal };
|
package/dist/index.d.ts
CHANGED
|
@@ -22,10 +22,29 @@
|
|
|
22
22
|
* `code` / `statusCode` fields for typed handling.
|
|
23
23
|
*/
|
|
24
24
|
type ErrorDetails = Record<string, unknown>;
|
|
25
|
+
/**
|
|
26
|
+
* Well-known brand for {@link ConvilynError}. `Symbol.for` resolves to the
|
|
27
|
+
* *same* symbol from the global registry regardless of which module instance
|
|
28
|
+
* (ESM vs. CJS) created it, so {@link isConvilynError} stays reliable even
|
|
29
|
+
* when a process ends up loading both entry points of this package (a classic
|
|
30
|
+
* Node.js dual-package hazard where `instanceof` across the two module graphs
|
|
31
|
+
* can false-negative). Prefer the guard function over `instanceof` unless you
|
|
32
|
+
* can guarantee a single module graph.
|
|
33
|
+
*/
|
|
34
|
+
declare const CONVILYN_ERROR_BRAND: unique symbol;
|
|
25
35
|
/** Base class for every error this SDK throws. */
|
|
26
36
|
declare class ConvilynError extends Error {
|
|
37
|
+
/** @internal brand marker — see {@link isConvilynError} */
|
|
38
|
+
readonly [CONVILYN_ERROR_BRAND] = true;
|
|
27
39
|
constructor(message: string);
|
|
28
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Reliable `err instanceof ConvilynError` replacement across module graphs.
|
|
43
|
+
* Use this (not `instanceof`) when the error may have crossed an ESM/CJS
|
|
44
|
+
* boundary — e.g. a dependency `require()`s this package while your own code
|
|
45
|
+
* `import`s it.
|
|
46
|
+
*/
|
|
47
|
+
declare function isConvilynError(err: unknown): err is ConvilynError;
|
|
29
48
|
/** Authentication / authorization failed before any HTTP call. */
|
|
30
49
|
declare class AuthError extends ConvilynError {
|
|
31
50
|
constructor(message: string);
|
|
@@ -123,10 +142,17 @@ declare class GoalJobTimeoutError extends ConvilynError {
|
|
|
123
142
|
readonly jobSpecId: string;
|
|
124
143
|
readonly elapsed: number;
|
|
125
144
|
readonly timeout: number;
|
|
145
|
+
/**
|
|
146
|
+
* `'total'` — the overall `timeout` budget lapsed; `'idle'` —
|
|
147
|
+
* `idleTimeout` lapsed with no status/progress change (the job may still
|
|
148
|
+
* be healthy on a long phase; `retrieve()` before assuming failure).
|
|
149
|
+
*/
|
|
150
|
+
readonly reason: 'total' | 'idle';
|
|
126
151
|
constructor(opts: {
|
|
127
152
|
jobSpecId: string;
|
|
128
153
|
elapsed: number;
|
|
129
154
|
timeout: number;
|
|
155
|
+
reason?: 'total' | 'idle';
|
|
130
156
|
});
|
|
131
157
|
}
|
|
132
158
|
/** Raised when the goal event stream cannot proceed. */
|
|
@@ -234,6 +260,35 @@ interface GoalJob {
|
|
|
234
260
|
declare function isGoalJobTerminal(job: Pick<GoalJob, 'status'>): boolean;
|
|
235
261
|
/** True when the agent is blocked waiting on the user (`slots_pending`). */
|
|
236
262
|
declare function goalJobNeedsInput(job: Pick<GoalJob, 'status'>): boolean;
|
|
263
|
+
/**
|
|
264
|
+
* One output artifact produced by a goal (agentic) job. `downloadUrl` is a
|
|
265
|
+
* presigned storage URL valid for one hour from issuance — re-call
|
|
266
|
+
* `goals.artifacts()` (or `goals.downloadArtifactUrl()`) for a fresh one
|
|
267
|
+
* instead of persisting it.
|
|
268
|
+
*/
|
|
269
|
+
interface Artifact {
|
|
270
|
+
readonly artifactId: string;
|
|
271
|
+
readonly fileName: string;
|
|
272
|
+
readonly mimeType: string;
|
|
273
|
+
readonly sizeBytes: number;
|
|
274
|
+
readonly downloadUrl: string | null;
|
|
275
|
+
readonly artifactType: string | null;
|
|
276
|
+
readonly platform: string | null;
|
|
277
|
+
readonly metadata: Record<string, unknown> | null;
|
|
278
|
+
readonly isPrimary: boolean;
|
|
279
|
+
readonly description: string;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* A freshly minted presigned download URL for a single artifact. `expiresAt`
|
|
283
|
+
* marks the end of the URL's 1-hour validity window.
|
|
284
|
+
*/
|
|
285
|
+
interface ArtifactDownload {
|
|
286
|
+
readonly downloadUrl: string;
|
|
287
|
+
readonly fileName: string;
|
|
288
|
+
readonly sizeBytes: number;
|
|
289
|
+
readonly mimeType: string;
|
|
290
|
+
readonly expiresAt: Date;
|
|
291
|
+
}
|
|
237
292
|
/** Discriminator for a server-sent event in a goal execution stream. */
|
|
238
293
|
type GoalEventType = 'tool_started' | 'tool_finished' | 'agent_step_started' | 'agent_step_finished' | 'orchestration_transition' | 'status' | 'progress' | 'completed' | 'failed' | 'slot_needed' | 'keepalive' | 'agent_text' | 'agent_text_done';
|
|
239
294
|
/** The known event `type` values (forward-compat: pre-listed so the SDK need
|
|
@@ -297,6 +352,33 @@ interface WorkflowSearchPage {
|
|
|
297
352
|
readonly items: WorkflowSummary[];
|
|
298
353
|
readonly cursor: string | null;
|
|
299
354
|
}
|
|
355
|
+
/**
|
|
356
|
+
* One built-in AI workflow from the platform catalog — distinct from
|
|
357
|
+
* the user-published community listing. Pass `workflowId` as
|
|
358
|
+
* `goals.start({ workflowId })` to run it directly.
|
|
359
|
+
*
|
|
360
|
+
* `tier` names the subscription tier the workflow is designed for (`null` =
|
|
361
|
+
* free); `freeTierAllowed` is a tri-state gate hint — only an explicit `false`
|
|
362
|
+
* means a Free-tier run is blocked.
|
|
363
|
+
*/
|
|
364
|
+
interface CatalogWorkflow {
|
|
365
|
+
readonly workflowId: string;
|
|
366
|
+
readonly name: string;
|
|
367
|
+
readonly description: string;
|
|
368
|
+
readonly icon: string | null;
|
|
369
|
+
readonly supportedInputTypes: string[];
|
|
370
|
+
readonly supportedInputFormats: string[] | null;
|
|
371
|
+
readonly category: string;
|
|
372
|
+
readonly requiredSlotCount: number;
|
|
373
|
+
readonly subcategory: string | null;
|
|
374
|
+
readonly skuGroup: string | null;
|
|
375
|
+
readonly status: string;
|
|
376
|
+
readonly supportedLocales: string[] | null;
|
|
377
|
+
readonly maxInputSizeBytes: number | null;
|
|
378
|
+
readonly minFileCount: number | null;
|
|
379
|
+
readonly tier: string | null;
|
|
380
|
+
readonly freeTierAllowed: boolean | null;
|
|
381
|
+
}
|
|
300
382
|
/** Result of `workflows.like` — toggle state + fresh count. */
|
|
301
383
|
interface LikeResponse {
|
|
302
384
|
readonly liked: boolean;
|
|
@@ -680,6 +762,17 @@ declare class Files {
|
|
|
680
762
|
* `path` (Node) or `content` (bytes/string).
|
|
681
763
|
*/
|
|
682
764
|
upload(options: UploadOptions): Promise<File>;
|
|
765
|
+
/**
|
|
766
|
+
* Delete an uploaded file's cloud copy (storage object + metadata record).
|
|
767
|
+
*
|
|
768
|
+
* Only the uploader can delete; a missing or unowned `fileId` surfaces as
|
|
769
|
+
* a 404 `APIError` and a file attached to a still-running job as a 409
|
|
770
|
+
* (`FILE_IN_USE`). The platform deletes input files automatically ~1 hour
|
|
771
|
+
* after upload anyway — call this when you want the cloud copy gone
|
|
772
|
+
* deterministically the moment your workflow is done (e.g. privacy-
|
|
773
|
+
* sensitive documents on an edge device). Port of Python `files.delete`.
|
|
774
|
+
*/
|
|
775
|
+
delete(fileId: string): Promise<void>;
|
|
683
776
|
}
|
|
684
777
|
|
|
685
778
|
/**
|
|
@@ -714,6 +807,14 @@ interface StartGoalOptions {
|
|
|
714
807
|
interface GoalWaitOptions {
|
|
715
808
|
timeout?: number;
|
|
716
809
|
pollInterval?: number;
|
|
810
|
+
/**
|
|
811
|
+
* Seconds tolerated WITHOUT any status or progress change before the wait
|
|
812
|
+
* gives up with `reason: 'idle'`. An agentic run's analyze/execute phases
|
|
813
|
+
* can legitimately take many minutes, so raise `timeout` to your hard
|
|
814
|
+
* deadline and bound stalls with this instead — a job that keeps advancing
|
|
815
|
+
* holds the loop open. Omitted = disabled (total `timeout` only).
|
|
816
|
+
*/
|
|
817
|
+
idleTimeout?: number;
|
|
717
818
|
}
|
|
718
819
|
/** Constructor options + test seams for {@link Goals}. */
|
|
719
820
|
interface GoalsResourceOptions {
|
|
@@ -748,7 +849,15 @@ declare class Goals {
|
|
|
748
849
|
fillSlots(jobSpecId: string, answers: Record<string, unknown>, options?: {
|
|
749
850
|
expectedVersion?: number;
|
|
750
851
|
}): Promise<GoalJob>;
|
|
751
|
-
/**
|
|
852
|
+
/**
|
|
853
|
+
* Confirm a slots-filled job, queueing it for execution.
|
|
854
|
+
*
|
|
855
|
+
* `expectedVersion` is optional — the server re-reads the current version
|
|
856
|
+
* at submit time regardless, so most callers should simply omit it. The
|
|
857
|
+
* request always carries a JSON object (`{}` when empty): older backend
|
|
858
|
+
* builds declare the confirm body as a required parameter and reject a
|
|
859
|
+
* body-less POST with 422 before the handler runs.
|
|
860
|
+
*/
|
|
752
861
|
confirm(jobSpecId: string, options?: {
|
|
753
862
|
expectedVersion?: number;
|
|
754
863
|
}): Promise<GoalJob>;
|
|
@@ -759,6 +868,29 @@ declare class Goals {
|
|
|
759
868
|
rerunMode?: 'retry_same_thread' | 'fresh_rerun';
|
|
760
869
|
reason?: string;
|
|
761
870
|
}): Promise<GoalJob>;
|
|
871
|
+
/**
|
|
872
|
+
* List a completed job's output artifacts with fresh download URLs.
|
|
873
|
+
*
|
|
874
|
+
* Available once the job is terminal-successful (`completed` or `partial`);
|
|
875
|
+
* any other status surfaces the backend's 400 as an `APIError`. Each
|
|
876
|
+
* artifact's `downloadUrl` is presigned and valid for one hour — re-call
|
|
877
|
+
* this method for fresh URLs rather than persisting one.
|
|
878
|
+
*/
|
|
879
|
+
artifacts(jobSpecId: string): Promise<Artifact[]>;
|
|
880
|
+
/**
|
|
881
|
+
* Mint a fresh presigned download URL for one artifact. Prefer this over
|
|
882
|
+
* reusing a stale {@link Artifact.downloadUrl} when more than an hour may
|
|
883
|
+
* have passed since {@link artifacts}.
|
|
884
|
+
*/
|
|
885
|
+
downloadArtifactUrl(jobSpecId: string, artifactId: string): Promise<ArtifactDownload>;
|
|
886
|
+
/**
|
|
887
|
+
* Download one artifact to `to` (Node) and return that path. Mints a fresh
|
|
888
|
+
* presigned URL first, then streams the body to disk (shares the size-cap
|
|
889
|
+
* and symlink-refusal contract with `convert.downloadTo`).
|
|
890
|
+
*/
|
|
891
|
+
downloadArtifactTo(jobSpecId: string, artifactId: string, { to }: {
|
|
892
|
+
to: string;
|
|
893
|
+
}): Promise<string>;
|
|
762
894
|
/**
|
|
763
895
|
* Stream goal execution events for a job. Opens a WebSocket, subscribes,
|
|
764
896
|
* then yields each {@link GoalEvent} in order; the iterator ends (and the
|
|
@@ -819,6 +951,15 @@ interface PatchWorkflowOptions {
|
|
|
819
951
|
declare class Workflows {
|
|
820
952
|
#private;
|
|
821
953
|
constructor(http: HttpClient);
|
|
954
|
+
/**
|
|
955
|
+
* List the platform's built-in AI-workflow catalog.
|
|
956
|
+
*
|
|
957
|
+
* Distinct from {@link search}, which browses the user-published community
|
|
958
|
+
* marketplace — the catalog is the curated set of built-in workflows
|
|
959
|
+
* runnable directly via `goals.start({ workflowId })`. Anonymous callers
|
|
960
|
+
* are allowed; deprecated entries are filtered out server-side.
|
|
961
|
+
*/
|
|
962
|
+
catalog(): Promise<CatalogWorkflow[]>;
|
|
822
963
|
/** Browse the public community listing (one page + a `cursor`). */
|
|
823
964
|
search(options?: WorkflowSearchOptions): Promise<WorkflowSearchPage>;
|
|
824
965
|
/** Fetch a single workflow by id. */
|
|
@@ -888,6 +1029,6 @@ declare class Convilyn {
|
|
|
888
1029
|
* Single source of truth for the package version. Kept in lockstep with
|
|
889
1030
|
* package.json + CHANGELOG.md (guarded by test/packaging/version-changelog.test.ts).
|
|
890
1031
|
*/
|
|
891
|
-
declare const VERSION = "0.
|
|
1032
|
+
declare const VERSION = "0.4.0";
|
|
892
1033
|
|
|
893
|
-
export { APIError, AuthError, AutoThrottleConfig, CONVERT_JOB_TERMINAL_STATUSES, type ConvertJob, Convilyn, ConvilynError, type ConvilynOptions, type CostEstimate, type CreateConvertOptions, type ErrorDetails, ExponentialBackoffRetry, type File, type ForkWorkflowOptions, GOAL_EVENT_TERMINAL_TYPES, GOAL_EVENT_TYPES, GOAL_JOB_TERMINAL_STATUSES, type GetQuotaOptions, type GoalEvent, type GoalEventType, type GoalJob, GoalJobFailedError, type GoalJobStatus, GoalJobTimeoutError, type GoalWaitOptions, type JobError, JobFailedError, type JobStatus, JobTimeoutError, type LikeResponse, NoRetry, type PatchWorkflowOptions, type PendingSlot, type Plan, PlanRequiredError, type PlanTier, type QuotaCheck, QuotaExceededError, type QuotaState, RateLimitError, type ResultFile, RetryExhaustedError, type RetryPolicy, S3UploadError, type StartGoalOptions, type ToolCostEstimate, type UploadOptions, type UsageHistoryEntry, VERSION, type WSTransport, type WaitOptions, WebSocketError, type Workflow, type WorkflowSearchOptions, type WorkflowSearchPage, type WorkflowSortMode, type WorkflowStats, type WorkflowSummary, type WorkflowVisibility, goalJobNeedsInput, isConvertJobTerminal, isGoalEventTerminal, isGoalEventType, isGoalJobTerminal };
|
|
1034
|
+
export { APIError, type Artifact, type ArtifactDownload, AuthError, AutoThrottleConfig, CONVERT_JOB_TERMINAL_STATUSES, type CatalogWorkflow, type ConvertJob, Convilyn, ConvilynError, type ConvilynOptions, type CostEstimate, type CreateConvertOptions, type ErrorDetails, ExponentialBackoffRetry, type File, type ForkWorkflowOptions, GOAL_EVENT_TERMINAL_TYPES, GOAL_EVENT_TYPES, GOAL_JOB_TERMINAL_STATUSES, type GetQuotaOptions, type GoalEvent, type GoalEventType, type GoalJob, GoalJobFailedError, type GoalJobStatus, GoalJobTimeoutError, type GoalWaitOptions, type JobError, JobFailedError, type JobStatus, JobTimeoutError, type LikeResponse, NoRetry, type PatchWorkflowOptions, type PendingSlot, type Plan, PlanRequiredError, type PlanTier, type QuotaCheck, QuotaExceededError, type QuotaState, RateLimitError, type ResultFile, RetryExhaustedError, type RetryPolicy, S3UploadError, type StartGoalOptions, type ToolCostEstimate, type UploadOptions, type UsageHistoryEntry, VERSION, type WSTransport, type WaitOptions, WebSocketError, type Workflow, type WorkflowSearchOptions, type WorkflowSearchPage, type WorkflowSortMode, type WorkflowStats, type WorkflowSummary, type WorkflowVisibility, goalJobNeedsInput, isConvertJobTerminal, isConvilynError, isGoalEventTerminal, isGoalEventType, isGoalJobTerminal };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { APIError, AuthError, AutoThrottleConfig, CONVERT_JOB_TERMINAL_STATUSES, Convilyn, ConvilynError, ExponentialBackoffRetry, GOAL_EVENT_TERMINAL_TYPES, GOAL_EVENT_TYPES, GOAL_JOB_TERMINAL_STATUSES, GoalJobFailedError, GoalJobTimeoutError, JobFailedError, JobTimeoutError, NoRetry, PlanRequiredError, QuotaExceededError, RateLimitError, RetryExhaustedError, S3UploadError, VERSION, WebSocketError, goalJobNeedsInput, isConvertJobTerminal, isGoalEventTerminal, isGoalEventType, isGoalJobTerminal } from './chunk-
|
|
1
|
+
export { APIError, AuthError, AutoThrottleConfig, CONVERT_JOB_TERMINAL_STATUSES, Convilyn, ConvilynError, ExponentialBackoffRetry, GOAL_EVENT_TERMINAL_TYPES, GOAL_EVENT_TYPES, GOAL_JOB_TERMINAL_STATUSES, GoalJobFailedError, GoalJobTimeoutError, JobFailedError, JobTimeoutError, NoRetry, PlanRequiredError, QuotaExceededError, RateLimitError, RetryExhaustedError, S3UploadError, VERSION, WebSocketError, goalJobNeedsInput, isConvertJobTerminal, isConvilynError, isGoalEventTerminal, isGoalEventType, isGoalJobTerminal } from './chunk-Z5IPYRO3.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED