144 lines
4.6 KiB
Plaintext
144 lines
4.6 KiB
Plaintext
syntax = "v1"
|
|
|
|
type (
|
|
ClaimWorkerJobReq {
|
|
WorkerType string `json:"worker_type" validate:"required"`
|
|
WorkerID string `json:"worker_id" validate:"required"`
|
|
}
|
|
|
|
WorkerJobPath {
|
|
ID string `path:"id" validate:"required"`
|
|
}
|
|
|
|
WorkerJobReq {
|
|
WorkerJobPath
|
|
WorkerID string `json:"worker_id" validate:"required"`
|
|
}
|
|
|
|
WorkerHeartbeatReq {
|
|
WorkerJobPath
|
|
WorkerID string `json:"worker_id" validate:"required"`
|
|
TTLSeconds int `json:"ttl_seconds,optional"`
|
|
}
|
|
|
|
WorkerProgressReq {
|
|
WorkerJobPath
|
|
WorkerID string `json:"worker_id" validate:"required"`
|
|
Phase string `json:"phase,optional"`
|
|
Summary string `json:"summary,optional"`
|
|
Percentage int `json:"percentage,optional"`
|
|
Steps []JobStepProgressData `json:"steps,optional"`
|
|
}
|
|
|
|
WorkerCompleteReq {
|
|
WorkerJobPath
|
|
WorkerID string `json:"worker_id" validate:"required"`
|
|
Result map[string]interface{} `json:"result,optional"`
|
|
}
|
|
|
|
WorkerFailReq {
|
|
WorkerJobPath
|
|
WorkerID string `json:"worker_id" validate:"required"`
|
|
Error string `json:"error" validate:"required"`
|
|
Phase string `json:"phase,optional"`
|
|
}
|
|
|
|
WorkerCancelCheckData {
|
|
Cancelled bool `json:"cancelled"`
|
|
}
|
|
|
|
WorkerOKData {
|
|
OK bool `json:"ok"`
|
|
}
|
|
|
|
StorePersonaStyleProfileReq {
|
|
ID string `path:"id" validate:"required"`
|
|
TenantID string `json:"tenant_id" validate:"required"`
|
|
OwnerUID string `json:"owner_uid" validate:"required"`
|
|
StyleProfile string `json:"style_profile" validate:"required"`
|
|
StyleBenchmark string `json:"style_benchmark,optional"`
|
|
}
|
|
|
|
StorePersonaStyleProfileData {
|
|
ID string `json:"id"`
|
|
UpdateAt int64 `json:"update_at"`
|
|
}
|
|
|
|
WorkerThreadsAccountSessionReq {
|
|
ID string `path:"id" validate:"required"`
|
|
TenantID string `json:"tenant_id" validate:"required"`
|
|
OwnerUID string `json:"owner_uid" validate:"required"`
|
|
}
|
|
|
|
WorkerThreadsAccountSessionData {
|
|
AccountID string `json:"account_id"`
|
|
StorageState string `json:"storage_state"`
|
|
UpdateAt int64 `json:"update_at"`
|
|
}
|
|
|
|
AnalyzeStyle8DPostReq {
|
|
Text string `json:"text"`
|
|
Permalink string `json:"permalink,optional"`
|
|
LikeCount int `json:"like_count,optional"`
|
|
ReplyCount int `json:"reply_count,optional"`
|
|
}
|
|
|
|
AnalyzeStyle8DReq {
|
|
ID string `path:"id" validate:"required"`
|
|
WorkerID string `json:"worker_id" validate:"required"`
|
|
TenantID string `json:"tenant_id" validate:"required"`
|
|
OwnerUID string `json:"owner_uid" validate:"required"`
|
|
PersonaID string `json:"persona_id" validate:"required"`
|
|
ThreadsAccountID string `json:"threads_account_id" validate:"required"`
|
|
Username string `json:"username" validate:"required"`
|
|
Posts []AnalyzeStyle8DPostReq `json:"posts" validate:"required"`
|
|
Steps []JobStepProgressData `json:"steps,optional"`
|
|
}
|
|
|
|
AnalyzeStyle8DData {
|
|
PersonaID string `json:"persona_id"`
|
|
PostCount int `json:"post_count"`
|
|
StyleProfile string `json:"style_profile"`
|
|
StyleBenchmark string `json:"style_benchmark"`
|
|
}
|
|
)
|
|
|
|
@server(
|
|
group: job
|
|
prefix: /api/v1/internal
|
|
middleware: WorkerSecret
|
|
tags: "Internal Worker"
|
|
summary: "Internal worker endpoints protected by X-Worker-Secret when InternalWorker.Secret is configured."
|
|
)
|
|
service gateway {
|
|
@handler claimWorkerJob
|
|
post /workers/jobs/claim (ClaimWorkerJobReq) returns (JobData)
|
|
|
|
@handler refreshWorkerJobLock
|
|
post /workers/jobs/:id/heartbeat (WorkerHeartbeatReq) returns (WorkerOKData)
|
|
|
|
@handler checkWorkerJobCancel
|
|
post /workers/jobs/:id/cancel-check (WorkerJobReq) returns (WorkerCancelCheckData)
|
|
|
|
@handler ackWorkerJobCancel
|
|
post /workers/jobs/:id/cancel-ack (WorkerJobReq) returns (JobData)
|
|
|
|
@handler updateWorkerJobProgress
|
|
post /workers/jobs/:id/progress (WorkerProgressReq) returns (JobData)
|
|
|
|
@handler completeWorkerJob
|
|
post /workers/jobs/:id/complete (WorkerCompleteReq) returns (JobData)
|
|
|
|
@handler failWorkerJob
|
|
post /workers/jobs/:id/fail (WorkerFailReq) returns (JobData)
|
|
|
|
@handler storePersonaStyleProfileFromWorker
|
|
patch /workers/personas/:id/style-profile (StorePersonaStyleProfileReq) returns (StorePersonaStyleProfileData)
|
|
|
|
@handler getWorkerThreadsAccountSession
|
|
post /workers/threads-accounts/:id/session (WorkerThreadsAccountSessionReq) returns (WorkerThreadsAccountSessionData)
|
|
|
|
@handler analyzeStyle8DFromWorker
|
|
post /workers/jobs/:id/analyze-style8d (AnalyzeStyle8DReq) returns (AnalyzeStyle8DData)
|
|
}
|