@convilyn/sdk 0.3.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/dist/index.d.cts CHANGED
@@ -142,10 +142,17 @@ declare class GoalJobTimeoutError extends ConvilynError {
142
142
  readonly jobSpecId: string;
143
143
  readonly elapsed: number;
144
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';
145
151
  constructor(opts: {
146
152
  jobSpecId: string;
147
153
  elapsed: number;
148
154
  timeout: number;
155
+ reason?: 'total' | 'idle';
149
156
  });
150
157
  }
151
158
  /** Raised when the goal event stream cannot proceed. */
@@ -253,6 +260,35 @@ interface GoalJob {
253
260
  declare function isGoalJobTerminal(job: Pick<GoalJob, 'status'>): boolean;
254
261
  /** True when the agent is blocked waiting on the user (`slots_pending`). */
255
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
+ }
256
292
  /** Discriminator for a server-sent event in a goal execution stream. */
257
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';
258
294
  /** The known event `type` values (forward-compat: pre-listed so the SDK need
@@ -316,6 +352,33 @@ interface WorkflowSearchPage {
316
352
  readonly items: WorkflowSummary[];
317
353
  readonly cursor: string | null;
318
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
+ }
319
382
  /** Result of `workflows.like` — toggle state + fresh count. */
320
383
  interface LikeResponse {
321
384
  readonly liked: boolean;
@@ -699,6 +762,17 @@ declare class Files {
699
762
  * `path` (Node) or `content` (bytes/string).
700
763
  */
701
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>;
702
776
  }
703
777
 
704
778
  /**
@@ -733,6 +807,14 @@ interface StartGoalOptions {
733
807
  interface GoalWaitOptions {
734
808
  timeout?: number;
735
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;
736
818
  }
737
819
  /** Constructor options + test seams for {@link Goals}. */
738
820
  interface GoalsResourceOptions {
@@ -767,7 +849,15 @@ declare class Goals {
767
849
  fillSlots(jobSpecId: string, answers: Record<string, unknown>, options?: {
768
850
  expectedVersion?: number;
769
851
  }): Promise<GoalJob>;
770
- /** Confirm a slots-filled job, queueing it for execution. */
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
+ */
771
861
  confirm(jobSpecId: string, options?: {
772
862
  expectedVersion?: number;
773
863
  }): Promise<GoalJob>;
@@ -778,6 +868,29 @@ declare class Goals {
778
868
  rerunMode?: 'retry_same_thread' | 'fresh_rerun';
779
869
  reason?: string;
780
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>;
781
894
  /**
782
895
  * Stream goal execution events for a job. Opens a WebSocket, subscribes,
783
896
  * then yields each {@link GoalEvent} in order; the iterator ends (and the
@@ -838,6 +951,15 @@ interface PatchWorkflowOptions {
838
951
  declare class Workflows {
839
952
  #private;
840
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[]>;
841
963
  /** Browse the public community listing (one page + a `cursor`). */
842
964
  search(options?: WorkflowSearchOptions): Promise<WorkflowSearchPage>;
843
965
  /** Fetch a single workflow by id. */
@@ -907,6 +1029,6 @@ declare class Convilyn {
907
1029
  * Single source of truth for the package version. Kept in lockstep with
908
1030
  * package.json + CHANGELOG.md (guarded by test/packaging/version-changelog.test.ts).
909
1031
  */
910
- declare const VERSION = "0.3.0";
1032
+ declare const VERSION = "0.4.0";
911
1033
 
912
- 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, isConvilynError, 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
@@ -142,10 +142,17 @@ declare class GoalJobTimeoutError extends ConvilynError {
142
142
  readonly jobSpecId: string;
143
143
  readonly elapsed: number;
144
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';
145
151
  constructor(opts: {
146
152
  jobSpecId: string;
147
153
  elapsed: number;
148
154
  timeout: number;
155
+ reason?: 'total' | 'idle';
149
156
  });
150
157
  }
151
158
  /** Raised when the goal event stream cannot proceed. */
@@ -253,6 +260,35 @@ interface GoalJob {
253
260
  declare function isGoalJobTerminal(job: Pick<GoalJob, 'status'>): boolean;
254
261
  /** True when the agent is blocked waiting on the user (`slots_pending`). */
255
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
+ }
256
292
  /** Discriminator for a server-sent event in a goal execution stream. */
257
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';
258
294
  /** The known event `type` values (forward-compat: pre-listed so the SDK need
@@ -316,6 +352,33 @@ interface WorkflowSearchPage {
316
352
  readonly items: WorkflowSummary[];
317
353
  readonly cursor: string | null;
318
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
+ }
319
382
  /** Result of `workflows.like` — toggle state + fresh count. */
320
383
  interface LikeResponse {
321
384
  readonly liked: boolean;
@@ -699,6 +762,17 @@ declare class Files {
699
762
  * `path` (Node) or `content` (bytes/string).
700
763
  */
701
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>;
702
776
  }
703
777
 
704
778
  /**
@@ -733,6 +807,14 @@ interface StartGoalOptions {
733
807
  interface GoalWaitOptions {
734
808
  timeout?: number;
735
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;
736
818
  }
737
819
  /** Constructor options + test seams for {@link Goals}. */
738
820
  interface GoalsResourceOptions {
@@ -767,7 +849,15 @@ declare class Goals {
767
849
  fillSlots(jobSpecId: string, answers: Record<string, unknown>, options?: {
768
850
  expectedVersion?: number;
769
851
  }): Promise<GoalJob>;
770
- /** Confirm a slots-filled job, queueing it for execution. */
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
+ */
771
861
  confirm(jobSpecId: string, options?: {
772
862
  expectedVersion?: number;
773
863
  }): Promise<GoalJob>;
@@ -778,6 +868,29 @@ declare class Goals {
778
868
  rerunMode?: 'retry_same_thread' | 'fresh_rerun';
779
869
  reason?: string;
780
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>;
781
894
  /**
782
895
  * Stream goal execution events for a job. Opens a WebSocket, subscribes,
783
896
  * then yields each {@link GoalEvent} in order; the iterator ends (and the
@@ -838,6 +951,15 @@ interface PatchWorkflowOptions {
838
951
  declare class Workflows {
839
952
  #private;
840
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[]>;
841
963
  /** Browse the public community listing (one page + a `cursor`). */
842
964
  search(options?: WorkflowSearchOptions): Promise<WorkflowSearchPage>;
843
965
  /** Fetch a single workflow by id. */
@@ -907,6 +1029,6 @@ declare class Convilyn {
907
1029
  * Single source of truth for the package version. Kept in lockstep with
908
1030
  * package.json + CHANGELOG.md (guarded by test/packaging/version-changelog.test.ts).
909
1031
  */
910
- declare const VERSION = "0.3.0";
1032
+ declare const VERSION = "0.4.0";
911
1033
 
912
- 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, isConvilynError, 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, isConvilynError, isGoalEventTerminal, isGoalEventType, isGoalJobTerminal } from './chunk-IBSN34ZI.js';
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@convilyn/sdk",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Official TypeScript/JavaScript SDK for Convilyn — file conversion, agentic goal workflows, and the community marketplace.",
5
5
  "license": "Apache-2.0",
6
6
  "publishConfig": {