* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
30 KiB
Cloud Agents (ଓଡ଼ିଆ)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
ସତ୍ୟର ମୂଳ ଉତ୍ସ:
src/lib/cloudAgent/ଏବଂsrc/app/api/v1/agents/tasks/ଶେଷ ଅଦ୍ୟତନ: 2026-06-28 — v3.8.40 (frontmatter ସତେଜୀକରଣ; cursor-cloud ସମେତ 4ଟି ଏଜେଣ୍ଟ)
OmniRoute ତୃତୀୟ-ପକ୍ଷ କ୍ଲାଉଡ୍ରେ ହୋଷ୍ଟ କରାଯାଇଥିବା କୋଡିଂ ଏଜେଣ୍ଟଗୁଡ଼ିକୁ (Codex Cloud, Cursor, Devin, Jules) ଦୀର୍ଘକାଳୀନ ଟାସ୍କ ଭାବେ ସଂଯୋଜିତ ଓ ପରିଚାଳିତ କରେ। ପ୍ରତ୍ୟେକ ଏଜେଣ୍ଟକୁ ଏକ ସମାନ ଇଣ୍ଟରଫେସ୍ ପଛରେ ଆବୃତ କରାଯାଇଛି, ଯାହା ଫଳରେ କ୍ଲାଏଣ୍ଟମାନେ ପ୍ରଦାନକାରୀ-ନିର୍ଦ୍ଦିଷ୍ଟ API ସହିତ କାରବାର ନକରି ଏକ ପ୍ରମ୍ପ୍ଟ + ରିପୋ URL ଦାଖଲ କରି ଫଳାଫଳ ପାଇପାରିବେ।
ଏକ Cloud Agent ଟାସ୍କ ନିୟମିତ ଚାଟ୍ ସମ୍ପୂର୍ଣ୍ଣକରଣ ନୁହେଁ। ଏହା ଏକ ସ୍ଥାୟୀ, ବହୁ-ପଦକ୍ଷେପ ବିଶିଷ୍ଟ କାର୍ଯ୍ୟ ଏକକ, ଯାହାକୁ ସମ୍ପୂର୍ଣ୍ଣ ହେବାକୁ କିଛି ମିନିଟ୍ରୁ ଘଣ୍ଟା ପର୍ଯ୍ୟନ୍ତ ଲାଗିପାରେ, ଏହାର ଆର୍ଟିଫ୍ୟାକ୍ଟ ଭାବେ ଏକ Pull Request ସୃଷ୍ଟି ହୋଇପାରେ, ଏବଂ ଏହା ଅନୁସରଣକାରୀ ସନ୍ଦେଶ ସହିତ (କିଛି ପ୍ରଦାନକାରୀଙ୍କ କ୍ଷେତ୍ରରେ) ଯୋଜନା ଅନୁମୋଦନ ଗେଟ୍କୁ ସମର୍ଥନ କରେ।
ସମର୍ଥିତ ଏଜେଣ୍ଟଗୁଡ଼ିକ
| ପ୍ରଦାନକାରୀ ID | କ୍ଲାସ୍ | ଉତ୍ସ | ଅପ୍ଷ୍ଟ୍ରିମ୍ ମୂଳ URL | ଯୋଜନା ଅନୁମୋଦନ |
|---|---|---|---|---|
jules |
JulesAgent |
src/lib/cloudAgent/agents/jules.ts |
https://jules.googleapis.com/v1alpha |
ହଁ |
devin |
DevinAgent |
src/lib/cloudAgent/agents/devin.ts |
https://api.devin.ai/v1 |
ହଁ |
codex-cloud |
CodexCloudAgent |
src/lib/cloudAgent/agents/codex.ts |
https://api.openai.com/v1/codex/cloud |
ନା (ସ୍ୱୟଂଚାଳିତ) |
cursor-cloud |
CursorCloudAgent |
src/lib/cloudAgent/agents/cursor.ts |
https://api.cursor.com/v0 |
ନା (ସ୍ୱୟଂଚାଳିତ) |
ରେଜିଷ୍ଟ୍ରି: src/lib/cloudAgent/registry.ts — getAgent(providerId),
getAvailableAgents(), ଏବଂ isCloudAgentProvider(providerId) ଏକ୍ସପୋର୍ଟ କରେ। ରେଜିଷ୍ଟ୍ରିଟି ହେଉଛି
ଏକ ସରଳ ଇନ୍-ମେମୋରି Record<string, CloudAgentBase>, ଯାହା ମଡ୍ୟୁଲ୍ ଲୋଡ୍ ହେବା ସମୟରେ ପୂରଣ ହୁଏ।
ସ୍ଥାପତ୍ୟ
କ୍ଲାଏଣ୍ଟ (ଡ୍ୟାସ୍ବୋର୍ଡ / CLI / API)
→ POST /api/v1/agents/tasks (ପରିଚାଳନା ପ୍ରମାଣୀକରଣ ଆବଶ୍ୟକ)
→ CreateCloudAgentTaskSchema ବୈଧତା ଯାଞ୍ଚ (Zod)
→ registry.getAgent(providerId)
→ getCloudAgentCredentials(providerId)
└─ getProviderConnections({ provider, isActive: true }) ରୁ ଆଣେ
(ପ୍ରଥମେ apiKey, ନ ମିଳିଲେ accessToken ବ୍ୟବହାର କରେ)
→ agent.createTask({ prompt, source, options }, credentials)
└─ ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରଦାନକାରୀ API କୁ HTTP POST
└─ ଆଭ୍ୟନ୍ତରୀଣ id + externalId ସହିତ CloudAgentTask ଫେରାଏ
→ cloud_agent_tasks (SQLite) ମଧ୍ୟରେ insertCloudAgentTask(...)
ପୋଲିଂ (ପଢ଼ିବା ସମୟରେ ବିଳମ୍ବିତ ସିଙ୍କ୍):
GET /api/v1/agents/tasks/[id]
→ getCloudAgentTaskById(id)
→ agent.getStatus(externalId, credentials) // ସ୍ଥିତି + କାର୍ଯ୍ୟକଳାପ ସତେଜ କରେ
→ ନୂତନ ସ୍ଥିତି, ଫଳାଫଳ, completed_at ସହିତ updateCloudAgentTask(...)
→ ସିରିଆଲାଇଜ୍ ହୋଇଥିବା ଟାସ୍କ ଫେରାଏ
ପାରସ୍ପରିକ କ୍ରିୟା:
POST /api/v1/agents/tasks/[id] body: { action: "approve" | "message" | "cancel" }
→ "approve" ପାଇଁ agent.approvePlan(externalId, credentials)
→ "message" ପାଇଁ agent.sendMessage(externalId, message, credentials)
→ "cancel" ପାଇଁ ସ୍ଥିତି "cancelled" କୁ ପରିବର୍ତ୍ତିତ ହୁଏ (କେବଳ ସ୍ଥାନୀୟ)
ସିଙ୍କ୍ ବିଳମ୍ବିତ: ପ୍ରତ୍ୟେକ GET /tasks/[id] ରେ ଅପ୍ଷ୍ଟ୍ରିମ୍ରୁ ସ୍ଥିତି ସତେଜ କରାଯାଏ।
କୌଣସି ପୃଷ୍ଠଭୂମି ପୋଲର୍ ନାହିଁ। ନବୀନତମ ସ୍ଥିତି ଆବଶ୍ୟକ କରୁଥିବା ଡ୍ୟାସ୍ବୋର୍ଡଗୁଡ଼ିକ ଉଚିତ ବ୍ୟବଧାନରେ GET
ଏଣ୍ଡପଏଣ୍ଟକୁ ପୋଲ୍ କରିବା ଉଚିତ।
CloudAgentBase ଇଣ୍ଟରଫେସ୍
ଉତ୍ସ: src/lib/cloudAgent/baseAgent.ts
export interface AgentCredentials {
apiKey: string;
baseUrl?: string;
}
export interface CreateTaskParams {
prompt: string;
source: CloudAgentSource;
options: {
autoCreatePr?: boolean;
planApprovalRequired?: boolean;
environment?: Record<string, string>;
};
}
export interface GetStatusResult {
status: CloudAgentStatus;
externalId?: string;
result?: CloudAgentResult;
activities: CloudAgentActivity[];
error?: string;
}
export abstract class CloudAgentBase {
abstract readonly providerId: string;
abstract readonly baseUrl: string;
abstract createTask(p: CreateTaskParams, c: AgentCredentials): Promise<CloudAgentTask>;
abstract getStatus(externalId: string, c: AgentCredentials): Promise<GetStatusResult>;
abstract approvePlan(externalId: string, c: AgentCredentials): Promise<void>;
abstract sendMessage(
externalId: string,
message: string,
c: AgentCredentials
): Promise<CloudAgentActivity>;
abstract listSources(
c: AgentCredentials
): Promise<{ name: string; url: string; branch?: string }[]>;
protected mapStatus(raw: string): CloudAgentStatus; // ହ୍ୟୁରିଷ୍ଟିକ୍ ଅପ୍ଷ୍ଟ୍ରିମ୍-ଷ୍ଟ୍ରିଙ୍ଗ୍ → ଏନମ୍
protected generateTaskId(): string; // `task_<ts>_<rand>`
protected generateActivityId(): string; // `act_<ts>_<rand>`
}
CodexCloudAgent.approvePlan ଉଦ୍ଦେଶ୍ୟମୂଳକ ଭାବେ ଏକ ତ୍ରୁଟି ନିକ୍ଷେପ କରେ — Codex Cloud ସ୍ୱୟଂଚାଳିତ ଭାବେ ଯୋଜନା ପ୍ରସ୍ତୁତ କରେ ଏବଂ ଏଥିରେ କୌଣସି ଅନୁମୋଦନ ଦ୍ୱାର ନାହିଁ। CodexCloudAgent.listSources [] ଫେରାଏ।
CursorCloudAgent, Cursorର ଆଧିକାରିକ REST API (api.cursor.com/v0) ମାଧ୍ୟମରେ ଏହାର Background / Cloud Agentsକୁ ପରିଚାଳନା କରେ ଏବଂ ଏଥିପାଇଁ ଏକ ବ୍ୟବହାରକାରୀ କିମ୍ବା ସର୍ଭିସ୍-ଆକାଉଣ୍ଟ API କୀ ବ୍ୟବହାର କରେ — ଏହା Cursor IDEର OAuth ସେସନ୍କୁ ପୁନଃବ୍ୟବହାର କରିବା ତୁଳନାରେ ଅଧିକ ସୁରକ୍ଷିତ, ପ୍ରଥମ-ପକ୍ଷ ବିକଳ୍ପ (ପ୍ରଦାତା cursor, ଯେଉଁଥିରେ ନିଷେଧ-ବିପଦ ସତର୍କବାଣୀ ରହିଛି)। ଏହା ଏକ ସରଳ REST ଆଡାପ୍ଟର୍ (କୌଣସି @cursor/sdk ନେଟିଭ୍ ନିର୍ଭରତା ନାହିଁ)। approvePlan ଏକ ତ୍ରୁଟି ନିକ୍ଷେପ କରେ (Cursor ଏଜେଣ୍ଟଗୁଡ଼ିକ ସ୍ୱୟଂଚାଳିତ ଭାବେ ଚାଲନ୍ତି); listSources କୀ ଦ୍ୱାରା ପହଞ୍ଚଯୋଗ୍ୟ ରିପୋଜିଟୋରିଗୁଡ଼ିକୁ ତାଲିକାଭୁକ୍ତ କରେ। Cursor ବଡ଼ ଅକ୍ଷରର ସ୍ଥିତି ଏନମ୍ (CREATING/RUNNING/FINISHED/ERROR) ଫେରାଏ, ଯାହାକୁ ସ୍ପଷ୍ଟ ଭାବେ ଅଂଶୀଦାର CloudAgentStatus ସହିତ ମ୍ୟାପ୍ କରାଯାଏ। ପ୍ରତ୍ୟେକ କ୍ରେଡେନ୍ସିଆଲ୍ ପାଇଁ baseUrl ଓଭର୍ରାଇଡ୍ କରାଯାଇପାରେ, ତେଣୁ କୋଡ୍ ପରିବର୍ତ୍ତନ ବିନା API ସଂସ୍କରଣ/ପଥ ସଂଶୋଧନ କରାଯାଇପାରିବ।
ଡୋମେନ୍ ପ୍ରକାରଗୁଡ଼ିକ
ଉତ୍ସ: src/lib/cloudAgent/types.ts
export const CLOUD_AGENT_STATUS = {
QUEUED: "queued",
RUNNING: "running",
AWAITING_APPROVAL: "awaiting_approval",
COMPLETED: "completed",
FAILED: "failed",
CANCELLED: "cancelled",
} as const;
export interface CloudAgentSource {
repoName: string;
repoUrl: string; // ଏକ ବୈଧ URL ହେବା ଆବଶ୍ୟକ
branch?: string;
}
export interface CloudAgentResult {
prUrl?: string;
prNumber?: number;
commitMessage?: string;
diffUrl?: string;
summary?: string;
duration?: number; // ସେକେଣ୍ଡ, ଧନାତ୍ମକ ପୂର୍ଣ୍ଣସଂଖ୍ୟା
cost?: number; // ଧନାତ୍ମକ ଫ୍ଲୋଟ୍
}
export interface CloudAgentActivity {
id: string;
type: "plan" | "command" | "code_change" | "message" | "error" | "completion";
content: string;
timestamp: string; // ISO 8601
metadata?: Record<string, unknown>;
}
export interface CloudAgentTask {
id: string; // ଆଭ୍ୟନ୍ତରୀଣ `task_...` id
providerId: "jules" | "devin" | "codex-cloud" | "cursor-cloud";
externalId?: string; // ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରଦାତାର id
status: CloudAgentStatus;
prompt: string; // 1..10000 ଅକ୍ଷର
source: CloudAgentSource;
options: {
autoCreatePr?: boolean;
planApprovalRequired?: boolean;
environment?: Record<string, string>;
};
result?: CloudAgentResult;
activities: CloudAgentActivity[];
error?: string;
createdAt: string;
updatedAt: string;
completedAt?: string;
}
ବୈଧତାକରଣ ସ୍କିମାଗୁଡ଼ିକ (CreateCloudAgentTaskSchema, UpdateCloudAgentTaskSchema) ପ୍ରକାରଗୁଡ଼ିକ ସହିତ ଏକ୍ସପୋର୍ଟ କରାଯାଏ ଏବଂ ରୁଟ୍ ହ୍ୟାଣ୍ଡଲର୍ଗୁଡ଼ିକ ଦ୍ୱାରା ବ୍ୟବହୃତ ହୁଏ।
ଡାଟାବେସ୍
ଉତ୍ସ: src/lib/cloudAgent/db.ts — ଟେବୁଲ୍ଟି
createCloudAgentTaskTable() ମାଧ୍ୟମରେ ଆବଶ୍ୟକତା ଅନୁସାରେ ସୃଷ୍ଟି ହୁଏ (ମଡ୍ୟୁଲ୍ ଇମ୍ପୋର୍ଟ ସମୟରେ
src/lib/cloudAgent/index.ts ରୁ ମଧ୍ୟ କଲ୍ କରାଯାଏ)।
CREATE TABLE IF NOT EXISTS cloud_agent_tasks (
id TEXT PRIMARY KEY,
provider_id TEXT NOT NULL,
external_id TEXT,
status TEXT NOT NULL DEFAULT 'queued',
prompt TEXT NOT NULL,
source TEXT NOT NULL, -- JSON
options TEXT DEFAULT '{}', -- JSON
result TEXT, -- JSON
activities TEXT DEFAULT '[]', -- JSON
error TEXT,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
completed_at TEXT
);
CREATE INDEX IF NOT EXISTS idx_cloud_agent_tasks_provider ON cloud_agent_tasks(provider_id);
CREATE INDEX IF NOT EXISTS idx_cloud_agent_tasks_status ON cloud_agent_tasks(status);
CREATE INDEX IF NOT EXISTS idx_cloud_agent_tasks_created ON cloud_agent_tasks(created_at DESC);
SQL ଇଞ୍ଜେକ୍ସନ୍ ରୋକିବା ପାଇଁ updateCloudAgentTask ଏକ କଲମ୍ ହ୍ୱାଇଟ୍ଲିଷ୍ଟ୍ ବାଧ୍ୟତାମୂଳକ କରେ:
status, prompt, source, options, result, activities, error,
completed_at। ଆଂଶିକ ଅପଡେଟ୍ରେ ଥିବା ଅନ୍ୟ ଯେକୌଣସି କୀକୁ ନିରବରେ ବାଦ ଦିଆଯାଏ।
REST API — ଟାସ୍କ ଜୀବନଚକ୍ର
ପ୍ରମାଣୀକରଣ: ସମସ୍ତ /api/v1/agents/tasks* ଏଣ୍ଡପଏଣ୍ଟ୍ ପାଇଁ ପରିଚାଳନା ପ୍ରମାଣୀକରଣ
ଆବଶ୍ୟକ (requireCloudAgentManagementAuth, src/lib/api/requireManagementAuth ର
requireManagementAuthକୁ ରାପ୍ କରେ)। କମିଟ୍ 588a0333
("fix(auth): agent ଏବଂ cooldown APIଗୁଡ଼ିକ ପାଇଁ ପରିଚାଳନା ପ୍ରମାଣୀକରଣ ଆବଶ୍ୟକ କରନ୍ତୁ") ପରଠାରୁ ଏହା ବାଧ୍ୟତାମୂଳକ।
| ପଦ୍ଧତି | ପଥ | ଉଦ୍ଦେଶ୍ୟ |
|---|---|---|
| OPTIONS | /api/v1/agents/tasks |
CORS ପ୍ରିଫ୍ଲାଇଟ୍ |
| GET | /api/v1/agents/tasks |
ଟାସ୍କଗୁଡ଼ିକ ତାଲିକାଭୁକ୍ତ କରନ୍ତୁ (ଫିଲ୍ଟର୍: provider, status, limit≤500) |
| POST | /api/v1/agents/tasks |
ଟାସ୍କ ସୃଷ୍ଟି କରନ୍ତୁ (ଅପ୍ଷ୍ଟ୍ରିମ୍କୁ ପଠାଏ + ସଂରକ୍ଷଣ କରେ) |
| DELETE | /api/v1/agents/tasks?id=... |
କ୍ୱେରୀ id ଅନୁଯାୟୀ ଟାସ୍କ ବିଲୋପ କରନ୍ତୁ (ଅପ୍ଷ୍ଟ୍ରିମ୍ରେ ବାତିଲ୍ କରେ ନାହିଁ) |
| OPTIONS | /api/v1/agents/tasks/[id] |
CORS ପ୍ରିଫ୍ଲାଇଟ୍ |
| GET | /api/v1/agents/tasks/[id] |
ଟାସ୍କ ପଢ଼ନ୍ତୁ + ଅପ୍ଷ୍ଟ୍ରିମ୍ରୁ ସ୍ଥିତିକୁ ଆବଶ୍ୟକତା ଅନୁସାରେ ସିଙ୍କ୍ କରନ୍ତୁ |
| POST | /api/v1/agents/tasks/[id] |
କାର୍ଯ୍ୟ: approve / message / cancel |
| DELETE | /api/v1/agents/tasks/[id] |
ପଥ id ଅନୁଯାୟୀ ଟାସ୍କ ବିଲୋପ କରନ୍ତୁ |
ଟାସ୍କ ସୃଷ୍ଟି କରନ୍ତୁ
curl -X POST http://localhost:20128/api/v1/agents/tasks \
-H "Cookie: auth_token=..." \
-H "Content-Type: application/json" \
-d '{
"providerId": "devin",
"prompt": "Fix the bug in src/foo.ts where the parser returns null",
"source": {
"repoName": "user/repo",
"repoUrl": "https://github.com/user/repo",
"branch": "main"
},
"options": {
"autoCreatePr": true,
"planApprovalRequired": false
}
}'
ପ୍ରତିକ୍ରିୟା 201:
{
"data": {
"id": "task_1731512345678_abc123def",
"providerId": "devin",
"externalId": "session_xyz",
"status": "queued",
"prompt": "...",
"source": { "repoName": "user/repo", "repoUrl": "...", "branch": "main" },
"options": { "autoCreatePr": true },
"createdAt": "2026-05-13T12:34:56.789Z"
}
}
ଏକ ଯୋଜନା ଅନୁମୋଦନ କରନ୍ତୁ
curl -X POST http://localhost:20128/api/v1/agents/tasks/<id> \
-H "Cookie: auth_token=..." \
-H "Content-Type: application/json" \
-d '{"action":"approve"}'
ଏକ ଫଲୋ-ଅପ୍ ବାର୍ତ୍ତା ପଠାନ୍ତୁ
curl -X POST http://localhost:20128/api/v1/agents/tasks/<id> \
-d '{"action":"message","message":"Also add a unit test for the parser"}'
ବାତିଲ୍ କରନ୍ତୁ (କେବଳ ସ୍ଥାନୀୟ ସ୍ଥିତି)
curl -X POST http://localhost:20128/api/v1/agents/tasks/<id> \
-d '{"action":"cancel"}'
cancel, ସ୍ଥାନୀୟ DBରେ statusକୁ "cancelled"ରେ ପରିବର୍ତ୍ତନ କରେ, କିନ୍ତୁ
ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରଦାନକାରୀକୁ କଲ୍ କରେ ନାହିଁ — CloudAgentBaseରେ କୌଣସି abort RPC ନାହିଁ।
ଅପ୍ଷ୍ଟ୍ରିମ୍ ବିଲିଂ ବନ୍ଦ କରିବା ପାଇଁ ପ୍ରଦାନକାରୀଙ୍କ ନିଜସ୍ୱ କନ୍ସୋଲ୍ରେ ଟାସ୍କଟିକୁ ସମାପ୍ତ କରନ୍ତୁ।
REST API — କ୍ଲାଉଡ୍ ପ୍ରଦାନକାରୀ ସଂଯୋଜନ
src/app/api/cloud/ ଅଧୀନରେ ଥିବା ଏହି ସହାୟକ ଏଣ୍ଡପଏଣ୍ଟଗୁଡ଼ିକୁ ଦୂରବର୍ତ୍ତୀ କ୍ଲାଏଣ୍ଟମାନେ
(CLI, Electron ଆପ୍, କିମ୍ବା ସିଙ୍କ୍ ୱାର୍କର୍ଗୁଡ଼ିକ) ପ୍ରଦାନକାରୀ ସଂଯୋଗ ମେଟାଡାଟା ପଢ଼ିବା
ଏବଂ ମଡେଲ୍ ଉପନାମଗୁଡ଼ିକୁ ରିଜଲ୍ଭ କରିବା ପାଇଁ ବ୍ୟବହାର କରନ୍ତି। ଏଗୁଡ଼ିକ ଟାସ୍କ ଏଣ୍ଡପଏଣ୍ଟଗୁଡ଼ିକ ଦ୍ୱାରା ବ୍ୟବହୃତ ପରିଚାଳନା ପ୍ରାମାଣିକରଣ ଦ୍ୱାରା ନୁହେଁ,
ବରଂ ଏକ ନିୟମିତ API କୀ (validateApiKey ମାଧ୍ୟମରେ) ଦ୍ୱାରା ପ୍ରାମାଣିକୃତ ହୁଅନ୍ତି।
| ପଦ୍ଧତି | ପଥ | ଉଦ୍ଦେଶ୍ୟ |
|---|---|---|
| POST | /api/cloud/auth |
API କୀ ବୈଧ କରିବା, ମାସ୍କ କରାଯାଇଥିବା ସଂଯୋଗ ମେଟାଡାଟା + ମଡେଲ୍ ଉପନାମ ଫେରାଇବା |
| PUT | /api/cloud/credentials/update |
accessToken / refreshToken / expiresAt ସତେଜ କରିବା |
| POST | /api/cloud/model/resolve |
ଏକ ମଡେଲ୍ ଉପନାମକୁ { provider, model } ଭାବରେ ରିଜଲ୍ଭ କରିବା |
| GET | /api/cloud/models/alias |
ସମସ୍ତ ମଡେଲ୍ ଉପନାମ ତାଲିକାଭୁକ୍ତ କରିବା |
| PUT | /api/cloud/models/alias |
ଏକ ମଡେଲ୍ ଉପନାମ ସେଟ୍ କରିବା (ଏବଂ ସକ୍ଷମ ଥିଲେ ସ୍ୱୟଂଚାଳିତ ଭାବେ Cloud ସହିତ ସିଙ୍କ୍ କରିବା) |
/api/cloud/auth କେବେ ମଧ୍ୟ ଅପରିବର୍ତ୍ତିତ apiKey / accessToken / refreshToken ଫେରାଏ ନାହିଁ। ଏହା
hasApiKey, hasAccessToken, hasRefreshToken, ଏବଂ ଏକ ମାସ୍କ କରାଯାଇଥିବା ପୂର୍ବାବଲୋକନ
(maskedApiKey: ପ୍ରଥମ 4 + **** + ଶେଷ 4) ଫେରାଏ।
କ୍ରେଡେନ୍ସିଆଲ୍ ରିଜଲ୍ୟୁସନ୍
src/lib/cloudAgent/api.ts ମଧ୍ୟରେ getCloudAgentCredentials(providerId):
getProviderConnections({ provider: providerId, isActive: true })ମାଧ୍ୟମରେ ସକ୍ରିୟ ପ୍ରଦାନକାରୀ ସଂଯୋଗଗୁଡ଼ିକୁ ଲୋଡ୍ କରେ।- ପ୍ରତ୍ୟେକ ସଂଯୋଗ ପାଇଁ,
apiKeyକୁ (ଟ୍ରିମ୍ କରାଯାଇଥିବା) ପ୍ରାଥମିକତା ଦିଏ। ନ ମିଳିଲେaccessTokenବ୍ୟବହାର କରେ। - ପ୍ରଥମ ଅଣ-ଖାଲି ଟୋକନ୍କୁ
{ apiKey: token }ଭାବରେ ଆବୃତ କରି ଫେରାଏ। - କୌଣସି ବ୍ୟବହାରଯୋଗ୍ୟ ଟୋକନ୍ ନ ମିଳିଲେ
nullଫେରାଏ — API"No active credentials configured for cloud agent provider: <id>"ସହିତ400ପ୍ରତିକ୍ରିୟା ଦିଏ।
ଏହାର ଅର୍ଥ Cloud Agents ନିୟମିତ LLM ପ୍ରଦାନକାରୀଙ୍କ ପରି ସମାନ Provider Connection ଟେବୁଲ୍କୁ
ପୁନଃବ୍ୟବହାର କରନ୍ତି। Jules ସକ୍ଷମ କରିବାକୁ, provider: "jules"
ଏବଂ ମୂଲ୍ୟ ଭରାଯାଇଥିବା apiKey ସହିତ ଏକ ସକ୍ରିୟ ସଂଯୋଗ ସୃଷ୍ଟି କରନ୍ତୁ।
ଡ୍ୟାସବୋର୍ଡ
ଉତ୍ସ: src/app/(dashboard)/dashboard/cloud-agents/page.tsx
ଏକ "use client" React ପୃଷ୍ଠା, ଯାହା:
- ଟାସ୍କଗୁଡ଼ିକୁ ତାଲିକାଭୁକ୍ତ କରେ (
GET /api/v1/agents/tasksମାଧ୍ୟମରେ ପୋଲ୍ କରାଯାଏ)। CreateCloudAgentTaskSchemaସହିତ ମ୍ୟାପ୍ ହେଉଥିବା ଏକ ଫର୍ମ ମାଧ୍ୟମରେ ନୂଆ ଟାସ୍କ ଦାଖଲ କରେ।- ସ୍ଥିତି ବ୍ୟାଜ୍ଗୁଡ଼ିକ (
queued,running,awaiting_approval,completed,failed,cancelled) ଦେଖାଏ ଏବଂactivities[]ସମୟରେଖାକୁ ରେଣ୍ଡର୍ କରେ। status === "completed"ଥିବାବେଳେresult.prUrl/commitMessage/summaryକୁ ପ୍ରଦର୍ଶନ କରେ।
A2A ସହିତ ସମନ୍ୱୟ
ଏକ A2A ସ୍କିଲ୍ ପଞ୍ଜୀକରଣ କରି Cloud Agentsକୁ A2A ସ୍କିଲ୍ ଭାବେ ଉନ୍ମୋଚନ କରାଯାଇପାରେ, ଯାହା ଏହାର
tasks/send ହ୍ୟାଣ୍ଡଲର୍କୁ getAgent(...).createTask(...)କୁ ପ୍ରତ୍ୟାୟୋଜିତ କରେ ଏବଂ A2A ଟାସ୍କ
ସ୍ଥିତି ଘଟଣାଗୁଡ଼ିକୁ JSON-RPC 2.0 ପ୍ରୋଟୋକଲ୍ରେ ରୂପାନ୍ତର କରେ। A2A-SERVER.md ଦେଖନ୍ତୁ।
ଏକ ନୂଆ Cloud Agent ଯୋଡ଼ିବା
CloudAgentBaseକୁ ବିସ୍ତାର କରିsrc/lib/cloudAgent/agents/<name>.tsସୃଷ୍ଟି କରନ୍ତୁ।createTask,getStatus,approvePlan(କିମ୍ବା ପ୍ରଯୁଜ୍ୟ ନ ହେଲେ ଏକ ତ୍ରୁଟି ଫିଙ୍ଗନ୍ତୁ),sendMessage,listSourcesକାର୍ଯ୍ୟକାରୀ କରନ୍ତୁ। ସ୍ଥିତି ସାମାନ୍ୟୀକରଣ ପାଇଁthis.mapStatus(...)ବ୍ୟବହାର କରନ୍ତୁ।- ଏକ ସ୍ଥିର
providerIdଅଧୀନରେsrc/lib/cloudAgent/registry.tsରେ ପଞ୍ଜୀକରଣ କରନ୍ତୁ। src/lib/cloudAgent/types.tsରେ ଥିବାproviderIdଲିଟେରାଲ୍ ୟୁନିଅନ୍କୁ ବିସ୍ତାର କରନ୍ତୁ (CloudAgentTask.providerIdଏବଂCreateCloudAgentTaskSchema)।- ଯଦି ଏହାକୁ ଏକ ସଂଯୋଗ ରେକର୍ଡ ଆବଶ୍ୟକ, ତେବେ ପ୍ରଦାନକାରୀକୁ
src/shared/constants/providers.tsରେ ଯୋଡ଼ନ୍ତୁ। OAuth-ଆଧାରିତ ପ୍ରଦାନକାରୀଙ୍କୁsrc/lib/oauth/providers/ମଧ୍ୟ ଆବଶ୍ୟକ। tests/unit/cloud-agent-*.test.tsଅଧୀନରେ ପରୀକ୍ଷଣଗୁଡ଼ିକ ଯୋଡ଼ନ୍ତୁ।- ଏହି ଡକ୍ୟୁମେଣ୍ଟ ଏବଂ ଡ୍ୟାସବୋର୍ଡର
CLOUD_AGENTSଧ୍ରୁବକକୁ ଅଦ୍ୟତନ କରନ୍ତୁ।
ବିନ୍ୟାସ
| ପରିବେଶ ଚର | ଉଦ୍ଦେଶ୍ୟ |
|---|---|
DATA_DIR |
cloud_agent_tasks ଧାରଣ କରୁଥିବା SQLite ଡାଟାବେସ୍ର ଅବସ୍ଥାନ |
JWT_SECRET |
ଟାସ୍କ ଏଣ୍ଡପଏଣ୍ଟଗୁଡ଼ିକରେ ପରିଚାଳନା ପ୍ରମାଣୀକରଣ ପାଇଁ ଆବଶ୍ୟକ |
API_KEY_SECRET |
ସଂରକ୍ଷିତ ଅବସ୍ଥାରେ ପ୍ରଦାତା ସଂଯୋଗ ପ୍ରମାଣପତ୍ରଗୁଡ଼ିକୁ ଏନ୍କ୍ରିପ୍ଟ କରିବା ପାଇଁ ଆବଶ୍ୟକ |
ବର୍ତ୍ତମାନ କୌଣସି Cloud-Agent-ନିର୍ଦ୍ଦିଷ୍ଟ ପରିବେଶ ଚର ନାହିଁ — ପ୍ରତ୍ୟେକ ଗୁପ୍ତ ତଥ୍ୟ
provider_connections ଟେବୁଲ୍ରେ ରହିଛି।
ଏହା ମଧ୍ୟ ଦେଖନ୍ତୁ
- A2A-SERVER.md
- API_REFERENCE.md
- SKILLS.md
- MEMORY.md
- ଉତ୍ସ:
src/lib/cloudAgent/ - ରୁଟ୍ଗୁଡ଼ିକ:
src/app/api/v1/agents/tasks/,src/app/api/cloud/ - ଡ୍ୟାସ୍ବୋର୍ଡ:
src/app/(dashboard)/dashboard/cloud-agents/page.tsx