@drawcall/market 0.1.41 → 0.1.43

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.
@@ -1,5 +1,5 @@
1
1
  import type { AssetInstallMetadata, AssetSearchResult, AssetVersion, GenerateAssetResult, PaginatedList } from './contract.js';
2
- import type { AssetType } from './schemas.js';
2
+ import type { AssetType, GenerateJobStatus } from './schemas.js';
3
3
  export declare const ASSET_RELEVANCE_SCORE: unique symbol;
4
4
  export interface RankedAssetSearchResult extends AssetSearchResult {
5
5
  [ASSET_RELEVANCE_SCORE]?: number;
@@ -55,6 +55,17 @@ export interface AssetProvider {
55
55
  uploadZip(input: AssetUploadZipInput, owner: AssetOwner): Promise<AssetVersion>;
56
56
  downloadZip(input: AssetDownloadZipInput): Promise<Blob>;
57
57
  generate?(input: AssetGenerateInput, owner: AssetOwner): Promise<GenerateAssetResult>;
58
+ /**
59
+ * Job-based generation for providers whose upstream work runs for minutes (the humanoid model).
60
+ * `startGeneration` kicks off the upstream job and returns a pollable jobId WITHOUT waiting;
61
+ * `generationStatus` checks that job on each poll and, once the upstream work is done, persists it
62
+ * and returns the asset. A provider implements EITHER `generate` (fast, inline) OR this pair (slow,
63
+ * polled) — never relying on one long-held request. See generate-job.ts.
64
+ */
65
+ startGeneration?(input: AssetGenerateInput, owner: AssetOwner): Promise<{
66
+ jobId: string;
67
+ }>;
68
+ generationStatus?(jobId: string, owner: AssetOwner): Promise<GenerateJobStatus>;
58
69
  }
59
70
  export type AssetImplementation = AssetProvider;
60
71
  export declare function assetRelevanceScore(asset: AssetSearchResult): number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"asset-implementation.d.ts","sourceRoot":"","sources":["../src/asset-implementation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset-implementation.d.ts","sourceRoot":"","sources":["../src/asset-implementation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"asset-implementation.js","sourceRoot":"","sources":["../src/asset-implementation.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,qBAAqB,GAAkB,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAmEjF,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,OAAQ,KAAiC,CAAC,qBAAqB,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAuB;IAChE,OAAO;QACL,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,aAAa,EAAE,QAAQ,CAAC,aAAa,IAAI,IAAI;QAC7C,oCAAoC,EAAE,QAAQ,CAAC,oCAAoC,IAAI,KAAK;QAC5F,mCAAmC,EAAE,QAAQ,CAAC,mCAAmC,IAAI,KAAK;KAC3F,CAAA;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAwB,EACxB,KAAa;IAEb,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,EAA6B,CAAA;IACtD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,qBAAqB,EAAE;QACnD,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,KAAK;KAClB,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"asset-implementation.js","sourceRoot":"","sources":["../src/asset-implementation.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,qBAAqB,GAAkB,MAAM,CAAC,qBAAqB,CAAC,CAAA;AA4EjF,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,OAAQ,KAAiC,CAAC,qBAAqB,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAuB;IAChE,OAAO;QACL,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,aAAa,EAAE,QAAQ,CAAC,aAAa,IAAI,IAAI;QAC7C,oCAAoC,EAAE,QAAQ,CAAC,oCAAoC,IAAI,KAAK;QAC5F,mCAAmC,EAAE,QAAQ,CAAC,mCAAmC,IAAI,KAAK;KAC3F,CAAA;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAwB,EACxB,KAAa;IAEb,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,EAA6B,CAAA;IACtD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,qBAAqB,EAAE;QACnD,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,KAAK;KAClB,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -142,7 +142,26 @@ export declare const contract: {
142
142
  environment: "environment";
143
143
  flipbook: "flipbook";
144
144
  }>>;
145
- }, z.core.$strip>, z.ZodCustom<GenerateAssetResult, GenerateAssetResult>, Record<never, never>, Record<never, never>>;
145
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
146
+ assetName: z.ZodString;
147
+ version: z.ZodString;
148
+ status: z.ZodLiteral<"completed">;
149
+ }, z.core.$strip>, z.ZodObject<{
150
+ status: z.ZodLiteral<"pending">;
151
+ jobId: z.ZodString;
152
+ }, z.core.$strip>], "status">, Record<never, never>, Record<never, never>>;
153
+ generateStatus: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
154
+ jobId: z.ZodString;
155
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
156
+ status: z.ZodLiteral<"running">;
157
+ }, z.core.$strip>, z.ZodObject<{
158
+ assetName: z.ZodString;
159
+ version: z.ZodString;
160
+ status: z.ZodLiteral<"completed">;
161
+ }, z.core.$strip>, z.ZodObject<{
162
+ status: z.ZodLiteral<"failed">;
163
+ error: z.ZodString;
164
+ }, z.core.$strip>], "status">, Record<never, never>, Record<never, never>>;
146
165
  installMetadata: import("@orpc/contract").ContractProcedureBuilderWithOutput<import("@orpc/contract").Schema<unknown, unknown>, z.ZodCustom<Record<string, AssetInstallMetadata>, Record<string, AssetInstallMetadata>>, Record<never, never>, Record<never, never>>;
147
166
  agent: {
148
167
  start: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAcvB,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,sEAAsE;IACtE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,OAAO,CAAA;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,oCAAoC,EAAE,OAAO,CAAA;IAC7C,mCAAmC,EAAE,OAAO,CAAA;CAC7C;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAsC0B,MAAM;uBAAa,IAAI;;oBAAvB,MAAM;uBAAa,IAAI;;;;;;;CAIrE,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,QAAQ,CAAA"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAiBvB,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,sEAAsE;IACtE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,OAAO,CAAA;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,oCAAoC,EAAE,OAAO,CAAA;IAC7C,mCAAmC,EAAE,OAAO,CAAA;CAC7C;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8C0B,MAAM;uBAAa,IAAI;;oBAAvB,MAAM;uBAAa,IAAI;;;;;;;CAIrE,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,QAAQ,CAAA"}
package/dist/contract.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { oc } from '@orpc/contract';
2
2
  import { z } from 'zod';
3
- import { MAX_UPLOAD_ZIP_SIZE_BYTES, agentRunStatusSchema, agentStartSchema, agentStatusSchema, downloadZipSchema, exactAssetSchema, generateAssetSchema, listAssetsSchema, updateProfileSchema, uploadZipSchema, } from './schemas.js';
3
+ import { MAX_UPLOAD_ZIP_SIZE_BYTES, agentRunStatusSchema, agentStartSchema, agentStatusSchema, downloadZipSchema, exactAssetSchema, generateAssetSchema, generateJobStatusSchema, generateResponseSchema, generateStatusInputSchema, listAssetsSchema, updateProfileSchema, uploadZipSchema, } from './schemas.js';
4
4
  export const contract = {
5
5
  asset: {
6
6
  search: oc.input(listAssetsSchema).output(z.custom()),
@@ -14,7 +14,14 @@ export const contract = {
14
14
  }))
15
15
  .output(z.custom()),
16
16
  downloadZip: oc.input(downloadZipSchema).output(z.instanceof(Blob)),
17
- generate: oc.input(generateAssetSchema).output(z.custom()),
17
+ // Generation is a caller-polled job. `generate` starts it and answers immediately: `completed`
18
+ // for fast providers that finish inline, or `pending` with a jobId for slow ones (the humanoid
19
+ // model runs for minutes upstream). `generateStatus` polls that jobId until it settles. Nothing
20
+ // is held open for the length of the job — the market proxies the upstream service's async job
21
+ // statelessly (see generate-job.ts), so no request outlives a client/proxy timeout. The
22
+ // `generateAndWait` client helper drives both.
23
+ generate: oc.input(generateAssetSchema).output(generateResponseSchema),
24
+ generateStatus: oc.input(generateStatusInputSchema).output(generateJobStatusSchema),
18
25
  installMetadata: oc.output(z.custom()),
19
26
  // The agent plans, searches, judges and (where supported) generates a set of
20
27
  // assets from a goal. `start` kicks off an async run; `status` long-polls it
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,cAAc,CAAA;AA2ErB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE;QACL,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAoC,CAAC;QAEvF,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAA4B,CAAC;QAE9E,SAAS,EAAE,EAAE;aACV,KAAK,CACJ,eAAe;aACZ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,yBAAyB,EAAE;YAC7D,OAAO,EAAE,sCAAsC;YAC/C,IAAI,EAAE,CAAC,KAAK,CAAC;SACd,CAAC,CACL;aACA,MAAM,CAAC,CAAC,CAAC,MAAM,EAAgB,CAAC;QAEnC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEnE,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAuB,CAAC;QAE/E,eAAe,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAwC,CAAC;QAE5E,6EAA6E;QAC7E,6EAA6E;QAC7E,oEAAoE;QACpE,4CAA4C;QAC5C,KAAK,EAAE;YACL,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACzE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC;SACjE;KACF;IAED,IAAI,EAAE;QACJ,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAe,CAAC;QAE9C,aAAa,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAQ,CAAC;QAErE,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAA8C,CAAC;QAE/E,eAAe,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;KAChF;CACF,CAAA"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,cAAc,CAAA;AA2ErB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE;QACL,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAoC,CAAC;QAEvF,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAA4B,CAAC;QAE9E,SAAS,EAAE,EAAE;aACV,KAAK,CACJ,eAAe;aACZ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,yBAAyB,EAAE;YAC7D,OAAO,EAAE,sCAAsC;YAC/C,IAAI,EAAE,CAAC,KAAK,CAAC;SACd,CAAC,CACL;aACA,MAAM,CAAC,CAAC,CAAC,MAAM,EAAgB,CAAC;QAEnC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEnE,+FAA+F;QAC/F,+FAA+F;QAC/F,gGAAgG;QAChG,+FAA+F;QAC/F,wFAAwF;QACxF,+CAA+C;QAC/C,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC;QAEtE,cAAc,EAAE,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC;QAEnF,eAAe,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAwC,CAAC;QAE5E,6EAA6E;QAC7E,6EAA6E;QAC7E,oEAAoE;QACpE,4CAA4C;QAC5C,KAAK,EAAE;YACL,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACzE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC;SACjE;KACF;IAED,IAAI,EAAE;QACJ,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAe,CAAC;QAE9C,aAAa,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAQ,CAAC;QAErE,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAA8C,CAAC;QAE/E,eAAe,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;KAChF;CACF,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+ export declare const generationJobSchema: z.ZodObject<{
3
+ type: z.ZodEnum<{
4
+ model: "model";
5
+ "humanoid-model": "humanoid-model";
6
+ texture: "texture";
7
+ "humanoid-animation": "humanoid-animation";
8
+ template: "template";
9
+ "sound-effect": "sound-effect";
10
+ "background-music": "background-music";
11
+ environment: "environment";
12
+ flipbook: "flipbook";
13
+ }>;
14
+ providerJobId: z.ZodString;
15
+ description: z.ZodString;
16
+ assetName: z.ZodString;
17
+ }, z.core.$strip>;
18
+ export type GenerationJob = z.infer<typeof generationJobSchema>;
19
+ export declare function encodeGenerationJobId(job: GenerationJob): string;
20
+ export declare function decodeGenerationJobId(jobId: string): GenerationJob;
21
+ //# sourceMappingURL=generate-job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-job.d.ts","sourceRoot":"","sources":["../src/generate-job.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAUvB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAK9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAEhE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAQlE"}
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ import { assetTypeSchema } from './schemas.js';
3
+ // A long-running generation is exposed to the caller as a job it polls (see `generate` /
4
+ // `generateStatus` in the contract). The market itself keeps NO state between polls: everything
5
+ // `generateStatus` needs to resume a job lives in the opaque jobId — which provider (`type`), the
6
+ // upstream provider's own job id (`providerJobId`, e.g. the character API job), the original
7
+ // `description` (stored metadata + search text), and the `assetName` pinned at start so a finalize
8
+ // re-run persists to the SAME name@version (idempotent) instead of minting a fresh unique name. The
9
+ // upstream service is the source of truth, so the market is a thin stateless proxy over its job.
10
+ export const generationJobSchema = z.object({
11
+ type: assetTypeSchema,
12
+ providerJobId: z.string().min(1),
13
+ description: z.string().min(1),
14
+ assetName: z.string().min(1),
15
+ });
16
+ export function encodeGenerationJobId(job) {
17
+ return Buffer.from(JSON.stringify(job), 'utf8').toString('base64url');
18
+ }
19
+ export function decodeGenerationJobId(jobId) {
20
+ let parsed;
21
+ try {
22
+ parsed = JSON.parse(Buffer.from(jobId, 'base64url').toString('utf8'));
23
+ }
24
+ catch {
25
+ throw new Error('Malformed generation job id');
26
+ }
27
+ return generationJobSchema.parse(parsed);
28
+ }
29
+ //# sourceMappingURL=generate-job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-job.js","sourceRoot":"","sources":["../src/generate-job.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,yFAAyF;AACzF,gGAAgG;AAChG,kGAAkG;AAClG,6FAA6F;AAC7F,mGAAmG;AACnG,oGAAoG;AACpG,iGAAiG;AACjG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,eAAe;IACrB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAA;AAGF,MAAM,UAAU,qBAAqB,CAAC,GAAkB;IACtD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,cAAc,CAAC,CASzB"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;AASD,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,cAAc,CAAC,CAwBzB"}
package/dist/generate.js CHANGED
@@ -4,13 +4,36 @@ export class GenerateError extends Error {
4
4
  this.name = 'GenerateError';
5
5
  }
6
6
  }
7
+ // Poll cadence for a job-based generation. Each poll is a short, independently-retriable request;
8
+ // the client sleeps between them, so no single request is held open for the length of the job (that
9
+ // is exactly the client/proxy-timeout trap the async flow removes). The deadline sits above the
10
+ // slowest provider's own budget (the humanoid model's upstream job runs up to ~10 min).
11
+ const POLL_INTERVAL_MS = 4_000;
12
+ const POLL_DEADLINE_MS = 15 * 60_000;
7
13
  export async function generateAndWait(client, input, opts = {}) {
8
14
  const report = opts.onProgress ?? (() => { });
9
15
  report('Generating asset');
10
- const result = await client.asset.generate(input);
11
- if (!result.assetName || !result.version) {
12
- throw new GenerateError('Generation completed without an asset name.');
16
+ const started = await client.asset.generate(input);
17
+ if (started.status === 'completed') {
18
+ return { assetName: started.assetName, version: started.version };
13
19
  }
14
- return result;
20
+ const startedAt = Date.now();
21
+ for (;;) {
22
+ if (Date.now() - startedAt > POLL_DEADLINE_MS) {
23
+ throw new GenerateError('Generation timed out.');
24
+ }
25
+ await delay(POLL_INTERVAL_MS);
26
+ report('Generating asset');
27
+ const status = await client.asset.generateStatus({ jobId: started.jobId });
28
+ if (status.status === 'completed') {
29
+ return { assetName: status.assetName, version: status.version };
30
+ }
31
+ if (status.status === 'failed') {
32
+ throw new GenerateError(status.error);
33
+ }
34
+ }
35
+ }
36
+ function delay(ms) {
37
+ return new Promise((resolve) => setTimeout(resolve, ms));
15
38
  }
16
39
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF;AAgBD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAoB,EACpB,KAAoB,EACpB,OAAwB,EAAE;IAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAE5C,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAC1B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACzC,MAAM,IAAI,aAAa,CAAC,6CAA6C,CAAC,CAAA;IACxE,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF;AAgBD,kGAAkG;AAClG,oGAAoG;AACpG,gGAAgG;AAChG,wFAAwF;AACxF,MAAM,gBAAgB,GAAG,KAAK,CAAA;AAC9B,MAAM,gBAAgB,GAAG,EAAE,GAAG,MAAM,CAAA;AAEpC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAoB,EACpB,KAAoB,EACpB,OAAwB,EAAE;IAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAE5C,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAC1B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAClD,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IACnE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,SAAS,CAAC;QACR,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,gBAAgB,EAAE,CAAC;YAC9C,MAAM,IAAI,aAAa,CAAC,uBAAuB,CAAC,CAAA;QAClD,CAAC;QACD,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAC7B,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAC1B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;QAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;QACjE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAC1D,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,8 +11,10 @@ export { generateAndWait, GenerateError } from './generate.js';
11
11
  export type { GenerateInput, GenerateResult, GenerateOptions } from './generate.js';
12
12
  export { agentAndWait, AgentError } from './agent.js';
13
13
  export type { AgentInput } from './agent.js';
14
- export { ASSET_TYPES, MAX_UPLOAD_ZIP_SIZE_BYTES, assetTypeSchema, semverSchema, assetNameSchema, npmDependenciesSchema, assetDependenciesSchema, skillDependenciesSchema, uploadZipSchema, downloadZipSchema, exactAssetSchema, generateAssetSchema, updateProfileSchema, listAssetsSchema, agentStartSchema, agentStatusSchema, agentResultAssetSchema, agentResultSchema, agentRunStatusSchema, } from './schemas.js';
15
- export type { AssetType, AgentResultAsset, AgentResult, AgentRunStatus } from './schemas.js';
14
+ export { ASSET_TYPES, MAX_UPLOAD_ZIP_SIZE_BYTES, assetTypeSchema, semverSchema, assetNameSchema, npmDependenciesSchema, assetDependenciesSchema, skillDependenciesSchema, uploadZipSchema, downloadZipSchema, exactAssetSchema, generateAssetSchema, updateProfileSchema, listAssetsSchema, agentStartSchema, agentStatusSchema, agentResultAssetSchema, agentResultSchema, agentRunStatusSchema, generatedAssetSchema, generateResponseSchema, generateStatusInputSchema, generateJobStatusSchema, } from './schemas.js';
15
+ export type { AssetType, AgentResultAsset, AgentResult, AgentRunStatus, GenerateResponse, GenerateJobStatus, } from './schemas.js';
16
+ export { encodeGenerationJobId, decodeGenerationJobId, generationJobSchema, } from './generate-job.js';
17
+ export type { GenerationJob } from './generate-job.js';
16
18
  export { MAX_FILE_SIZE, ALLOWED_EXTENSIONS, ASSET_TYPE_LABELS } from './constants.js';
17
19
  export { packageJsonAssetDependencies, packageJsonAssetDependenciesFromFiles, parsePackageJson, } from './package-json.js';
18
20
  export type { PackageJson } from './package-json.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,YAAY,EACV,KAAK,EACL,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,IAAI,EACJ,mBAAmB,GACpB,MAAM,eAAe,CAAA;AAEtB,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACvD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGhE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC9D,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGnF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG5F,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAErF,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,EACrC,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,YAAY,EACV,KAAK,EACL,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,IAAI,EACJ,mBAAmB,GACpB,MAAM,eAAe,CAAA;AAEtB,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACvD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGhE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC9D,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGnF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGtD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAErF,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,EACrC,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/index.js CHANGED
@@ -10,7 +10,8 @@ export { generateAndWait, GenerateError } from './generate.js';
10
10
  // Agent
11
11
  export { agentAndWait, AgentError } from './agent.js';
12
12
  // Schemas
13
- export { ASSET_TYPES, MAX_UPLOAD_ZIP_SIZE_BYTES, assetTypeSchema, semverSchema, assetNameSchema, npmDependenciesSchema, assetDependenciesSchema, skillDependenciesSchema, uploadZipSchema, downloadZipSchema, exactAssetSchema, generateAssetSchema, updateProfileSchema, listAssetsSchema, agentStartSchema, agentStatusSchema, agentResultAssetSchema, agentResultSchema, agentRunStatusSchema, } from './schemas.js';
13
+ export { ASSET_TYPES, MAX_UPLOAD_ZIP_SIZE_BYTES, assetTypeSchema, semverSchema, assetNameSchema, npmDependenciesSchema, assetDependenciesSchema, skillDependenciesSchema, uploadZipSchema, downloadZipSchema, exactAssetSchema, generateAssetSchema, updateProfileSchema, listAssetsSchema, agentStartSchema, agentStatusSchema, agentResultAssetSchema, agentResultSchema, agentRunStatusSchema, generatedAssetSchema, generateResponseSchema, generateStatusInputSchema, generateJobStatusSchema, } from './schemas.js';
14
+ export { encodeGenerationJobId, decodeGenerationJobId, generationJobSchema, } from './generate-job.js';
14
15
  // Constants
15
16
  export { MAX_FILE_SIZE, ALLOWED_EXTENSIONS, ASSET_TYPE_LABELS } from './constants.js';
16
17
  export { packageJsonAssetDependencies, packageJsonAssetDependenciesFromFiles, parsePackageJson, } from './package-json.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGhD,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAyBxC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAElC,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAGvD,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAG9D,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAGrD,UAAU;AACV,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,cAAc,CAAA;AAGrB,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAErF,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,EACrC,gBAAgB,GACjB,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGhD,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAyBxC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAElC,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAGvD,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAG9D,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAGrD,UAAU;AACV,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,cAAc,CAAA;AAUrB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAG1B,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAErF,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,EACrC,gBAAgB,GACjB,MAAM,mBAAmB,CAAA"}
package/dist/schemas.d.ts CHANGED
@@ -99,6 +99,33 @@ export declare const generateAssetSchema: z.ZodObject<{
99
99
  flipbook: "flipbook";
100
100
  }>>;
101
101
  }, z.core.$strip>;
102
+ export declare const generatedAssetSchema: z.ZodObject<{
103
+ assetName: z.ZodString;
104
+ version: z.ZodString;
105
+ }, z.core.$strip>;
106
+ export declare const generateResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
107
+ assetName: z.ZodString;
108
+ version: z.ZodString;
109
+ status: z.ZodLiteral<"completed">;
110
+ }, z.core.$strip>, z.ZodObject<{
111
+ status: z.ZodLiteral<"pending">;
112
+ jobId: z.ZodString;
113
+ }, z.core.$strip>], "status">;
114
+ export type GenerateResponse = z.infer<typeof generateResponseSchema>;
115
+ export declare const generateStatusInputSchema: z.ZodObject<{
116
+ jobId: z.ZodString;
117
+ }, z.core.$strip>;
118
+ export declare const generateJobStatusSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
119
+ status: z.ZodLiteral<"running">;
120
+ }, z.core.$strip>, z.ZodObject<{
121
+ assetName: z.ZodString;
122
+ version: z.ZodString;
123
+ status: z.ZodLiteral<"completed">;
124
+ }, z.core.$strip>, z.ZodObject<{
125
+ status: z.ZodLiteral<"failed">;
126
+ error: z.ZodString;
127
+ }, z.core.$strip>], "status">;
128
+ export type GenerateJobStatus = z.infer<typeof generateJobStatusSchema>;
102
129
  export declare const agentStartSchema: z.ZodObject<{
103
130
  goal: z.ZodString;
104
131
  images: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,WAAW,kJAUd,CAAA;AACV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpD,eAAO,MAAM,eAAe;;;;;;;;;;EAAsB,CAAA;AAElD,eAAO,MAAM,yBAAyB,QAAqB,CAAA;AAC3D,eAAO,MAAM,4BAA4B,OAAO,CAAA;AAEhD,eAAO,MAAM,YAAY,aAKtB,CAAA;AAEH,eAAO,MAAM,eAAe,aAUxB,CAAA;AAEJ,eAAO,MAAM,qBAAqB,qDAA+C,CAAA;AAEjF,eAAO,MAAM,uBAAuB,qDAA+C,CAAA;AAKnF,eAAO,MAAM,uBAAuB,qDAA+C,CAAA;AAEnF,eAAO,MAAM,sBAAsB,aAA+C,CAAA;AAElF,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;iBAO3B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;iBAI3B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;iBAS1B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;iBAG9B,CAAA;AAKF,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;iBAE5B,CAAA;AAIF,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAKrE,eAAO,MAAM,iBAAiB;;;;;;;iBAG5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAK3D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;6BAI/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,WAAW,kJAUd,CAAA;AACV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpD,eAAO,MAAM,eAAe;;;;;;;;;;EAAsB,CAAA;AAElD,eAAO,MAAM,yBAAyB,QAAqB,CAAA;AAC3D,eAAO,MAAM,4BAA4B,OAAO,CAAA;AAEhD,eAAO,MAAM,YAAY,aAKtB,CAAA;AAEH,eAAO,MAAM,eAAe,aAUxB,CAAA;AAEJ,eAAO,MAAM,qBAAqB,qDAA+C,CAAA;AAEjF,eAAO,MAAM,uBAAuB,qDAA+C,CAAA;AAKnF,eAAO,MAAM,uBAAuB,qDAA+C,CAAA;AAEnF,eAAO,MAAM,sBAAsB,aAA+C,CAAA;AAElF,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;iBAO3B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;iBAI3B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;iBAS1B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;iBAG9B,CAAA;AAGF,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAA;AAKF,eAAO,MAAM,sBAAsB;;;;;;;6BAGjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,yBAAyB;;iBAEpC,CAAA;AAIF,eAAO,MAAM,uBAAuB;;;;;;;;;6BAIlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAKvE,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;iBAE5B,CAAA;AAIF,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAKrE,eAAO,MAAM,iBAAiB;;;;;;;iBAG5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAK3D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;6BAI/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
package/dist/schemas.js CHANGED
@@ -66,6 +66,28 @@ export const generateAssetSchema = z.object({
66
66
  description: assetDescriptionSchema.min(3),
67
67
  type: assetTypeSchema.optional(),
68
68
  });
69
+ // The completed asset of a generation: an installable name@version.
70
+ export const generatedAssetSchema = z.object({
71
+ assetName: assetNameSchema,
72
+ version: semverSchema,
73
+ });
74
+ // `generate` answers either immediately (fast providers finish inline) or with a job to poll (slow
75
+ // providers like the humanoid model, whose upstream job runs for minutes — see generate-job.ts). A
76
+ // discriminated union keeps "pending without a job id" and "done without an asset" unrepresentable.
77
+ export const generateResponseSchema = z.discriminatedUnion('status', [
78
+ generatedAssetSchema.extend({ status: z.literal('completed') }),
79
+ z.object({ status: z.literal('pending'), jobId: z.string().min(1) }),
80
+ ]);
81
+ export const generateStatusInputSchema = z.object({
82
+ jobId: z.string().min(1),
83
+ });
84
+ // The state of a polled generation job: still running, or settled (completed with the asset / failed
85
+ // with a reason). Mirrors agentRunStatusSchema so the two async flows read the same.
86
+ export const generateJobStatusSchema = z.discriminatedUnion('status', [
87
+ z.object({ status: z.literal('running') }),
88
+ generatedAssetSchema.extend({ status: z.literal('completed') }),
89
+ z.object({ status: z.literal('failed'), error: z.string() }),
90
+ ]);
69
91
  // The agent takes a natural-language goal (which carries the count and kinds,
70
92
  // e.g. "3 low poly stones" or "a template for a zombie game, none if no fit")
71
93
  // and optional reference images as base64 (raw or data URLs).
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drawcall/market",
3
- "version": "0.1.41",
3
+ "version": "0.1.43",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/drawcall-ai/market",
@@ -5,7 +5,7 @@ import type {
5
5
  GenerateAssetResult,
6
6
  PaginatedList,
7
7
  } from './contract.js'
8
- import type { AssetType } from './schemas.js'
8
+ import type { AssetType, GenerateJobStatus } from './schemas.js'
9
9
 
10
10
  export const ASSET_RELEVANCE_SCORE: unique symbol = Symbol('assetRelevanceScore')
11
11
 
@@ -70,6 +70,15 @@ export interface AssetProvider {
70
70
  uploadZip(input: AssetUploadZipInput, owner: AssetOwner): Promise<AssetVersion>
71
71
  downloadZip(input: AssetDownloadZipInput): Promise<Blob>
72
72
  generate?(input: AssetGenerateInput, owner: AssetOwner): Promise<GenerateAssetResult>
73
+ /**
74
+ * Job-based generation for providers whose upstream work runs for minutes (the humanoid model).
75
+ * `startGeneration` kicks off the upstream job and returns a pollable jobId WITHOUT waiting;
76
+ * `generationStatus` checks that job on each poll and, once the upstream work is done, persists it
77
+ * and returns the asset. A provider implements EITHER `generate` (fast, inline) OR this pair (slow,
78
+ * polled) — never relying on one long-held request. See generate-job.ts.
79
+ */
80
+ startGeneration?(input: AssetGenerateInput, owner: AssetOwner): Promise<{ jobId: string }>
81
+ generationStatus?(jobId: string, owner: AssetOwner): Promise<GenerateJobStatus>
73
82
  }
74
83
 
75
84
  export type AssetImplementation = AssetProvider
package/src/contract.ts CHANGED
@@ -8,6 +8,9 @@ import {
8
8
  downloadZipSchema,
9
9
  exactAssetSchema,
10
10
  generateAssetSchema,
11
+ generateJobStatusSchema,
12
+ generateResponseSchema,
13
+ generateStatusInputSchema,
11
14
  listAssetsSchema,
12
15
  updateProfileSchema,
13
16
  uploadZipSchema,
@@ -105,7 +108,15 @@ export const contract = {
105
108
 
106
109
  downloadZip: oc.input(downloadZipSchema).output(z.instanceof(Blob)),
107
110
 
108
- generate: oc.input(generateAssetSchema).output(z.custom<GenerateAssetResult>()),
111
+ // Generation is a caller-polled job. `generate` starts it and answers immediately: `completed`
112
+ // for fast providers that finish inline, or `pending` with a jobId for slow ones (the humanoid
113
+ // model runs for minutes upstream). `generateStatus` polls that jobId until it settles. Nothing
114
+ // is held open for the length of the job — the market proxies the upstream service's async job
115
+ // statelessly (see generate-job.ts), so no request outlives a client/proxy timeout. The
116
+ // `generateAndWait` client helper drives both.
117
+ generate: oc.input(generateAssetSchema).output(generateResponseSchema),
118
+
119
+ generateStatus: oc.input(generateStatusInputSchema).output(generateJobStatusSchema),
109
120
 
110
121
  installMetadata: oc.output(z.custom<Record<string, AssetInstallMetadata>>()),
111
122
 
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod'
2
+ import { assetTypeSchema } from './schemas.js'
3
+
4
+ // A long-running generation is exposed to the caller as a job it polls (see `generate` /
5
+ // `generateStatus` in the contract). The market itself keeps NO state between polls: everything
6
+ // `generateStatus` needs to resume a job lives in the opaque jobId — which provider (`type`), the
7
+ // upstream provider's own job id (`providerJobId`, e.g. the character API job), the original
8
+ // `description` (stored metadata + search text), and the `assetName` pinned at start so a finalize
9
+ // re-run persists to the SAME name@version (idempotent) instead of minting a fresh unique name. The
10
+ // upstream service is the source of truth, so the market is a thin stateless proxy over its job.
11
+ export const generationJobSchema = z.object({
12
+ type: assetTypeSchema,
13
+ providerJobId: z.string().min(1),
14
+ description: z.string().min(1),
15
+ assetName: z.string().min(1),
16
+ })
17
+ export type GenerationJob = z.infer<typeof generationJobSchema>
18
+
19
+ export function encodeGenerationJobId(job: GenerationJob): string {
20
+ return Buffer.from(JSON.stringify(job), 'utf8').toString('base64url')
21
+ }
22
+
23
+ export function decodeGenerationJobId(jobId: string): GenerationJob {
24
+ let parsed: unknown
25
+ try {
26
+ parsed = JSON.parse(Buffer.from(jobId, 'base64url').toString('utf8'))
27
+ } catch {
28
+ throw new Error('Malformed generation job id')
29
+ }
30
+ return generationJobSchema.parse(parsed)
31
+ }
package/src/generate.ts CHANGED
@@ -22,6 +22,13 @@ export interface GenerateOptions {
22
22
  onProgress?: (message: string) => void
23
23
  }
24
24
 
25
+ // Poll cadence for a job-based generation. Each poll is a short, independently-retriable request;
26
+ // the client sleeps between them, so no single request is held open for the length of the job (that
27
+ // is exactly the client/proxy-timeout trap the async flow removes). The deadline sits above the
28
+ // slowest provider's own budget (the humanoid model's upstream job runs up to ~10 min).
29
+ const POLL_INTERVAL_MS = 4_000
30
+ const POLL_DEADLINE_MS = 15 * 60_000
31
+
25
32
  export async function generateAndWait(
26
33
  client: MarketClient,
27
34
  input: GenerateInput,
@@ -30,9 +37,28 @@ export async function generateAndWait(
30
37
  const report = opts.onProgress ?? (() => {})
31
38
 
32
39
  report('Generating asset')
33
- const result = await client.asset.generate(input)
34
- if (!result.assetName || !result.version) {
35
- throw new GenerateError('Generation completed without an asset name.')
40
+ const started = await client.asset.generate(input)
41
+ if (started.status === 'completed') {
42
+ return { assetName: started.assetName, version: started.version }
43
+ }
44
+
45
+ const startedAt = Date.now()
46
+ for (;;) {
47
+ if (Date.now() - startedAt > POLL_DEADLINE_MS) {
48
+ throw new GenerateError('Generation timed out.')
49
+ }
50
+ await delay(POLL_INTERVAL_MS)
51
+ report('Generating asset')
52
+ const status = await client.asset.generateStatus({ jobId: started.jobId })
53
+ if (status.status === 'completed') {
54
+ return { assetName: status.assetName, version: status.version }
55
+ }
56
+ if (status.status === 'failed') {
57
+ throw new GenerateError(status.error)
58
+ }
36
59
  }
37
- return result
60
+ }
61
+
62
+ function delay(ms: number): Promise<void> {
63
+ return new Promise((resolve) => setTimeout(resolve, ms))
38
64
  }
package/src/index.ts CHANGED
@@ -68,8 +68,26 @@ export {
68
68
  agentResultAssetSchema,
69
69
  agentResultSchema,
70
70
  agentRunStatusSchema,
71
+ generatedAssetSchema,
72
+ generateResponseSchema,
73
+ generateStatusInputSchema,
74
+ generateJobStatusSchema,
71
75
  } from './schemas.js'
72
- export type { AssetType, AgentResultAsset, AgentResult, AgentRunStatus } from './schemas.js'
76
+ export type {
77
+ AssetType,
78
+ AgentResultAsset,
79
+ AgentResult,
80
+ AgentRunStatus,
81
+ GenerateResponse,
82
+ GenerateJobStatus,
83
+ } from './schemas.js'
84
+
85
+ export {
86
+ encodeGenerationJobId,
87
+ decodeGenerationJobId,
88
+ generationJobSchema,
89
+ } from './generate-job.js'
90
+ export type { GenerationJob } from './generate-job.js'
73
91
 
74
92
  // Constants
75
93
  export { MAX_FILE_SIZE, ALLOWED_EXTENSIONS, ASSET_TYPE_LABELS } from './constants.js'
package/src/schemas.ts CHANGED
@@ -89,6 +89,34 @@ export const generateAssetSchema = z.object({
89
89
  type: assetTypeSchema.optional(),
90
90
  })
91
91
 
92
+ // The completed asset of a generation: an installable name@version.
93
+ export const generatedAssetSchema = z.object({
94
+ assetName: assetNameSchema,
95
+ version: semverSchema,
96
+ })
97
+
98
+ // `generate` answers either immediately (fast providers finish inline) or with a job to poll (slow
99
+ // providers like the humanoid model, whose upstream job runs for minutes — see generate-job.ts). A
100
+ // discriminated union keeps "pending without a job id" and "done without an asset" unrepresentable.
101
+ export const generateResponseSchema = z.discriminatedUnion('status', [
102
+ generatedAssetSchema.extend({ status: z.literal('completed') }),
103
+ z.object({ status: z.literal('pending'), jobId: z.string().min(1) }),
104
+ ])
105
+ export type GenerateResponse = z.infer<typeof generateResponseSchema>
106
+
107
+ export const generateStatusInputSchema = z.object({
108
+ jobId: z.string().min(1),
109
+ })
110
+
111
+ // The state of a polled generation job: still running, or settled (completed with the asset / failed
112
+ // with a reason). Mirrors agentRunStatusSchema so the two async flows read the same.
113
+ export const generateJobStatusSchema = z.discriminatedUnion('status', [
114
+ z.object({ status: z.literal('running') }),
115
+ generatedAssetSchema.extend({ status: z.literal('completed') }),
116
+ z.object({ status: z.literal('failed'), error: z.string() }),
117
+ ])
118
+ export type GenerateJobStatus = z.infer<typeof generateJobStatusSchema>
119
+
92
120
  // The agent takes a natural-language goal (which carries the count and kinds,
93
121
  // e.g. "3 low poly stones" or "a template for a zombie game, none if no fit")
94
122
  // and optional reference images as base64 (raw or data URLs).