@downcity/city 0.2.172 → 0.2.174
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/bin/service/ai/ai-service.d.ts +0 -4
- package/bin/service/ai/ai-service.d.ts.map +1 -1
- package/bin/service/ai/ai-service.js +38 -41
- package/bin/service/ai/ai-service.js.map +1 -1
- package/bin/service/ai/charge-runtime.d.ts +16 -0
- package/bin/service/ai/charge-runtime.d.ts.map +1 -0
- package/bin/service/ai/charge-runtime.js +52 -0
- package/bin/service/ai/charge-runtime.js.map +1 -0
- package/bin/service/ai/charge.d.ts +2 -0
- package/bin/service/ai/charge.d.ts.map +1 -1
- package/bin/service/ai/image-job-store.d.ts +25 -0
- package/bin/service/ai/image-job-store.d.ts.map +1 -0
- package/bin/service/ai/image-job-store.js +108 -0
- package/bin/service/ai/image-job-store.js.map +1 -0
- package/bin/service/async-job/schema.js +2 -2
- package/bin/service/async-job/schema.js.map +1 -1
- package/bin/store/table-api.d.ts.map +1 -1
- package/bin/store/table-api.js +18 -2
- package/bin/store/table-api.js.map +1 -1
- package/bin/types/AIImageJobClaim.d.ts +14 -0
- package/bin/types/AIImageJobClaim.d.ts.map +1 -0
- package/bin/types/AIImageJobClaim.js +7 -0
- package/bin/types/AIImageJobClaim.js.map +1 -0
- package/bin/types/AsyncJob.d.ts +1 -1
- package/bin/types/AsyncJob.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -94,10 +94,6 @@ export declare class AIService extends Service {
|
|
|
94
94
|
* 将图片任务记录转成默认 result 返回。
|
|
95
95
|
*/
|
|
96
96
|
private imageJobToResult;
|
|
97
|
-
/**
|
|
98
|
-
* 按 provider fetch 输出更新图片任务。
|
|
99
|
-
*/
|
|
100
|
-
private updateImageJobFromFetch;
|
|
101
97
|
private handleChatCompletions;
|
|
102
98
|
/**
|
|
103
99
|
* 将解析出的模型写回原始 Context,供 hook / usage / charge 读取。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-service.d.ts","sourceRoot":"","sources":["../../../src/service/ai/ai-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EAEX,WAAW,EACZ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-service.d.ts","sourceRoot":"","sources":["../../../src/service/ai/ai-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EAEX,WAAW,EACZ,MAAM,YAAY,CAAC;AAiDpB,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AA2PrD,qBAAa,SAAU,SAAQ,OAAO;IACpC,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAEhD,0CAA0C;IAC1C,OAAO,CAAC,eAAe,CAA+B;IAEtD,iBAAiB;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAkB;IAC3C,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAS;gBAE3C,OAAO,GAAE,gBAAqB;IA0C1C,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,GAAG,IAAI;IAKrD,UAAU,IAAI,WAAW,EAAE;IAI3B,SAAS,IAAI,OAAO;IAMpB,OAAO,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG;QAAE,KAAK,CAAC,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE;IAgB7G,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,2BAA2B;IAmCnC,OAAO,CAAC,kBAAkB;IAS1B,kCAAkC;IAClC,OAAO,CAAC,mBAAmB;YAkBb,cAAc;YAmCd,cAAc;YAgBd,YAAY;IAS1B;;OAEG;YACW,aAAa;IAuD3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAOjC;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAc1C;;OAEG;YACW,iBAAiB;IAU/B;;;;;;;OAOG;YACW,2BAA2B;IAwDzC;;OAEG;YACW,cAAc;IAuB5B;;OAEG;YACW,eAAe;IAW7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;YAcV,qBAAqB;IAoCnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;;;;;OAOG;YACW,QAAQ;IAMtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;OAEG;YACW,YAAY;IA0D1B,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;QAC/C,GAAG,EAAE,SAAS,CAAC;QACf,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;KACtC,GAAG,WAAW,EAAE;CAMlB"}
|
|
@@ -22,6 +22,8 @@ import { normalizeAIUsage } from "./helpers.js";
|
|
|
22
22
|
import { attach_resolved_reasoning, resolve_model_reasoning, } from "./reasoning.js";
|
|
23
23
|
import { AIModelRegistry } from "./model-registry.js";
|
|
24
24
|
import { resolve_text_routing_plan } from "./model-routing.js";
|
|
25
|
+
import { claim_image_job, finish_image_job_fetch, release_image_job_claim, } from "./image-job-store.js";
|
|
26
|
+
import { settle_response_charge } from "./charge-runtime.js";
|
|
25
27
|
/** AIService 直接暴露的 SDK 通路模态列表。图片只通过 image/create + image/result 暴露。 */
|
|
26
28
|
const MODALITIES = ["text", "stream", "video", "tts", "asr"];
|
|
27
29
|
/** 用户侧默认以 text 模态排序模型 */
|
|
@@ -109,7 +111,7 @@ function normalizePositiveNumber(value, fallback) {
|
|
|
109
111
|
* 读取任务状态。
|
|
110
112
|
*/
|
|
111
113
|
function readJobStatus(value) {
|
|
112
|
-
return value === "queued" || value === "running" || value === "succeeded" || value === "failed"
|
|
114
|
+
return value === "queued" || value === "running" || value === "fetching" || value === "succeeded" || value === "failed"
|
|
113
115
|
? value
|
|
114
116
|
: "failed";
|
|
115
117
|
}
|
|
@@ -424,9 +426,9 @@ export class AIService extends Service {
|
|
|
424
426
|
this.attachOutputMetering(ctx, output, modality, started_at);
|
|
425
427
|
const resolved_charge = charge ?? resolved.model?.bill?.(ctx, output);
|
|
426
428
|
const defer_charge = isResponse(output) || isPromiseLike(resolved_charge);
|
|
427
|
-
await this.handleCharge(ctx, resolved_charge, defer_charge);
|
|
429
|
+
const charged_response = await this.handleCharge(ctx, resolved_charge, defer_charge, undefined, undefined, isResponse(output) ? output : undefined);
|
|
428
430
|
if (isResponse(output))
|
|
429
|
-
return output;
|
|
431
|
+
return charged_response ?? output;
|
|
430
432
|
return output;
|
|
431
433
|
}
|
|
432
434
|
catch (error) {
|
|
@@ -465,13 +467,21 @@ export class AIService extends Service {
|
|
|
465
467
|
* 后台抓取图片任务状态,并根据结果更新 async_jobs。
|
|
466
468
|
*/
|
|
467
469
|
async fetchImageJob(ctx) {
|
|
468
|
-
|
|
470
|
+
let claim = null;
|
|
471
|
+
const initial_job = await this.requireImageJob(ctx);
|
|
469
472
|
try {
|
|
470
|
-
if (this.isTerminalImageJob(
|
|
471
|
-
return this.imageJobToResult(
|
|
473
|
+
if (this.isTerminalImageJob(initial_job))
|
|
474
|
+
return this.imageJobToResult(initial_job);
|
|
475
|
+
const table = ctx.db.async_jobs;
|
|
476
|
+
if (!table)
|
|
477
|
+
throw httpError(500, "AI async_jobs table is not initialized");
|
|
478
|
+
claim = await claim_image_job(table, initial_job);
|
|
479
|
+
if (!claim)
|
|
480
|
+
return this.imageJobToResult(await this.requireImageJob(ctx));
|
|
481
|
+
const job = claim.record;
|
|
472
482
|
if (this.isImageJobPendingTimedOut(job)) {
|
|
473
483
|
const output = this.createImageJobPendingTimeoutResult(job);
|
|
474
|
-
await
|
|
484
|
+
await finish_image_job_fetch(table, claim, output);
|
|
475
485
|
return output;
|
|
476
486
|
}
|
|
477
487
|
const model_id = job.model_id ?? readOptionalString(ctx.input.model);
|
|
@@ -492,18 +502,19 @@ export class AIService extends Service {
|
|
|
492
502
|
const should_charge = output.status === "succeeded" && Boolean(output.result) && !job.result_json;
|
|
493
503
|
if (should_charge) {
|
|
494
504
|
this.attachOutputMetering(ctx, stored_output.result, "image", started_at);
|
|
495
|
-
}
|
|
496
|
-
await this.updateImageJobFromFetch(ctx, job, stored_output);
|
|
497
|
-
if (should_charge) {
|
|
498
505
|
const charge = model.bill?.(ctx, stored_output);
|
|
499
|
-
await this.handleCharge(ctx, charge,
|
|
506
|
+
await this.handleCharge(ctx, charge, false, `ai_image:${job.job_id}`, job.user_id ?? undefined);
|
|
500
507
|
}
|
|
508
|
+
await finish_image_job_fetch(table, claim, stored_output);
|
|
501
509
|
if (stored_output.status === "queued" || stored_output.status === "running") {
|
|
502
510
|
await this.enqueueImageFetch(ctx, job.job_id, stored_output.poll_after_ms);
|
|
503
511
|
}
|
|
504
512
|
return stored_output;
|
|
505
513
|
}
|
|
506
514
|
catch (error) {
|
|
515
|
+
const table = ctx.db.async_jobs;
|
|
516
|
+
if (table && claim)
|
|
517
|
+
await release_image_job_claim(table, claim);
|
|
507
518
|
throw imageActionError(error, "image_fetch action failed");
|
|
508
519
|
}
|
|
509
520
|
}
|
|
@@ -517,7 +528,7 @@ export class AIService extends Service {
|
|
|
517
528
|
* 判断图片任务是否超过平台允许的 pending 时间。
|
|
518
529
|
*/
|
|
519
530
|
isImageJobPendingTimedOut(job) {
|
|
520
|
-
if (job.status !== "queued" && job.status !== "running")
|
|
531
|
+
if (job.status !== "queued" && job.status !== "running" && job.status !== "fetching")
|
|
521
532
|
return false;
|
|
522
533
|
const created_at = Date.parse(job.created_at);
|
|
523
534
|
if (!Number.isFinite(created_at))
|
|
@@ -675,7 +686,7 @@ export class AIService extends Service {
|
|
|
675
686
|
imageJobToResult(job) {
|
|
676
687
|
return {
|
|
677
688
|
job_id: job.job_id,
|
|
678
|
-
status: job.status,
|
|
689
|
+
status: job.status === "fetching" ? "running" : job.status,
|
|
679
690
|
result: job.status === "succeeded" ? parseImageMessage(job.result_json) : undefined,
|
|
680
691
|
error: job.error ?? undefined,
|
|
681
692
|
message: job.message ?? undefined,
|
|
@@ -683,26 +694,6 @@ export class AIService extends Service {
|
|
|
683
694
|
metadata: parseRecordJson(job.state_json),
|
|
684
695
|
};
|
|
685
696
|
}
|
|
686
|
-
/**
|
|
687
|
-
* 按 provider fetch 输出更新图片任务。
|
|
688
|
-
*/
|
|
689
|
-
async updateImageJobFromFetch(ctx, job, output) {
|
|
690
|
-
const table = ctx.db.async_jobs;
|
|
691
|
-
if (!table)
|
|
692
|
-
throw httpError(500, "AI async_jobs table is not initialized");
|
|
693
|
-
await table.update({
|
|
694
|
-
where: { job_id: job.job_id, job_type: IMAGE_GENERATE_JOB_TYPE },
|
|
695
|
-
values: {
|
|
696
|
-
status: output.status,
|
|
697
|
-
state_json: JSON.stringify(output.metadata ?? parseRecordJson(job.state_json)),
|
|
698
|
-
result_json: output.result ? JSON.stringify(output.result) : job.result_json ?? null,
|
|
699
|
-
error: output.error ?? null,
|
|
700
|
-
message: output.message ?? null,
|
|
701
|
-
poll_after_ms: output.poll_after_ms ? String(output.poll_after_ms) : null,
|
|
702
|
-
updated_at: new Date().toISOString(),
|
|
703
|
-
},
|
|
704
|
-
});
|
|
705
|
-
}
|
|
706
697
|
// ========== OpenAI 兼容通路 ==========
|
|
707
698
|
async handleChatCompletions(ctx) {
|
|
708
699
|
const body = ctx.input;
|
|
@@ -722,9 +713,9 @@ export class AIService extends Service {
|
|
|
722
713
|
this.attachOutputMetering(ctx, provider_output.output, "openai", started_at);
|
|
723
714
|
const resolved_charge = provider_output.charge ?? resolved.model?.bill?.(ctx, provider_output.output);
|
|
724
715
|
const defer_charge = isResponse(provider_output.output) || isPromiseLike(resolved_charge);
|
|
725
|
-
await this.handleCharge(ctx, resolved_charge, defer_charge);
|
|
716
|
+
const charged_response = await this.handleCharge(ctx, resolved_charge, defer_charge, undefined, undefined, isResponse(provider_output.output) ? provider_output.output : undefined);
|
|
726
717
|
if (isResponse(provider_output.output))
|
|
727
|
-
return provider_output.output;
|
|
718
|
+
return charged_response ?? provider_output.output;
|
|
728
719
|
return new Response(JSON.stringify(provider_output.output), { status: 200, headers: { "content-type": "application/json" } });
|
|
729
720
|
}
|
|
730
721
|
catch (error) {
|
|
@@ -813,9 +804,9 @@ export class AIService extends Service {
|
|
|
813
804
|
/**
|
|
814
805
|
* 安排 AI 专用扣费。
|
|
815
806
|
*/
|
|
816
|
-
async handleCharge(ctx, charge, defer) {
|
|
807
|
+
async handleCharge(ctx, charge, defer, idempotency_key, fallback_user_id, response) {
|
|
817
808
|
if (!charge || !this.balance)
|
|
818
|
-
return;
|
|
809
|
+
return response;
|
|
819
810
|
ctx.locals.ai_charge_handled = true;
|
|
820
811
|
let charge_line;
|
|
821
812
|
let charge_user_id;
|
|
@@ -824,13 +815,15 @@ export class AIService extends Service {
|
|
|
824
815
|
charge_line = line;
|
|
825
816
|
if (!line || line.credits <= 0)
|
|
826
817
|
return;
|
|
827
|
-
|
|
818
|
+
// 图片队列没有请求用户上下文时,必须回退到任务创建者,不能静默跳过扣费。
|
|
819
|
+
const user_id = line.user_id ?? fallback_user_id ?? ctx.user?.user_id;
|
|
828
820
|
charge_user_id = user_id;
|
|
829
821
|
if (!user_id)
|
|
830
822
|
return;
|
|
831
823
|
await this.balance?.charge({
|
|
832
824
|
...line,
|
|
833
825
|
user_id,
|
|
826
|
+
...(idempotency_key ? { idempotency_key } : {}),
|
|
834
827
|
});
|
|
835
828
|
})
|
|
836
829
|
.catch((error) => {
|
|
@@ -847,18 +840,22 @@ export class AIService extends Service {
|
|
|
847
840
|
});
|
|
848
841
|
if (!defer) {
|
|
849
842
|
await promise;
|
|
850
|
-
return;
|
|
843
|
+
return response;
|
|
851
844
|
}
|
|
852
845
|
if (ctx.waitUntil) {
|
|
853
846
|
try {
|
|
854
847
|
ctx.waitUntil(promise);
|
|
855
|
-
return;
|
|
848
|
+
return response;
|
|
856
849
|
}
|
|
857
850
|
catch {
|
|
858
851
|
// 非 Worker 测试环境可能没有真实 ExecutionContext,继续走普通异步结算。
|
|
859
852
|
}
|
|
860
853
|
}
|
|
861
|
-
|
|
854
|
+
if (response)
|
|
855
|
+
return await settle_response_charge(response, promise);
|
|
856
|
+
// Node 等无 ExecutionContext 环境下,普通异步计费必须在请求结束前可靠完成。
|
|
857
|
+
await promise;
|
|
858
|
+
return response;
|
|
862
859
|
}
|
|
863
860
|
// ========== 模型列表 ==========
|
|
864
861
|
static listModels(aiService, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-service.js","sourceRoot":"","sources":["../../../src/service/ai/ai-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-service.js","sourceRoot":"","sources":["../../../src/service/ai/ai-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI 延迟扣费响应生命周期模块。
|
|
3
|
+
*
|
|
4
|
+
* 负责在没有 Worker ExecutionContext 的运行时中,把异步扣费绑定到 HTTP
|
|
5
|
+
* Response 的流结束阶段,避免请求已经结束但余额结算仍处于游离状态。
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* 将 Node 环境中的延迟扣费绑定到响应流生命周期。
|
|
9
|
+
*
|
|
10
|
+
* 关键说明(中文)
|
|
11
|
+
* - 不能在返回 Response 前直接等待,因为账单可能依赖流消费完成,会形成死锁。
|
|
12
|
+
* - 上游流结束后先等待扣费,再关闭下游流,确保请求生命周期覆盖结算。
|
|
13
|
+
* - 客户端取消时同步取消上游,并消费扣费 Promise,避免未处理 rejection。
|
|
14
|
+
*/
|
|
15
|
+
export declare function settle_response_charge(response: Response, charge_promise: Promise<void>): Promise<Response>;
|
|
16
|
+
//# sourceMappingURL=charge-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"charge-runtime.d.ts","sourceRoot":"","sources":["../../../src/service/ai/charge-runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,GAC5B,OAAO,CAAC,QAAQ,CAAC,CAmCnB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI 延迟扣费响应生命周期模块。
|
|
3
|
+
*
|
|
4
|
+
* 负责在没有 Worker ExecutionContext 的运行时中,把异步扣费绑定到 HTTP
|
|
5
|
+
* Response 的流结束阶段,避免请求已经结束但余额结算仍处于游离状态。
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* 将 Node 环境中的延迟扣费绑定到响应流生命周期。
|
|
9
|
+
*
|
|
10
|
+
* 关键说明(中文)
|
|
11
|
+
* - 不能在返回 Response 前直接等待,因为账单可能依赖流消费完成,会形成死锁。
|
|
12
|
+
* - 上游流结束后先等待扣费,再关闭下游流,确保请求生命周期覆盖结算。
|
|
13
|
+
* - 客户端取消时同步取消上游,并消费扣费 Promise,避免未处理 rejection。
|
|
14
|
+
*/
|
|
15
|
+
export async function settle_response_charge(response, charge_promise) {
|
|
16
|
+
if (!response.body) {
|
|
17
|
+
await charge_promise;
|
|
18
|
+
return response;
|
|
19
|
+
}
|
|
20
|
+
const reader = response.body.getReader();
|
|
21
|
+
const body = new ReadableStream({
|
|
22
|
+
async pull(controller) {
|
|
23
|
+
try {
|
|
24
|
+
const chunk = await reader.read();
|
|
25
|
+
if (!chunk.done) {
|
|
26
|
+
controller.enqueue(chunk.value);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
await charge_promise;
|
|
30
|
+
controller.close();
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
void charge_promise.catch(() => undefined);
|
|
34
|
+
controller.error(error);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
async cancel(reason) {
|
|
38
|
+
try {
|
|
39
|
+
await reader.cancel(reason);
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
await charge_promise;
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
return new Response(body, {
|
|
47
|
+
status: response.status,
|
|
48
|
+
statusText: response.statusText,
|
|
49
|
+
headers: response.headers,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=charge-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"charge-runtime.js","sourceRoot":"","sources":["../../../src/service/ai/charge-runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAkB,EAClB,cAA6B;IAE7B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC;QACrB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,cAAc,CAAa;QAC1C,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBAChB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAChC,OAAO;gBACT,CAAC;gBACD,MAAM,cAAc,CAAC;gBACrB,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,KAAK,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC3C,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAM;YACjB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;oBAAS,CAAC;gBACT,MAAM,cAAc,CAAC;YACvB,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IACH,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;QACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -33,6 +33,8 @@ export interface AIProviderChargeLine {
|
|
|
33
33
|
export interface AIBalanceChargeInput extends AIProviderChargeLine {
|
|
34
34
|
/** 当前用户 ID。 */
|
|
35
35
|
user_id: string;
|
|
36
|
+
/** 可选幂等键;相同键的重复提交必须只产生一次扣费。 */
|
|
37
|
+
idempotency_key?: string;
|
|
36
38
|
}
|
|
37
39
|
/**
|
|
38
40
|
* AIService 依赖的最小 Balance bridge。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charge.d.ts","sourceRoot":"","sources":["../../../src/service/ai/charge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"charge.d.ts","sourceRoot":"","sources":["../../../src/service/ai/charge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAElF,iBAAiB;IACjB,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,OAAO,KACZ,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,OAAO;IAClD,yBAAyB;IACzB,MAAM,EAAE,CAAC,CAAC;IACV,0BAA0B;IAC1B,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CACvF;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,2BAA2B;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CACvF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI 图片任务并发存储模块。
|
|
3
|
+
*
|
|
4
|
+
* 通过 status + updated_at compare-and-set 保证同一任务同一时刻只有一个 worker
|
|
5
|
+
* 查询上游、扣费和提交结果;超时的 fetching 租约允许后续 worker 接管。
|
|
6
|
+
*/
|
|
7
|
+
import type { CityTableApi } from "../../store/table-api.js";
|
|
8
|
+
import type { AIImageJobClaim } from "../../types/AIImageJobClaim.js";
|
|
9
|
+
import type { AsyncJobRecord } from "../../types/AsyncJob.js";
|
|
10
|
+
import type { AIImageProviderFetchResult } from "./job-types.js";
|
|
11
|
+
/**
|
|
12
|
+
* 原子领取一个可执行的图片任务。
|
|
13
|
+
*
|
|
14
|
+
* 返回 null 表示任务正在被其他 worker 处理,或读取后的状态已不再可领取。
|
|
15
|
+
*/
|
|
16
|
+
export declare function claim_image_job(table: CityTableApi, job: AsyncJobRecord): Promise<AIImageJobClaim | null>;
|
|
17
|
+
/**
|
|
18
|
+
* 当前 worker 失败时释放领取权,使队列重试可立即继续,而不必等待租约过期。
|
|
19
|
+
*/
|
|
20
|
+
export declare function release_image_job_claim(table: CityTableApi, claim: AIImageJobClaim): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* 由持有领取权的 worker 提交 Provider 抓取结果。
|
|
23
|
+
*/
|
|
24
|
+
export declare function finish_image_job_fetch(table: CityTableApi, claim: AIImageJobClaim, output: AIImageProviderFetchResult): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=image-job-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-job-store.d.ts","sourceRoot":"","sources":["../../../src/service/ai/image-job-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAOjE;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA2BjC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI 图片任务并发存储模块。
|
|
3
|
+
*
|
|
4
|
+
* 通过 status + updated_at compare-and-set 保证同一任务同一时刻只有一个 worker
|
|
5
|
+
* 查询上游、扣费和提交结果;超时的 fetching 租约允许后续 worker 接管。
|
|
6
|
+
*/
|
|
7
|
+
/** 单次图片抓取租约时长。 */
|
|
8
|
+
const IMAGE_FETCH_LEASE_MS = 5 * 60 * 1000;
|
|
9
|
+
/** 图片任务在通用任务表中的类型。 */
|
|
10
|
+
const IMAGE_GENERATE_JOB_TYPE = "ai.image.generate";
|
|
11
|
+
/**
|
|
12
|
+
* 原子领取一个可执行的图片任务。
|
|
13
|
+
*
|
|
14
|
+
* 返回 null 表示任务正在被其他 worker 处理,或读取后的状态已不再可领取。
|
|
15
|
+
*/
|
|
16
|
+
export async function claim_image_job(table, job) {
|
|
17
|
+
if (job.status === "succeeded" || job.status === "failed")
|
|
18
|
+
return null;
|
|
19
|
+
if (job.status === "fetching" && !is_expired_claim(job.updated_at))
|
|
20
|
+
return null;
|
|
21
|
+
if (job.status !== "queued" && job.status !== "running" && job.status !== "fetching")
|
|
22
|
+
return null;
|
|
23
|
+
const claimed_at = new Date().toISOString();
|
|
24
|
+
const changed = await table.update({
|
|
25
|
+
where: {
|
|
26
|
+
job_id: job.job_id,
|
|
27
|
+
job_type: IMAGE_GENERATE_JOB_TYPE,
|
|
28
|
+
status: job.status,
|
|
29
|
+
updated_at: job.updated_at,
|
|
30
|
+
},
|
|
31
|
+
values: {
|
|
32
|
+
status: "fetching",
|
|
33
|
+
updated_at: claimed_at,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
if (changed === 0)
|
|
37
|
+
return null;
|
|
38
|
+
return {
|
|
39
|
+
claimed_at,
|
|
40
|
+
record: {
|
|
41
|
+
...job,
|
|
42
|
+
status: "fetching",
|
|
43
|
+
updated_at: claimed_at,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 当前 worker 失败时释放领取权,使队列重试可立即继续,而不必等待租约过期。
|
|
49
|
+
*/
|
|
50
|
+
export async function release_image_job_claim(table, claim) {
|
|
51
|
+
await table.update({
|
|
52
|
+
where: claim_where(claim),
|
|
53
|
+
values: {
|
|
54
|
+
status: "running",
|
|
55
|
+
updated_at: new Date().toISOString(),
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* 由持有领取权的 worker 提交 Provider 抓取结果。
|
|
61
|
+
*/
|
|
62
|
+
export async function finish_image_job_fetch(table, claim, output) {
|
|
63
|
+
const job = claim.record;
|
|
64
|
+
const changed = await table.update({
|
|
65
|
+
where: claim_where(claim),
|
|
66
|
+
values: {
|
|
67
|
+
status: output.status,
|
|
68
|
+
state_json: JSON.stringify(output.metadata ?? parse_record_json(job.state_json)),
|
|
69
|
+
result_json: output.result ? JSON.stringify(output.result) : job.result_json ?? null,
|
|
70
|
+
error: output.error ?? null,
|
|
71
|
+
message: output.message ?? null,
|
|
72
|
+
poll_after_ms: output.poll_after_ms ? String(output.poll_after_ms) : null,
|
|
73
|
+
updated_at: new Date().toISOString(),
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
if (changed === 0) {
|
|
77
|
+
throw new Error(`Image job lease lost: ${job.job_id}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** 构造只匹配当前 worker 租约的更新条件。 */
|
|
81
|
+
function claim_where(claim) {
|
|
82
|
+
return {
|
|
83
|
+
job_id: claim.record.job_id,
|
|
84
|
+
job_type: IMAGE_GENERATE_JOB_TYPE,
|
|
85
|
+
status: "fetching",
|
|
86
|
+
updated_at: claim.claimed_at,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/** 判断 fetching 租约是否已过期。 */
|
|
90
|
+
function is_expired_claim(updated_at) {
|
|
91
|
+
const claimed_at = Date.parse(updated_at);
|
|
92
|
+
return !Number.isFinite(claimed_at) || Date.now() - claimed_at >= IMAGE_FETCH_LEASE_MS;
|
|
93
|
+
}
|
|
94
|
+
/** 安全读取任务状态元数据。 */
|
|
95
|
+
function parse_record_json(value) {
|
|
96
|
+
if (typeof value !== "string" || !value.trim())
|
|
97
|
+
return {};
|
|
98
|
+
try {
|
|
99
|
+
const parsed = JSON.parse(value);
|
|
100
|
+
return parsed && typeof parsed === "object" && !Array.isArray(parsed)
|
|
101
|
+
? parsed
|
|
102
|
+
: {};
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return {};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=image-job-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-job-store.js","sourceRoot":"","sources":["../../../src/service/ai/image-job-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ export const sqliteAsyncJobs = sqliteTable(DEFAULT_ASYNC_JOBS_TABLE, {
|
|
|
15
15
|
job_id: sqliteText("job_id").primaryKey(),
|
|
16
16
|
/** 任务类型,例如 `ai.image.generate`。 */
|
|
17
17
|
job_type: sqliteText("job_type").notNull(),
|
|
18
|
-
/** 任务状态:queued / running / succeeded / failed。 */
|
|
18
|
+
/** 任务状态:queued / running / fetching / succeeded / failed。 */
|
|
19
19
|
status: sqliteText("status").notNull(),
|
|
20
20
|
/** 原始任务输入,JSON 字符串。 */
|
|
21
21
|
input_json: sqliteText("input_json").notNull(),
|
|
@@ -50,7 +50,7 @@ export const pgAsyncJobs = pgTable(DEFAULT_ASYNC_JOBS_TABLE, {
|
|
|
50
50
|
job_id: pgText("job_id").primaryKey(),
|
|
51
51
|
/** 任务类型,例如 `ai.image.generate`。 */
|
|
52
52
|
job_type: pgText("job_type").notNull(),
|
|
53
|
-
/** 任务状态:queued / running / succeeded / failed。 */
|
|
53
|
+
/** 任务状态:queued / running / fetching / succeeded / failed。 */
|
|
54
54
|
status: pgText("status").notNull(),
|
|
55
55
|
/** 原始任务输入,JSON 字符串。 */
|
|
56
56
|
input_json: pgText("input_json").notNull(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/service/async-job/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1E,MAAM,wBAAwB,GAAG,YAAY,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC,wBAAwB,EAAE;IACnE,yBAAyB;IACzB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE;IACzC,mCAAmC;IACnC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IAC1C,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/service/async-job/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1E,MAAM,wBAAwB,GAAG,YAAY,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC,wBAAwB,EAAE;IACnE,yBAAyB;IACzB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE;IACzC,mCAAmC;IACnC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IAC1C,6DAA6D;IAC7D,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IACtC,uBAAuB;IACvB,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IAC9C,0BAA0B;IAC1B,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC;IACpC,yBAAyB;IACzB,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC;IACtC,sBAAsB;IACtB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;IAC1B,2BAA2B;IAC3B,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC;IAC9B,0BAA0B;IAC1B,aAAa,EAAE,UAAU,CAAC,eAAe,CAAC;IAC1C,iCAAiC;IACjC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC;IAC9B,iBAAiB;IACjB,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC;IAC9B,yBAAyB;IACzB,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC;IACpC,qBAAqB;IACrB,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC;IAChC,YAAY;IACZ,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IAC9C,YAAY;IACZ,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;CAC/C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,wBAAwB,EAAE;IAC3D,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE;IACrC,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IACtC,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IAClC,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IAC1C,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;IAChC,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;IAClC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;IACtB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;IAC1B,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC;IACtC,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;IAC1B,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;IAC1B,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;IAChC,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;IAC5B,YAAY;IACZ,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IAC1C,YAAY;IACZ,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;CAC3C,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-api.d.ts","sourceRoot":"","sources":["../../src/store/table-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQ9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOxC,MAAM,WAAW,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC;IAC7C,YAAY;IACZ,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,gBAAgB;IAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,uBAAuB;IACvB,MAAM,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChF,uBAAuB;IACvB,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C;AAMD,qBAAa,QAAS,YAAW,YAAY;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;gBAElB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU;IAMvD,MAAM,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAS/E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlF,MAAM,CAAC,KAAK,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWb,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAM9D;
|
|
1
|
+
{"version":3,"file":"table-api.d.ts","sourceRoot":"","sources":["../../src/store/table-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQ9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOxC,MAAM,WAAW,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC;IAC7C,YAAY;IACZ,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,gBAAgB;IAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,uBAAuB;IACvB,MAAM,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChF,uBAAuB;IACvB,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C;AAMD,qBAAa,QAAS,YAAW,YAAY;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;gBAElB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU;IAMvD,MAAM,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAS/E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlF,MAAM,CAAC,KAAK,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWb,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAM9D;AA0BD,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,CA4BlF"}
|
package/bin/store/table-api.js
CHANGED
|
@@ -40,16 +40,32 @@ export class TableApi {
|
|
|
40
40
|
throw new TypeError("update() where cannot be empty");
|
|
41
41
|
// Drizzle update 返回类型因方言而异
|
|
42
42
|
const result = await this.db.update(this.schema).set(input.values).where(cond);
|
|
43
|
-
return
|
|
43
|
+
return read_mutation_count(result);
|
|
44
44
|
}
|
|
45
45
|
async delete(where) {
|
|
46
46
|
const cond = buildCondition(this.schema, where);
|
|
47
47
|
if (!cond)
|
|
48
48
|
throw new TypeError("delete() where cannot be empty");
|
|
49
49
|
const result = await this.db.delete(this.schema).where(cond);
|
|
50
|
-
return
|
|
50
|
+
return read_mutation_count(result);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* 读取不同 Drizzle 方言的变更行数。
|
|
55
|
+
*
|
|
56
|
+
* better-sqlite3 返回 `changes`,D1 返回 `meta.changes`,Postgres 常见驱动返回
|
|
57
|
+
* `rowCount`;统一归一后,上层才能可靠实现 compare-and-set。
|
|
58
|
+
*/
|
|
59
|
+
function read_mutation_count(result) {
|
|
60
|
+
if (!result || typeof result !== "object")
|
|
61
|
+
return 0;
|
|
62
|
+
const record = result;
|
|
63
|
+
// postgres-js 的 RowList 继承 Array;必须先读 count,不能把无 RETURNING 的结果按 length=0 处理。
|
|
64
|
+
const value = record.changes ?? record.count ?? record.rowCount ?? record.meta?.changes;
|
|
65
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
66
|
+
return value;
|
|
67
|
+
return Array.isArray(result) ? result.length : 0;
|
|
68
|
+
}
|
|
53
69
|
// ===========================================================================
|
|
54
70
|
// DDL 生成(仅在 store init 时使用)
|
|
55
71
|
// ===========================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-api.js","sourceRoot":"","sources":["../../src/store/table-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,eAAe,EACf,YAAY,EACZ,EAAE,EACF,GAAG,GAEJ,MAAM,aAAa,CAAC;AAuBrB,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,OAAO,QAAQ;IACV,IAAI,CAAS;IACb,MAAM,CAA8B;IAE5B,EAAE,CAAW;IAE9B,YAAY,EAAY,EAAE,MAAmC;QAC3D,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAiC,EAAE;QAC9C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAiB,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI;YACf,CAAC,CAAC,MAAO,KAA2E,CAAC,KAAK,CAAC,IAAI,CAAC;YAChG,CAAC,CAAC,MAAO,KAA4C,CAAC;QACxD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAA4B,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAA2D;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC9E,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAGZ;QACC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACjE,2BAA2B;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAiB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"table-api.js","sourceRoot":"","sources":["../../src/store/table-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI 图片任务领取类型模块。
|
|
3
|
+
*
|
|
4
|
+
* 该类型只用于 City 内部协调并发的 image/fetch worker,不属于 Provider 或客户端协议。
|
|
5
|
+
*/
|
|
6
|
+
import type { AsyncJobRecord } from "./AsyncJob.js";
|
|
7
|
+
/** 已被当前 worker 原子领取的图片任务。 */
|
|
8
|
+
export interface AIImageJobClaim {
|
|
9
|
+
/** 进入 fetching 状态后的完整任务记录。 */
|
|
10
|
+
record: AsyncJobRecord;
|
|
11
|
+
/** 本次领取写入的时间戳,同时作为后续 CAS 的所有权令牌。 */
|
|
12
|
+
claimed_at: string;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=AIImageJobClaim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIImageJobClaim.d.ts","sourceRoot":"","sources":["../../src/types/AIImageJobClaim.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,6BAA6B;AAC7B,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIImageJobClaim.js","sourceRoot":"","sources":["../../src/types/AIImageJobClaim.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/bin/types/AsyncJob.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 具体业务能力通过 job_type 区分,例如图片生成使用 `ai.image.generate`。
|
|
6
6
|
*/
|
|
7
7
|
/** 通用异步任务状态。 */
|
|
8
|
-
export type AsyncJobStatus = "queued" | "running" | "succeeded" | "failed";
|
|
8
|
+
export type AsyncJobStatus = "queued" | "running" | "fetching" | "succeeded" | "failed";
|
|
9
9
|
/**
|
|
10
10
|
* 通用异步任务表行。
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncJob.d.ts","sourceRoot":"","sources":["../../src/types/AsyncJob.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gBAAgB;AAChB,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"AsyncJob.d.ts","sourceRoot":"","sources":["../../src/types/AsyncJob.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gBAAgB;AAChB,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iBAAiB;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@downcity/city",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.174",
|
|
4
4
|
"description": "Downcity City runtime and City access SDK for services, actions, auth, env, and cities.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./bin/index.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"typescript": "^6.0.3"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@downcity/type": "0.1.
|
|
44
|
+
"@downcity/type": "0.1.129",
|
|
45
45
|
"ai": "^6.0.193",
|
|
46
46
|
"drizzle-orm": "^0.45.2",
|
|
47
47
|
"hono": "^4.12.23"
|