@drawcall/market 0.1.96 → 0.1.98
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/asset-implementation.d.ts +11 -9
- package/dist/asset-implementation.d.ts.map +1 -1
- package/dist/asset-implementation.js.map +1 -1
- package/dist/commands/upload.d.ts.map +1 -1
- package/dist/commands/upload.js +9 -68
- package/dist/commands/upload.js.map +1 -1
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +3 -6
- package/dist/contract.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +1 -3
- package/dist/schemas.js.map +1 -1
- package/package.json +2 -2
- package/src/asset-implementation.ts +12 -7
- package/src/commands/upload.ts +6 -77
- package/src/contract.ts +3 -6
- package/src/index.ts +1 -7
- package/src/schemas.ts +1 -3
- package/dist/generate-job.d.ts +0 -25
- package/dist/generate-job.d.ts.map +0 -1
- package/dist/generate-job.js +0 -33
- package/dist/generate-job.js.map +0 -1
- package/dist/template-deployment.d.ts +0 -20
- package/dist/template-deployment.d.ts.map +0 -1
- package/dist/template-deployment.js +0 -117
- package/dist/template-deployment.js.map +0 -1
- package/src/generate-job.ts +0 -35
- package/src/template-deployment.ts +0 -160
|
@@ -51,6 +51,14 @@ export interface AssetOwner {
|
|
|
51
51
|
id: string;
|
|
52
52
|
role: string;
|
|
53
53
|
}
|
|
54
|
+
export interface GenerationReceipt {
|
|
55
|
+
type: AssetType;
|
|
56
|
+
providerJobId: string;
|
|
57
|
+
description: string;
|
|
58
|
+
assetName: string;
|
|
59
|
+
ownerId: string;
|
|
60
|
+
access: AssetAccess;
|
|
61
|
+
}
|
|
54
62
|
export interface AssetProvider {
|
|
55
63
|
type: AssetType;
|
|
56
64
|
/** Shown when an agent asks how to search this asset type. */
|
|
@@ -73,16 +81,10 @@ export interface AssetProvider {
|
|
|
73
81
|
uploadZip(input: AssetUploadZipInput, owner: AssetOwner): Promise<AssetVersion>;
|
|
74
82
|
generate?(input: AssetGenerateInput, owner: AssetOwner): Promise<GenerateAssetResult>;
|
|
75
83
|
/**
|
|
76
|
-
* Job-based generation for providers whose upstream work runs for minutes
|
|
77
|
-
* `startGeneration` kicks off the upstream job and returns a pollable jobId WITHOUT waiting;
|
|
78
|
-
* `generationStatus` checks that job on each poll and, once the upstream work is done, persists it
|
|
79
|
-
* and returns the asset. A provider implements EITHER `generate` (fast, inline) OR this pair (slow,
|
|
80
|
-
* polled) — never relying on one long-held request. See generate-job.ts.
|
|
84
|
+
* Job-based generation for providers whose upstream work runs for minutes.
|
|
81
85
|
*/
|
|
82
|
-
startGeneration?(input: AssetGenerateInput, owner: AssetOwner): Promise<
|
|
83
|
-
|
|
84
|
-
}>;
|
|
85
|
-
generationStatus?(jobId: string, owner: AssetOwner): Promise<GenerateJobStatus>;
|
|
86
|
+
startGeneration?(input: AssetGenerateInput, owner: AssetOwner): Promise<GenerationReceipt>;
|
|
87
|
+
generationStatus?(receipt: GenerationReceipt): Promise<GenerateJobStatus>;
|
|
86
88
|
}
|
|
87
89
|
export type AssetImplementation = AssetProvider;
|
|
88
90
|
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":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACd,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAE7E,eAAO,MAAM,qBAAqB,EAAE,OAAO,MAAsC,CAAA;AAEjF,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,CAAC,qBAAqB,CAAC,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,WAAW,CAAA;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,uGAAuG;IACvG,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,EAAE,IAAI,CAAA;IACT,0FAA0F;IAC1F,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,uGAAuG;IACvG,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,qGAAqG;IACrG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAA;IACf,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qFAAqF;IACrF,oCAAoC,CAAC,EAAE,OAAO,CAAA;IAC9C,2FAA2F;IAC3F,mCAAmC,CAAC,EAAE,OAAO,CAAA;IAC7C;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC1E,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;IAC/D,SAAS,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC/E,QAAQ,CAAC,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACrF
|
|
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":"AAUA,MAAM,CAAC,MAAM,qBAAqB,GAAkB,MAAM,CAAC,qBAAqB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"asset-implementation.js","sourceRoot":"","sources":["../src/asset-implementation.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,qBAAqB,GAAkB,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAkGjF,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,OAAQ,KAAiC,CAAC,qBAAqB,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAuB;IAChE,OAAO;QACL,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,eAAe,CAAC;QACnE,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB,IAAI,KAAK;QAChE,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"AAKA,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,eAAe,CAAA;AAEtB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,iFAAiF;IACjF,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAoFf;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQlE"}
|
package/dist/commands/upload.js
CHANGED
|
@@ -3,7 +3,6 @@ import semver from 'semver';
|
|
|
3
3
|
import { getCliClient } from '../cli-client.js';
|
|
4
4
|
import { packAsset, packPolicyFromInstallMetadata, parsePackDependencies } from '../pack.js';
|
|
5
5
|
import { unchangedUploadResult, uploadResult } from '../output.js';
|
|
6
|
-
import { buildTemplateDeployment, getTemplateDeploymentStatus, uploadTemplateDeployment, } from '../template-deployment.js';
|
|
7
6
|
import { assetDescriptionSchema, assetNameSchema, semverSchema, MAX_ASSET_DESCRIPTION_LENGTH, } from '../schemas.js';
|
|
8
7
|
export async function uploadCommand(name, zipFilter, description, opts) {
|
|
9
8
|
const spinner = ora({
|
|
@@ -23,12 +22,7 @@ export async function uploadCommand(name, zipFilter, description, opts) {
|
|
|
23
22
|
});
|
|
24
23
|
const cwd = opts.cwd ?? process.cwd();
|
|
25
24
|
const type = opts.type;
|
|
26
|
-
const { client
|
|
27
|
-
baseUrl: opts.baseUrl,
|
|
28
|
-
requireAuth: true,
|
|
29
|
-
});
|
|
30
|
-
if (!authToken)
|
|
31
|
-
throw new Error('Not logged in. Run `market login` first.');
|
|
25
|
+
const { client } = await getCliClient({ baseUrl: opts.baseUrl, requireAuth: true });
|
|
32
26
|
const installMetadata = await client.asset.installMetadata();
|
|
33
27
|
const packed = await packAsset(zipFilter, {
|
|
34
28
|
cwd,
|
|
@@ -49,53 +43,23 @@ export async function uploadCommand(name, zipFilter, description, opts) {
|
|
|
49
43
|
if (existing && existing.ownerId !== profile.id) {
|
|
50
44
|
throw new Error(`Asset "${parsedName}" already exists and is owned by another user`);
|
|
51
45
|
}
|
|
52
|
-
let unchanged = false;
|
|
53
46
|
if (existing) {
|
|
54
47
|
const latestZip = await client.asset.downloadZip({
|
|
55
48
|
name: parsedName,
|
|
56
49
|
version: existing.latestVersion,
|
|
57
50
|
});
|
|
58
51
|
const latestBytes = new Uint8Array(await latestZip.arrayBuffer());
|
|
59
|
-
|
|
60
|
-
existing.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
if (type === 'template') {
|
|
68
|
-
const status = await getTemplateDeploymentStatus({
|
|
69
|
-
baseUrl,
|
|
70
|
-
authToken,
|
|
71
|
-
name: parsedName,
|
|
72
|
-
version: existing.latestVersion,
|
|
73
|
-
});
|
|
74
|
-
if (!status.ready) {
|
|
75
|
-
spinner.stop();
|
|
76
|
-
const root = await buildTemplateDeployment(zipFilter, cwd);
|
|
77
|
-
spinner.start(`Uploading deployment for ${parsedName}@${existing.latestVersion}`);
|
|
78
|
-
await uploadDeployment({
|
|
79
|
-
baseUrl,
|
|
80
|
-
authToken,
|
|
81
|
-
name: parsedName,
|
|
82
|
-
version: existing.latestVersion,
|
|
83
|
-
root,
|
|
84
|
-
spinner,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
52
|
+
if (existing.description === parsedDescription &&
|
|
53
|
+
depsEqual(existing.npmDependencies, npmDependencies) &&
|
|
54
|
+
depsEqual(existing.assetDependencies, assetDependencies) &&
|
|
55
|
+
depsEqual(existing.skillDependencies, skillDependencies) &&
|
|
56
|
+
bytesEqual(latestBytes, zip)) {
|
|
57
|
+
spinner.stop();
|
|
58
|
+
console.log(unchangedUploadResult(parsedName, existing.latestVersion));
|
|
59
|
+
return;
|
|
87
60
|
}
|
|
88
|
-
spinner.stop();
|
|
89
|
-
console.log(unchangedUploadResult(parsedName, existing.latestVersion));
|
|
90
|
-
return;
|
|
91
61
|
}
|
|
92
62
|
const version = parsedVersion ?? nextVersion(existing?.latestVersion);
|
|
93
|
-
let deploymentRoot = null;
|
|
94
|
-
if (type === 'template') {
|
|
95
|
-
spinner.stop();
|
|
96
|
-
deploymentRoot = await buildTemplateDeployment(zipFilter, cwd);
|
|
97
|
-
spinner.start(`Uploading ${parsedName}@${version}`);
|
|
98
|
-
}
|
|
99
63
|
spinner.text = `Uploading ${parsedName}@${version}`;
|
|
100
64
|
const uploaded = await client.asset.uploadZip({
|
|
101
65
|
name: parsedName,
|
|
@@ -111,16 +75,6 @@ export async function uploadCommand(name, zipFilter, description, opts) {
|
|
|
111
75
|
type: 'application/zip',
|
|
112
76
|
}),
|
|
113
77
|
});
|
|
114
|
-
if (deploymentRoot) {
|
|
115
|
-
await uploadDeployment({
|
|
116
|
-
baseUrl,
|
|
117
|
-
authToken,
|
|
118
|
-
name: parsedName,
|
|
119
|
-
version: uploaded.version,
|
|
120
|
-
root: deploymentRoot,
|
|
121
|
-
spinner,
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
78
|
spinner.stop();
|
|
125
79
|
console.log(uploadResult(parsedName, uploaded.version));
|
|
126
80
|
}
|
|
@@ -129,19 +83,6 @@ export async function uploadCommand(name, zipFilter, description, opts) {
|
|
|
129
83
|
throw err;
|
|
130
84
|
}
|
|
131
85
|
}
|
|
132
|
-
async function uploadDeployment(input) {
|
|
133
|
-
input.spinner.text = `Uploading deployment for ${input.name}@${input.version}`;
|
|
134
|
-
await uploadTemplateDeployment({
|
|
135
|
-
baseUrl: input.baseUrl,
|
|
136
|
-
authToken: input.authToken,
|
|
137
|
-
name: input.name,
|
|
138
|
-
version: input.version,
|
|
139
|
-
root: input.root,
|
|
140
|
-
onProgress(uploaded, total) {
|
|
141
|
-
input.spinner.text = `Uploading deployment for ${input.name}@${input.version} (${uploaded}/${total})`;
|
|
142
|
-
},
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
86
|
export function parseUploadDescription(description) {
|
|
146
87
|
try {
|
|
147
88
|
return assetDescriptionSchema.parse(description);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"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"}
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -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,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAmBrD,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,gGAAgG;IAChG,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,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,sGAAsG;AACtG,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,mGAAmG;AACnG,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAA;CACb;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,EAAE,CAAA;CACxB;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;;;OAGG;IACH,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,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,4DAA4D;AAC5D,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mEAAmE;IACnE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+DAA+D;IAC/D,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,aAAa,EAAE,OAAO,CAAA;IACtB,oCAAoC,EAAE,OAAO,CAAA;IAC7C,mCAAmC,EAAE,OAAO,CAAA;CAC7C;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
|
package/dist/contract.js
CHANGED
|
@@ -23,12 +23,9 @@ export const contract = {
|
|
|
23
23
|
// copy of an installed asset without keeping any hashes itself. Private assets are owner-only,
|
|
24
24
|
// same as download.
|
|
25
25
|
fileManifest: oc.input(fileManifestSchema).output(z.custom()),
|
|
26
|
-
// Generation
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
// is held open for the length of the job — the market proxies the upstream service's async job
|
|
30
|
-
// statelessly (see generate-job.ts), so no request outlives a client/proxy timeout. The
|
|
31
|
-
// `generateAndWait` client helper drives both.
|
|
26
|
+
// Generation answers immediately: `completed` for fast providers, or `pending` with an
|
|
27
|
+
// unguessable Market Workflow id for slow providers. The Workflow polls and finalizes the
|
|
28
|
+
// upstream job even when the caller disconnects; `generateStatus` only reads its state.
|
|
32
29
|
generate: oc.input(generateAssetSchema).output(generateResponseSchema),
|
|
33
30
|
generateStatus: oc.input(generateStatusInputSchema).output(generateJobStatusSchema),
|
|
34
31
|
installMetadata: oc.output(z.custom()),
|
package/dist/contract.js.map
CHANGED
|
@@ -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;AAEvB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,cAAc,CAAA;AAiHrB,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,EAA2B,CAAC;QAE7E,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,6FAA6F;QAC7F,+FAA+F;QAC/F,iBAAiB;QACjB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAoB,CAAC;QAEtE,gGAAgG;QAChG,iGAAiG;QACjG,+FAA+F;QAC/F,oBAAoB;QACpB,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAqB,CAAC;QAEhF
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export type { MarketClient, MarketClientOptions } from './client.js';
|
|
|
3
3
|
export { contract } from './contract.js';
|
|
4
4
|
export type { AppContract } from './contract.js';
|
|
5
5
|
export type { Asset, AssetExactResult, AssetFileEntry, AssetFilesResult, AssetInstallMetadata, AssetVersion, AssetSearchResult, PaginatedList, User, GenerateAssetResult, } from './contract.js';
|
|
6
|
-
export type { AssetDownloadZipInput, AssetExactInput, AssetGenerateInput, AssetImplementation, AssetOwner, AssetProvider, RankedAssetSearchResult, AssetSearchInput, AssetUploadZipInput, } from './asset-implementation.js';
|
|
6
|
+
export type { AssetDownloadZipInput, AssetExactInput, AssetGenerateInput, AssetImplementation, AssetOwner, AssetProvider, GenerationReceipt, RankedAssetSearchResult, AssetSearchInput, AssetUploadZipInput, } from './asset-implementation.js';
|
|
7
7
|
export { ASSET_RELEVANCE_SCORE, assetRelevanceScore, installMetadataForProvider, withAssetRelevanceScore, } from './asset-implementation.js';
|
|
8
8
|
export { resolve, ResolutionError } from './resolve.js';
|
|
9
9
|
export type { ResolvedAsset, ResolveResult } from './resolve.js';
|
|
@@ -14,8 +14,6 @@ export { agentAndWait, AgentError } from './agent.js';
|
|
|
14
14
|
export type { AgentInput } from './agent.js';
|
|
15
15
|
export { ASSET_TYPES, MAX_UPLOAD_ZIP_SIZE_BYTES, assetTypeSchema, semverSchema, assetNameSchema, assetAccessSchema, npmDependenciesSchema, assetDependenciesSchema, skillDependenciesSchema, uploadZipSchema, downloadZipSchema, exactAssetSchema, fileManifestSchema, generateAssetSchema, updateProfileSchema, listAssetsSchema, agentStartSchema, agentStatusSchema, agentResultAssetSchema, agentResultSchema, agentRunStatusSchema, generatedAssetSchema, generateResponseSchema, generateStatusInputSchema, generateJobStatusSchema, } from './schemas.js';
|
|
16
16
|
export type { AssetType, AssetAccess, AssetFileManifest, AgentResultAsset, AgentResult, AgentRunStatus, GenerateResponse, GenerateJobStatus, } from './schemas.js';
|
|
17
|
-
export { encodeGenerationJobId, decodeGenerationJobId, generationJobSchema, } from './generate-job.js';
|
|
18
|
-
export type { GenerationJob } from './generate-job.js';
|
|
19
17
|
export { MAX_FILE_SIZE, ALLOWED_EXTENSIONS, ASSET_TYPE_LABELS } from './constants.js';
|
|
20
18
|
export { packageJsonAssetDependencies, packageJsonAssetDependenciesFromFiles, parsePackageJson, } from './package-json.js';
|
|
21
19
|
export type { PackageJson } from './package-json.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,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,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC9E,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAG7D,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,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,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,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,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,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,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,iBAAiB,EACjB,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,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC9E,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAG7D,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,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,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,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AAGrB,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
|
@@ -12,7 +12,6 @@ export { GenerationProviderError } from './provider-error.js';
|
|
|
12
12
|
export { agentAndWait, AgentError } from './agent.js';
|
|
13
13
|
// Schemas
|
|
14
14
|
export { ASSET_TYPES, MAX_UPLOAD_ZIP_SIZE_BYTES, assetTypeSchema, semverSchema, assetNameSchema, assetAccessSchema, npmDependenciesSchema, assetDependenciesSchema, skillDependenciesSchema, uploadZipSchema, downloadZipSchema, exactAssetSchema, fileManifestSchema, generateAssetSchema, updateProfileSchema, listAssetsSchema, agentStartSchema, agentStatusSchema, agentResultAssetSchema, agentResultSchema, agentRunStatusSchema, generatedAssetSchema, generateResponseSchema, generateStatusInputSchema, generateJobStatusSchema, } from './schemas.js';
|
|
15
|
-
export { encodeGenerationJobId, decodeGenerationJobId, generationJobSchema, } from './generate-job.js';
|
|
16
15
|
// Constants
|
|
17
16
|
export { MAX_FILE_SIZE, ALLOWED_EXTENSIONS, ASSET_TYPE_LABELS } from './constants.js';
|
|
18
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;
|
|
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;AA6BxC,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,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,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,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,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;AAYrB,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.map
CHANGED
|
@@ -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;AAKlF,eAAO,MAAM,iBAAiB;;;EAAgC,CAAA;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;iBAO3B,CAAA;AAKF,eAAO,MAAM,eAAe,aAA6B,CAAA;AAEzD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;iBAM3B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;iBAY1B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAA;AAIF,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAStD,eAAO,MAAM,qBAAqB,yBAOzB,CAAA;AAET,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;iBAM9B,CAAA;AAGF,eAAO,MAAM,oBAAoB;;;iBAG/B,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;AAKlF,eAAO,MAAM,iBAAiB;;;EAAgC,CAAA;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;iBAO3B,CAAA;AAKF,eAAO,MAAM,eAAe,aAA6B,CAAA;AAEzD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;iBAM3B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;iBAY1B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAA;AAIF,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAStD,eAAO,MAAM,qBAAqB,yBAOzB,CAAA;AAET,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;iBAM9B,CAAA;AAGF,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAA;AAGF,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;;;kBAG3B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;iBAE5B,CAAA;AAIF,eAAO,MAAM,sBAAsB;;;;;;;;iBAKjC,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
|
@@ -111,9 +111,7 @@ export const generatedAssetSchema = z.object({
|
|
|
111
111
|
assetName: assetNameSchema,
|
|
112
112
|
version: semverSchema,
|
|
113
113
|
});
|
|
114
|
-
//
|
|
115
|
-
// providers like the humanoid model, whose upstream job runs for minutes — see generate-job.ts). A
|
|
116
|
-
// discriminated union keeps "pending without a job id" and "done without an asset" unrepresentable.
|
|
114
|
+
// Fast providers finish inline; slow providers return a Workflow id to poll.
|
|
117
115
|
export const generateResponseSchema = z.discriminatedUnion('status', [
|
|
118
116
|
generatedAssetSchema.extend({ status: z.literal('completed') }),
|
|
119
117
|
z.object({ status: z.literal('pending'), jobId: z.string().min(1) }),
|
package/dist/schemas.js.map
CHANGED
|
@@ -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.
|
|
3
|
+
"version": "0.1.98",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/drawcall-ai/market",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"build": "tsc",
|
|
31
31
|
"prepack": "npm run build && node scripts/prepare-publish.mjs",
|
|
32
32
|
"dev": "tsx src/cli.ts",
|
|
33
|
-
"test": "
|
|
33
|
+
"test": "tsx --test tests/*.test.ts",
|
|
34
34
|
"test:install-layout": "tsx --test tests/install-layout.test.ts tests/install-lock.test.ts tests/install-command.test.ts tests/list-command.test.ts tests/pack.test.ts",
|
|
35
35
|
"typecheck": "tsc --noEmit"
|
|
36
36
|
},
|
|
@@ -67,6 +67,15 @@ export interface AssetOwner {
|
|
|
67
67
|
role: string
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
export interface GenerationReceipt {
|
|
71
|
+
type: AssetType
|
|
72
|
+
providerJobId: string
|
|
73
|
+
description: string
|
|
74
|
+
assetName: string
|
|
75
|
+
ownerId: string
|
|
76
|
+
access: AssetAccess
|
|
77
|
+
}
|
|
78
|
+
|
|
70
79
|
export interface AssetProvider {
|
|
71
80
|
type: AssetType
|
|
72
81
|
/** Shown when an agent asks how to search this asset type. */
|
|
@@ -89,14 +98,10 @@ export interface AssetProvider {
|
|
|
89
98
|
uploadZip(input: AssetUploadZipInput, owner: AssetOwner): Promise<AssetVersion>
|
|
90
99
|
generate?(input: AssetGenerateInput, owner: AssetOwner): Promise<GenerateAssetResult>
|
|
91
100
|
/**
|
|
92
|
-
* Job-based generation for providers whose upstream work runs for minutes
|
|
93
|
-
* `startGeneration` kicks off the upstream job and returns a pollable jobId WITHOUT waiting;
|
|
94
|
-
* `generationStatus` checks that job on each poll and, once the upstream work is done, persists it
|
|
95
|
-
* and returns the asset. A provider implements EITHER `generate` (fast, inline) OR this pair (slow,
|
|
96
|
-
* polled) — never relying on one long-held request. See generate-job.ts.
|
|
101
|
+
* Job-based generation for providers whose upstream work runs for minutes.
|
|
97
102
|
*/
|
|
98
|
-
startGeneration?(input: AssetGenerateInput, owner: AssetOwner): Promise<
|
|
99
|
-
generationStatus?(
|
|
103
|
+
startGeneration?(input: AssetGenerateInput, owner: AssetOwner): Promise<GenerationReceipt>
|
|
104
|
+
generationStatus?(receipt: GenerationReceipt): Promise<GenerateJobStatus>
|
|
100
105
|
}
|
|
101
106
|
|
|
102
107
|
export type AssetImplementation = AssetProvider
|
package/src/commands/upload.ts
CHANGED
|
@@ -3,11 +3,6 @@ import semver from 'semver'
|
|
|
3
3
|
import { getCliClient } from '../cli-client.js'
|
|
4
4
|
import { packAsset, packPolicyFromInstallMetadata, parsePackDependencies } from '../pack.js'
|
|
5
5
|
import { unchangedUploadResult, uploadResult } from '../output.js'
|
|
6
|
-
import {
|
|
7
|
-
buildTemplateDeployment,
|
|
8
|
-
getTemplateDeploymentStatus,
|
|
9
|
-
uploadTemplateDeployment,
|
|
10
|
-
} from '../template-deployment.js'
|
|
11
6
|
import {
|
|
12
7
|
assetDescriptionSchema,
|
|
13
8
|
assetNameSchema,
|
|
@@ -56,11 +51,7 @@ export async function uploadCommand(
|
|
|
56
51
|
})
|
|
57
52
|
const cwd = opts.cwd ?? process.cwd()
|
|
58
53
|
const type = opts.type
|
|
59
|
-
const { client
|
|
60
|
-
baseUrl: opts.baseUrl,
|
|
61
|
-
requireAuth: true,
|
|
62
|
-
})
|
|
63
|
-
if (!authToken) throw new Error('Not logged in. Run `market login` first.')
|
|
54
|
+
const { client } = await getCliClient({ baseUrl: opts.baseUrl, requireAuth: true })
|
|
64
55
|
const installMetadata = await client.asset.installMetadata()
|
|
65
56
|
const packed = await packAsset(zipFilter, {
|
|
66
57
|
cwd,
|
|
@@ -83,56 +74,26 @@ export async function uploadCommand(
|
|
|
83
74
|
throw new Error(`Asset "${parsedName}" already exists and is owned by another user`)
|
|
84
75
|
}
|
|
85
76
|
|
|
86
|
-
let unchanged = false
|
|
87
77
|
if (existing) {
|
|
88
78
|
const latestZip = await client.asset.downloadZip({
|
|
89
79
|
name: parsedName,
|
|
90
80
|
version: existing.latestVersion,
|
|
91
81
|
})
|
|
92
82
|
const latestBytes = new Uint8Array(await latestZip.arrayBuffer())
|
|
93
|
-
|
|
83
|
+
if (
|
|
94
84
|
existing.description === parsedDescription &&
|
|
95
85
|
depsEqual(existing.npmDependencies, npmDependencies) &&
|
|
96
86
|
depsEqual(existing.assetDependencies, assetDependencies) &&
|
|
97
87
|
depsEqual(existing.skillDependencies, skillDependencies) &&
|
|
98
88
|
bytesEqual(latestBytes, zip)
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
const status = await getTemplateDeploymentStatus({
|
|
104
|
-
baseUrl,
|
|
105
|
-
authToken,
|
|
106
|
-
name: parsedName,
|
|
107
|
-
version: existing.latestVersion,
|
|
108
|
-
})
|
|
109
|
-
if (!status.ready) {
|
|
110
|
-
spinner.stop()
|
|
111
|
-
const root = await buildTemplateDeployment(zipFilter, cwd)
|
|
112
|
-
spinner.start(`Uploading deployment for ${parsedName}@${existing.latestVersion}`)
|
|
113
|
-
await uploadDeployment({
|
|
114
|
-
baseUrl,
|
|
115
|
-
authToken,
|
|
116
|
-
name: parsedName,
|
|
117
|
-
version: existing.latestVersion,
|
|
118
|
-
root,
|
|
119
|
-
spinner,
|
|
120
|
-
})
|
|
121
|
-
}
|
|
89
|
+
) {
|
|
90
|
+
spinner.stop()
|
|
91
|
+
console.log(unchangedUploadResult(parsedName, existing.latestVersion))
|
|
92
|
+
return
|
|
122
93
|
}
|
|
123
|
-
spinner.stop()
|
|
124
|
-
console.log(unchangedUploadResult(parsedName, existing.latestVersion))
|
|
125
|
-
return
|
|
126
94
|
}
|
|
127
95
|
|
|
128
96
|
const version = parsedVersion ?? nextVersion(existing?.latestVersion)
|
|
129
|
-
let deploymentRoot: string | null = null
|
|
130
|
-
if (type === 'template') {
|
|
131
|
-
spinner.stop()
|
|
132
|
-
deploymentRoot = await buildTemplateDeployment(zipFilter, cwd)
|
|
133
|
-
spinner.start(`Uploading ${parsedName}@${version}`)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
97
|
spinner.text = `Uploading ${parsedName}@${version}`
|
|
137
98
|
const uploaded = await client.asset.uploadZip({
|
|
138
99
|
name: parsedName,
|
|
@@ -149,17 +110,6 @@ export async function uploadCommand(
|
|
|
149
110
|
}),
|
|
150
111
|
})
|
|
151
112
|
|
|
152
|
-
if (deploymentRoot) {
|
|
153
|
-
await uploadDeployment({
|
|
154
|
-
baseUrl,
|
|
155
|
-
authToken,
|
|
156
|
-
name: parsedName,
|
|
157
|
-
version: uploaded.version,
|
|
158
|
-
root: deploymentRoot,
|
|
159
|
-
spinner,
|
|
160
|
-
})
|
|
161
|
-
}
|
|
162
|
-
|
|
163
113
|
spinner.stop()
|
|
164
114
|
console.log(uploadResult(parsedName, uploaded.version))
|
|
165
115
|
} catch (err) {
|
|
@@ -168,27 +118,6 @@ export async function uploadCommand(
|
|
|
168
118
|
}
|
|
169
119
|
}
|
|
170
120
|
|
|
171
|
-
async function uploadDeployment(input: {
|
|
172
|
-
baseUrl: string
|
|
173
|
-
authToken: string
|
|
174
|
-
name: string
|
|
175
|
-
version: string
|
|
176
|
-
root: string
|
|
177
|
-
spinner: ReturnType<typeof ora>
|
|
178
|
-
}): Promise<void> {
|
|
179
|
-
input.spinner.text = `Uploading deployment for ${input.name}@${input.version}`
|
|
180
|
-
await uploadTemplateDeployment({
|
|
181
|
-
baseUrl: input.baseUrl,
|
|
182
|
-
authToken: input.authToken,
|
|
183
|
-
name: input.name,
|
|
184
|
-
version: input.version,
|
|
185
|
-
root: input.root,
|
|
186
|
-
onProgress(uploaded, total) {
|
|
187
|
-
input.spinner.text = `Uploading deployment for ${input.name}@${input.version} (${uploaded}/${total})`
|
|
188
|
-
},
|
|
189
|
-
})
|
|
190
|
-
}
|
|
191
|
-
|
|
192
121
|
export function parseUploadDescription(description: string): string {
|
|
193
122
|
try {
|
|
194
123
|
return assetDescriptionSchema.parse(description)
|
package/src/contract.ts
CHANGED
|
@@ -160,12 +160,9 @@ export const contract = {
|
|
|
160
160
|
// same as download.
|
|
161
161
|
fileManifest: oc.input(fileManifestSchema).output(z.custom<AssetFileManifest>()),
|
|
162
162
|
|
|
163
|
-
// Generation
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
// is held open for the length of the job — the market proxies the upstream service's async job
|
|
167
|
-
// statelessly (see generate-job.ts), so no request outlives a client/proxy timeout. The
|
|
168
|
-
// `generateAndWait` client helper drives both.
|
|
163
|
+
// Generation answers immediately: `completed` for fast providers, or `pending` with an
|
|
164
|
+
// unguessable Market Workflow id for slow providers. The Workflow polls and finalizes the
|
|
165
|
+
// upstream job even when the caller disconnects; `generateStatus` only reads its state.
|
|
169
166
|
generate: oc.input(generateAssetSchema).output(generateResponseSchema),
|
|
170
167
|
|
|
171
168
|
generateStatus: oc.input(generateStatusInputSchema).output(generateJobStatusSchema),
|
package/src/index.ts
CHANGED
|
@@ -27,6 +27,7 @@ export type {
|
|
|
27
27
|
AssetImplementation,
|
|
28
28
|
AssetOwner,
|
|
29
29
|
AssetProvider,
|
|
30
|
+
GenerationReceipt,
|
|
30
31
|
RankedAssetSearchResult,
|
|
31
32
|
AssetSearchInput,
|
|
32
33
|
AssetUploadZipInput,
|
|
@@ -90,13 +91,6 @@ export type {
|
|
|
90
91
|
GenerateJobStatus,
|
|
91
92
|
} from './schemas.js'
|
|
92
93
|
|
|
93
|
-
export {
|
|
94
|
-
encodeGenerationJobId,
|
|
95
|
-
decodeGenerationJobId,
|
|
96
|
-
generationJobSchema,
|
|
97
|
-
} from './generate-job.js'
|
|
98
|
-
export type { GenerationJob } from './generate-job.js'
|
|
99
|
-
|
|
100
94
|
// Constants
|
|
101
95
|
export { MAX_FILE_SIZE, ALLOWED_EXTENSIONS, ASSET_TYPE_LABELS } from './constants.js'
|
|
102
96
|
|
package/src/schemas.ts
CHANGED
|
@@ -151,9 +151,7 @@ export const generatedAssetSchema = z.object({
|
|
|
151
151
|
version: semverSchema,
|
|
152
152
|
})
|
|
153
153
|
|
|
154
|
-
//
|
|
155
|
-
// providers like the humanoid model, whose upstream job runs for minutes — see generate-job.ts). A
|
|
156
|
-
// discriminated union keeps "pending without a job id" and "done without an asset" unrepresentable.
|
|
154
|
+
// Fast providers finish inline; slow providers return a Workflow id to poll.
|
|
157
155
|
export const generateResponseSchema = z.discriminatedUnion('status', [
|
|
158
156
|
generatedAssetSchema.extend({ status: z.literal('completed') }),
|
|
159
157
|
z.object({ status: z.literal('pending'), jobId: z.string().min(1) }),
|
package/dist/generate-job.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
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
|
-
access: z.ZodDefault<z.ZodEnum<{
|
|
18
|
-
public: "public";
|
|
19
|
-
private: "private";
|
|
20
|
-
}>>;
|
|
21
|
-
}, z.core.$strip>;
|
|
22
|
-
export type GenerationJob = z.infer<typeof generationJobSchema>;
|
|
23
|
-
export declare function encodeGenerationJobId(job: GenerationJob): string;
|
|
24
|
-
export declare function decodeGenerationJobId(jobId: string): GenerationJob;
|
|
25
|
-
//# sourceMappingURL=generate-job.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;;;;;;;;;;;;;;;;;;;iBAS9B,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"}
|
package/dist/generate-job.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { assetAccessSchema, 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
|
-
// The resolved visibility to persist when the job finalizes. Carried in the (stateless) jobId so
|
|
16
|
-
// the finalizing poll sets the same access the caller chose at start. Defaults to public for jobs
|
|
17
|
-
// minted before this field existed.
|
|
18
|
-
access: assetAccessSchema.default('public'),
|
|
19
|
-
});
|
|
20
|
-
export function encodeGenerationJobId(job) {
|
|
21
|
-
return Buffer.from(JSON.stringify(job), 'utf8').toString('base64url');
|
|
22
|
-
}
|
|
23
|
-
export function decodeGenerationJobId(jobId) {
|
|
24
|
-
let parsed;
|
|
25
|
-
try {
|
|
26
|
-
parsed = JSON.parse(Buffer.from(jobId, 'base64url').toString('utf8'));
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
throw new Error('Malformed generation job id');
|
|
30
|
-
}
|
|
31
|
-
return generationJobSchema.parse(parsed);
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=generate-job.js.map
|
package/dist/generate-job.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEjE,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;IAC5B,iGAAiG;IACjG,kGAAkG;IAClG,oCAAoC;IACpC,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;CAC5C,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,20 +0,0 @@
|
|
|
1
|
-
export interface TemplateDeploymentStatus {
|
|
2
|
-
ready: boolean;
|
|
3
|
-
url: string | null;
|
|
4
|
-
}
|
|
5
|
-
export interface UploadTemplateDeploymentInput {
|
|
6
|
-
baseUrl: string;
|
|
7
|
-
authToken: string;
|
|
8
|
-
name: string;
|
|
9
|
-
version: string;
|
|
10
|
-
root: string;
|
|
11
|
-
onProgress?(uploaded: number, total: number): void;
|
|
12
|
-
}
|
|
13
|
-
export declare function buildTemplateDeployment(zipFilter: string, cwd: string): Promise<string>;
|
|
14
|
-
export declare function getTemplateDeploymentStatus(input: Omit<UploadTemplateDeploymentInput, 'root' | 'onProgress'>): Promise<TemplateDeploymentStatus>;
|
|
15
|
-
export declare function uploadTemplateDeployment(input: UploadTemplateDeploymentInput): Promise<string>;
|
|
16
|
-
export declare function deploymentFiles(root: string): Promise<Array<{
|
|
17
|
-
absolutePath: string;
|
|
18
|
-
path: string;
|
|
19
|
-
}>>;
|
|
20
|
-
//# sourceMappingURL=template-deployment.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-deployment.d.ts","sourceRoot":"","sources":["../src/template-deployment.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAA;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACnD;AAED,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa7F;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,IAAI,CAAC,6BAA6B,EAAE,MAAM,GAAG,YAAY,CAAC,GAChE,OAAO,CAAC,wBAAwB,CAAC,CAOnC;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAuBxD"}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import * as fs from 'node:fs/promises';
|
|
2
|
-
import * as path from 'node:path';
|
|
3
|
-
import { detectPackageManager, runScript } from 'nypm';
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
const deploymentStatusSchema = z.object({
|
|
6
|
-
ready: z.boolean(),
|
|
7
|
-
url: z.string().url().nullable(),
|
|
8
|
-
});
|
|
9
|
-
const deploymentCompleteSchema = z.object({
|
|
10
|
-
url: z.string().url(),
|
|
11
|
-
});
|
|
12
|
-
export async function buildTemplateDeployment(zipFilter, cwd) {
|
|
13
|
-
const sourceRoot = path.resolve(cwd, zipFilter);
|
|
14
|
-
const stat = await fs.stat(sourceRoot).catch(() => null);
|
|
15
|
-
if (!stat?.isDirectory()) {
|
|
16
|
-
throw new Error('Template uploads require a project directory so Market can run its build');
|
|
17
|
-
}
|
|
18
|
-
const packageManager = (await detectPackageManager(sourceRoot)) ?? 'npm';
|
|
19
|
-
await runScript('build', { cwd: sourceRoot, packageManager });
|
|
20
|
-
const deploymentRoot = path.join(sourceRoot, 'dist');
|
|
21
|
-
await requireFile(path.join(deploymentRoot, 'index.html'), 'dist/index.html');
|
|
22
|
-
await requireFile(path.join(deploymentRoot, 'schema.json'), 'dist/schema.json');
|
|
23
|
-
return deploymentRoot;
|
|
24
|
-
}
|
|
25
|
-
export async function getTemplateDeploymentStatus(input) {
|
|
26
|
-
const response = await fetch(deploymentEndpoint(input), {
|
|
27
|
-
headers: authHeaders(input.authToken),
|
|
28
|
-
});
|
|
29
|
-
const body = await responseBody(response);
|
|
30
|
-
if (!response.ok)
|
|
31
|
-
throw httpError('read template deployment', response, body);
|
|
32
|
-
return deploymentStatusSchema.parse(body);
|
|
33
|
-
}
|
|
34
|
-
export async function uploadTemplateDeployment(input) {
|
|
35
|
-
const files = await deploymentFiles(input.root);
|
|
36
|
-
if (files.length === 0)
|
|
37
|
-
throw new Error('Template deployment is empty');
|
|
38
|
-
await checkedFetch(new URL(`${deploymentEndpoint(input).pathname}/prepare`, input.baseUrl), { method: 'POST', headers: authHeaders(input.authToken) }, 'prepare template deployment');
|
|
39
|
-
let uploaded = 0;
|
|
40
|
-
for (let start = 0; start < files.length; start += 6) {
|
|
41
|
-
await Promise.all(files.slice(start, start + 6).map(async (file) => {
|
|
42
|
-
const url = deploymentEndpoint(input);
|
|
43
|
-
url.searchParams.set('path', file.path);
|
|
44
|
-
const bytes = await fs.readFile(file.absolutePath);
|
|
45
|
-
await checkedFetch(url, {
|
|
46
|
-
method: 'PUT',
|
|
47
|
-
headers: authHeaders(input.authToken),
|
|
48
|
-
body: new Blob([bytes]),
|
|
49
|
-
}, `upload ${file.path}`);
|
|
50
|
-
uploaded += 1;
|
|
51
|
-
input.onProgress?.(uploaded, files.length);
|
|
52
|
-
}));
|
|
53
|
-
}
|
|
54
|
-
const completeUrl = new URL(`${deploymentEndpoint(input).pathname}/complete`, input.baseUrl);
|
|
55
|
-
const response = await fetch(completeUrl, {
|
|
56
|
-
method: 'POST',
|
|
57
|
-
headers: authHeaders(input.authToken),
|
|
58
|
-
});
|
|
59
|
-
const body = await responseBody(response);
|
|
60
|
-
if (!response.ok)
|
|
61
|
-
throw httpError('publish template deployment', response, body);
|
|
62
|
-
return deploymentCompleteSchema.parse(body).url;
|
|
63
|
-
}
|
|
64
|
-
export async function deploymentFiles(root) {
|
|
65
|
-
const files = [];
|
|
66
|
-
async function visit(directory) {
|
|
67
|
-
const entries = await fs.readdir(directory, { withFileTypes: true });
|
|
68
|
-
for (const entry of entries) {
|
|
69
|
-
const absolutePath = path.join(directory, entry.name);
|
|
70
|
-
if (entry.isDirectory()) {
|
|
71
|
-
await visit(absolutePath);
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
if (!entry.isFile()) {
|
|
75
|
-
throw new Error(`Template deployment contains an unsupported entry: ${absolutePath}`);
|
|
76
|
-
}
|
|
77
|
-
files.push({
|
|
78
|
-
absolutePath,
|
|
79
|
-
path: path.relative(root, absolutePath).split(path.sep).join('/'),
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
await visit(root);
|
|
84
|
-
return files.sort((a, b) => a.path.localeCompare(b.path));
|
|
85
|
-
}
|
|
86
|
-
function deploymentEndpoint(input) {
|
|
87
|
-
return new URL(`/api/templates/${encodeURIComponent(input.name)}/${encodeURIComponent(input.version)}/deployment`, input.baseUrl);
|
|
88
|
-
}
|
|
89
|
-
function authHeaders(token) {
|
|
90
|
-
return new Headers({ authorization: `Bearer ${token}` });
|
|
91
|
-
}
|
|
92
|
-
async function checkedFetch(url, init, action) {
|
|
93
|
-
const response = await fetch(url, init);
|
|
94
|
-
if (response.ok)
|
|
95
|
-
return;
|
|
96
|
-
throw httpError(action, response, await responseBody(response));
|
|
97
|
-
}
|
|
98
|
-
async function responseBody(response) {
|
|
99
|
-
const text = await response.text();
|
|
100
|
-
if (!text)
|
|
101
|
-
return {};
|
|
102
|
-
try {
|
|
103
|
-
return JSON.parse(text);
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
return { raw: text };
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
function httpError(action, response, body) {
|
|
110
|
-
return new Error(`${action} failed (${response.status}): ${JSON.stringify(body)}`);
|
|
111
|
-
}
|
|
112
|
-
async function requireFile(file, label) {
|
|
113
|
-
const stat = await fs.stat(file).catch(() => null);
|
|
114
|
-
if (!stat?.isFile())
|
|
115
|
-
throw new Error(`Template build did not produce ${label}`);
|
|
116
|
-
}
|
|
117
|
-
//# sourceMappingURL=template-deployment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-deployment.js","sourceRoot":"","sources":["../src/template-deployment.ts"],"names":[],"mappings":"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"}
|
package/src/generate-job.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod'
|
|
2
|
-
import { assetAccessSchema, 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
|
-
// The resolved visibility to persist when the job finalizes. Carried in the (stateless) jobId so
|
|
17
|
-
// the finalizing poll sets the same access the caller chose at start. Defaults to public for jobs
|
|
18
|
-
// minted before this field existed.
|
|
19
|
-
access: assetAccessSchema.default('public'),
|
|
20
|
-
})
|
|
21
|
-
export type GenerationJob = z.infer<typeof generationJobSchema>
|
|
22
|
-
|
|
23
|
-
export function encodeGenerationJobId(job: GenerationJob): string {
|
|
24
|
-
return Buffer.from(JSON.stringify(job), 'utf8').toString('base64url')
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export function decodeGenerationJobId(jobId: string): GenerationJob {
|
|
28
|
-
let parsed: unknown
|
|
29
|
-
try {
|
|
30
|
-
parsed = JSON.parse(Buffer.from(jobId, 'base64url').toString('utf8'))
|
|
31
|
-
} catch {
|
|
32
|
-
throw new Error('Malformed generation job id')
|
|
33
|
-
}
|
|
34
|
-
return generationJobSchema.parse(parsed)
|
|
35
|
-
}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import * as fs from 'node:fs/promises'
|
|
2
|
-
import * as path from 'node:path'
|
|
3
|
-
import { detectPackageManager, runScript } from 'nypm'
|
|
4
|
-
import { z } from 'zod'
|
|
5
|
-
|
|
6
|
-
const deploymentStatusSchema = z.object({
|
|
7
|
-
ready: z.boolean(),
|
|
8
|
-
url: z.string().url().nullable(),
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
const deploymentCompleteSchema = z.object({
|
|
12
|
-
url: z.string().url(),
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
export interface TemplateDeploymentStatus {
|
|
16
|
-
ready: boolean
|
|
17
|
-
url: string | null
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export interface UploadTemplateDeploymentInput {
|
|
21
|
-
baseUrl: string
|
|
22
|
-
authToken: string
|
|
23
|
-
name: string
|
|
24
|
-
version: string
|
|
25
|
-
root: string
|
|
26
|
-
onProgress?(uploaded: number, total: number): void
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export async function buildTemplateDeployment(zipFilter: string, cwd: string): Promise<string> {
|
|
30
|
-
const sourceRoot = path.resolve(cwd, zipFilter)
|
|
31
|
-
const stat = await fs.stat(sourceRoot).catch(() => null)
|
|
32
|
-
if (!stat?.isDirectory()) {
|
|
33
|
-
throw new Error('Template uploads require a project directory so Market can run its build')
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const packageManager = (await detectPackageManager(sourceRoot)) ?? 'npm'
|
|
37
|
-
await runScript('build', { cwd: sourceRoot, packageManager })
|
|
38
|
-
const deploymentRoot = path.join(sourceRoot, 'dist')
|
|
39
|
-
await requireFile(path.join(deploymentRoot, 'index.html'), 'dist/index.html')
|
|
40
|
-
await requireFile(path.join(deploymentRoot, 'schema.json'), 'dist/schema.json')
|
|
41
|
-
return deploymentRoot
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export async function getTemplateDeploymentStatus(
|
|
45
|
-
input: Omit<UploadTemplateDeploymentInput, 'root' | 'onProgress'>,
|
|
46
|
-
): Promise<TemplateDeploymentStatus> {
|
|
47
|
-
const response = await fetch(deploymentEndpoint(input), {
|
|
48
|
-
headers: authHeaders(input.authToken),
|
|
49
|
-
})
|
|
50
|
-
const body = await responseBody(response)
|
|
51
|
-
if (!response.ok) throw httpError('read template deployment', response, body)
|
|
52
|
-
return deploymentStatusSchema.parse(body)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export async function uploadTemplateDeployment(
|
|
56
|
-
input: UploadTemplateDeploymentInput,
|
|
57
|
-
): Promise<string> {
|
|
58
|
-
const files = await deploymentFiles(input.root)
|
|
59
|
-
if (files.length === 0) throw new Error('Template deployment is empty')
|
|
60
|
-
|
|
61
|
-
await checkedFetch(
|
|
62
|
-
new URL(`${deploymentEndpoint(input).pathname}/prepare`, input.baseUrl),
|
|
63
|
-
{ method: 'POST', headers: authHeaders(input.authToken) },
|
|
64
|
-
'prepare template deployment',
|
|
65
|
-
)
|
|
66
|
-
|
|
67
|
-
let uploaded = 0
|
|
68
|
-
for (let start = 0; start < files.length; start += 6) {
|
|
69
|
-
await Promise.all(
|
|
70
|
-
files.slice(start, start + 6).map(async (file) => {
|
|
71
|
-
const url = deploymentEndpoint(input)
|
|
72
|
-
url.searchParams.set('path', file.path)
|
|
73
|
-
const bytes = await fs.readFile(file.absolutePath)
|
|
74
|
-
await checkedFetch(
|
|
75
|
-
url,
|
|
76
|
-
{
|
|
77
|
-
method: 'PUT',
|
|
78
|
-
headers: authHeaders(input.authToken),
|
|
79
|
-
body: new Blob([bytes]),
|
|
80
|
-
},
|
|
81
|
-
`upload ${file.path}`,
|
|
82
|
-
)
|
|
83
|
-
uploaded += 1
|
|
84
|
-
input.onProgress?.(uploaded, files.length)
|
|
85
|
-
}),
|
|
86
|
-
)
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const completeUrl = new URL(`${deploymentEndpoint(input).pathname}/complete`, input.baseUrl)
|
|
90
|
-
const response = await fetch(completeUrl, {
|
|
91
|
-
method: 'POST',
|
|
92
|
-
headers: authHeaders(input.authToken),
|
|
93
|
-
})
|
|
94
|
-
const body = await responseBody(response)
|
|
95
|
-
if (!response.ok) throw httpError('publish template deployment', response, body)
|
|
96
|
-
return deploymentCompleteSchema.parse(body).url
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export async function deploymentFiles(
|
|
100
|
-
root: string,
|
|
101
|
-
): Promise<Array<{ absolutePath: string; path: string }>> {
|
|
102
|
-
const files: Array<{ absolutePath: string; path: string }> = []
|
|
103
|
-
|
|
104
|
-
async function visit(directory: string): Promise<void> {
|
|
105
|
-
const entries = await fs.readdir(directory, { withFileTypes: true })
|
|
106
|
-
for (const entry of entries) {
|
|
107
|
-
const absolutePath = path.join(directory, entry.name)
|
|
108
|
-
if (entry.isDirectory()) {
|
|
109
|
-
await visit(absolutePath)
|
|
110
|
-
continue
|
|
111
|
-
}
|
|
112
|
-
if (!entry.isFile()) {
|
|
113
|
-
throw new Error(`Template deployment contains an unsupported entry: ${absolutePath}`)
|
|
114
|
-
}
|
|
115
|
-
files.push({
|
|
116
|
-
absolutePath,
|
|
117
|
-
path: path.relative(root, absolutePath).split(path.sep).join('/'),
|
|
118
|
-
})
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
await visit(root)
|
|
123
|
-
return files.sort((a, b) => a.path.localeCompare(b.path))
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
function deploymentEndpoint(input: { baseUrl: string; name: string; version: string }): URL {
|
|
127
|
-
return new URL(
|
|
128
|
-
`/api/templates/${encodeURIComponent(input.name)}/${encodeURIComponent(input.version)}/deployment`,
|
|
129
|
-
input.baseUrl,
|
|
130
|
-
)
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
function authHeaders(token: string): Headers {
|
|
134
|
-
return new Headers({ authorization: `Bearer ${token}` })
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
async function checkedFetch(url: URL, init: RequestInit, action: string): Promise<void> {
|
|
138
|
-
const response = await fetch(url, init)
|
|
139
|
-
if (response.ok) return
|
|
140
|
-
throw httpError(action, response, await responseBody(response))
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
async function responseBody(response: Response): Promise<unknown> {
|
|
144
|
-
const text = await response.text()
|
|
145
|
-
if (!text) return {}
|
|
146
|
-
try {
|
|
147
|
-
return JSON.parse(text)
|
|
148
|
-
} catch {
|
|
149
|
-
return { raw: text }
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
function httpError(action: string, response: Response, body: unknown): Error {
|
|
154
|
-
return new Error(`${action} failed (${response.status}): ${JSON.stringify(body)}`)
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
async function requireFile(file: string, label: string): Promise<void> {
|
|
158
|
-
const stat = await fs.stat(file).catch(() => null)
|
|
159
|
-
if (!stat?.isFile()) throw new Error(`Template build did not produce ${label}`)
|
|
160
|
-
}
|