maoda-commander-tt 0.0.69 → 0.0.70
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.
|
@@ -608,7 +608,7 @@ function createAgentProgressReporter(options) {
|
|
|
608
608
|
// src/commands/ai/ai-audio-command.ts
|
|
609
609
|
import { resolve as resolve5 } from "node:path";
|
|
610
610
|
import { Option as Option3 } from "commander";
|
|
611
|
-
import { ok as
|
|
611
|
+
import { ok as ok27 } from "rockbed/error";
|
|
612
612
|
|
|
613
613
|
// src/bedrock/cross-app-settings/file-cross-app-settings-writer.ts
|
|
614
614
|
import { randomUUID } from "node:crypto";
|
|
@@ -2418,11 +2418,11 @@ function parseJimengAudioTaskId(taskId) {
|
|
|
2418
2418
|
|
|
2419
2419
|
// src/modules/audio-generation/xyq-audio-generation-provider.ts
|
|
2420
2420
|
import { Disposable as Disposable10 } from "rockbed/dispose";
|
|
2421
|
-
import { err as err18, ok as
|
|
2421
|
+
import { err as err18, ok as ok24 } from "rockbed/error";
|
|
2422
2422
|
|
|
2423
2423
|
// src/modules/xyq/xyq-client.ts
|
|
2424
2424
|
import { createHash as createHash2 } from "node:crypto";
|
|
2425
|
-
import { ok as
|
|
2425
|
+
import { ok as ok22 } from "rockbed/error";
|
|
2426
2426
|
|
|
2427
2427
|
// src/modules/xyq/xyq-auth.ts
|
|
2428
2428
|
import { ok as ok17 } from "rockbed/error";
|
|
@@ -2711,7 +2711,7 @@ function isRecord8(value) {
|
|
|
2711
2711
|
// src/modules/xyq/xyq-session.ts
|
|
2712
2712
|
import * as fs6 from "node:fs/promises";
|
|
2713
2713
|
import { createHash, randomUUID as randomUUID8 } from "node:crypto";
|
|
2714
|
-
import { ok as
|
|
2714
|
+
import { ok as ok21 } from "rockbed/error";
|
|
2715
2715
|
|
|
2716
2716
|
// src/modules/xyq/xyq-asset-cache.ts
|
|
2717
2717
|
import { randomUUID as randomUUID7 } from "node:crypto";
|
|
@@ -3062,6 +3062,150 @@ async function readXyqGenerationPpeHeaders(settingsReader) {
|
|
|
3062
3062
|
});
|
|
3063
3063
|
}
|
|
3064
3064
|
|
|
3065
|
+
// src/modules/xyq/xyq-image-results.ts
|
|
3066
|
+
import { ok as ok20 } from "rockbed/error";
|
|
3067
|
+
function collectXyqImageReferences(value) {
|
|
3068
|
+
const references = /* @__PURE__ */ new Map();
|
|
3069
|
+
collect(value, void 0, references, 0);
|
|
3070
|
+
return [...references.values()];
|
|
3071
|
+
}
|
|
3072
|
+
async function resolveXyqImageArtifacts(input) {
|
|
3073
|
+
const references = input.artifacts.flatMap((artifact) => artifact.images);
|
|
3074
|
+
if (references.length === 0) {
|
|
3075
|
+
return ok20(input.artifacts.map((artifact) => ({ ...artifact, images: [] })));
|
|
3076
|
+
}
|
|
3077
|
+
if (references.some((image) => !image.pippitAssetId)) {
|
|
3078
|
+
return invalidResult("XYQ \u56FE\u7247\u751F\u6210\u7ED3\u679C\u7F3A\u5C11 pippit_asset_id\uFF0C\u65E0\u6CD5\u67E5\u8BE2\u65E0\u6C34\u5370\u539F\u56FE");
|
|
3079
|
+
}
|
|
3080
|
+
const runExtra = parseRecord(input.run.extra);
|
|
3081
|
+
const projectId = normalize(input.thread.project_id) ?? normalize(input.run.project_id) ?? normalize(parseRecord(runExtra?.client_extra)?.project_id) ?? /^p(\d+)_/.exec(input.threadId)?.[1];
|
|
3082
|
+
if (!projectId) {
|
|
3083
|
+
return invalidResult("XYQ \u56FE\u7247\u4EFB\u52A1\u7F3A\u5C11 project_id\uFF0C\u65E0\u6CD5\u67E5\u8BE2\u65E0\u6C34\u5370\u539F\u56FE");
|
|
3084
|
+
}
|
|
3085
|
+
const pippitAssetIds = [...new Set(references.map((image) => image.pippitAssetId))];
|
|
3086
|
+
const response = await requestXyqJson(
|
|
3087
|
+
input.fetcher,
|
|
3088
|
+
`${XYQ_ORIGIN}/api/biz/v1/asset/query`,
|
|
3089
|
+
{
|
|
3090
|
+
method: "POST",
|
|
3091
|
+
headers: { ...input.headers, "content-type": "application/json" },
|
|
3092
|
+
body: JSON.stringify({ Base: { Client: "web" }, project_id: projectId, pippit_asset_ids: pippitAssetIds })
|
|
3093
|
+
},
|
|
3094
|
+
{
|
|
3095
|
+
requestFailedCode: XyqErrorCode.ImageQueryRequestFailed,
|
|
3096
|
+
responseInvalidCode: XyqErrorCode.ImageQueryResponseInvalid,
|
|
3097
|
+
operation: "\u67E5\u8BE2 XYQ \u56FE\u7247\u65E0\u6C34\u5370\u539F\u56FE"
|
|
3098
|
+
}
|
|
3099
|
+
);
|
|
3100
|
+
if (!response.ok) return response;
|
|
3101
|
+
const data = isRecord7(response.value.data) ? response.value.data : {};
|
|
3102
|
+
if (!Array.isArray(data.Assets)) {
|
|
3103
|
+
return invalidResult("XYQ \u56FE\u7247\u8D44\u4EA7\u54CD\u5E94\u7F3A\u5C11 Assets\uFF0C\u65E0\u6CD5\u83B7\u53D6\u65E0\u6C34\u5370\u539F\u56FE");
|
|
3104
|
+
}
|
|
3105
|
+
const urls = /* @__PURE__ */ new Map();
|
|
3106
|
+
for (const asset of data.Assets) {
|
|
3107
|
+
if (!isRecord7(asset) || asset.AssetType !== 1) continue;
|
|
3108
|
+
const id = normalize(asset.PippitAssetID);
|
|
3109
|
+
if (!id || !pippitAssetIds.includes(id)) continue;
|
|
3110
|
+
const image = isRecord7(asset.Image) ? asset.Image : {};
|
|
3111
|
+
const preview = isRecord7(image.not_watermark_preview) ? image.not_watermark_preview : {};
|
|
3112
|
+
const original = isRecord7(preview.previewinfo) ? preview.previewinfo : {};
|
|
3113
|
+
const url = httpUrl(original.preview_url);
|
|
3114
|
+
if (url) urls.set(id, url);
|
|
3115
|
+
}
|
|
3116
|
+
const missingId = pippitAssetIds.find((id) => !urls.has(id));
|
|
3117
|
+
if (missingId) {
|
|
3118
|
+
return invalidResult(`XYQ \u56FE\u7247\u8D44\u4EA7 ${missingId} \u7F3A\u5C11\u65E0\u6C34\u5370\u539F\u56FE\u5730\u5740`);
|
|
3119
|
+
}
|
|
3120
|
+
return ok20(input.artifacts.map((artifact) => ({
|
|
3121
|
+
...artifact,
|
|
3122
|
+
images: artifact.images.map((image) => ({ ...image, downloadUrl: urls.get(image.pippitAssetId) }))
|
|
3123
|
+
})));
|
|
3124
|
+
}
|
|
3125
|
+
function collect(value, inheritedId, references, depth) {
|
|
3126
|
+
if (depth > 10) return;
|
|
3127
|
+
if (typeof value === "string") {
|
|
3128
|
+
const parsed = parseValue(value);
|
|
3129
|
+
if (parsed !== void 0) collect(parsed, inheritedId, references, depth + 1);
|
|
3130
|
+
return;
|
|
3131
|
+
}
|
|
3132
|
+
if (Array.isArray(value)) {
|
|
3133
|
+
for (const child of value) collect(child, inheritedId, references, depth + 1);
|
|
3134
|
+
return;
|
|
3135
|
+
}
|
|
3136
|
+
if (!isRecord7(value)) return;
|
|
3137
|
+
const pippitAssetId = normalize(value.pippit_asset_id ?? value.pippitAssetId) ?? inheritedId;
|
|
3138
|
+
for (const [key, child] of Object.entries(value)) {
|
|
3139
|
+
if (key === "image" || key === "images") collectExplicit(child, pippitAssetId, references, depth + 1);
|
|
3140
|
+
collect(child, pippitAssetId, references, depth + 1);
|
|
3141
|
+
}
|
|
3142
|
+
}
|
|
3143
|
+
function collectExplicit(value, inheritedId, references, depth) {
|
|
3144
|
+
if (depth > 10) return;
|
|
3145
|
+
if (typeof value === "string") {
|
|
3146
|
+
const parsed = parseValue(value);
|
|
3147
|
+
if (parsed !== void 0) collectExplicit(parsed, inheritedId, references, depth + 1);
|
|
3148
|
+
return;
|
|
3149
|
+
}
|
|
3150
|
+
if (Array.isArray(value)) {
|
|
3151
|
+
for (const child of value) collectExplicit(child, inheritedId, references, depth + 1);
|
|
3152
|
+
return;
|
|
3153
|
+
}
|
|
3154
|
+
if (!isRecord7(value)) return;
|
|
3155
|
+
const metadata = parseRecord(value.metadata) ?? {};
|
|
3156
|
+
const assetId = normalize(value.asset_id ?? value.assetId);
|
|
3157
|
+
const pippitAssetId = normalize(value.pippit_asset_id ?? value.pippitAssetId) ?? inheritedId;
|
|
3158
|
+
const agentUrl = normalize(value.url ?? value.download_url ?? value.downloadUrl);
|
|
3159
|
+
const sceneUrls = parseRecord(value.scene_urls ?? value.sceneUrls);
|
|
3160
|
+
if (!assetId && !pippitAssetId && !agentUrl && !sceneUrls) return;
|
|
3161
|
+
const width = number(metadata.width ?? value.width);
|
|
3162
|
+
const height = number(metadata.height ?? value.height);
|
|
3163
|
+
const name = normalize(value.name);
|
|
3164
|
+
const reference = {
|
|
3165
|
+
...assetId ? { assetId } : {},
|
|
3166
|
+
...pippitAssetId ? { pippitAssetId } : {},
|
|
3167
|
+
...width !== void 0 ? { width } : {},
|
|
3168
|
+
...height !== void 0 ? { height } : {},
|
|
3169
|
+
...name ? { name } : {}
|
|
3170
|
+
};
|
|
3171
|
+
const identity = assetId ? `asset:${assetId}` : pippitAssetId ? `pippit:${pippitAssetId}` : `image:${references.size}`;
|
|
3172
|
+
references.set(identity, reference);
|
|
3173
|
+
}
|
|
3174
|
+
function invalidResult(message) {
|
|
3175
|
+
return xyqError(XyqErrorCode.ImageQueryResponseInvalid, message);
|
|
3176
|
+
}
|
|
3177
|
+
function httpUrl(value) {
|
|
3178
|
+
const normalized = typeof value === "string" ? value.trim() : "";
|
|
3179
|
+
try {
|
|
3180
|
+
const url = new URL(normalized);
|
|
3181
|
+
return url.protocol === "https:" || url.protocol === "http:" ? normalized : void 0;
|
|
3182
|
+
} catch {
|
|
3183
|
+
return void 0;
|
|
3184
|
+
}
|
|
3185
|
+
}
|
|
3186
|
+
function normalize(value) {
|
|
3187
|
+
if (typeof value !== "string" && typeof value !== "number") return void 0;
|
|
3188
|
+
return String(value).trim() || void 0;
|
|
3189
|
+
}
|
|
3190
|
+
function number(value) {
|
|
3191
|
+
if (value === void 0 || value === null || value === "") return void 0;
|
|
3192
|
+
const parsed = Number(value);
|
|
3193
|
+
return Number.isFinite(parsed) ? parsed : void 0;
|
|
3194
|
+
}
|
|
3195
|
+
function parseRecord(value) {
|
|
3196
|
+
const parsed = typeof value === "string" ? parseValue(value) : value;
|
|
3197
|
+
return isRecord7(parsed) ? parsed : void 0;
|
|
3198
|
+
}
|
|
3199
|
+
function parseValue(value) {
|
|
3200
|
+
const text = value.trim();
|
|
3201
|
+
if (!text.startsWith("{") && !text.startsWith("[")) return void 0;
|
|
3202
|
+
try {
|
|
3203
|
+
return JSON.parse(text);
|
|
3204
|
+
} catch {
|
|
3205
|
+
return void 0;
|
|
3206
|
+
}
|
|
3207
|
+
}
|
|
3208
|
+
|
|
3065
3209
|
// src/modules/xyq/xyq-session.ts
|
|
3066
3210
|
var ASSET_TYPE = {
|
|
3067
3211
|
video: "1",
|
|
@@ -3141,7 +3285,7 @@ var XyqSession = class {
|
|
|
3141
3285
|
}
|
|
3142
3286
|
);
|
|
3143
3287
|
if (!responseResult.ok) return responseResult;
|
|
3144
|
-
return
|
|
3288
|
+
return ok21({
|
|
3145
3289
|
taskId: `${XYQ_IMAGE_TASK_ID_PREFIX}${threadId}`,
|
|
3146
3290
|
threadId,
|
|
3147
3291
|
clientRunId,
|
|
@@ -3191,10 +3335,19 @@ var XyqSession = class {
|
|
|
3191
3335
|
const runRecord = isRecord7(run) ? run : {};
|
|
3192
3336
|
const serverRunId = normalizeString2(runRecord.run_id);
|
|
3193
3337
|
const entryList = Array.isArray(runRecord.entry_list) ? runRecord.entry_list : [];
|
|
3194
|
-
const
|
|
3195
|
-
const
|
|
3196
|
-
const
|
|
3197
|
-
|
|
3338
|
+
const artifactReferences = entryList.map(extractImageArtifact).filter((artifact) => artifact !== void 0);
|
|
3339
|
+
const state = mapXyqRunState(toNumber(runRecord.state));
|
|
3340
|
+
const artifactsResult = state === "completed" ? await resolveXyqImageArtifacts({
|
|
3341
|
+
fetcher: this._fetcher,
|
|
3342
|
+
headers: { ...this._headers(), ...ppeHeadersResult.value },
|
|
3343
|
+
threadId,
|
|
3344
|
+
thread,
|
|
3345
|
+
run: runRecord,
|
|
3346
|
+
artifacts: artifactReferences
|
|
3347
|
+
}) : ok21(artifactReferences.map((artifact) => ({ ...artifact, images: [] })));
|
|
3348
|
+
if (!artifactsResult.ok) return artifactsResult;
|
|
3349
|
+
const artifacts = artifactsResult.value;
|
|
3350
|
+
return ok21({
|
|
3198
3351
|
taskId: `${XYQ_IMAGE_TASK_ID_PREFIX}${threadId}`,
|
|
3199
3352
|
threadId,
|
|
3200
3353
|
...serverRunId ? { runId: serverRunId } : {},
|
|
@@ -3217,10 +3370,10 @@ var XyqSession = class {
|
|
|
3217
3370
|
const result = await this.queryImage(input);
|
|
3218
3371
|
if (!result.ok) return result;
|
|
3219
3372
|
if (isTerminalXyqTaskState(result.value.state)) {
|
|
3220
|
-
return
|
|
3373
|
+
return ok21({ ...result.value, timedOut: false });
|
|
3221
3374
|
}
|
|
3222
3375
|
const remainingMs = deadline - this._now();
|
|
3223
|
-
if (remainingMs <= 0) return
|
|
3376
|
+
if (remainingMs <= 0) return ok21({ ...result.value, timedOut: true });
|
|
3224
3377
|
try {
|
|
3225
3378
|
await this._sleep(Math.min(result.value.retryAfterSeconds * 1e3, remainingMs), input.signal);
|
|
3226
3379
|
} catch (caughtError) {
|
|
@@ -3268,7 +3421,7 @@ var XyqSession = class {
|
|
|
3268
3421
|
"\u521B\u5EFA XYQ \u56FE\u7247\u753B\u5E03\u9879\u76EE\u6210\u529F\uFF0C\u4F46\u54CD\u5E94\u7F3A\u5C11 project_id \u6216 canvas_asset_id"
|
|
3269
3422
|
);
|
|
3270
3423
|
}
|
|
3271
|
-
return
|
|
3424
|
+
return ok21({ projectId, canvasAssetId });
|
|
3272
3425
|
}
|
|
3273
3426
|
async submitAudio(input) {
|
|
3274
3427
|
const prompt = input.prompt.trim();
|
|
@@ -3329,7 +3482,7 @@ var XyqSession = class {
|
|
|
3329
3482
|
if (!responseResult.ok) {
|
|
3330
3483
|
return responseResult;
|
|
3331
3484
|
}
|
|
3332
|
-
return
|
|
3485
|
+
return ok21({
|
|
3333
3486
|
taskId: createXyqTaskId(threadId),
|
|
3334
3487
|
threadId,
|
|
3335
3488
|
clientRunId,
|
|
@@ -3388,7 +3541,7 @@ var XyqSession = class {
|
|
|
3388
3541
|
const providerState = mapXyqRunState(toNumber(runRecord.state));
|
|
3389
3542
|
const state = hasUsableAudioOutput(artifacts) ? "completed" : providerState;
|
|
3390
3543
|
const retryAfterSeconds = isTerminalXyqTaskState(state) ? 0 : 2;
|
|
3391
|
-
return
|
|
3544
|
+
return ok21({
|
|
3392
3545
|
taskId: createXyqTaskId(threadId),
|
|
3393
3546
|
threadId,
|
|
3394
3547
|
...serverRunId ? { runId: serverRunId } : {},
|
|
@@ -3419,11 +3572,11 @@ var XyqSession = class {
|
|
|
3419
3572
|
return result;
|
|
3420
3573
|
}
|
|
3421
3574
|
if (isTerminalXyqTaskState(result.value.state)) {
|
|
3422
|
-
return
|
|
3575
|
+
return ok21({ ...result.value, timedOut: false });
|
|
3423
3576
|
}
|
|
3424
3577
|
const remainingMs = deadline - this._now();
|
|
3425
3578
|
if (remainingMs <= 0) {
|
|
3426
|
-
return
|
|
3579
|
+
return ok21({ ...result.value, timedOut: true });
|
|
3427
3580
|
}
|
|
3428
3581
|
try {
|
|
3429
3582
|
await this._sleep(
|
|
@@ -3491,7 +3644,7 @@ var XyqSession = class {
|
|
|
3491
3644
|
if (!responseResult.ok) {
|
|
3492
3645
|
return responseResult;
|
|
3493
3646
|
}
|
|
3494
|
-
return
|
|
3647
|
+
return ok21({
|
|
3495
3648
|
taskId: threadId,
|
|
3496
3649
|
threadId,
|
|
3497
3650
|
clientRunId,
|
|
@@ -3550,7 +3703,7 @@ var XyqSession = class {
|
|
|
3550
3703
|
const providerState = mapXyqRunState(toNumber(runRecord.state));
|
|
3551
3704
|
const state = hasUsableVideoOutput(artifacts) ? "completed" : providerState;
|
|
3552
3705
|
const retryAfterSeconds = isTerminalXyqTaskState(state) ? 0 : VIDEO_POLL_INTERVAL_SECONDS;
|
|
3553
|
-
return
|
|
3706
|
+
return ok21({
|
|
3554
3707
|
taskId: threadId,
|
|
3555
3708
|
threadId,
|
|
3556
3709
|
...serverRunId ? { runId: serverRunId } : {},
|
|
@@ -3582,11 +3735,11 @@ var XyqSession = class {
|
|
|
3582
3735
|
return result;
|
|
3583
3736
|
}
|
|
3584
3737
|
if (isTerminalXyqTaskState(result.value.state)) {
|
|
3585
|
-
return
|
|
3738
|
+
return ok21({ ...result.value, timedOut: false });
|
|
3586
3739
|
}
|
|
3587
3740
|
const remainingMs = deadline - this._now();
|
|
3588
3741
|
if (remainingMs <= 0) {
|
|
3589
|
-
return
|
|
3742
|
+
return ok21({ ...result.value, timedOut: true });
|
|
3590
3743
|
}
|
|
3591
3744
|
try {
|
|
3592
3745
|
await this._sleep(
|
|
@@ -3638,7 +3791,7 @@ var XyqSession = class {
|
|
|
3638
3791
|
if (!result.ok) {
|
|
3639
3792
|
return result;
|
|
3640
3793
|
}
|
|
3641
|
-
return
|
|
3794
|
+
return ok21({
|
|
3642
3795
|
...result.value,
|
|
3643
3796
|
metadata: {
|
|
3644
3797
|
...result.value.metadata,
|
|
@@ -3724,7 +3877,7 @@ var XyqSession = class {
|
|
|
3724
3877
|
...uploadData,
|
|
3725
3878
|
...preview
|
|
3726
3879
|
});
|
|
3727
|
-
return
|
|
3880
|
+
return ok21({
|
|
3728
3881
|
...camelizedAsset,
|
|
3729
3882
|
assetId,
|
|
3730
3883
|
pippitAssetId,
|
|
@@ -3772,7 +3925,7 @@ function normalizeImageInput(input) {
|
|
|
3772
3925
|
}
|
|
3773
3926
|
pippitAssetIds.push(id);
|
|
3774
3927
|
}
|
|
3775
|
-
return
|
|
3928
|
+
return ok21({
|
|
3776
3929
|
prompt,
|
|
3777
3930
|
pippitAssetIds,
|
|
3778
3931
|
imageCount,
|
|
@@ -3963,7 +4116,7 @@ function normalizeVideoPartInput(input) {
|
|
|
3963
4116
|
if (!audiosResult.ok) {
|
|
3964
4117
|
return audiosResult;
|
|
3965
4118
|
}
|
|
3966
|
-
return
|
|
4119
|
+
return ok21({
|
|
3967
4120
|
prompt,
|
|
3968
4121
|
images: imagesResult.value,
|
|
3969
4122
|
videos: videosResult.value,
|
|
@@ -3987,7 +4140,7 @@ function normalizeVideoAssetReferences(assets, label) {
|
|
|
3987
4140
|
}
|
|
3988
4141
|
normalized.push({ asset_id: assetId, pippit_asset_id: pippitAssetId });
|
|
3989
4142
|
}
|
|
3990
|
-
return
|
|
4143
|
+
return ok21(normalized);
|
|
3991
4144
|
}
|
|
3992
4145
|
function buildVideoPartRunExtra(clientRunId, messageId) {
|
|
3993
4146
|
return {
|
|
@@ -4086,9 +4239,6 @@ function isTerminalXyqTaskState(state) {
|
|
|
4086
4239
|
function hasUsableVideoOutput(artifacts) {
|
|
4087
4240
|
return artifacts.some((artifact) => artifact.videos.length > 0);
|
|
4088
4241
|
}
|
|
4089
|
-
function hasUsableImageOutput(artifacts) {
|
|
4090
|
-
return artifacts.some((artifact) => artifact.images.length > 0);
|
|
4091
|
-
}
|
|
4092
4242
|
function hasUsableAudioOutput(artifacts) {
|
|
4093
4243
|
return artifacts.some((artifact) => artifact.audios.length > 0);
|
|
4094
4244
|
}
|
|
@@ -4122,61 +4272,7 @@ function extractImageArtifact(entry) {
|
|
|
4122
4272
|
if (!isRecord7(entry)) return void 0;
|
|
4123
4273
|
const artifact = parseJsonRecord(entry.artifact);
|
|
4124
4274
|
if (!artifact) return void 0;
|
|
4125
|
-
return { images:
|
|
4126
|
-
}
|
|
4127
|
-
function deepCollectImageOutputs(value) {
|
|
4128
|
-
const results = /* @__PURE__ */ new Map();
|
|
4129
|
-
collectImageOutputs(value, void 0, results, 0);
|
|
4130
|
-
return [...results.values()];
|
|
4131
|
-
}
|
|
4132
|
-
function collectImageOutputs(value, inheritedPippitAssetId, results, depth) {
|
|
4133
|
-
if (depth > 10) return;
|
|
4134
|
-
if (typeof value === "string") {
|
|
4135
|
-
const parsed = parseJsonValue(value);
|
|
4136
|
-
if (parsed !== void 0) collectImageOutputs(parsed, inheritedPippitAssetId, results, depth + 1);
|
|
4137
|
-
return;
|
|
4138
|
-
}
|
|
4139
|
-
if (Array.isArray(value)) {
|
|
4140
|
-
for (const item of value) collectImageOutputs(item, inheritedPippitAssetId, results, depth + 1);
|
|
4141
|
-
return;
|
|
4142
|
-
}
|
|
4143
|
-
if (!isRecord7(value)) return;
|
|
4144
|
-
const pippitAssetId = normalizeString2(value.pippit_asset_id ?? value.pippitAssetId) ?? inheritedPippitAssetId;
|
|
4145
|
-
for (const [key, child] of Object.entries(value)) {
|
|
4146
|
-
if (key === "image" || key === "images") {
|
|
4147
|
-
collectExplicitImage(child, pippitAssetId, results, depth + 1);
|
|
4148
|
-
}
|
|
4149
|
-
collectImageOutputs(child, pippitAssetId, results, depth + 1);
|
|
4150
|
-
}
|
|
4151
|
-
}
|
|
4152
|
-
function collectExplicitImage(value, inheritedPippitAssetId, results, depth) {
|
|
4153
|
-
if (depth > 10) return;
|
|
4154
|
-
if (typeof value === "string") {
|
|
4155
|
-
const parsed = parseJsonValue(value);
|
|
4156
|
-
if (parsed !== void 0) collectExplicitImage(parsed, inheritedPippitAssetId, results, depth + 1);
|
|
4157
|
-
return;
|
|
4158
|
-
}
|
|
4159
|
-
if (Array.isArray(value)) {
|
|
4160
|
-
for (const item of value) collectExplicitImage(item, inheritedPippitAssetId, results, depth + 1);
|
|
4161
|
-
return;
|
|
4162
|
-
}
|
|
4163
|
-
if (!isRecord7(value)) return;
|
|
4164
|
-
const sceneUrls = isRecord7(value.scene_urls) ? value.scene_urls : isRecord7(value.sceneUrls) ? value.sceneUrls : {};
|
|
4165
|
-
const downloadUrl = normalizeString2(value.url) ?? normalizeString2(sceneUrls.origin_url ?? sceneUrls.originUrl) ?? normalizeString2(sceneUrls.share_without_watermark ?? sceneUrls.shareWithoutWatermark) ?? normalizeString2(sceneUrls.download) ?? normalizeString2(value.download_url ?? value.downloadUrl) ?? normalizeString2(sceneUrls.preview_high ?? sceneUrls.previewHigh);
|
|
4166
|
-
if (!downloadUrl) return;
|
|
4167
|
-
const metadata = parseJsonRecord(value.metadata) ?? {};
|
|
4168
|
-
const assetId = normalizeString2(value.asset_id ?? value.assetId);
|
|
4169
|
-
const pippitAssetId = normalizeString2(value.pippit_asset_id ?? value.pippitAssetId) ?? inheritedPippitAssetId;
|
|
4170
|
-
const output = {
|
|
4171
|
-
downloadUrl,
|
|
4172
|
-
...assetId ? { assetId } : {},
|
|
4173
|
-
...pippitAssetId ? { pippitAssetId } : {},
|
|
4174
|
-
...toNumber(metadata.width ?? value.width) !== void 0 ? { width: toNumber(metadata.width ?? value.width) } : {},
|
|
4175
|
-
...toNumber(metadata.height ?? value.height) !== void 0 ? { height: toNumber(metadata.height ?? value.height) } : {},
|
|
4176
|
-
...normalizeString2(value.name) ? { name: normalizeString2(value.name) } : {}
|
|
4177
|
-
};
|
|
4178
|
-
const identity = assetId ? `asset:${assetId}` : pippitAssetId ? `pippit:${pippitAssetId}` : `url:${downloadUrl}`;
|
|
4179
|
-
results.set(identity, output);
|
|
4275
|
+
return { images: collectXyqImageReferences(artifact), raw: camelizeValue(artifact) };
|
|
4180
4276
|
}
|
|
4181
4277
|
function deepCollectAudioOutputs(value) {
|
|
4182
4278
|
const results = /* @__PURE__ */ new Map();
|
|
@@ -4481,7 +4577,7 @@ var XyqClient = class {
|
|
|
4481
4577
|
if (!options.forceRefresh) {
|
|
4482
4578
|
const session = this._sessions.get(fingerprint);
|
|
4483
4579
|
if (session) {
|
|
4484
|
-
return
|
|
4580
|
+
return ok22(session);
|
|
4485
4581
|
}
|
|
4486
4582
|
const pendingSession2 = this._pendingSessions.get(fingerprint);
|
|
4487
4583
|
if (pendingSession2) {
|
|
@@ -4512,7 +4608,7 @@ var XyqClient = class {
|
|
|
4512
4608
|
if (!forceRefresh) {
|
|
4513
4609
|
const cached = await this._readCacheBestEffort();
|
|
4514
4610
|
if (cached?.cookieFingerprint === fingerprint) {
|
|
4515
|
-
return
|
|
4611
|
+
return ok22(this._createSession(cookie, cached));
|
|
4516
4612
|
}
|
|
4517
4613
|
}
|
|
4518
4614
|
const contextResult = await this._fetchSessionContext(cookie);
|
|
@@ -4529,7 +4625,7 @@ var XyqClient = class {
|
|
|
4529
4625
|
if (this._activeFingerprint === fingerprint) {
|
|
4530
4626
|
await this._writeCacheBestEffort(cacheRecord);
|
|
4531
4627
|
}
|
|
4532
|
-
return
|
|
4628
|
+
return ok22(
|
|
4533
4629
|
new XyqSession(contextResult.value, this._fetcher, {
|
|
4534
4630
|
settingsReader: this._settingsReader
|
|
4535
4631
|
})
|
|
@@ -4582,7 +4678,7 @@ var XyqClient = class {
|
|
|
4582
4678
|
"\u83B7\u53D6 XYQ workspace \u6210\u529F\uFF0C\u4F46\u672A\u627E\u5230 workspace_id"
|
|
4583
4679
|
);
|
|
4584
4680
|
}
|
|
4585
|
-
return
|
|
4681
|
+
return ok22({
|
|
4586
4682
|
cookies: { [XYQ_SESSION_COOKIE_NAME]: cookie },
|
|
4587
4683
|
uid,
|
|
4588
4684
|
workspaceId,
|
|
@@ -4638,7 +4734,7 @@ function findFirstAudioUrl(task) {
|
|
|
4638
4734
|
}
|
|
4639
4735
|
|
|
4640
4736
|
// src/modules/xyq-tasks/audio-task-runner.ts
|
|
4641
|
-
import { err as err17, ok as
|
|
4737
|
+
import { err as err17, ok as ok23 } from "rockbed/error";
|
|
4642
4738
|
async function createDefaultAudioSession() {
|
|
4643
4739
|
return createDefaultXyqClient().createSession();
|
|
4644
4740
|
}
|
|
@@ -4708,7 +4804,7 @@ var XyqAudioGenerationProvider = class extends Disposable10 {
|
|
|
4708
4804
|
...pippitAssetId ? { pippitAssetId } : {}
|
|
4709
4805
|
});
|
|
4710
4806
|
if (!submit.ok) return xyqAudioFailure(submit, stage, "submit");
|
|
4711
|
-
return
|
|
4807
|
+
return ok24({ taskId: submit.value.taskId, state: "submitted" });
|
|
4712
4808
|
} catch (caughtError) {
|
|
4713
4809
|
return err18(1, toErrorMessage2(caughtError), { stage });
|
|
4714
4810
|
}
|
|
@@ -4723,7 +4819,7 @@ var XyqAudioGenerationProvider = class extends Disposable10 {
|
|
|
4723
4819
|
stage = "query";
|
|
4724
4820
|
const result = await sessionResult.value.queryAudio({ threadId });
|
|
4725
4821
|
if (!result.ok) return xyqAudioFailure(result, stage, "query", taskId);
|
|
4726
|
-
return
|
|
4822
|
+
return ok24(toAudioTaskResult(result.value));
|
|
4727
4823
|
} catch (caughtError) {
|
|
4728
4824
|
return err18(1, toErrorMessage2(caughtError), { stage, taskId });
|
|
4729
4825
|
}
|
|
@@ -4739,7 +4835,7 @@ var XyqAudioGenerationProvider = class extends Disposable10 {
|
|
|
4739
4835
|
stage = "wait";
|
|
4740
4836
|
const result = await sessionResult.value.waitAudio({ threadId, timeoutSeconds });
|
|
4741
4837
|
if (!result.ok) return xyqAudioFailure(result, stage, "query", taskId);
|
|
4742
|
-
return
|
|
4838
|
+
return ok24(toAudioTaskResult(result.value));
|
|
4743
4839
|
} catch (caughtError) {
|
|
4744
4840
|
return err18(1, toErrorMessage2(caughtError), { stage, taskId });
|
|
4745
4841
|
}
|
|
@@ -4794,7 +4890,7 @@ function createDefaultAudioGenerationService(options = {}) {
|
|
|
4794
4890
|
|
|
4795
4891
|
// src/commands/ai/ai-audio-status-command.ts
|
|
4796
4892
|
import { Option } from "commander";
|
|
4797
|
-
import { ok as
|
|
4893
|
+
import { ok as ok25 } from "rockbed/error";
|
|
4798
4894
|
|
|
4799
4895
|
// src/commands/ai/ai-audio-task-output.ts
|
|
4800
4896
|
function audioErrorStage(errorInfo, phase) {
|
|
@@ -4873,7 +4969,7 @@ var AiAudioStatusCommand = class extends BaseCommand {
|
|
|
4873
4969
|
if (!result.ok) {
|
|
4874
4970
|
return failFrom(result, audioFailureDetail(result.errorInfo, "query", { taskId }));
|
|
4875
4971
|
}
|
|
4876
|
-
return
|
|
4972
|
+
return ok25(toAudioTaskOutput(result.value));
|
|
4877
4973
|
} catch (caughtError) {
|
|
4878
4974
|
return fail(1, caughtError instanceof Error ? caughtError.message : String(caughtError), {
|
|
4879
4975
|
stage: "query",
|
|
@@ -4886,7 +4982,7 @@ var AiAudioStatusCommand = class extends BaseCommand {
|
|
|
4886
4982
|
// src/commands/ai/ai-audio-wait-command.ts
|
|
4887
4983
|
import { resolve as resolve4 } from "node:path";
|
|
4888
4984
|
import { Option as Option2 } from "commander";
|
|
4889
|
-
import { ok as
|
|
4985
|
+
import { ok as ok26 } from "rockbed/error";
|
|
4890
4986
|
var AiAudioWaitCommand = class extends BaseCommand {
|
|
4891
4987
|
constructor(_audioGenerationService = createDefaultAudioGenerationService()) {
|
|
4892
4988
|
super();
|
|
@@ -4929,7 +5025,7 @@ var AiAudioWaitCommand = class extends BaseCommand {
|
|
|
4929
5025
|
if (!result.ok) {
|
|
4930
5026
|
return failFrom(result, audioFailureDetail(result.errorInfo, "wait", { taskId, outputPath }));
|
|
4931
5027
|
}
|
|
4932
|
-
return
|
|
5028
|
+
return ok26(toAudioTaskOutput(result.value, { outputPath }));
|
|
4933
5029
|
}
|
|
4934
5030
|
};
|
|
4935
5031
|
|
|
@@ -5024,7 +5120,7 @@ var AiAudioCommand = class extends BaseCommandGroup {
|
|
|
5024
5120
|
}
|
|
5025
5121
|
taskId = submitted.value.taskId;
|
|
5026
5122
|
progress.dispose();
|
|
5027
|
-
if (!shouldWait) return
|
|
5123
|
+
if (!shouldWait) return ok27(toAudioSubmitOutput(taskId));
|
|
5028
5124
|
stage = "wait";
|
|
5029
5125
|
const completed = await this._audioGenerationService.wait({
|
|
5030
5126
|
taskId,
|
|
@@ -5034,7 +5130,7 @@ var AiAudioCommand = class extends BaseCommandGroup {
|
|
|
5034
5130
|
if (!completed.ok) {
|
|
5035
5131
|
return failFrom(completed, audioFailureDetail(completed.errorInfo, "wait", { taskId, outputPath }));
|
|
5036
5132
|
}
|
|
5037
|
-
return
|
|
5133
|
+
return ok27(toAudioTaskOutput(completed.value, { outputPath }));
|
|
5038
5134
|
} catch (caughtError) {
|
|
5039
5135
|
return fail(1, caughtError instanceof Error ? caughtError.message : String(caughtError), {
|
|
5040
5136
|
stage,
|
|
@@ -5052,14 +5148,14 @@ function appendAudioPath(value, previous) {
|
|
|
5052
5148
|
// src/commands/ai/ai-image-command.ts
|
|
5053
5149
|
import * as path10 from "node:path";
|
|
5054
5150
|
import { Option as Option6 } from "commander";
|
|
5055
|
-
import { ok as
|
|
5151
|
+
import { ok as ok36 } from "rockbed/error";
|
|
5056
5152
|
|
|
5057
5153
|
// src/modules/image-generation/image-task-service.ts
|
|
5058
5154
|
import * as path6 from "node:path";
|
|
5059
5155
|
import { fileURLToPath } from "node:url";
|
|
5060
5156
|
import { randomUUID as randomUUID9 } from "node:crypto";
|
|
5061
5157
|
import { Disposable as Disposable11 } from "rockbed/dispose";
|
|
5062
|
-
import { err as err19, ok as
|
|
5158
|
+
import { err as err19, ok as ok28 } from "rockbed/error";
|
|
5063
5159
|
var ImageTaskService = class extends Disposable11 {
|
|
5064
5160
|
_taskStore;
|
|
5065
5161
|
_launchWorker;
|
|
@@ -5105,17 +5201,17 @@ var ImageTaskService = class extends Disposable11 {
|
|
|
5105
5201
|
const record = await this._taskStore.read(taskId);
|
|
5106
5202
|
const artifact = this._taskStore.artifactPath(taskId);
|
|
5107
5203
|
if ((await validateImageArtifact(artifact)).ok) {
|
|
5108
|
-
return
|
|
5204
|
+
return ok28(toOutput(record, "completed", [{ localPath: artifact }]));
|
|
5109
5205
|
}
|
|
5110
5206
|
if (record.state === "completed") {
|
|
5111
|
-
return
|
|
5207
|
+
return ok28({ ...toOutput(record, "unknown"), failReason: "\u4EFB\u52A1\u66FE\u5B8C\u6210\uFF0C\u4F46\u672C\u5730\u5F52\u6863\u56FE\u7247\u7F3A\u5931\u6216\u635F\u574F\uFF1B\u672A\u91CD\u65B0\u751F\u6210" });
|
|
5112
5208
|
}
|
|
5113
|
-
if (record.state === "failed" || record.state === "unknown") return
|
|
5114
|
-
if (await this._isWorkerAlive(record)) return
|
|
5209
|
+
if (record.state === "failed" || record.state === "unknown") return ok28(toOutput(record));
|
|
5210
|
+
if (await this._isWorkerAlive(record)) return ok28({ ...toOutput(record), retryAfterSeconds: 1 });
|
|
5115
5211
|
const latest = await this._taskStore.read(taskId);
|
|
5116
|
-
if ((await validateImageArtifact(artifact)).ok) return
|
|
5117
|
-
if (latest.state === "failed") return
|
|
5118
|
-
return
|
|
5212
|
+
if ((await validateImageArtifact(artifact)).ok) return ok28(toOutput(latest, "completed", [{ localPath: artifact }]));
|
|
5213
|
+
if (latest.state === "failed") return ok28(toOutput(latest));
|
|
5214
|
+
return ok28({ ...toOutput(latest, "unknown"), failReason: "\u65E0\u6CD5\u786E\u8BA4\u539F\u56FE\u7247 worker \u4ECD\u5728\u8FD0\u884C\uFF0C\u4E14\u672A\u53D1\u73B0\u5B8C\u6574\u5F52\u6863\u4EA7\u7269\uFF1B\u8BF7\u7A0D\u540E\u67E5\u8BE2\u539F\u4EFB\u52A1\uFF0C\u672A\u81EA\u52A8\u6062\u590D\u6216\u91CD\u65B0\u751F\u6210" });
|
|
5119
5215
|
} catch (error) {
|
|
5120
5216
|
return taskError(error, taskId);
|
|
5121
5217
|
}
|
|
@@ -5134,11 +5230,11 @@ var ImageTaskService = class extends Disposable11 {
|
|
|
5134
5230
|
if (!localPath) return err19(1, "\u56FE\u7247\u4EFB\u52A1\u5DF2\u5B8C\u6210\uFF0C\u4F46\u672C\u5730\u5F52\u6863\u8DEF\u5F84\u7F3A\u5931", { taskId });
|
|
5135
5231
|
const copied = await copyImageArtifact(localPath, outputPath);
|
|
5136
5232
|
if (!copied.ok) return err19(copied.code, copied.msg, { ...errorDetails(copied.errorInfo), taskId, state: "completed", outputs: current.value.outputs });
|
|
5137
|
-
return
|
|
5233
|
+
return ok28({ ...current.value, outputs: [{ localPath: copied.value }] });
|
|
5138
5234
|
}
|
|
5139
5235
|
if (current.value.state === "failed" || current.value.state === "unknown") return current;
|
|
5140
5236
|
const remaining = deadline - this._now();
|
|
5141
|
-
if (remaining <= 0) return
|
|
5237
|
+
if (remaining <= 0) return ok28({ ...current.value, timedOut: true });
|
|
5142
5238
|
await this._delay(Math.min(remaining, this._pollIntervalMs));
|
|
5143
5239
|
}
|
|
5144
5240
|
}
|
|
@@ -5149,7 +5245,7 @@ var ImageTaskService = class extends Disposable11 {
|
|
|
5149
5245
|
const current = await this.status(taskId);
|
|
5150
5246
|
results.push(current.ok ? current.value : { taskId, state: "unknown", outputs: [], failReason: current.msg });
|
|
5151
5247
|
}
|
|
5152
|
-
return
|
|
5248
|
+
return ok28(results.sort((a, b) => (b.createdAt ?? "").localeCompare(a.createdAt ?? "")));
|
|
5153
5249
|
} catch (error) {
|
|
5154
5250
|
return err19(1, `\u8BFB\u53D6\u56FE\u7247\u4EFB\u52A1\u5217\u8868\u5931\u8D25: ${error instanceof Error ? error.message : String(error)}`);
|
|
5155
5251
|
}
|
|
@@ -5196,13 +5292,13 @@ ${constraints.join("\n")}` : void 0
|
|
|
5196
5292
|
}
|
|
5197
5293
|
|
|
5198
5294
|
// src/modules/image-generation/routed-image-task-service.ts
|
|
5199
|
-
import { err as err22, ok as
|
|
5295
|
+
import { err as err22, ok as ok31 } from "rockbed/error";
|
|
5200
5296
|
|
|
5201
5297
|
// src/modules/image-generation/jimeng-image-task-service.ts
|
|
5202
5298
|
import * as path7 from "node:path";
|
|
5203
5299
|
import { setTimeout as sleep3 } from "node:timers/promises";
|
|
5204
5300
|
import { Disposable as Disposable12 } from "rockbed/dispose";
|
|
5205
|
-
import { err as err20, ok as
|
|
5301
|
+
import { err as err20, ok as ok29 } from "rockbed/error";
|
|
5206
5302
|
var JIMENG_IMAGE_TASK_ID_PREFIX = "jimeng-image:";
|
|
5207
5303
|
var JimengImageTaskService = class extends Disposable12 {
|
|
5208
5304
|
_api;
|
|
@@ -5309,7 +5405,7 @@ var JimengImageTaskService = class extends Disposable12 {
|
|
|
5309
5405
|
}), "submit", "submit", taskId);
|
|
5310
5406
|
}
|
|
5311
5407
|
const interval = submission.queue_info?.polling_config?.interval_seconds;
|
|
5312
|
-
return
|
|
5408
|
+
return ok29({
|
|
5313
5409
|
taskId,
|
|
5314
5410
|
state: "submitted",
|
|
5315
5411
|
outputs: [],
|
|
@@ -5331,7 +5427,7 @@ var JimengImageTaskService = class extends Disposable12 {
|
|
|
5331
5427
|
const parsed = parseJimengImageStatus(response.value, submitId);
|
|
5332
5428
|
if (!parsed.ok) return imageFailure(err20(parsed.code, parsed.msg, { failureKind: "response" }), "query", "query", normalizedTaskId);
|
|
5333
5429
|
const { failReason, ...snapshot } = parsed.value;
|
|
5334
|
-
return
|
|
5430
|
+
return ok29({
|
|
5335
5431
|
taskId: normalizedTaskId,
|
|
5336
5432
|
...snapshot,
|
|
5337
5433
|
source: "jimeng",
|
|
@@ -5352,17 +5448,17 @@ var JimengImageTaskService = class extends Disposable12 {
|
|
|
5352
5448
|
if (!queried.ok) return queried;
|
|
5353
5449
|
const task = queried.value;
|
|
5354
5450
|
if (task.state === "completed") {
|
|
5355
|
-
return options.outputPath ? this._download(task, options.outputPath) :
|
|
5451
|
+
return options.outputPath ? this._download(task, options.outputPath) : ok29(task);
|
|
5356
5452
|
}
|
|
5357
|
-
if (task.state === "failed") return
|
|
5453
|
+
if (task.state === "failed") return ok29(task);
|
|
5358
5454
|
const remaining = deadline - this._now();
|
|
5359
|
-
if (remaining <= 0) return
|
|
5455
|
+
if (remaining <= 0) return ok29({ ...task, timedOut: true });
|
|
5360
5456
|
const interval = Math.max(1, task.retryAfterSeconds ?? 2) * 1e3;
|
|
5361
5457
|
await this._sleep(Math.min(interval, remaining));
|
|
5362
5458
|
}
|
|
5363
5459
|
}
|
|
5364
5460
|
async list() {
|
|
5365
|
-
return
|
|
5461
|
+
return ok29([]);
|
|
5366
5462
|
}
|
|
5367
5463
|
async _download(task, outputPath) {
|
|
5368
5464
|
if (task.outputs.length === 0) {
|
|
@@ -5382,7 +5478,7 @@ var JimengImageTaskService = class extends Disposable12 {
|
|
|
5382
5478
|
const { downloadUrl: _downloadUrl, ...metadata } = output;
|
|
5383
5479
|
outputs.push({ ...metadata, localPath: downloaded.value });
|
|
5384
5480
|
}
|
|
5385
|
-
return
|
|
5481
|
+
return ok29({ ...task, outputs });
|
|
5386
5482
|
}
|
|
5387
5483
|
};
|
|
5388
5484
|
function parseJimengImageTaskId(taskId) {
|
|
@@ -5423,7 +5519,7 @@ function isJimengImageModelId(modelId) {
|
|
|
5423
5519
|
import * as fs7 from "node:fs/promises";
|
|
5424
5520
|
import { homedir as homedir3 } from "node:os";
|
|
5425
5521
|
import * as path8 from "node:path";
|
|
5426
|
-
import { err as err21, ok as
|
|
5522
|
+
import { err as err21, ok as ok30 } from "rockbed/error";
|
|
5427
5523
|
var XyqImageTaskService = class {
|
|
5428
5524
|
_createSession;
|
|
5429
5525
|
_downloadDirectory;
|
|
@@ -5461,7 +5557,7 @@ var XyqImageTaskService = class {
|
|
|
5461
5557
|
aspectRatio: request.aspectRatio
|
|
5462
5558
|
});
|
|
5463
5559
|
if (!submit.ok) return xyqImageFailure(submit, "submit");
|
|
5464
|
-
return
|
|
5560
|
+
return ok30({
|
|
5465
5561
|
taskId: submit.value.taskId,
|
|
5466
5562
|
state: "submitted",
|
|
5467
5563
|
outputs: [],
|
|
@@ -5476,7 +5572,7 @@ var XyqImageTaskService = class {
|
|
|
5476
5572
|
const sessionResult = await this._createSession();
|
|
5477
5573
|
if (!sessionResult.ok) return xyqImageFailure(sessionResult, "setup", taskId);
|
|
5478
5574
|
const result = await sessionResult.value.queryImage({ threadId: threadIdResult.value });
|
|
5479
|
-
return result.ok ?
|
|
5575
|
+
return result.ok ? ok30(await this._toTaskResult(result.value)) : xyqImageFailure(result, "query", taskId);
|
|
5480
5576
|
}
|
|
5481
5577
|
async wait(options) {
|
|
5482
5578
|
const threadIdResult = parseXyqImageTaskId(options.taskId);
|
|
@@ -5490,11 +5586,11 @@ var XyqImageTaskService = class {
|
|
|
5490
5586
|
if (!result.ok) return xyqImageFailure(result, "query", options.taskId);
|
|
5491
5587
|
const task = await this._toTaskResult(result.value);
|
|
5492
5588
|
if (task.state !== "completed") {
|
|
5493
|
-
return
|
|
5589
|
+
return ok30({ ...task, ...result.value.timedOut ? { timedOut: true } : {} });
|
|
5494
5590
|
}
|
|
5495
5591
|
const remoteOutputs = collectXyqImageOutputs(result.value);
|
|
5496
5592
|
if (remoteOutputs.length === 0) return err21(1, "XYQ \u56FE\u7247\u4EFB\u52A1\u5DF2\u5B8C\u6210\uFF0C\u4F46\u6CA1\u6709\u627E\u5230\u56FE\u7247\u4E0B\u8F7D\u5730\u5740");
|
|
5497
|
-
if (!options.outputPath) return
|
|
5593
|
+
if (!options.outputPath) return ok30(task);
|
|
5498
5594
|
const targets = resolveImageOutputPaths2(
|
|
5499
5595
|
options.outputPath,
|
|
5500
5596
|
remoteOutputs.length
|
|
@@ -5508,10 +5604,10 @@ var XyqImageTaskService = class {
|
|
|
5508
5604
|
if (!downloaded.ok) return xyqImageFailure(downloaded, "download", options.taskId);
|
|
5509
5605
|
outputs.push(toTaskOutput(output, downloaded.value));
|
|
5510
5606
|
}
|
|
5511
|
-
return
|
|
5607
|
+
return ok30({ ...task, outputs });
|
|
5512
5608
|
}
|
|
5513
5609
|
async list() {
|
|
5514
|
-
return
|
|
5610
|
+
return ok30([]);
|
|
5515
5611
|
}
|
|
5516
5612
|
async _toTaskResult(result) {
|
|
5517
5613
|
const remoteOutputs = collectXyqImageOutputs(result);
|
|
@@ -5539,7 +5635,7 @@ function parseXyqImageTaskId(taskId) {
|
|
|
5539
5635
|
return err21(1, `XYQ \u56FE\u7247 task-id \u683C\u5F0F\u5FC5\u987B\u662F ${XYQ_IMAGE_TASK_ID_PREFIX}<threadId>`, { failureKind: "input", requestOutcome: "not_sent" });
|
|
5540
5636
|
}
|
|
5541
5637
|
const threadId = normalized.slice(XYQ_IMAGE_TASK_ID_PREFIX.length).trim();
|
|
5542
|
-
return threadId ?
|
|
5638
|
+
return threadId ? ok30(threadId) : err21(1, "XYQ \u56FE\u7247 taskId \u4E0D\u80FD\u4E3A\u7A7A", { failureKind: "input", requestOutcome: "not_sent" });
|
|
5543
5639
|
}
|
|
5544
5640
|
function xyqImageFailure(result, operation, taskId) {
|
|
5545
5641
|
const original = typeof result.errorInfo === "object" && result.errorInfo !== null && !Array.isArray(result.errorInfo) ? result.errorInfo : {};
|
|
@@ -5634,7 +5730,7 @@ var RoutedImageTaskService = class {
|
|
|
5634
5730
|
}
|
|
5635
5731
|
async list() {
|
|
5636
5732
|
const local = await this._localService.list();
|
|
5637
|
-
return local.ok ?
|
|
5733
|
+
return local.ok ? ok31(local.value) : local;
|
|
5638
5734
|
}
|
|
5639
5735
|
_serviceForTask(taskId) {
|
|
5640
5736
|
if (taskId.trim().startsWith(JIMENG_IMAGE_TASK_ID_PREFIX)) return this._jimengService;
|
|
@@ -5650,10 +5746,10 @@ function createDefaultImageTaskService() {
|
|
|
5650
5746
|
}
|
|
5651
5747
|
|
|
5652
5748
|
// src/commands/ai/ai-image-list-command.ts
|
|
5653
|
-
import { ok as
|
|
5749
|
+
import { ok as ok33 } from "rockbed/error";
|
|
5654
5750
|
|
|
5655
5751
|
// src/commands/ai/ai-image-task-output.ts
|
|
5656
|
-
import { ok as
|
|
5752
|
+
import { ok as ok32 } from "rockbed/error";
|
|
5657
5753
|
function validateImageWaitOptions(timeoutSeconds, outputPath) {
|
|
5658
5754
|
if (!Number.isInteger(timeoutSeconds) || timeoutSeconds < 1 || timeoutSeconds > MAX_IMAGE_WAIT_SECONDS) {
|
|
5659
5755
|
return fail(1, `--timeout-seconds \u5FC5\u987B\u662F 1-${MAX_IMAGE_WAIT_SECONDS} \u7684\u6574\u6570`, { stage: "input" });
|
|
@@ -5661,7 +5757,7 @@ function validateImageWaitOptions(timeoutSeconds, outputPath) {
|
|
|
5661
5757
|
if (outputPath !== void 0 && !outputPath.trim()) {
|
|
5662
5758
|
return fail(1, "--output \u4E00\u65E6\u4F20\u5165\u5C31\u5FC5\u987B\u662F\u975E\u7A7A\u8DEF\u5F84", { stage: "input" });
|
|
5663
5759
|
}
|
|
5664
|
-
return
|
|
5760
|
+
return ok32();
|
|
5665
5761
|
}
|
|
5666
5762
|
function imageWaitCommand(taskId, outputPath) {
|
|
5667
5763
|
return `tt ai image wait --task-id ${quoteArgument2(taskId)}${outputPath ? ` --output ${quoteArgument2(outputPath)}` : ""}`;
|
|
@@ -5708,13 +5804,13 @@ var AiImageListCommand = class extends BaseCommand {
|
|
|
5708
5804
|
}
|
|
5709
5805
|
async _execute() {
|
|
5710
5806
|
const result = await this._service.list();
|
|
5711
|
-
return result.ok ?
|
|
5807
|
+
return result.ok ? ok33({ tasks: result.value.map((task) => toImageTaskOutput(task)) }) : failFrom(result, { stage: "query" });
|
|
5712
5808
|
}
|
|
5713
5809
|
};
|
|
5714
5810
|
|
|
5715
5811
|
// src/commands/ai/ai-image-status-command.ts
|
|
5716
5812
|
import { Option as Option4 } from "commander";
|
|
5717
|
-
import { ok as
|
|
5813
|
+
import { ok as ok34 } from "rockbed/error";
|
|
5718
5814
|
var AiImageStatusCommand = class extends BaseCommand {
|
|
5719
5815
|
constructor(_service = createDefaultImageTaskService()) {
|
|
5720
5816
|
super();
|
|
@@ -5739,14 +5835,14 @@ var AiImageStatusCommand = class extends BaseCommand {
|
|
|
5739
5835
|
}
|
|
5740
5836
|
async _execute(ctx) {
|
|
5741
5837
|
const result = await this._service.status(ctx.options.taskId);
|
|
5742
|
-
return result.ok ?
|
|
5838
|
+
return result.ok ? ok34(toImageTaskOutput(result.value)) : failFrom(result, { taskId: ctx.options.taskId, stage: "query" });
|
|
5743
5839
|
}
|
|
5744
5840
|
};
|
|
5745
5841
|
|
|
5746
5842
|
// src/commands/ai/ai-image-wait-command.ts
|
|
5747
5843
|
import * as path9 from "node:path";
|
|
5748
5844
|
import { Option as Option5 } from "commander";
|
|
5749
|
-
import { ok as
|
|
5845
|
+
import { ok as ok35 } from "rockbed/error";
|
|
5750
5846
|
var AiImageWaitCommand = class extends BaseCommand {
|
|
5751
5847
|
constructor(_service = createDefaultImageTaskService()) {
|
|
5752
5848
|
super();
|
|
@@ -5779,7 +5875,7 @@ var AiImageWaitCommand = class extends BaseCommand {
|
|
|
5779
5875
|
const outputPath = options.output === void 0 ? void 0 : path9.resolve(options.output.trim());
|
|
5780
5876
|
try {
|
|
5781
5877
|
const result = await this._service.wait({ taskId: options.taskId, timeoutSeconds: options.timeoutSeconds, outputPath });
|
|
5782
|
-
return result.ok ?
|
|
5878
|
+
return result.ok ? ok35(toImageTaskOutput(result.value, outputPath)) : imageTaskFailure(result, options.taskId, outputPath);
|
|
5783
5879
|
} catch (error) {
|
|
5784
5880
|
return imageTaskFailure(fail(1, error instanceof Error ? error.message : String(error)), options.taskId, outputPath);
|
|
5785
5881
|
}
|
|
@@ -5887,11 +5983,11 @@ var AiImageCommand = class extends BaseCommandGroup {
|
|
|
5887
5983
|
...hasLocalTask && readFailureField(submit.errorInfo, "nextCommand") === void 0 ? { nextCommand: "tt ai image list" } : {}
|
|
5888
5984
|
});
|
|
5889
5985
|
}
|
|
5890
|
-
if (!options.wait && options.output === void 0) return
|
|
5986
|
+
if (!options.wait && options.output === void 0) return ok36(toImageTaskOutput(submit.value));
|
|
5891
5987
|
const taskId = submit.value.taskId;
|
|
5892
5988
|
try {
|
|
5893
5989
|
const result = await this._service.wait({ taskId, timeoutSeconds: options.timeoutSeconds, outputPath });
|
|
5894
|
-
return result.ok ?
|
|
5990
|
+
return result.ok ? ok36(toImageTaskOutput(result.value, outputPath)) : imageTaskFailure(result, taskId, outputPath);
|
|
5895
5991
|
} catch (error) {
|
|
5896
5992
|
return imageTaskFailure(fail(1, error instanceof Error ? error.message : String(error)), taskId, outputPath);
|
|
5897
5993
|
}
|
|
@@ -5908,7 +6004,7 @@ function readFailureField(value, field) {
|
|
|
5908
6004
|
|
|
5909
6005
|
// src/commands/ai/ai-video-command.ts
|
|
5910
6006
|
import { Option as Option9 } from "commander";
|
|
5911
|
-
import { ok as
|
|
6007
|
+
import { ok as ok41 } from "rockbed/error";
|
|
5912
6008
|
|
|
5913
6009
|
// src/modules/video-generation/video-generation-provider-registry.ts
|
|
5914
6010
|
var VideoGenerationProviderRegistry = class {
|
|
@@ -5944,7 +6040,7 @@ import * as path11 from "node:path";
|
|
|
5944
6040
|
import { setTimeout as sleep4 } from "node:timers/promises";
|
|
5945
6041
|
|
|
5946
6042
|
// src/modules/video-generation/video-generation-error.ts
|
|
5947
|
-
import { err as err23, ok as
|
|
6043
|
+
import { err as err23, ok as ok37 } from "rockbed/error";
|
|
5948
6044
|
function makeVideoGenerationError(options) {
|
|
5949
6045
|
const errorInfo = {
|
|
5950
6046
|
code: options.code,
|
|
@@ -5959,7 +6055,7 @@ function makeVideoGenerationError(options) {
|
|
|
5959
6055
|
return err23(options.number, options.message, errorInfo);
|
|
5960
6056
|
}
|
|
5961
6057
|
function makeVideoGenerationOk(value) {
|
|
5962
|
-
return
|
|
6058
|
+
return ok37(value);
|
|
5963
6059
|
}
|
|
5964
6060
|
|
|
5965
6061
|
// src/modules/video-generation/normalize-video-generation-request.ts
|
|
@@ -6869,7 +6965,7 @@ function createDefaultVideoGenerationService() {
|
|
|
6869
6965
|
}
|
|
6870
6966
|
|
|
6871
6967
|
// src/commands/ai/ai-video-cache-clear-command.ts
|
|
6872
|
-
import { ok as
|
|
6968
|
+
import { ok as ok38 } from "rockbed/error";
|
|
6873
6969
|
var AiVideoCacheClearCommand = class extends BaseCommand {
|
|
6874
6970
|
constructor(_clearAssetCache = clearDefaultXyqAssetCache) {
|
|
6875
6971
|
super();
|
|
@@ -6885,7 +6981,7 @@ var AiVideoCacheClearCommand = class extends BaseCommand {
|
|
|
6885
6981
|
return ["data.clearedEntries:number \u662F\u6E05\u9664\u7684\u7F13\u5B58\u6761\u76EE\u6570\u3002"];
|
|
6886
6982
|
}
|
|
6887
6983
|
async _execute(_ctx) {
|
|
6888
|
-
return
|
|
6984
|
+
return ok38(this._clearAssetCache());
|
|
6889
6985
|
}
|
|
6890
6986
|
};
|
|
6891
6987
|
|
|
@@ -6904,7 +7000,7 @@ var AiVideoCacheCommand = class extends BaseCommandGroup {
|
|
|
6904
7000
|
|
|
6905
7001
|
// src/commands/ai/ai-video-status-command.ts
|
|
6906
7002
|
import { Option as Option7 } from "commander";
|
|
6907
|
-
import { ok as
|
|
7003
|
+
import { ok as ok39 } from "rockbed/error";
|
|
6908
7004
|
|
|
6909
7005
|
// src/commands/ai/ai-video-task-output.ts
|
|
6910
7006
|
function videoFailureRecovery(recovery = {}, taskId, nextCommand) {
|
|
@@ -6988,13 +7084,13 @@ var AiVideoStatusCommand = class extends BaseCommand {
|
|
|
6988
7084
|
taskId
|
|
6989
7085
|
});
|
|
6990
7086
|
}
|
|
6991
|
-
return
|
|
7087
|
+
return ok39(toVideoTaskOutput(result.value));
|
|
6992
7088
|
}
|
|
6993
7089
|
};
|
|
6994
7090
|
|
|
6995
7091
|
// src/commands/ai/ai-video-wait-command.ts
|
|
6996
7092
|
import { Option as Option8 } from "commander";
|
|
6997
|
-
import { ok as
|
|
7093
|
+
import { ok as ok40 } from "rockbed/error";
|
|
6998
7094
|
var AiVideoWaitCommand = class extends BaseCommand {
|
|
6999
7095
|
constructor(_service = createDefaultVideoGenerationService()) {
|
|
7000
7096
|
super();
|
|
@@ -7049,7 +7145,7 @@ var AiVideoWaitCommand = class extends BaseCommand {
|
|
|
7049
7145
|
...videoFailureRecovery(result.errorInfo?.recovery, options.taskId, result.errorInfo?.nextCommand)
|
|
7050
7146
|
});
|
|
7051
7147
|
}
|
|
7052
|
-
return
|
|
7148
|
+
return ok40(toVideoTaskOutput(result.value));
|
|
7053
7149
|
}
|
|
7054
7150
|
};
|
|
7055
7151
|
|
|
@@ -7200,7 +7296,7 @@ var AiVideoCommand = class extends BaseCommandGroup {
|
|
|
7200
7296
|
return submitResult;
|
|
7201
7297
|
}
|
|
7202
7298
|
if (!shouldWait) {
|
|
7203
|
-
return
|
|
7299
|
+
return ok41(toVideoSubmitOutput(submitResult.value));
|
|
7204
7300
|
}
|
|
7205
7301
|
const taskId = submitResult.value.taskId;
|
|
7206
7302
|
if (!taskId) {
|
|
@@ -7220,7 +7316,7 @@ var AiVideoCommand = class extends BaseCommandGroup {
|
|
|
7220
7316
|
...videoFailureRecovery(completionResult.errorInfo?.recovery, taskId, completionResult.errorInfo?.nextCommand)
|
|
7221
7317
|
});
|
|
7222
7318
|
}
|
|
7223
|
-
return
|
|
7319
|
+
return ok41(
|
|
7224
7320
|
toVideoEndToEndOutput(submitResult.value, completionResult.value)
|
|
7225
7321
|
);
|
|
7226
7322
|
}
|
|
@@ -7295,7 +7391,7 @@ function supportLines(label, standard, supported) {
|
|
|
7295
7391
|
|
|
7296
7392
|
// src/modules/ark/ark-web-search.ts
|
|
7297
7393
|
import { Disposable as Disposable14 } from "rockbed/dispose";
|
|
7298
|
-
import { err as err24, ok as
|
|
7394
|
+
import { err as err24, ok as ok42 } from "rockbed/error";
|
|
7299
7395
|
|
|
7300
7396
|
// src/constants/ak.ts
|
|
7301
7397
|
var LEGACY_ARK_API_KEY = "6990de07-83be-487d-930d-f5dd3b6d5993";
|
|
@@ -7308,14 +7404,14 @@ var ARK_WEB_SEARCH_MODEL = "doubao-seed-2-0-mini-260215";
|
|
|
7308
7404
|
async function resolveArkApiKey(settingsReader, env = process.env) {
|
|
7309
7405
|
const fromEnv = env[ARK_API_KEY_ENV]?.trim();
|
|
7310
7406
|
if (fromEnv) {
|
|
7311
|
-
return
|
|
7407
|
+
return ok42(fromEnv);
|
|
7312
7408
|
}
|
|
7313
7409
|
const fromSettings = await settingsReader.getString(ARK_API_KEY_SETTING_KEY);
|
|
7314
7410
|
if (!fromSettings.ok) {
|
|
7315
7411
|
return fromSettings;
|
|
7316
7412
|
}
|
|
7317
7413
|
const value = fromSettings.value?.trim();
|
|
7318
|
-
return
|
|
7414
|
+
return ok42(value || LEGACY_ARK_API_KEY);
|
|
7319
7415
|
}
|
|
7320
7416
|
var ArkWebSearchClient = class extends Disposable14 {
|
|
7321
7417
|
_fetcher;
|
|
@@ -7373,7 +7469,7 @@ var ArkWebSearchClient = class extends Disposable14 {
|
|
|
7373
7469
|
if (!content) {
|
|
7374
7470
|
return err24(1, "\u8FD4\u56DE\u6570\u636E\u683C\u5F0F\u5F02\u5E38");
|
|
7375
7471
|
}
|
|
7376
|
-
return
|
|
7472
|
+
return ok42({
|
|
7377
7473
|
query,
|
|
7378
7474
|
model: ARK_WEB_SEARCH_MODEL,
|
|
7379
7475
|
text: extractOutputText(content),
|
|
@@ -7458,12 +7554,12 @@ var AiCommand = class extends BaseCommandGroup {
|
|
|
7458
7554
|
|
|
7459
7555
|
// src/modules/codex/index.ts
|
|
7460
7556
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
7461
|
-
import { ok as
|
|
7557
|
+
import { ok as ok44 } from "rockbed/error";
|
|
7462
7558
|
|
|
7463
7559
|
// src/modules/codex/codex-input.ts
|
|
7464
7560
|
import { stat as stat3 } from "node:fs/promises";
|
|
7465
7561
|
import { resolve as resolve12 } from "node:path";
|
|
7466
|
-
import { err as err25, ok as
|
|
7562
|
+
import { err as err25, ok as ok43 } from "rockbed/error";
|
|
7467
7563
|
var DEFAULT_CODEX_CWD = "/Users/bytedance/work/autogen";
|
|
7468
7564
|
var DEFAULT_CODEX_MODEL = "gpt-6.1-sol";
|
|
7469
7565
|
var DEFAULT_CODEX_REASONING = "max";
|
|
@@ -7473,7 +7569,7 @@ function validateCodexParameters(input) {
|
|
|
7473
7569
|
if (!input.prompt.trim()) return err25(1, "\u8BF7\u8F93\u5165\u975E\u7A7A prompt");
|
|
7474
7570
|
if (!CODEX_MODELS.some((model) => model === input.model)) return err25(1, "\u4E0D\u652F\u6301\u7684\u6A21\u578B");
|
|
7475
7571
|
if (!CODEX_REASONING_LEVELS.some((level) => level === input.reasoning)) return err25(1, "\u4E0D\u652F\u6301\u7684\u63A8\u7406\u5F3A\u5EA6");
|
|
7476
|
-
return
|
|
7572
|
+
return ok43();
|
|
7477
7573
|
}
|
|
7478
7574
|
async function validateCodexInput(input) {
|
|
7479
7575
|
const parameters = validateCodexParameters(input);
|
|
@@ -7485,7 +7581,7 @@ async function validateCodexInput(input) {
|
|
|
7485
7581
|
} catch {
|
|
7486
7582
|
return err25(1, `\u5DE5\u4F5C\u76EE\u5F55\u4E0D\u5B58\u5728\u6216\u4E0D\u53EF\u8BBF\u95EE: ${cwd}`);
|
|
7487
7583
|
}
|
|
7488
|
-
return
|
|
7584
|
+
return ok43({ ...input, cwd });
|
|
7489
7585
|
}
|
|
7490
7586
|
|
|
7491
7587
|
// src/modules/codex/codex-exec.ts
|
|
@@ -7553,7 +7649,7 @@ async function launchCodex(input, launch = launchDefaultCodexWorker) {
|
|
|
7553
7649
|
const { cwd } = validated.value;
|
|
7554
7650
|
const result = await launch(validated.value);
|
|
7555
7651
|
if (!result.ok) return result;
|
|
7556
|
-
return
|
|
7652
|
+
return ok44({ status: "launched", pid: result.value.pid, cwd, model: input.model, reasoning: input.reasoning, ...result.value.data });
|
|
7557
7653
|
}
|
|
7558
7654
|
function launchDefaultCodexWorker(input) {
|
|
7559
7655
|
const source = import.meta.url.endsWith(".ts");
|
|
@@ -7605,7 +7701,7 @@ var CodexCommand = class extends BaseCommand {
|
|
|
7605
7701
|
};
|
|
7606
7702
|
|
|
7607
7703
|
// src/commands/codex/codex-exec-command.ts
|
|
7608
|
-
import { err as err27, ok as
|
|
7704
|
+
import { err as err27, ok as ok45 } from "rockbed/error";
|
|
7609
7705
|
var CodexExecCommand = class extends BaseCommand {
|
|
7610
7706
|
constructor(_executeCodex = executeCodex) {
|
|
7611
7707
|
super();
|
|
@@ -7662,12 +7758,12 @@ var CodexExecCommand = class extends BaseCommand {
|
|
|
7662
7758
|
});
|
|
7663
7759
|
if (!result.ok) return result;
|
|
7664
7760
|
process.exitCode = result.value.exitCode;
|
|
7665
|
-
return
|
|
7761
|
+
return ok45();
|
|
7666
7762
|
}
|
|
7667
7763
|
};
|
|
7668
7764
|
|
|
7669
7765
|
// src/commands/deploy/deploy-command.ts
|
|
7670
|
-
import { ok as
|
|
7766
|
+
import { ok as ok46 } from "rockbed/error";
|
|
7671
7767
|
|
|
7672
7768
|
// src/modules/static-deploy/static-deploy-service.ts
|
|
7673
7769
|
import { spawn } from "node:child_process";
|
|
@@ -8018,15 +8114,15 @@ async function runTarProcess(input) {
|
|
|
8018
8114
|
clearTimeout(timer);
|
|
8019
8115
|
reject(error);
|
|
8020
8116
|
});
|
|
8021
|
-
const
|
|
8117
|
+
const collect2 = (chunks, chunk) => {
|
|
8022
8118
|
captured += chunk.length;
|
|
8023
8119
|
if (captured > 1024 * 1024) {
|
|
8024
8120
|
processError = new Error("\u5F52\u6863\u8FDB\u7A0B\u8F93\u51FA\u8D85\u51FA 1 MiB \u9650\u5236");
|
|
8025
8121
|
child.kill("SIGKILL");
|
|
8026
8122
|
} else chunks.push(chunk);
|
|
8027
8123
|
};
|
|
8028
|
-
child.stdout.on("data", (chunk) =>
|
|
8029
|
-
child.stderr.on("data", (chunk) =>
|
|
8124
|
+
child.stdout.on("data", (chunk) => collect2(stdout, chunk));
|
|
8125
|
+
child.stderr.on("data", (chunk) => collect2(stderr, chunk));
|
|
8030
8126
|
child.on("close", (exitCode) => {
|
|
8031
8127
|
clearTimeout(timer);
|
|
8032
8128
|
if (processError) reject(processError);
|
|
@@ -8109,12 +8205,12 @@ var DeployCommand = class extends BaseCommand {
|
|
|
8109
8205
|
try {
|
|
8110
8206
|
const service = this._createService();
|
|
8111
8207
|
if (operation === "list") {
|
|
8112
|
-
return
|
|
8208
|
+
return ok46(await service.list());
|
|
8113
8209
|
}
|
|
8114
8210
|
if (operation === "delete") {
|
|
8115
|
-
return
|
|
8211
|
+
return ok46(await service.delete(deleteName));
|
|
8116
8212
|
}
|
|
8117
|
-
return
|
|
8213
|
+
return ok46(
|
|
8118
8214
|
await service.deploy({
|
|
8119
8215
|
sourcePath,
|
|
8120
8216
|
...name !== void 0 ? { name } : {}
|
|
@@ -8134,7 +8230,7 @@ function inputError(msg) {
|
|
|
8134
8230
|
}
|
|
8135
8231
|
|
|
8136
8232
|
// src/modules/git/git-cli.ts
|
|
8137
|
-
import { err as err28, ok as
|
|
8233
|
+
import { err as err28, ok as ok47 } from "rockbed/error";
|
|
8138
8234
|
function runGit(args) {
|
|
8139
8235
|
return runProcess("git", args);
|
|
8140
8236
|
}
|
|
@@ -8143,7 +8239,7 @@ async function captureGit(args) {
|
|
|
8143
8239
|
if (!result.ok) {
|
|
8144
8240
|
return result;
|
|
8145
8241
|
}
|
|
8146
|
-
return
|
|
8242
|
+
return ok47(result.value.stdout.trim());
|
|
8147
8243
|
}
|
|
8148
8244
|
function gitAddAll() {
|
|
8149
8245
|
return runGit(["add", "."]);
|
|
@@ -8272,7 +8368,7 @@ var GitMmCommand = class extends GitBaseCommand {
|
|
|
8272
8368
|
};
|
|
8273
8369
|
|
|
8274
8370
|
// src/commands/git/git-mr-command.ts
|
|
8275
|
-
import { ok as
|
|
8371
|
+
import { ok as ok48 } from "rockbed/error";
|
|
8276
8372
|
var GitMrCommand = class extends GitBaseCommand {
|
|
8277
8373
|
_meta() {
|
|
8278
8374
|
return {
|
|
@@ -8298,7 +8394,7 @@ var GitMrCommand = class extends GitBaseCommand {
|
|
|
8298
8394
|
if (!openResult.ok) {
|
|
8299
8395
|
this._debug(openResult.msg);
|
|
8300
8396
|
}
|
|
8301
|
-
return
|
|
8397
|
+
return ok48();
|
|
8302
8398
|
}
|
|
8303
8399
|
};
|
|
8304
8400
|
|
|
@@ -8346,7 +8442,7 @@ var GitCommand = class extends BaseCommandGroup {
|
|
|
8346
8442
|
};
|
|
8347
8443
|
|
|
8348
8444
|
// src/commands/hello/hello-greet-command.ts
|
|
8349
|
-
import { ok as
|
|
8445
|
+
import { ok as ok49 } from "rockbed/error";
|
|
8350
8446
|
var HelloGreetCommand = class extends BaseCommand {
|
|
8351
8447
|
_meta() {
|
|
8352
8448
|
return {
|
|
@@ -8362,14 +8458,14 @@ var HelloGreetCommand = class extends BaseCommand {
|
|
|
8362
8458
|
}
|
|
8363
8459
|
async _execute(ctx) {
|
|
8364
8460
|
const message = `Hello, ${readStringArg(ctx.args, 0) || "World"}!`;
|
|
8365
|
-
return
|
|
8461
|
+
return ok49({
|
|
8366
8462
|
message: ctx.options.uppercase ? message.toUpperCase() : message
|
|
8367
8463
|
});
|
|
8368
8464
|
}
|
|
8369
8465
|
};
|
|
8370
8466
|
|
|
8371
8467
|
// src/commands/hello/hello-info-command.ts
|
|
8372
|
-
import { ok as
|
|
8468
|
+
import { ok as ok50 } from "rockbed/error";
|
|
8373
8469
|
var HelloInfoCommand = class extends BaseCommand {
|
|
8374
8470
|
_meta() {
|
|
8375
8471
|
return {
|
|
@@ -8378,7 +8474,7 @@ var HelloInfoCommand = class extends BaseCommand {
|
|
|
8378
8474
|
};
|
|
8379
8475
|
}
|
|
8380
8476
|
async _execute(_ctx) {
|
|
8381
|
-
return
|
|
8477
|
+
return ok50({
|
|
8382
8478
|
version: "1.0.0",
|
|
8383
8479
|
description: "Hello \u547D\u4EE4\u7EC4 - \u7528\u4E8E\u6253\u62DB\u547C\u7684\u793A\u4F8B\u547D\u4EE4"
|
|
8384
8480
|
});
|
|
@@ -8402,14 +8498,14 @@ var HelloCommand = class extends BaseCommandGroup {
|
|
|
8402
8498
|
};
|
|
8403
8499
|
|
|
8404
8500
|
// src/modules/pippit/douyin-video/cn-douyin-video.ts
|
|
8405
|
-
import { err as err29, ok as
|
|
8501
|
+
import { err as err29, ok as ok52 } from "rockbed/error";
|
|
8406
8502
|
|
|
8407
8503
|
// src/modules/pippit/request-json.ts
|
|
8408
|
-
import { ok as
|
|
8504
|
+
import { ok as ok51 } from "rockbed/error";
|
|
8409
8505
|
async function readJsonBody(response, url, responseParseFailed) {
|
|
8410
8506
|
const bodyText = await response.text();
|
|
8411
8507
|
try {
|
|
8412
|
-
return
|
|
8508
|
+
return ok51(JSON.parse(bodyText));
|
|
8413
8509
|
} catch (error) {
|
|
8414
8510
|
const cause = error instanceof Error ? ` (${error.message})` : "";
|
|
8415
8511
|
return responseParseFailed(`\u63A5\u53E3\u8FD4\u56DE\u975E JSON \u54CD\u5E94: ${url}${cause}`);
|
|
@@ -8524,7 +8620,7 @@ async function fetchDouyinVideoCn(options, dependencies = {}) {
|
|
|
8524
8620
|
const response = responseResult.value;
|
|
8525
8621
|
const videoUrl = parseVideoUrl(response.data);
|
|
8526
8622
|
if (videoUrl) {
|
|
8527
|
-
return
|
|
8623
|
+
return ok52({ video_url: videoUrl });
|
|
8528
8624
|
}
|
|
8529
8625
|
if (response.ret !== void 0 && String(response.ret) !== "0") {
|
|
8530
8626
|
return err29(
|
|
@@ -8653,7 +8749,7 @@ var ShortcutCommand = class extends BaseCommandGroup {
|
|
|
8653
8749
|
};
|
|
8654
8750
|
|
|
8655
8751
|
// src/commands/tool/tool-draw-command.ts
|
|
8656
|
-
import { err as err30, ok as
|
|
8752
|
+
import { err as err30, ok as ok53 } from "rockbed/error";
|
|
8657
8753
|
var ToolDrawCommand = class extends BaseCommand {
|
|
8658
8754
|
_meta() {
|
|
8659
8755
|
return {
|
|
@@ -8690,7 +8786,7 @@ var ToolDrawCommand = class extends BaseCommand {
|
|
|
8690
8786
|
if (!distributionResult.ok) {
|
|
8691
8787
|
return distributionResult;
|
|
8692
8788
|
}
|
|
8693
|
-
return
|
|
8789
|
+
return ok53({
|
|
8694
8790
|
items: drawWeightedItems(countResult.value, distributionResult.value)
|
|
8695
8791
|
});
|
|
8696
8792
|
}
|
|
@@ -8700,7 +8796,7 @@ function parseCount(value) {
|
|
|
8700
8796
|
if (!Number.isInteger(count) || count <= 0) {
|
|
8701
8797
|
return err30(1, "\u62BD\u53D6\u4E2A\u6570\u5FC5\u987B\u662F\u6B63\u6574\u6570");
|
|
8702
8798
|
}
|
|
8703
|
-
return
|
|
8799
|
+
return ok53(count);
|
|
8704
8800
|
}
|
|
8705
8801
|
function stringifyDistributionArg(value) {
|
|
8706
8802
|
if (Array.isArray(value)) {
|
|
@@ -8748,7 +8844,7 @@ function parseJsonDistributionEntry(value, index) {
|
|
|
8748
8844
|
if (!weightResult.ok) {
|
|
8749
8845
|
return weightResult;
|
|
8750
8846
|
}
|
|
8751
|
-
return
|
|
8847
|
+
return ok53({ name: nameResult.value, weight: weightResult.value });
|
|
8752
8848
|
}
|
|
8753
8849
|
function getJsonWeightValue(record) {
|
|
8754
8850
|
if ("weight" in record) {
|
|
@@ -8797,7 +8893,7 @@ function parseEntryName(value, label) {
|
|
|
8797
8893
|
if (!name) {
|
|
8798
8894
|
return err30(1, `${label}\u7684\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A`);
|
|
8799
8895
|
}
|
|
8800
|
-
return
|
|
8896
|
+
return ok53(name);
|
|
8801
8897
|
}
|
|
8802
8898
|
function parseWeight(value, label) {
|
|
8803
8899
|
const rawValue = typeof value === "string" ? value.trim().replace(/[%%]$/, "") : value;
|
|
@@ -8805,13 +8901,13 @@ function parseWeight(value, label) {
|
|
|
8805
8901
|
if (!Number.isFinite(weight) || weight <= 0) {
|
|
8806
8902
|
return err30(1, `${label}\u7684\u6982\u7387\u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6570\u5B57`);
|
|
8807
8903
|
}
|
|
8808
|
-
return
|
|
8904
|
+
return ok53(weight);
|
|
8809
8905
|
}
|
|
8810
8906
|
function validateDistribution(entries) {
|
|
8811
8907
|
if (entries.length === 0) {
|
|
8812
8908
|
return err30(1, "\u6982\u7387\u5206\u5E03\u81F3\u5C11\u9700\u8981 1 \u9879");
|
|
8813
8909
|
}
|
|
8814
|
-
return
|
|
8910
|
+
return ok53(entries);
|
|
8815
8911
|
}
|
|
8816
8912
|
function drawWeightedItems(count, entries) {
|
|
8817
8913
|
const totalWeight = entries.reduce((sum, entry) => sum + entry.weight, 0);
|
|
@@ -8839,7 +8935,7 @@ function asRecord(value) {
|
|
|
8839
8935
|
}
|
|
8840
8936
|
|
|
8841
8937
|
// src/commands/tool/tool-get-config-command.ts
|
|
8842
|
-
import { err as err31, ok as
|
|
8938
|
+
import { err as err31, ok as ok54 } from "rockbed/error";
|
|
8843
8939
|
var ToolGetConfigCommand = class extends BaseCommand {
|
|
8844
8940
|
constructor(_settingsReader = new FileCrossAppSettingsReader()) {
|
|
8845
8941
|
super();
|
|
@@ -8902,9 +8998,9 @@ async function readConfigValue(settingsReader, key) {
|
|
|
8902
8998
|
}
|
|
8903
8999
|
const entry = snapshotResult.value.document.settings[key];
|
|
8904
9000
|
if (!entry) {
|
|
8905
|
-
return
|
|
9001
|
+
return ok54({ key, configured: false });
|
|
8906
9002
|
}
|
|
8907
|
-
return
|
|
9003
|
+
return ok54({
|
|
8908
9004
|
key,
|
|
8909
9005
|
configured: true,
|
|
8910
9006
|
value: entry.value,
|
|
@@ -8914,7 +9010,7 @@ async function readConfigValue(settingsReader, key) {
|
|
|
8914
9010
|
}
|
|
8915
9011
|
|
|
8916
9012
|
// src/commands/tool/tool-set-config-command.ts
|
|
8917
|
-
import { ok as
|
|
9013
|
+
import { ok as ok55 } from "rockbed/error";
|
|
8918
9014
|
var ToolSetConfigCommand = class extends BaseCommand {
|
|
8919
9015
|
constructor(_settingsWriter = new FileCrossAppSettingsWriter()) {
|
|
8920
9016
|
super();
|
|
@@ -8947,7 +9043,7 @@ var ToolSetConfigCommand = class extends BaseCommand {
|
|
|
8947
9043
|
}
|
|
8948
9044
|
const result = await this._settingsWriter.set(ctx.options);
|
|
8949
9045
|
if (!result.ok) return failFrom(result, { stage: "write_config" });
|
|
8950
|
-
return
|
|
9046
|
+
return ok55({ ...result.value, configured: true });
|
|
8951
9047
|
}
|
|
8952
9048
|
};
|
|
8953
9049
|
|
|
@@ -8971,7 +9067,7 @@ var ToolCommand = class extends BaseCommandGroup {
|
|
|
8971
9067
|
import { stat as stat5 } from "node:fs/promises";
|
|
8972
9068
|
import { resolve as resolve14 } from "node:path";
|
|
8973
9069
|
import { fileURLToPath as fileURLToPath3 } from "node:url";
|
|
8974
|
-
import { err as err32, ok as
|
|
9070
|
+
import { err as err32, ok as ok56 } from "rockbed/error";
|
|
8975
9071
|
var DEFAULT_TRAEX_CWD = "/Users/bytedance/work/autogen";
|
|
8976
9072
|
var DEFAULT_TRAEX_MODEL = "gpt-5.6-sol";
|
|
8977
9073
|
var DEFAULT_TRAEX_REASONING = "xhigh";
|
|
@@ -8990,7 +9086,7 @@ async function launchTraex(input, launch = launchDefaultTraexWorker) {
|
|
|
8990
9086
|
}
|
|
8991
9087
|
const result = await launch({ ...input, cwd });
|
|
8992
9088
|
if (!result.ok) return result;
|
|
8993
|
-
return
|
|
9089
|
+
return ok56({ status: "launched", pid: result.value.pid, cwd, model: input.model, reasoning: input.reasoning, ...result.value.data });
|
|
8994
9090
|
}
|
|
8995
9091
|
function launchDefaultTraexWorker(input) {
|
|
8996
9092
|
const source = import.meta.url.endsWith(".ts");
|
|
@@ -9089,4 +9185,4 @@ export {
|
|
|
9089
9185
|
TraexCommand,
|
|
9090
9186
|
createRootCommands
|
|
9091
9187
|
};
|
|
9092
|
-
//# sourceMappingURL=chunk-
|
|
9188
|
+
//# sourceMappingURL=chunk-X52PJANF.js.map
|