@zlooks.cn/baidu-submit-server 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/command/index.d.ts +3 -0
- package/dist/command/index.d.ts.map +1 -0
- package/dist/command/index.js +14 -0
- package/dist/command/index.js.map +1 -0
- package/dist/config/config-command.d.ts +20 -0
- package/dist/config/config-command.d.ts.map +1 -0
- package/dist/config/config-command.js +57 -0
- package/dist/config/config-command.js.map +1 -0
- package/dist/contracts.d.ts +502 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +142 -0
- package/dist/contracts.js.map +1 -0
- package/dist/events/blog-subscriptions.d.ts +7 -0
- package/dist/events/blog-subscriptions.d.ts.map +1 -0
- package/dist/events/blog-subscriptions.js +49 -0
- package/dist/events/blog-subscriptions.js.map +1 -0
- package/dist/mcp/provider.d.ts +5 -0
- package/dist/mcp/provider.d.ts.map +1 -0
- package/dist/mcp/provider.js +162 -0
- package/dist/mcp/provider.js.map +1 -0
- package/dist/messages/status/read.msg.d.ts +47 -0
- package/dist/messages/status/read.msg.d.ts.map +1 -0
- package/dist/messages/status/read.msg.js +6 -0
- package/dist/messages/status/read.msg.js.map +1 -0
- package/dist/messages/submissions/read.msg.d.ts +42 -0
- package/dist/messages/submissions/read.msg.d.ts.map +1 -0
- package/dist/messages/submissions/read.msg.js +6 -0
- package/dist/messages/submissions/read.msg.js.map +1 -0
- package/dist/messages/submissions/retry.msg.d.ts +74 -0
- package/dist/messages/submissions/retry.msg.d.ts.map +1 -0
- package/dist/messages/submissions/retry.msg.js +6 -0
- package/dist/messages/submissions/retry.msg.js.map +1 -0
- package/dist/messages/submissions/search.msg.d.ts +52 -0
- package/dist/messages/submissions/search.msg.d.ts.map +1 -0
- package/dist/messages/submissions/search.msg.js +6 -0
- package/dist/messages/submissions/search.msg.js.map +1 -0
- package/dist/models/read-status.model.d.ts +33 -0
- package/dist/models/read-status.model.d.ts.map +1 -0
- package/dist/models/read-status.model.js +11 -0
- package/dist/models/read-status.model.js.map +1 -0
- package/dist/models/read-submission.model.d.ts +6 -0
- package/dist/models/read-submission.model.d.ts.map +1 -0
- package/dist/models/read-submission.model.js +13 -0
- package/dist/models/read-submission.model.js.map +1 -0
- package/dist/models/retry-submission.model.d.ts +7 -0
- package/dist/models/retry-submission.model.d.ts.map +1 -0
- package/dist/models/retry-submission.model.js +17 -0
- package/dist/models/retry-submission.model.js.map +1 -0
- package/dist/models/search-submissions.model.d.ts +31 -0
- package/dist/models/search-submissions.model.d.ts.map +1 -0
- package/dist/models/search-submissions.model.js +13 -0
- package/dist/models/search-submissions.model.js.map +1 -0
- package/dist/persistence/entities.d.ts +32 -0
- package/dist/persistence/entities.d.ts.map +1 -0
- package/dist/persistence/entities.js +49 -0
- package/dist/persistence/entities.js.map +1 -0
- package/dist/persistence/submission-store.d.ts +41 -0
- package/dist/persistence/submission-store.d.ts.map +1 -0
- package/dist/persistence/submission-store.js +266 -0
- package/dist/persistence/submission-store.js.map +1 -0
- package/dist/services/application.service.d.ts +8 -0
- package/dist/services/application.service.d.ts.map +1 -0
- package/dist/services/application.service.js +28 -0
- package/dist/services/application.service.js.map +1 -0
- package/dist/services/baidu-submit.boot.d.ts +3 -0
- package/dist/services/baidu-submit.boot.d.ts.map +1 -0
- package/dist/services/baidu-submit.boot.js +11 -0
- package/dist/services/baidu-submit.boot.js.map +1 -0
- package/dist/services/config.service.d.ts +20 -0
- package/dist/services/config.service.d.ts.map +1 -0
- package/dist/services/config.service.js +44 -0
- package/dist/services/config.service.js.map +1 -0
- package/dist/services/database.service.d.ts +3 -0
- package/dist/services/database.service.d.ts.map +1 -0
- package/dist/services/database.service.js +23 -0
- package/dist/services/database.service.js.map +1 -0
- package/dist/services/logger.service.d.ts +4 -0
- package/dist/services/logger.service.d.ts.map +1 -0
- package/dist/services/logger.service.js +8 -0
- package/dist/services/logger.service.js.map +1 -0
- package/dist/services/mcp-provider.service.d.ts +3 -0
- package/dist/services/mcp-provider.service.d.ts.map +1 -0
- package/dist/services/mcp-provider.service.js +23 -0
- package/dist/services/mcp-provider.service.js.map +1 -0
- package/dist/services/submission-runtime.service.d.ts +8 -0
- package/dist/services/submission-runtime.service.d.ts.map +1 -0
- package/dist/services/submission-runtime.service.js +33 -0
- package/dist/services/submission-runtime.service.js.map +1 -0
- package/dist/submission/baidu-submit-client.d.ts +29 -0
- package/dist/submission/baidu-submit-client.d.ts.map +1 -0
- package/dist/submission/baidu-submit-client.js +132 -0
- package/dist/submission/baidu-submit-client.js.map +1 -0
- package/dist/submission/submission-worker.d.ts +17 -0
- package/dist/submission/submission-worker.d.ts.map +1 -0
- package/dist/submission/submission-worker.js +75 -0
- package/dist/submission/submission-worker.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { URL } from 'node:url';
|
|
2
|
+
import { createMicroClient, defineMicroContract, } from '@hile/micro-contract';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export const BAIDU_SUBMIT_SERVICE_NAMESPACE = 'cn.zlooks.baidu.submit.server';
|
|
5
|
+
export const BAIDU_SUBMIT_CONFIG_TOPIC_KEY = 'baidu-submit';
|
|
6
|
+
export const BAIDU_SUBMIT_MCP_PROVIDER_ID = 'baidu-submit';
|
|
7
|
+
export const BAIDU_SUBMIT_READ_SCOPE = 'baidu-submit:read';
|
|
8
|
+
export const BAIDU_SUBMIT_WRITE_SCOPE = 'baidu-submit:write';
|
|
9
|
+
export const BAIDU_SUBMIT_STATUS_RESOURCE = 'status';
|
|
10
|
+
export const BAIDU_SUBMIT_RECORD_RESOURCE = 'submission';
|
|
11
|
+
export const BAIDU_SUBMIT_SEARCH_TOOL = 'search-submissions';
|
|
12
|
+
export const BAIDU_SUBMIT_RETRY_TOOL = 'retry-submission';
|
|
13
|
+
export const BAIDU_SUBMIT_REVIEW_RETRY_PROMPT = 'review-and-retry-submission';
|
|
14
|
+
const instantSchema = z.iso.datetime({ offset: true });
|
|
15
|
+
const optionalInstantSchema = instantSchema.nullable();
|
|
16
|
+
const boundedTextSchema = z.string().trim().min(1).max(2_000);
|
|
17
|
+
export const submissionProviderMetricSchema = z.number().int().nonnegative().max(2_147_483_647);
|
|
18
|
+
export const baiduSubmitConfigSchema = z.strictObject({
|
|
19
|
+
site: z.url().max(2_048).refine((value) => {
|
|
20
|
+
const url = new URL(value);
|
|
21
|
+
return ['http:', 'https:'].includes(url.protocol)
|
|
22
|
+
&& !url.username
|
|
23
|
+
&& !url.password
|
|
24
|
+
&& value === url.origin;
|
|
25
|
+
}, 'Baidu site must be one canonical HTTP(S) origin'),
|
|
26
|
+
token: z.string().trim().min(1).max(256).refine((value) => !/\s/.test(value), 'Baidu token must not contain whitespace'),
|
|
27
|
+
}).readonly();
|
|
28
|
+
export const submissionStatusSchema = z.enum([
|
|
29
|
+
'queued',
|
|
30
|
+
'submitting',
|
|
31
|
+
'accepted',
|
|
32
|
+
'rejected',
|
|
33
|
+
'unknown',
|
|
34
|
+
'skipped',
|
|
35
|
+
]);
|
|
36
|
+
export const submissionTriggerSchema = z.enum(['published', 'publication-updated']);
|
|
37
|
+
export const submissionRecordSchema = z.strictObject({
|
|
38
|
+
id: z.uuid(),
|
|
39
|
+
eventId: z.uuid(),
|
|
40
|
+
postId: z.uuid(),
|
|
41
|
+
postVersion: z.number().int().positive(),
|
|
42
|
+
trigger: submissionTriggerSchema,
|
|
43
|
+
url: z.url().max(2_048),
|
|
44
|
+
status: submissionStatusSchema,
|
|
45
|
+
attempts: z.number().int().nonnegative().max(2_147_483_647),
|
|
46
|
+
providerAcceptedCount: submissionProviderMetricSchema.nullable(),
|
|
47
|
+
providerRemaining: submissionProviderMetricSchema.nullable(),
|
|
48
|
+
providerMessage: boundedTextSchema.nullable(),
|
|
49
|
+
lastErrorCode: z.string().trim().min(1).max(64).nullable(),
|
|
50
|
+
retryRequestedBy: z.string().trim().min(1).max(256).nullable(),
|
|
51
|
+
submittedAt: optionalInstantSchema,
|
|
52
|
+
occurredAt: instantSchema,
|
|
53
|
+
createdAt: instantSchema,
|
|
54
|
+
updatedAt: instantSchema,
|
|
55
|
+
}).readonly();
|
|
56
|
+
export const submissionStatusCountsSchema = z.strictObject({
|
|
57
|
+
queued: z.number().int().nonnegative(),
|
|
58
|
+
submitting: z.number().int().nonnegative(),
|
|
59
|
+
accepted: z.number().int().nonnegative(),
|
|
60
|
+
rejected: z.number().int().nonnegative(),
|
|
61
|
+
unknown: z.number().int().nonnegative(),
|
|
62
|
+
skipped: z.number().int().nonnegative(),
|
|
63
|
+
}).readonly();
|
|
64
|
+
export const submissionServiceStatusSchema = z.strictObject({
|
|
65
|
+
activatedAt: instantSchema,
|
|
66
|
+
counts: submissionStatusCountsSchema,
|
|
67
|
+
lastSubmission: submissionRecordSchema.nullable(),
|
|
68
|
+
indexingStatusAvailable: z.literal(false),
|
|
69
|
+
}).readonly();
|
|
70
|
+
export const searchSubmissionsSchema = z.strictObject({
|
|
71
|
+
statuses: z.array(submissionStatusSchema).min(1).max(6)
|
|
72
|
+
.refine((statuses) => new Set(statuses).size === statuses.length, 'Statuses must be unique')
|
|
73
|
+
.optional(),
|
|
74
|
+
postId: z.uuid().optional(),
|
|
75
|
+
createdFrom: instantSchema.optional(),
|
|
76
|
+
createdTo: instantSchema.optional(),
|
|
77
|
+
cursor: z.uuid().optional(),
|
|
78
|
+
limit: z.number().int().min(1).max(100).default(20),
|
|
79
|
+
}).refine(({ createdFrom, createdTo }) => !createdFrom || !createdTo || Date.parse(createdFrom) < Date.parse(createdTo), { message: 'createdFrom must be before createdTo' });
|
|
80
|
+
export const submissionPageSchema = z.strictObject({
|
|
81
|
+
items: z.array(submissionRecordSchema).max(100).readonly(),
|
|
82
|
+
nextCursor: z.uuid().nullable(),
|
|
83
|
+
}).readonly();
|
|
84
|
+
export const readSubmissionSchema = z.strictObject({ id: z.uuid() }).readonly();
|
|
85
|
+
export const readSubmissionResponseSchema = z.discriminatedUnion('outcome', [
|
|
86
|
+
z.strictObject({ outcome: z.literal('found'), record: submissionRecordSchema }).readonly(),
|
|
87
|
+
z.strictObject({ outcome: z.literal('missing') }).readonly(),
|
|
88
|
+
]);
|
|
89
|
+
export const retrySubmissionSchema = z.strictObject({
|
|
90
|
+
id: z.uuid(),
|
|
91
|
+
confirmDuplicateRisk: z.literal(true),
|
|
92
|
+
}).readonly();
|
|
93
|
+
export const retrySubmissionCommandSchema = z.strictObject({
|
|
94
|
+
id: z.uuid(),
|
|
95
|
+
actor: z.string().trim().min(1).max(256),
|
|
96
|
+
}).readonly();
|
|
97
|
+
export const retrySubmissionResponseSchema = z.discriminatedUnion('outcome', [
|
|
98
|
+
z.strictObject({ outcome: z.literal('retry-requested'), record: submissionRecordSchema }).readonly(),
|
|
99
|
+
z.strictObject({ outcome: z.literal('missing') }).readonly(),
|
|
100
|
+
z.strictObject({ outcome: z.literal('not-retryable'), record: submissionRecordSchema }).readonly(),
|
|
101
|
+
]);
|
|
102
|
+
export const emptyBaiduSubmitRequestSchema = z.strictObject({}).readonly();
|
|
103
|
+
export const baiduSubmitMicroContract = defineMicroContract({
|
|
104
|
+
namespace: BAIDU_SUBMIT_SERVICE_NAMESPACE,
|
|
105
|
+
operations: {
|
|
106
|
+
status: {
|
|
107
|
+
path: '/status/read',
|
|
108
|
+
input: emptyBaiduSubmitRequestSchema,
|
|
109
|
+
output: submissionServiceStatusSchema,
|
|
110
|
+
},
|
|
111
|
+
search: {
|
|
112
|
+
path: '/submissions/search',
|
|
113
|
+
input: searchSubmissionsSchema,
|
|
114
|
+
output: submissionPageSchema,
|
|
115
|
+
},
|
|
116
|
+
read: {
|
|
117
|
+
path: '/submissions/read',
|
|
118
|
+
input: readSubmissionSchema,
|
|
119
|
+
output: readSubmissionResponseSchema,
|
|
120
|
+
},
|
|
121
|
+
retry: {
|
|
122
|
+
path: '/submissions/retry',
|
|
123
|
+
input: retrySubmissionCommandSchema,
|
|
124
|
+
output: retrySubmissionResponseSchema,
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
export function createBaiduSubmitClient(contract) {
|
|
129
|
+
return Object.freeze({
|
|
130
|
+
status: (options) => contract.status({}, options),
|
|
131
|
+
search: (input, options) => contract.search(input, options),
|
|
132
|
+
read: (input, options) => contract.read(input, options),
|
|
133
|
+
retry: (input, options) => contract.retry(input, options),
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
export function createBaiduSubmitMicroClient(caller) {
|
|
137
|
+
return createBaiduSubmitClient(createMicroClient(caller, baiduSubmitMicroContract));
|
|
138
|
+
}
|
|
139
|
+
export function parseBaiduSubmitConfig(input) {
|
|
140
|
+
return Object.freeze(baiduSubmitConfigSchema.parse(input));
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { EventConsumer } from '@zlooks.cn/event-client';
|
|
2
|
+
import type { Logger } from '@hile/logger';
|
|
3
|
+
import type { SubmissionStore } from '../persistence/submission-store.js';
|
|
4
|
+
export declare function startBlogSubscriptions(events: EventConsumer, store: SubmissionStore, publicOrigin: () => string, logger: Logger): {
|
|
5
|
+
close(): Promise<void>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=blog-subscriptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blog-subscriptions.d.ts","sourceRoot":"","sources":["../../src/events/blog-subscriptions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,MAAM,EAC1B,MAAM,EAAE,MAAM;IAaN,KAAK;EAId"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { consumeBlogPostPublicationUpdatedEvent, consumeBlogPostPublishedEvent, } from '@zlooks.cn/blog-shared';
|
|
2
|
+
export function startBlogSubscriptions(events, store, publicOrigin, logger) {
|
|
3
|
+
const published = consumeBlogPostPublishedEvent(events, {
|
|
4
|
+
subscriptionId: 'baidu-submit.post-published.v1',
|
|
5
|
+
handle: (event, invocation) => recordPublished(store, publicOrigin(), event, invocation.signal),
|
|
6
|
+
onError: (error) => report(logger, error),
|
|
7
|
+
});
|
|
8
|
+
const updated = consumeBlogPostPublicationUpdatedEvent(events, {
|
|
9
|
+
subscriptionId: 'baidu-submit.post-publication-updated.v1',
|
|
10
|
+
handle: (event, invocation) => recordUpdated(store, publicOrigin(), event, invocation.signal),
|
|
11
|
+
onError: (error) => report(logger, error),
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
async close() {
|
|
15
|
+
await Promise.all([published.close(), updated.close()]);
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
async function recordPublished(store, origin, event, signal) {
|
|
20
|
+
signal.throwIfAborted();
|
|
21
|
+
await store.recordIntent({
|
|
22
|
+
eventId: event.eventId,
|
|
23
|
+
postId: event.data.post.id,
|
|
24
|
+
postVersion: event.data.post.version,
|
|
25
|
+
trigger: 'published',
|
|
26
|
+
url: postUrl(origin, event.data.post.slug),
|
|
27
|
+
occurredAt: event.occurredAt,
|
|
28
|
+
});
|
|
29
|
+
signal.throwIfAborted();
|
|
30
|
+
}
|
|
31
|
+
async function recordUpdated(store, origin, event, signal) {
|
|
32
|
+
signal.throwIfAborted();
|
|
33
|
+
await store.recordIntent({
|
|
34
|
+
eventId: event.eventId,
|
|
35
|
+
postId: event.data.post.id,
|
|
36
|
+
postVersion: event.data.post.version,
|
|
37
|
+
trigger: 'publication-updated',
|
|
38
|
+
url: postUrl(origin, event.data.post.slug),
|
|
39
|
+
occurredAt: event.occurredAt,
|
|
40
|
+
});
|
|
41
|
+
signal.throwIfAborted();
|
|
42
|
+
}
|
|
43
|
+
function postUrl(origin, slug) {
|
|
44
|
+
return new URL(`/blog/posts/${encodeURIComponent(slug)}`, origin).toString();
|
|
45
|
+
}
|
|
46
|
+
function report(logger, error) {
|
|
47
|
+
logger.error({ err: error, event: 'baidu-submit.event-consumer.failed' }, 'Baidu submission event consumer failed');
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=blog-subscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blog-subscriptions.js","sourceRoot":"","sources":["../../src/events/blog-subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sCAAsC,EACtC,6BAA6B,GAG9B,MAAM,wBAAwB,CAAC;AAKhC,MAAM,UAAU,sBAAsB,CACpC,MAAqB,EACrB,KAAsB,EACtB,YAA0B,EAC1B,MAAc;IAEd,MAAM,SAAS,GAAG,6BAA6B,CAAC,MAAM,EAAE;QACtD,cAAc,EAAE,gCAAgC;QAChD,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC;QAC/F,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;KAC1C,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,sCAAsC,CAAC,MAAM,EAAE;QAC7D,cAAc,EAAE,0CAA0C;QAC1D,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC;QAC7F,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;KAC1C,CAAC,CAAC;IACH,OAAO;QACL,KAAK,CAAC,KAAK;YACT,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,KAAsB,EACtB,MAAc,EACd,KAA6B,EAC7B,MAAmB;IAEnB,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,KAAK,CAAC,YAAY,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC1B,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;QACpC,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,EAAE,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,KAAsB,EACtB,MAAc,EACd,KAAsC,EACtC,MAAmB;IAEnB,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,KAAK,CAAC,YAAY,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC1B,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;QACpC,OAAO,EAAE,qBAAqB;QAC9B,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,OAAO,CAAC,MAAc,EAAE,IAAY;IAC3C,OAAO,IAAI,GAAG,CAAC,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,MAAM,CAAC,MAAc,EAAE,KAAc;IAC5C,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAoC,EAAE,EACtE,wCAAwC,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type BaiduSubmitClient, type BaiduSubmitMicroCallOptions } from '../contracts.js';
|
|
2
|
+
type LocalClient = BaiduSubmitClient<BaiduSubmitMicroCallOptions>;
|
|
3
|
+
export declare function createBaiduSubmitMcpProvider(client: LocalClient): import("@hile/mcp").McpProviderDefinition;
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/mcp/provider.ts"],"names":[],"mappings":"AAOA,OAAO,EAeL,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EACjC,MAAM,iBAAiB,CAAC;AAEzB,KAAK,WAAW,GAAG,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;AAIlE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,WAAW,6CAmG/D"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { defineMcpProvider, defineMcpPrompt, defineMcpResource, defineMcpTool, } from '@hile/mcp';
|
|
2
|
+
import { BAIDU_SUBMIT_MCP_PROVIDER_ID, BAIDU_SUBMIT_READ_SCOPE, BAIDU_SUBMIT_RECORD_RESOURCE, BAIDU_SUBMIT_REVIEW_RETRY_PROMPT, BAIDU_SUBMIT_RETRY_TOOL, BAIDU_SUBMIT_SEARCH_TOOL, BAIDU_SUBMIT_STATUS_RESOURCE, BAIDU_SUBMIT_WRITE_SCOPE, readSubmissionResponseSchema, readSubmissionSchema, retrySubmissionResponseSchema, retrySubmissionSchema, searchSubmissionsSchema, submissionPageSchema, } from '../contracts.js';
|
|
3
|
+
const readAccess = { scopes: [BAIDU_SUBMIT_READ_SCOPE] };
|
|
4
|
+
const writeAccess = { scopes: [BAIDU_SUBMIT_WRITE_SCOPE] };
|
|
5
|
+
export function createBaiduSubmitMcpProvider(client) {
|
|
6
|
+
return defineMcpProvider({
|
|
7
|
+
id: BAIDU_SUBMIT_MCP_PROVIDER_ID,
|
|
8
|
+
displayName: '百度链接提交',
|
|
9
|
+
tools: {
|
|
10
|
+
[BAIDU_SUBMIT_SEARCH_TOOL]: defineMcpTool({
|
|
11
|
+
name: BAIDU_SUBMIT_SEARCH_TOOL,
|
|
12
|
+
title: '查询百度提交记录',
|
|
13
|
+
description: '按本地提交状态、文章和创建时间查询持久化记录。'
|
|
14
|
+
+ 'accepted 只表示百度提交接口已接受请求,不表示网址已被索引;'
|
|
15
|
+
+ 'Baidu 未提供本服务可用的公开稳定逐 URL 收录状态 API。',
|
|
16
|
+
inputSchema: searchSubmissionsSchema,
|
|
17
|
+
outputSchema: submissionPageSchema,
|
|
18
|
+
access: readAccess,
|
|
19
|
+
annotations: {
|
|
20
|
+
readOnlyHint: true,
|
|
21
|
+
idempotentHint: true,
|
|
22
|
+
destructiveHint: false,
|
|
23
|
+
},
|
|
24
|
+
execution: { timeoutMs: 10_000, retry: 'idempotent-failover' },
|
|
25
|
+
}, (input, context) => toolResult(context, BAIDU_SUBMIT_READ_SCOPE, async () => (client.search(input, microOptions(context))))),
|
|
26
|
+
[BAIDU_SUBMIT_RETRY_TOOL]: defineMcpTool({
|
|
27
|
+
name: BAIDU_SUBMIT_RETRY_TOOL,
|
|
28
|
+
title: '重试百度提交',
|
|
29
|
+
description: '将 rejected 或 unknown 记录重新排队。unknown 可能已经在百度端发生过提交,'
|
|
30
|
+
+ '调用前必须向用户说明重复提交风险并取得确认,并显式传入 confirmDuplicateRisk=true;'
|
|
31
|
+
+ 'queued、submitting、accepted、skipped 不可重试。',
|
|
32
|
+
inputSchema: retrySubmissionSchema,
|
|
33
|
+
outputSchema: retrySubmissionResponseSchema,
|
|
34
|
+
access: writeAccess,
|
|
35
|
+
annotations: {
|
|
36
|
+
readOnlyHint: false,
|
|
37
|
+
idempotentHint: false,
|
|
38
|
+
destructiveHint: true,
|
|
39
|
+
},
|
|
40
|
+
execution: { timeoutMs: 10_000, retry: 'never' },
|
|
41
|
+
}, (input, context) => toolResult(context, BAIDU_SUBMIT_WRITE_SCOPE, async () => (client.retry({ id: input.id, actor: actor(context) }, microOptions(context))))),
|
|
42
|
+
},
|
|
43
|
+
resources: {
|
|
44
|
+
[BAIDU_SUBMIT_STATUS_RESOURCE]: defineMcpResource({
|
|
45
|
+
kind: 'static',
|
|
46
|
+
name: BAIDU_SUBMIT_STATUS_RESOURCE,
|
|
47
|
+
uri: 'hile://baidu-submit/status',
|
|
48
|
+
title: '百度链接提交状态',
|
|
49
|
+
description: '读取服务启用时间、各本地状态数量和最近提交记录。'
|
|
50
|
+
+ 'indexingStatusAvailable 固定为 false;本资源不推断收录。',
|
|
51
|
+
mimeType: 'application/json',
|
|
52
|
+
access: readAccess,
|
|
53
|
+
}, async (uri, context) => {
|
|
54
|
+
const status = await resourceRead(context, BAIDU_SUBMIT_READ_SCOPE, () => (client.status(microOptions(context))));
|
|
55
|
+
return resourceResult(uri.toString(), status);
|
|
56
|
+
}),
|
|
57
|
+
[BAIDU_SUBMIT_RECORD_RESOURCE]: defineMcpResource({
|
|
58
|
+
kind: 'template',
|
|
59
|
+
name: BAIDU_SUBMIT_RECORD_RESOURCE,
|
|
60
|
+
uriTemplate: 'hile://baidu-submit/submissions/{id}',
|
|
61
|
+
title: '百度链接提交记录',
|
|
62
|
+
description: '由应用按记录 UUID 读取单条本地提交记录;'
|
|
63
|
+
+ '返回 missing 或完整记录,不查询或推断百度收录状态。',
|
|
64
|
+
mimeType: 'application/json',
|
|
65
|
+
access: readAccess,
|
|
66
|
+
}, async (variables, context) => {
|
|
67
|
+
assertScope(context, BAIDU_SUBMIT_READ_SCOPE);
|
|
68
|
+
const input = readSubmissionSchema.parse({ id: variables.id });
|
|
69
|
+
const result = await resourceRead(context, BAIDU_SUBMIT_READ_SCOPE, async () => (readSubmissionResponseSchema.parse(await client.read(input, microOptions(context)))));
|
|
70
|
+
return resourceResult(`hile://baidu-submit/submissions/${input.id}`, result);
|
|
71
|
+
}),
|
|
72
|
+
},
|
|
73
|
+
prompts: {
|
|
74
|
+
[BAIDU_SUBMIT_REVIEW_RETRY_PROMPT]: defineMcpPrompt({
|
|
75
|
+
name: BAIDU_SUBMIT_REVIEW_RETRY_PROMPT,
|
|
76
|
+
title: '审查并重试百度提交',
|
|
77
|
+
description: '读取一条提交记录,解释不确定结果的重复提交风险,'
|
|
78
|
+
+ '取得用户明确确认后重试,并回读验证最新状态。',
|
|
79
|
+
argsSchema: readSubmissionSchema,
|
|
80
|
+
access: { scopes: [BAIDU_SUBMIT_READ_SCOPE, BAIDU_SUBMIT_WRITE_SCOPE] },
|
|
81
|
+
}, ({ id }, context) => {
|
|
82
|
+
context.signal.throwIfAborted();
|
|
83
|
+
return {
|
|
84
|
+
description: '安全审查并重试百度链接提交',
|
|
85
|
+
messages: [{
|
|
86
|
+
role: 'user',
|
|
87
|
+
content: {
|
|
88
|
+
type: 'text',
|
|
89
|
+
text: retryWorkflowMessage(id),
|
|
90
|
+
},
|
|
91
|
+
}],
|
|
92
|
+
};
|
|
93
|
+
}),
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function retryWorkflowMessage(id) {
|
|
98
|
+
const uri = `hile://baidu-submit/submissions/${id}`;
|
|
99
|
+
return `请安全审查百度链接提交记录 ${id}:
|
|
100
|
+
1. 先读取 Resource ${uri},不得根据旧上下文判断当前状态。
|
|
101
|
+
2. 如果记录不存在,或状态为 queued、submitting、accepted、skipped,停止,不得调用重试 Tool。accepted 只表示提交接口接受,不表示已经收录。
|
|
102
|
+
3. 如果状态为 rejected,说明失败代码与原因;如果状态为 unknown,明确说明请求可能已经在百度端生效,重试可能造成重复提交。
|
|
103
|
+
4. 向用户展示记录、风险和将要执行的动作,并取得明确确认。没有确认时停止。
|
|
104
|
+
5. 确认后调用 baidu-submit.${BAIDU_SUBMIT_RETRY_TOOL},传入记录 ID ${id} 和 confirmDuplicateRisk=true;不得自动重试 Tool 调用。
|
|
105
|
+
6. Tool 返回 retry-requested 后再次读取 Resource ${uri},报告最新状态。Worker 可能已经把状态从 queued 推进到 submitting 或最终结果,不得把这种正常并发误报为重试失败。`;
|
|
106
|
+
}
|
|
107
|
+
function microOptions(context) {
|
|
108
|
+
return { context: context.executionContext, signal: context.signal };
|
|
109
|
+
}
|
|
110
|
+
function actor(context) {
|
|
111
|
+
assertScope(context, BAIDU_SUBMIT_WRITE_SCOPE);
|
|
112
|
+
const identity = context.principal?.clientId ?? context.principal?.subject;
|
|
113
|
+
if (!identity)
|
|
114
|
+
throw new Error('Verified MCP principal is required');
|
|
115
|
+
const value = `mcp:${identity}`;
|
|
116
|
+
if (value.length > 256)
|
|
117
|
+
throw new Error('MCP principal identity is too long');
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
120
|
+
function assertScope(context, scope) {
|
|
121
|
+
context.signal.throwIfAborted();
|
|
122
|
+
const scopes = context.principal?.scopes ?? [];
|
|
123
|
+
if (!scopes.includes('*') && !scopes.includes(scope)) {
|
|
124
|
+
throw new Error('没有百度链接提交操作权限');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async function toolResult(context, scope, run) {
|
|
128
|
+
assertScope(context, scope);
|
|
129
|
+
try {
|
|
130
|
+
const result = await run();
|
|
131
|
+
context.signal.throwIfAborted();
|
|
132
|
+
return {
|
|
133
|
+
content: [{ type: 'text', text: JSON.stringify(result) }],
|
|
134
|
+
structuredContent: result,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
context.signal.throwIfAborted();
|
|
139
|
+
return {
|
|
140
|
+
isError: true,
|
|
141
|
+
content: [{ type: 'text', text: '百度链接提交服务暂时不可用' }],
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function resourceResult(uri, value) {
|
|
146
|
+
return {
|
|
147
|
+
contents: [{ uri, mimeType: 'application/json', text: JSON.stringify(value) }],
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
async function resourceRead(context, scope, read) {
|
|
151
|
+
assertScope(context, scope);
|
|
152
|
+
try {
|
|
153
|
+
const result = await read();
|
|
154
|
+
context.signal.throwIfAborted();
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
context.signal.throwIfAborted();
|
|
159
|
+
throw new Error('百度链接提交服务暂时不可用');
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/mcp/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
declare const _default: import("@hile/micro").MicroContractMessage<{
|
|
2
|
+
readonly path: "/status/read";
|
|
3
|
+
readonly input: import("zod").ZodReadonly<import("zod").ZodObject<{}, import("zod/v4/core").$strict>>;
|
|
4
|
+
readonly output: import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
5
|
+
activatedAt: import("zod").ZodISODateTime;
|
|
6
|
+
counts: import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
7
|
+
queued: import("zod").ZodNumber;
|
|
8
|
+
submitting: import("zod").ZodNumber;
|
|
9
|
+
accepted: import("zod").ZodNumber;
|
|
10
|
+
rejected: import("zod").ZodNumber;
|
|
11
|
+
unknown: import("zod").ZodNumber;
|
|
12
|
+
skipped: import("zod").ZodNumber;
|
|
13
|
+
}, import("zod/v4/core").$strict>>;
|
|
14
|
+
lastSubmission: import("zod").ZodNullable<import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
15
|
+
id: import("zod").ZodUUID;
|
|
16
|
+
eventId: import("zod").ZodUUID;
|
|
17
|
+
postId: import("zod").ZodUUID;
|
|
18
|
+
postVersion: import("zod").ZodNumber;
|
|
19
|
+
trigger: import("zod").ZodEnum<{
|
|
20
|
+
"publication-updated": "publication-updated";
|
|
21
|
+
published: "published";
|
|
22
|
+
}>;
|
|
23
|
+
url: import("zod").ZodURL;
|
|
24
|
+
status: import("zod").ZodEnum<{
|
|
25
|
+
accepted: "accepted";
|
|
26
|
+
queued: "queued";
|
|
27
|
+
rejected: "rejected";
|
|
28
|
+
skipped: "skipped";
|
|
29
|
+
submitting: "submitting";
|
|
30
|
+
unknown: "unknown";
|
|
31
|
+
}>;
|
|
32
|
+
attempts: import("zod").ZodNumber;
|
|
33
|
+
providerAcceptedCount: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
34
|
+
providerRemaining: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
35
|
+
providerMessage: import("zod").ZodNullable<import("zod").ZodString>;
|
|
36
|
+
lastErrorCode: import("zod").ZodNullable<import("zod").ZodString>;
|
|
37
|
+
retryRequestedBy: import("zod").ZodNullable<import("zod").ZodString>;
|
|
38
|
+
submittedAt: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
39
|
+
occurredAt: import("zod").ZodISODateTime;
|
|
40
|
+
createdAt: import("zod").ZodISODateTime;
|
|
41
|
+
updatedAt: import("zod").ZodISODateTime;
|
|
42
|
+
}, import("zod/v4/core").$strict>>>;
|
|
43
|
+
indexingStatusAvailable: import("zod").ZodLiteral<false>;
|
|
44
|
+
}, import("zod/v4/core").$strict>>;
|
|
45
|
+
}>;
|
|
46
|
+
export default _default;
|
|
47
|
+
//# sourceMappingURL=read.msg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.msg.d.ts","sourceRoot":"","sources":["../../../src/messages/status/read.msg.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { defineMicroMessage } from '@hile/micro';
|
|
2
|
+
import { loadModel } from '@hile/model';
|
|
3
|
+
import { baiduSubmitMicroContract } from '../../contracts.js';
|
|
4
|
+
import readStatusModel from '../../models/read-status.model.js';
|
|
5
|
+
export default defineMicroMessage(baiduSubmitMicroContract.operations.status, ({ data, invocation }) => loadModel(readStatusModel, data, invocation));
|
|
6
|
+
//# sourceMappingURL=read.msg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.msg.js","sourceRoot":"","sources":["../../../src/messages/status/read.msg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,eAAe,MAAM,mCAAmC,CAAC;AAEhE,eAAe,kBAAkB,CAC/B,wBAAwB,CAAC,UAAU,CAAC,MAAM,EAC1C,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,UAAU,CAAC,CACvE,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
declare const _default: import("@hile/micro").MicroContractMessage<{
|
|
2
|
+
readonly path: "/submissions/read";
|
|
3
|
+
readonly input: import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
4
|
+
id: import("zod").ZodUUID;
|
|
5
|
+
}, import("zod/v4/core").$strict>>;
|
|
6
|
+
readonly output: import("zod").ZodDiscriminatedUnion<[import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
7
|
+
outcome: import("zod").ZodLiteral<"found">;
|
|
8
|
+
record: import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
9
|
+
id: import("zod").ZodUUID;
|
|
10
|
+
eventId: import("zod").ZodUUID;
|
|
11
|
+
postId: import("zod").ZodUUID;
|
|
12
|
+
postVersion: import("zod").ZodNumber;
|
|
13
|
+
trigger: import("zod").ZodEnum<{
|
|
14
|
+
"publication-updated": "publication-updated";
|
|
15
|
+
published: "published";
|
|
16
|
+
}>;
|
|
17
|
+
url: import("zod").ZodURL;
|
|
18
|
+
status: import("zod").ZodEnum<{
|
|
19
|
+
accepted: "accepted";
|
|
20
|
+
queued: "queued";
|
|
21
|
+
rejected: "rejected";
|
|
22
|
+
skipped: "skipped";
|
|
23
|
+
submitting: "submitting";
|
|
24
|
+
unknown: "unknown";
|
|
25
|
+
}>;
|
|
26
|
+
attempts: import("zod").ZodNumber;
|
|
27
|
+
providerAcceptedCount: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
28
|
+
providerRemaining: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
29
|
+
providerMessage: import("zod").ZodNullable<import("zod").ZodString>;
|
|
30
|
+
lastErrorCode: import("zod").ZodNullable<import("zod").ZodString>;
|
|
31
|
+
retryRequestedBy: import("zod").ZodNullable<import("zod").ZodString>;
|
|
32
|
+
submittedAt: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
33
|
+
occurredAt: import("zod").ZodISODateTime;
|
|
34
|
+
createdAt: import("zod").ZodISODateTime;
|
|
35
|
+
updatedAt: import("zod").ZodISODateTime;
|
|
36
|
+
}, import("zod/v4/core").$strict>>;
|
|
37
|
+
}, import("zod/v4/core").$strict>>, import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
38
|
+
outcome: import("zod").ZodLiteral<"missing">;
|
|
39
|
+
}, import("zod/v4/core").$strict>>], "outcome">;
|
|
40
|
+
}>;
|
|
41
|
+
export default _default;
|
|
42
|
+
//# sourceMappingURL=read.msg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.msg.d.ts","sourceRoot":"","sources":["../../../src/messages/submissions/read.msg.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { defineMicroMessage } from '@hile/micro';
|
|
2
|
+
import { loadModel } from '@hile/model';
|
|
3
|
+
import { baiduSubmitMicroContract } from '../../contracts.js';
|
|
4
|
+
import readSubmissionModel from '../../models/read-submission.model.js';
|
|
5
|
+
export default defineMicroMessage(baiduSubmitMicroContract.operations.read, ({ data, invocation }) => loadModel(readSubmissionModel, data, invocation));
|
|
6
|
+
//# sourceMappingURL=read.msg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.msg.js","sourceRoot":"","sources":["../../../src/messages/submissions/read.msg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,mBAAmB,MAAM,uCAAuC,CAAC;AAExE,eAAe,kBAAkB,CAC/B,wBAAwB,CAAC,UAAU,CAAC,IAAI,EACxC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE,UAAU,CAAC,CAC3E,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
declare const _default: import("@hile/micro").MicroContractMessage<{
|
|
2
|
+
readonly path: "/submissions/retry";
|
|
3
|
+
readonly input: import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
4
|
+
id: import("zod").ZodUUID;
|
|
5
|
+
actor: import("zod").ZodString;
|
|
6
|
+
}, import("zod/v4/core").$strict>>;
|
|
7
|
+
readonly output: import("zod").ZodDiscriminatedUnion<[import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
8
|
+
outcome: import("zod").ZodLiteral<"retry-requested">;
|
|
9
|
+
record: import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
10
|
+
id: import("zod").ZodUUID;
|
|
11
|
+
eventId: import("zod").ZodUUID;
|
|
12
|
+
postId: import("zod").ZodUUID;
|
|
13
|
+
postVersion: import("zod").ZodNumber;
|
|
14
|
+
trigger: import("zod").ZodEnum<{
|
|
15
|
+
"publication-updated": "publication-updated";
|
|
16
|
+
published: "published";
|
|
17
|
+
}>;
|
|
18
|
+
url: import("zod").ZodURL;
|
|
19
|
+
status: import("zod").ZodEnum<{
|
|
20
|
+
accepted: "accepted";
|
|
21
|
+
queued: "queued";
|
|
22
|
+
rejected: "rejected";
|
|
23
|
+
skipped: "skipped";
|
|
24
|
+
submitting: "submitting";
|
|
25
|
+
unknown: "unknown";
|
|
26
|
+
}>;
|
|
27
|
+
attempts: import("zod").ZodNumber;
|
|
28
|
+
providerAcceptedCount: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
29
|
+
providerRemaining: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
30
|
+
providerMessage: import("zod").ZodNullable<import("zod").ZodString>;
|
|
31
|
+
lastErrorCode: import("zod").ZodNullable<import("zod").ZodString>;
|
|
32
|
+
retryRequestedBy: import("zod").ZodNullable<import("zod").ZodString>;
|
|
33
|
+
submittedAt: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
34
|
+
occurredAt: import("zod").ZodISODateTime;
|
|
35
|
+
createdAt: import("zod").ZodISODateTime;
|
|
36
|
+
updatedAt: import("zod").ZodISODateTime;
|
|
37
|
+
}, import("zod/v4/core").$strict>>;
|
|
38
|
+
}, import("zod/v4/core").$strict>>, import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
39
|
+
outcome: import("zod").ZodLiteral<"missing">;
|
|
40
|
+
}, import("zod/v4/core").$strict>>, import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
41
|
+
outcome: import("zod").ZodLiteral<"not-retryable">;
|
|
42
|
+
record: import("zod").ZodReadonly<import("zod").ZodObject<{
|
|
43
|
+
id: import("zod").ZodUUID;
|
|
44
|
+
eventId: import("zod").ZodUUID;
|
|
45
|
+
postId: import("zod").ZodUUID;
|
|
46
|
+
postVersion: import("zod").ZodNumber;
|
|
47
|
+
trigger: import("zod").ZodEnum<{
|
|
48
|
+
"publication-updated": "publication-updated";
|
|
49
|
+
published: "published";
|
|
50
|
+
}>;
|
|
51
|
+
url: import("zod").ZodURL;
|
|
52
|
+
status: import("zod").ZodEnum<{
|
|
53
|
+
accepted: "accepted";
|
|
54
|
+
queued: "queued";
|
|
55
|
+
rejected: "rejected";
|
|
56
|
+
skipped: "skipped";
|
|
57
|
+
submitting: "submitting";
|
|
58
|
+
unknown: "unknown";
|
|
59
|
+
}>;
|
|
60
|
+
attempts: import("zod").ZodNumber;
|
|
61
|
+
providerAcceptedCount: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
62
|
+
providerRemaining: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
63
|
+
providerMessage: import("zod").ZodNullable<import("zod").ZodString>;
|
|
64
|
+
lastErrorCode: import("zod").ZodNullable<import("zod").ZodString>;
|
|
65
|
+
retryRequestedBy: import("zod").ZodNullable<import("zod").ZodString>;
|
|
66
|
+
submittedAt: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
67
|
+
occurredAt: import("zod").ZodISODateTime;
|
|
68
|
+
createdAt: import("zod").ZodISODateTime;
|
|
69
|
+
updatedAt: import("zod").ZodISODateTime;
|
|
70
|
+
}, import("zod/v4/core").$strict>>;
|
|
71
|
+
}, import("zod/v4/core").$strict>>], "outcome">;
|
|
72
|
+
}>;
|
|
73
|
+
export default _default;
|
|
74
|
+
//# sourceMappingURL=retry.msg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.msg.d.ts","sourceRoot":"","sources":["../../../src/messages/submissions/retry.msg.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { defineMicroMessage } from '@hile/micro';
|
|
2
|
+
import { loadModel } from '@hile/model';
|
|
3
|
+
import { baiduSubmitMicroContract } from '../../contracts.js';
|
|
4
|
+
import retrySubmissionModel from '../../models/retry-submission.model.js';
|
|
5
|
+
export default defineMicroMessage(baiduSubmitMicroContract.operations.retry, ({ data, invocation }) => loadModel(retrySubmissionModel, data, invocation));
|
|
6
|
+
//# sourceMappingURL=retry.msg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.msg.js","sourceRoot":"","sources":["../../../src/messages/submissions/retry.msg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,oBAAoB,MAAM,wCAAwC,CAAC;AAE1E,eAAe,kBAAkB,CAC/B,wBAAwB,CAAC,UAAU,CAAC,KAAK,EACzC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,EAAE,UAAU,CAAC,CAC5E,CAAC"}
|