İşler API

İşler modülünün tüm işlemleri (23) ve veri modelleri (5): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Bir kez iste: Era planlar, işi paralel çalışan uzmanlara böler ve kullanıp yayımlayabileceğin bitmiş işi getirir.

Modül kodu work · 23 işlem · 5 veri modeli · 18 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: work (hepsi), work:read (yalnız okuma) ya da work:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
shop_ordersshop_order/api/v1/shop_orders
shop_rulesshop_rule/api/v1/shop_rules
work_computer_forkswork_computer_fork/api/v1/work_computer_forks
work_jobswork_job/api/v1/work_jobs
work_stepswork_step/api/v1/work_steps

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
work.add_stepwork:writePlana adım ekle
work.answer_needwork:writeSeni bekleyen adımı yanıtla
work.approve_planwork:writePlanı onayla
work.assign_jobwork:writeBir planı birine ver
work.change_stepwork:writeBir adımı değiştir
work.message_stepwork:writeÇalışan bir ajana bir şey söyle
work.propose_skillwork:handleEra’nın öğrendiğini öner
work.record_forkwork:handleÖdünç bilgisayarı kaydet
work.record_shop_orderwork:handleEra’nın verdiği siparişi kaydet
work.record_stepwork:handleBir adımın ilerlemesini kaydet
work.release_forkwork:writeÖdünç bilgisayarı geri ver
work.replan_stepwork:handleBir adımın eksik girdisini yeniden planla
work.request_forkwork:writeBulut bilgisayarımın bir kopyasını ödünç al
work.requeue_stepwork:handleBir adımı sıraya geri koy
work.resume_jobwork:writePlanı sürdür
work.retry_stepwork:writeBir adımı yeniden dene
work.review_skillwork:writeEra’nın neyi tutacağına karar ver
work.set_limitswork:writePlanın bütçesini ya da süresini değiştir
work.set_shop_rulework:writeEra’nın sormadan alacağı tutarı ayarla
work.start_jobwork:writeBir plan başlat
work.stop_jobwork:writePlanı durdur
work.supervise_stepwork:handleÇalışan bir adımı gözet
work.use_resultwork:writeBir sonucu kullan

work.add_step

Plana adım ekle — "Şunu da ekle": bir uzman için bir adım daha; beklediği bitince başlar.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_jobs/{id}/actions/add_step
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.add_step

Girdi

AlanTürZorunluAçıklama
jobIduuidevetDoldurulduğu yer: adresteki {id} · Plan · kimliği: work_job
titlestringevetAdım · en çok 200
workerstringevetSüreç · dev | research | growth | marketing | creative | data | business | computer · en çok 20
instructionstringNe yapılacak · en çok 8000
runobject / arrayNasıl çalışır
dependsOnobject / arrayBeklediği · Aynı plandaki adım kimlikleri.
confirmbooleanÇalışmadan önce bana sor
notestringSöylediğin · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundPlan bu çalışma alanında olmalı.
unknown_workerAdım sekiz çalışandan birini belirtmeli.
unknown_executorAdımın çalıştırılması, Era’da bulunan bir yürütücüyü belirtmeli.
unknown_credentialErişim bilgisi adımı, Era’nın isteyebildiği bir erişim bilgisini belirtmeli.
too_many_stepsBir planda en fazla 12 adım olabilir.
bad_stepsAdımın bir başlığı olmalı.
bad_dependencyBir adım yalnız aynı planın adımlarını bekleyebilir.
duplicate_stepPlanda bu iş, yapılacak ya da yapılmış olarak zaten bulunmamalı.

Yayımladığı olaylar: work.step_changed

Neye yazar: work_step (insert) — Adds the step, queued; work_job (update) — Reopens the plan and notes what was said

curl -X POST https://app.getera.io/api/v1/work_jobs/WORK_JOB_ID/actions/add_step \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"title":"Step","worker":"Worker"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.step_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workJobs.addStep("WORK_JOB_ID", {
  title: "Step",
  worker: "Worker"
})
era work_jobs add_step WORK_JOB_ID \
  --title "Step" \
  --worker "Worker"
tools/call
{
  "name": "era__work__add_step",
  "arguments": {
    "jobId": "WORK_JOB_ID",
    "title": "Step",
    "worker": "Worker"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, unknown_worker, unknown_executor, unknown_credential, too_many_steps, bad_steps, bad_dependency, duplicate_step · 429 çok sık istek

work.answer_need

Seni bekleyen adımı yanıtla — Riskli bir adımı onayla (bir kez çalışır) ya da reddet (atlanır).

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_steps/{id}/actions/answer_need
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.answer_need

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Adım · kimliği: work_step
decisionstring (enum)evetKarar · İzin verilen değerler: approve, deny

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
step_not_foundBu adım bu çalışma alanında bulunamadı.
nothing_to_answerYalnızca sizi bekleyen bir adım yanıtlanabilir.

Yayımladığı olaylar: work.step_changed, work.job_finished, work.needs_you

Neye yazar: work_step (update) — Queues or skips the step; work_job (update) — Updates the plan’s status

curl -X POST https://app.getera.io/api/v1/work_steps/WORK_STEP_ID/actions/answer_need \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"decision":"approve"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.step_changed",
    "work.job_finished",
    "work.needs_you"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workSteps.answerNeed("WORK_STEP_ID", {
  decision: "approve"
})
era work_steps answer_need WORK_STEP_ID \
  --decision "approve"
tools/call
{
  "name": "era__work__answer_need",
  "arguments": {
    "id": "WORK_STEP_ID",
    "decision": "approve"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 step_not_found, nothing_to_answer · 429 çok sık istek

work.approve_plan

Planı onayla — Başla işareti: uzmanlar hiçbir şey beklemeyen her adıma başlar.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_jobs/{id}/actions/approve_plan
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.approve_plan

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Plan · kimliği: work_job

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundPlan bu çalışma alanında olmalı.
not_proposedYalnızca onay bekleyen bir plan onaylanabilir.

Yayımladığı olaylar: work.plan_approved

Neye yazar: work_job (update) — Marks the plan approved and running

curl -X POST https://app.getera.io/api/v1/work_jobs/WORK_JOB_ID/actions/approve_plan \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.plan_approved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workJobs.approvePlan("WORK_JOB_ID")
era work_jobs approve_plan WORK_JOB_ID
tools/call
{
  "name": "era__work__approve_plan",
  "arguments": {
    "id": "WORK_JOB_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_proposed · 429 çok sık istek

work.assign_job

Bir planı birine ver — Bir planı bir kişiye ya da yeniden Era’ya verir; kimin göreceğini belirler: tüm çalışma alanı ya da yalnızca işin kişileri.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_jobs/{id}/actions/assign_job
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.assign_job

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Plan · kimliği: work_job
assigneeUserIduuidKime · kimliği: app_user
visibilitystring (enum)Kim görür · İzin verilen değerler: workspace, private

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundPlan bu çalışma alanında olmalı.
not_allowedPlanı yalnızca isteyen kişi, verildiği kişi ya da iş yöneticisi devredebilir.
finishedBiten bir planın sorumlusu değişmez.
not_a_memberPlan yalnızca çalışma alanının etkin bir üyesine verilebilir.

Yayımladığı olaylar: work.job_assigned

Neye yazar: work_job (update) — Writes who answers for the plan and who sees it

curl -X POST https://app.getera.io/api/v1/work_jobs/WORK_JOB_ID/actions/assign_job \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"assigneeUserId":"APP_USER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.job_assigned"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workJobs.assignJob("WORK_JOB_ID", {
  assigneeUserId: "APP_USER_ID"
})
era work_jobs assign_job WORK_JOB_ID \
  --assignee-user-id "APP_USER_ID"
tools/call
{
  "name": "era__work__assign_job",
  "arguments": {
    "id": "WORK_JOB_ID",
    "assigneeUserId": "APP_USER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_allowed, finished, not_a_member · 429 çok sık istek

work.change_step

Bir adımı değiştir — "Bunu değiştir": henüz başlamamış bir adımı yeniden yazar.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_steps/{id}/actions/change_step
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.change_step

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Adım · kimliği: work_step
titlestringAdım · en çok 200
instructionstringNe yapılacak · en çok 8000
notestringSöylediğin · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
step_not_foundBu adım bu çalışma alanında bulunamadı.
step_startedBaşlamış bir adım yeniden yazılamaz; bunun yerine ardından yeni bir adım ekleyin.
bad_stepsAdımın başlığı boş bırakılamaz.

Yayımladığı olaylar: work.step_changed

Neye yazar: work_step (update) — Rewrites the step; work_job (update) — Notes what was said

curl -X POST https://app.getera.io/api/v1/work_steps/WORK_STEP_ID/actions/change_step \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"title":"Step"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.step_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workSteps.changeStep("WORK_STEP_ID", {
  title: "Step"
})
era work_steps change_step WORK_STEP_ID \
  --title "Step"
tools/call
{
  "name": "era__work__change_step",
  "arguments": {
    "id": "WORK_STEP_ID",
    "title": "Step"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 step_not_found, step_started, bad_steps · 429 çok sık istek

work.message_step

Çalışan bir ajana bir şey söyle — Bilgisayarında çalışan ajana iş sürerken mesaj gönderir ("şunu da yap", "dur, şöyle yap"); bir sonraki adımında dikkate alır.

Gereken izin work:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)

POSThttps://app.getera.io/api/v1/work_steps/{id}/actions/message_step
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.message_step

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Adım · kimliği: work_step
textstringevetMesaj

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
step_not_foundBu adım bu çalışma alanında bulunamadı.
empty_messageMesaj bir şey söylemeli.
step_not_runningYalnızca çalışan (ya da iş ortasında seni bekleyen) bir adıma bir şey söylenebilir.
step_not_talkableMesajı yalnızca bir bilgisayarda çalışan ajan (canlı oturum) duyabilir.

Yayımladığı olaylar: work.step_changed

Neye yazar: work_job (update) — Adds the message to the plan’s steering; work_step (update) — Shows the message as the step’s activity

curl -X POST https://app.getera.io/api/v1/work_steps/WORK_STEP_ID/actions/message_step \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"text":"Message"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.step_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workSteps.messageStep("WORK_STEP_ID", {
  text: "Message"
})
era work_steps message_step WORK_STEP_ID \
  --text "Message"
tools/call
{
  "name": "era__work__message_step",
  "arguments": {
    "id": "WORK_STEP_ID",
    "text": "Message"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 step_not_found, empty_message, step_not_running, step_not_talkable · 429 çok sık istek

work.propose_skill

Era’nın öğrendiğini öner — “Era bu işten yeni bir beceri öğrendi — tutalım mı?”: işe yarayan yöntem, planın sahibini bekler. Yalnızca makine.

Gereken izin work:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/work_jobs/{id}/actions/propose_skill
API anahtarı ya da OAuth token · work:handle
  • Asıl adres: POST /api/v1/actions/work.propose_skill

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Plan · kimliği: work_job
namestringBeceri adı · en çok 64
descriptionstringNe yapar · en çok 600
contentstringAdımlar · en çok 20000
whystringŞuradan öğrenildi · en çok 600
nothingbooleanSaklamaya değer bir şey yok

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundPlan bu çalışma alanında olmalı.
not_doneEra yalnızca işe yarayan bir plandan öğrenir.
already_proposedBu plan için zaten bir öneri yapılmış.
bad_skillKüçük harf ve tirelerden oluşan bir ad, ne yaptığını anlatan bir satır ve adımlar gerekiyor.

Yayımladığı olaylar: work.skill_proposed

Neye yazar: work_job (update) — Writes the offer on the plan

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_done, already_proposed, bad_skill · 429 çok sık istek

work.record_fork

Ödünç bilgisayarı kaydet — Bilgisayar çalışanı kopyanın açıldığını, çalıştığını, geri verildiğini ya da açılamadığını ve süresini bildirir. Yalnızca makine.

Gereken izin work:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/work_computer_forks/{id}/actions/record_fork
API anahtarı ya da OAuth token · work:handle
  • Asıl adres: POST /api/v1/actions/work.record_fork

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Kopyala · kimliği: work_computer_fork
statestringevetDurum · forking | running | released | failed · en çok 20
externalIdstringSağlayıcı kimliği · en çok 200
deviceIdstringÇalıştırıcı · en çok 200
errorstringHata · en çok 500
addSecondsnumberÇalıştığı saniye · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
fork_not_foundBu kopya bu çalışma alanında bulunamadı.
bad_stateDurum geçerli bir kopya durumu olmalı.

Yayımladığı olaylar: work.fork_changed

Neye yazar: work_computer_fork (update) — Writes the copy’s state and time

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 fork_not_found, bad_state · 429 çok sık istek

work.record_shop_order

Era’nın verdiği siparişi kaydet — Alışveriş adımının raporu: ne alındı, tutar, kartın son dört hanesi, sipariş numarası ve sonra nerede olduğu. Asla kart numarası değil. Yalnızca makine.

Gereken izin work:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/shop_orders/{id}/actions/record_shop_order
API anahtarı ya da OAuth token · work:handle
  • Asıl adres: POST /api/v1/actions/work.record_shop_order

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Sipariş (güncellenecek) · kimliği: shop_order
storestringevetMağaza · en çok 40
requeststringNe istendi · en çok 1000
itemsobject / arrayÖğe · [{ name, qty, price (kuruş), image, variant }]
totalMinornumberToplam (kuruş) · en az 0
deliveryFeeMinornumberTeslimat ücreti (kuruş) · en az 0
currencystringPara birimi · en çok 3
statusstringDurum · placed | preparing | on_the_way | delivered | cancelled | unknown · en çok 20
etastringGeliş · en çok 200
courierstringKurye · en çok 200
orderNostringSipariş numarası · en çok 120
trackUrlstringTakip sayfası · en çok 2000
cardLast4stringKart (son dört hane) · Dört hane; daha uzunu kabul edilmez. · en çok 40
addressLabelstringTeslimat adresi · en çok 300
spacestring (enum)Kişisel veya işletme · İzin verilen değerler: personal, business
jobIduuidPlan · kimliği: work_job
stepIduuidAdım · kimliği: work_step
autoApprovedbooleanSınırın altında olduğu için sormadan alındı
expenseIduuidGider

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
bad_storeMağaza, Era’nın alışveriş yaptığı mağazalardan biri olmalı.
bad_orderBir siparişte adı olan 1–50 ürün, tam kuruş tutarlar ve bilinen bir durum olur.
card_number_refusedKart numarası asla saklanmaz — yalnızca son dört hane.
order_not_foundGüncelleme senin siparişlerinden birini göstermeli.

Yayımladığı olaylar: work.order_placed, work.order_updated

Neye yazar: shop_order (update) — Writes the order, or its tracking

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 bad_store, bad_order, card_number_refused, order_not_found · 429 çok sık istek

work.record_step

Bir adımın ilerlemesini kaydet — Motorun raporu: alındı, ilerleme, şu an ne yaptığı, neye ihtiyacı olduğu, sonucu. Planın durumunu çıkarır. Yalnızca sistem.

Gereken izin work:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/work_steps/{id}/actions/record_step
API anahtarı ya da OAuth token · work:handle
  • Asıl adres: POST /api/v1/actions/work.record_step

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Adım · kimliği: work_step
claimbooleanÜstlen
statusstringDurum · queued | running | needs_you | done | failed | skipped | stopped · en çok 20
progressnumberİlerleme · en az 0 · en çok 100
activitystringŞu an yaptığı · en çok 300
needobject / arrayBeklediği
executorRefstringYürütücü kaydı · en çok 200
runtimestringÇalıştığı yer · en çok 300
resultobject / arraySonuç
errorstringHata · en çok 1000
checkpointobject / arrayKontrol noktası · Yeniden başlatmadan sonra yürütücünün kaldığı yer: kaydı, imleci, o ana kadarki metin.

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
step_not_foundBu adım bu çalışma alanında bulunamadı.
bad_statusDurum geçerli bir adım durumu olmalı.
bad_transitionBitmiş bir adım değiştirilemez; yeniden denenebilir.
bad_resultSonuç ve ihtiyaç geçerli biçimde olmalı.
bad_checkpointAra kayıt en fazla 40.000 karakter olmalı.

Yayımladığı olaylar: work.step_changed, work.needs_you, work.job_finished, work.held

Neye yazar: work_step (update) — Writes the step’s progress, checkpoint and result; work_job (update) — Holds the plan at its time limit and derives its status from its steps

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 step_not_found, bad_status, bad_transition, bad_result, bad_checkpoint · 429 çok sık istek

work.release_fork

Ödünç bilgisayarı geri ver — Adımın kopyayla işi bitti; bilgisayar çalışanı onu siler.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_computer_forks/{id}/actions/release_fork
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.release_fork

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Kopyala · kimliği: work_computer_fork

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
fork_not_foundBu kopya bu çalışma alanında bulunamadı.
already_releasedBu kopya zaten geri verilmiş.

Yayımladığı olaylar: work.fork_requested

Neye yazar: work_computer_fork (update) — Marks it to be deleted

curl -X POST https://app.getera.io/api/v1/work_computer_forks/WORK_COMPUTER_FORK_ID/actions/release_fork \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.fork_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workComputerForks.releaseFork("WORK_COMPUTER_FORK_ID")
era work_computer_forks release_fork WORK_COMPUTER_FORK_ID
tools/call
{
  "name": "era__work__release_fork",
  "arguments": {
    "id": "WORK_COMPUTER_FORK_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 fork_not_found, already_released · 429 çok sık istek

work.replan_step

Bir adımın eksik girdisini yeniden planla — İhtiyaç duyduğu girdiyi bulamayan adım (dışa ya da içe aktarılacak satır yok) için onu üretecek bir adım ekler ve onu bekler. Yalnız sistem kullanır.

Gereken izin work:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/work_steps/{id}/actions/replan_step
API anahtarı ya da OAuth token · work:handle
  • Asıl adres: POST /api/v1/actions/work.replan_step

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Adım · kimliği: work_step
titlestringevetYeni adım · en çok 200
workerstringevetSüreç · en çok 20
instructionstringNe yapılacak · en çok 8000
runobject / arrayNasıl çalışır
reasonstringNeden · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
step_not_foundBu adım bu çalışma alanında bulunamadı.
not_runningEksik girdisini yalnızca çalışan bir adım ister.
already_replannedBir adım girdisini bir kez yeniden planlar; ikinci eksik başarısızlık sayılır.
unknown_workerYeni adım sekiz çalışandan birini belirtmeli.
unknown_executorYeni adımın çalıştırılışı, Era’da bulunan bir yürütücüyü belirtmeli.
unknown_credentialErişim bilgisi adımı, Era’nın isteyebildiği bir erişim bilgisini belirtmeli.
too_many_stepsBir planda en fazla 12 adım olabilir.
bad_stepsYeni adımın bir başlığı olmalı.

Yayımladığı olaylar: work.step_changed, work.needs_you, work.job_finished

Neye yazar: work_step (insert) — Adds the step that produces the missing input; work_step (update) — The consumer waits for it and goes back in line; work_job (update) — Notes the re-plan and derives the plan’s status

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 step_not_found, not_running, already_replanned, unknown_worker, unknown_executor, unknown_credential, too_many_steps, bad_steps · 429 çok sık istek

work.request_fork

Bulut bilgisayarımın bir kopyasını ödünç al — Bir adım için kendi giriş yapılmış bulut bilgisayarının kopyası — paralel uzmanların her biri kendi makinesinde çalışır.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_computer_forks/actions/request_fork
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.request_fork

Girdi

AlanTürZorunluAçıklama
stepIduuidevetAdım · kimliği: work_step

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
step_not_foundBu adım bu çalışma alanında bulunamadı.
not_foundAdımın planı bulunamadı.
not_ownerBilgisayarının bir kopyasını yalnızca planı oluşturan kişi verebilir.
no_base_computerPlanı oluşturan kişinin çalışan ya da uyku modunda bir bulut bilgisayarı olmalı.
fork_limitBir iş için en fazla, çalışma alanı paketinizin "aynı anda" sayısı kadar kopya açılabilir.
hours_used_upBu ayın bulut bilgisayar saatleri doldu.

Yayımladığı olaylar: work.fork_requested

Neye yazar: work_computer_fork (insert) — Asks the computer worker for a copy

curl -X POST https://app.getera.io/api/v1/work_computer_forks/actions/request_fork \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"stepId":"WORK_STEP_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.fork_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workComputerForks.requestFork({
  stepId: "WORK_STEP_ID"
})
era work_computer_forks request_fork \
  --step-id "WORK_STEP_ID"
tools/call
{
  "name": "era__work__request_fork",
  "arguments": {
    "stepId": "WORK_STEP_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 step_not_found, not_found, not_owner, no_base_computer, fork_limit, hours_used_up · 429 çok sık istek

work.requeue_step

Bir adımı sıraya geri koy — Süreci kesilen adım sıraya döner; sonraki deneme son kayıt noktasından devam eder. Yalnızca makine.

Gereken izin work:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/work_steps/{id}/actions/requeue_step
API anahtarı ya da OAuth token · work:handle
  • Asıl adres: POST /api/v1/actions/work.requeue_step

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Adım · kimliği: work_step
reasonstringNeden · en çok 300

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
step_not_foundBu adım bu çalışma alanında bulunamadı.
not_runningYalnız çalışan bir adım sıraya geri döner.

Yayımladığı olaylar: work.step_changed, work.needs_you, work.job_finished

Neye yazar: work_step (update) — Queues the step, keeping its checkpoint; work_job (update) — Derives the plan’s status

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 step_not_found, not_running · 429 çok sık istek

work.resume_job

Planı sürdür — Durmuş ya da başarısız bir planın bitmemiş adımlarını yeniden sıraya koyar.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_jobs/{id}/actions/resume_job
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.resume_job

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Plan · kimliği: work_job

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundPlan bu çalışma alanında olmalı.
not_stoppedYalnız durmuş ya da başarısız bir plan sürdürülebilir.

Yayımladığı olaylar: work.job_resumed

Neye yazar: work_step (update) — Queues the stopped and failed steps again; work_job (update) — Marks the plan running

curl -X POST https://app.getera.io/api/v1/work_jobs/WORK_JOB_ID/actions/resume_job \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.job_resumed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workJobs.resumeJob("WORK_JOB_ID")
era work_jobs resume_job WORK_JOB_ID
tools/call
{
  "name": "era__work__resume_job",
  "arguments": {
    "id": "WORK_JOB_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_stopped · 429 çok sık istek

work.retry_step

Bir adımı yeniden dene — Başarısız, durmuş ya da atlanmış bir adımı yeniden sıraya koyar.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_steps/{id}/actions/retry_step
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.retry_step

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Adım · kimliği: work_step

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
step_not_foundBu adım bu çalışma alanında bulunamadı.
not_failedYalnız başarısız, durmuş ya da atlanmış bir adım yeniden denenebilir.

Yayımladığı olaylar: work.step_changed

Neye yazar: work_step (update) — Queues the step again; work_job (update) — Marks the plan running

curl -X POST https://app.getera.io/api/v1/work_steps/WORK_STEP_ID/actions/retry_step \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.step_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workSteps.retryStep("WORK_STEP_ID")
era work_steps retry_step WORK_STEP_ID
tools/call
{
  "name": "era__work__retry_step",
  "arguments": {
    "id": "WORK_STEP_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 step_not_found, not_failed · 429 çok sık istek

work.review_skill

Era’nın neyi tutacağına karar ver — Tut (çalışma alanının Era’ları kullanabilir), gizli tut (yalnız senin), düzelt ya da unut.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_jobs/{id}/actions/review_skill
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.review_skill

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Plan · kimliği: work_job
decisionstring (enum)evetKarar · İzin verilen değerler: keep, private, forget
contentstringDüzeltilmiş adımlar · en çok 20000
skillIdstringKaydedilen beceri · en çok 200

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundPlan bu çalışma alanında olmalı.
no_proposalEra bu plandan bir öneri yapmamış.
already_reviewedBu öneri için zaten karar verilmiş.
not_ownerBuna yalnızca planı oluşturan kişi karar verebilir.
bad_skillSaklanan bir becerinin adımları olmalı.

Yayımladığı olaylar: work.skill_reviewed

Neye yazar: work_job (update) — Records the decision

curl -X POST https://app.getera.io/api/v1/work_jobs/WORK_JOB_ID/actions/review_skill \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"decision":"keep"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.skill_reviewed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workJobs.reviewSkill("WORK_JOB_ID", {
  decision: "keep"
})
era work_jobs review_skill WORK_JOB_ID \
  --decision "keep"
tools/call
{
  "name": "era__work__review_skill",
  "arguments": {
    "id": "WORK_JOB_ID",
    "decision": "keep"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, no_proposal, already_reviewed, not_owner, bad_skill · 429 çok sık istek

work.set_limits

Planın bütçesini ya da süresini değiştir — Bir planın kaç dakika çalışabileceği. Süre sınırına takılan plan kaldığı yerden devam eder.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_jobs/{id}/actions/set_limits
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.set_limits

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Plan · kimliği: work_job
maxMinutesnumberSüre sınırı (başlangıçtan itibaren dakika, boş = sınır yok)

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundPlan bu çalışma alanında olmalı.
already_finishedBitmiş bir planın sınırları değiştirilemez.
bad_limitsSüre sınırı 1 dakika ile bir hafta arasında olmalı.
still_overYeni süre sınırı şu andan sonra bitmeli.

Yayımladığı olaylar: work.limits_changed, work.needs_you, work.job_finished

Neye yazar: work_job (update) — Writes the time limit; lifts the hold it caused

curl -X POST https://app.getera.io/api/v1/work_jobs/WORK_JOB_ID/actions/set_limits \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"maxMinutes":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.limits_changed",
    "work.needs_you",
    "work.job_finished"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workJobs.setLimits("WORK_JOB_ID", {
  maxMinutes: 1
})
era work_jobs set_limits WORK_JOB_ID \
  --max-minutes 1
tools/call
{
  "name": "era__work__set_limits",
  "arguments": {
    "id": "WORK_JOB_ID",
    "maxMinutes": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_finished, bad_limits, still_over · 429 çok sık istek

work.set_shop_rule

Era’nın sormadan alacağı tutarı ayarla — Bu mağazada (ya da tüm mağazalarda) bu tutara kadarki alışverişler onay kartı olmadan alınır. Boş ya da 0 = her seferinde sor (varsayılan).

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/shop_rules/actions/set_shop_rule
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.set_shop_rule

Girdi

AlanTürZorunluAçıklama
storestringevetMağaza · getir | trendyol | yemeksepeti | hepsiburada | amazon_tr | migros | mock | * (tüm mağazalar) · en çok 40
askAboveMinornumberSormadan alışveriş sınırı (kuruş) · Tam kuruş, 0 ile 10 000 000 (100 000 TL) arası; 0 veya boş = her seferinde sor.
currencystringPara birimi · en çok 3

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
bad_storeMağaza, Era’nın alışveriş yaptığı mağazalardan biri ya da tümü için * olmalı.
bad_amountSınır 1 kuruş ile 100.000 TL arasında bir tutar olmalı.

Yayımladığı olaylar: work.shop_rule_changed

Neye yazar: shop_rule (update) — Writes or clears the person’s limit for that store

curl -X POST https://app.getera.io/api/v1/shop_rules/actions/set_shop_rule \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"store":"Store"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.shop_rule_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.shopRules.setShopRule({
  store: "Store"
})
era shop_rules set_shop_rule \
  --store "Store"
tools/call
{
  "name": "era__work__set_shop_rule",
  "arguments": {
    "store": "Store"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 bad_store, bad_amount · 429 çok sık istek

work.start_job

Bir plan başlat — Era’nın tek bir istek için planı: her biri bir uzmana (geliştirici, araştırma, büyüme, pazarlama, kreatif, veri, işletme, bilgisayar) verilen numaralı adımlar; birbirini beklemeyenler aynı anda çalışır.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_jobs/actions/start_job
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.start_job

Girdi

AlanTürZorunluAçıklama
titlestringevetAd · en çok 200
goalstringNe istendi · en çok 8000
modestring (enum)Başlatıldığı yer · İzin verilen değerler: chat, background, scheduled
conversationIdstringKonuşma · en çok 200
agentRefstringEra · en çok 200
askFirstbooleanPlan için onayımı bekle
nextStepstringÖnerilen sonraki adım · en çok 300
scopeCtxobject / arrayKapsam · Çalışanların kullandığı yetki kapsamı (yalnızca kimlikler).
stepsobject / arrayevetAdımlar · [{ title, worker, instruction, run?: { kind, … }, dependsOn?: [önceki adım numaraları], confirm? }]
deliverablestringTeslim et · none (sonuçlar) | report (PDF + slayt olarak bir rapor) · en çok 20
maxMinutesnumberSüre sınırı (dakika)

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
bad_limitsSüre sınırı 1 dakika ile bir hafta arasında olmalı.
bad_deliverablePlan ya sonuçlarını ya da bir rapor teslim etmeli.
empty_titleBir planın adı olmalı.
no_stepsBir planın en az bir adımı olmalı.
too_many_stepsBir planda en fazla 12 adım olabilir.
bad_stepsHer adımın bir başlığı olmalı.
unknown_workerHer adım sekiz çalışandan birini belirtmeli.
unknown_executorAdımın çalıştırılması, Era’da bulunan bir yürütücüyü belirtmeli.
unknown_credentialErişim bilgisi adımı, Era’nın isteyebildiği bir erişim bilgisini belirtmeli.
bad_dependencyBir adım yalnızca aynı plandaki önceki bir adımı bekleyebilir.
duplicate_stepBir plan aynı işi bir kez yapar: aynı başlıkta, aynı dışa aktarma biçiminde ya da iki Satış aktarımında iki adım olmaz.

Yayımladığı olaylar: work.job_started

Neye yazar: work_job (insert) — Writes the plan, running or waiting for approval; work_step (insert) — Writes its steps, queued

curl -X POST https://app.getera.io/api/v1/work_jobs/actions/start_job \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"title":"Name","steps":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.job_started"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workJobs.startJob({
  title: "Name",
  steps: {}
})
era work_jobs start_job --data '{"title":"Name","steps":{}}'
tools/call
{
  "name": "era__work__start_job",
  "arguments": {
    "title": "Name",
    "steps": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 bad_limits, bad_deliverable, empty_title, no_steps, too_many_steps, bad_steps, unknown_worker, unknown_executor, unknown_credential, bad_dependency, duplicate_step · 429 çok sık istek

work.stop_job

Planı durdur — "Dur": bitmemiş her adım durur; biten bitmiş kalır.

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_jobs/{id}/actions/stop_job
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.stop_job

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Plan · kimliği: work_job
reasonstringNeden · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundPlan bu çalışma alanında olmalı.
already_finishedBitmiş bir plan durdurulamaz.

Yayımladığı olaylar: work.job_stopped

Neye yazar: work_step (update) — Stops every unfinished step; work_job (update) — Marks the plan stopped and notes it

curl -X POST https://app.getera.io/api/v1/work_jobs/WORK_JOB_ID/actions/stop_job \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"reason":"Why"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.job_stopped"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workJobs.stopJob("WORK_JOB_ID", {
  reason: "Why"
})
era work_jobs stop_job WORK_JOB_ID \
  --reason "Why"
tools/call
{
  "name": "era__work__stop_job",
  "arguments": {
    "id": "WORK_JOB_ID",
    "reason": "Why"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_finished · 429 çok sık istek

work.supervise_step

Çalışan bir adımı gözet — İş taramasının basamakları: sessiz kalan adımı dürt, kesip yeniden gönder (en çok iki kez), takılı kalırsa sana bırak, yanıtlanmamış bir onayı bir kez hatırlat. Yalnızca makine.

Gereken izin work:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/work_steps/{id}/actions/supervise_step
API anahtarı ya da OAuth token · work:handle
  • Asıl adres: POST /api/v1/actions/work.supervise_step

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Adım · kimliği: work_step
opstringevetBasamak · nudge | recover | give_up | remind · en çok 20
quietMinutesnumberSessiz kalma süresi (dakika) · en az 0
reasonstringNeden · en çok 300

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
step_not_foundBu adım bu çalışma alanında bulunamadı.
bad_supervisionDürt, yeniden başlat, sana bırak ya da hatırlat.
not_runningYalnızca çalışan bir adım dürtülür, yeniden başlatılır ya da sana bırakılır.
recoveries_usedBir adım en çok iki kez yeniden başlatılır; sonra seni bekler.
not_waitingYalnızca seni bekleyen bir adım için hatırlatma yapılır.
already_remindedHer bekleyiş için tek hatırlatma.

Yayımladığı olaylar: work.step_changed, work.needs_you, work.job_finished

Neye yazar: work_step (update) — Writes the ladder’s state; queues a restarted step (keeping its checkpoint) or hands a stuck one to you; work_job (update) — Derives the plan’s status

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 step_not_found, bad_supervision, not_running, recoveries_used, not_waiting, already_reminded · 429 çok sık istek

work.use_result

Bir sonucu kullan — Bir sonuç kartının kullanıldığını ya da yayımlandığını kaydeder (kartın kendi işlemi senin adına çalışır).

Gereken izin work:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/work_steps/{id}/actions/use_result
API anahtarı ya da OAuth token · work:write
  • Asıl adres: POST /api/v1/actions/work.use_result

Girdi

AlanTürZorunluAçıklama
stepIduuidevetDoldurulduğu yer: adresteki {id} · Adım · kimliği: work_step
cardnumberevetSonuç · en az 0 · en çok 50
kindstring (enum)evetNe · İzin verilen değerler: use, publish, approve, open
targetstringKoşul · en çok 200

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
step_not_foundBu adım bu çalışma alanında bulunamadı.
no_such_cardSonuç, adımın kartlarından biri olmalı.

Yayımladığı olaylar: work.result_used

Neye yazar: work_step (update) — Marks the card used or live

curl -X POST https://app.getera.io/api/v1/work_steps/WORK_STEP_ID/actions/use_result \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"card":1,"kind":"use"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "work.result_used"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workSteps.useResult("WORK_STEP_ID", {
  card: 1,
  kind: "use"
})
era work_steps use_result WORK_STEP_ID \
  --card 1 \
  --kind "use"
tools/call
{
  "name": "era__work__use_result",
  "arguments": {
    "stepId": "WORK_STEP_ID",
    "card": 1,
    "kind": "use"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde work:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 step_not_found, no_such_card · 429 çok sık istek

Veri modelleri

ShopOrder

Tablo shop_order · Kaynak shop_orders

  • GET /api/v1/shop_orders
  • GET /api/v1/shop_orders/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
user_idstring (uuid) · uuidapp_user
storestring · text
requeststring · text
itemsobject · jsonb
total_minorstring (int64) · int8evet
delivery_fee_minorstring (int64) · int8evet
currencystring · text
statusstring · textplaced, preparing, on_the_way, delivered, cancelled, unknown
status_atstring (date-time) · timestamptz
etastring · textevet
courierstring · textevet
order_nostring · textevet
track_urlstring · textevet
card_last4string · textevet
address_labelstring · textevet
spacestring · textpersonal, business
expense_idstring (uuid) · uuidevet
job_idstring (uuid) · uuidevetwork_job
step_idstring (uuid) · uuidevetwork_step
auto_approvedboolean · bool
visibilitystring · textprivate, workspace
placed_atstring (date-time) · timestamptz
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((address_label IS NULL) OR (length(address_label) <= 300)))
  • CHECK (((card_last4 IS NULL) OR (card_last4 ~ '^[0-9]{4}$'::text)))
  • CHECK (((courier IS NULL) OR (length(courier) <= 200)))
  • CHECK ((currency ~ '^[A-Z]{3}$'::text))
  • CHECK (((delivery_fee_minor IS NULL) OR (delivery_fee_minor >= 0)))
  • CHECK (((eta IS NULL) OR (length(eta) <= 200)))
  • CHECK ((jsonb_typeof(items) = 'array'::text))
  • CHECK (((order_no IS NULL) OR (length(order_no) <= 120)))
  • CHECK ((length(request) <= 1000))
  • CHECK ((store ~ '^[a-z_]{2,40}$'::text))
  • CHECK (((total_minor IS NULL) OR (total_minor >= 0)))
  • CHECK (((track_url IS NULL) OR (length(track_url) <= 2000)))

ShopRule

Tablo shop_rule · Kaynak shop_rules

  • GET /api/v1/shop_rules
  • GET /api/v1/shop_rules/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
user_idstring (uuid) · uuidapp_user
storestring · text
ask_above_minorstring (int64) · int8
currencystring · text
visibilitystring · textprivate, workspace
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: workspace_id, user_id, store

Denetimler:

  • CHECK (((ask_above_minor > 0) AND (ask_above_minor <= 10000000)))
  • CHECK ((currency ~ '^[A-Z]{3}$'::text))
  • CHECK ((store ~ '^(\*\|[a-z_]{2,40})$'::text))

WorkComputerFork

Tablo work_computer_fork · Kaynak work_computer_forks

  • GET /api/v1/work_computer_forks
  • GET /api/v1/work_computer_forks/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
job_idstring (uuid) · uuidwork_job
step_idstring (uuid) · uuidwork_step
owner_user_idstring (uuid) · uuidapp_user
base_machine_idstring (uuid) · uuidcomputer_machine
providerstring · text
external_idstring · textevet
device_idstring · textevet
statestring · textrequested, forking, running, releasing, released, failed
errorstring · textevet
seconds_usedstring (int64) · int8
started_atstring (date-time) · timestamptzevet
released_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((device_id IS NULL) OR (length(device_id) <= 200)))
  • CHECK (((error IS NULL) OR (length(error) <= 500)))
  • CHECK (((external_id IS NULL) OR (length(external_id) <= 200)))
  • CHECK ((seconds_used >= 0))

WorkJob

Tablo work_job · Kaynak work_jobs

  • GET /api/v1/work_jobs
  • GET /api/v1/work_jobs/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
titlestring · text
goalstring · text
statusstring · textproposed, running, needs_you, done, failed, stopped
modestring · textchat, background, scheduled
conversation_idstring · textevet
agent_refstring · textevet
ask_firstboolean · bool
plan_approved_atstring (date-time) · timestamptzevet
next_stepstring · textevet
steeringobject · jsonb
scope_ctxobject · jsonb
summarystring · textevet
created_bystring (uuid) · uuidapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
finished_atstring (date-time) · timestamptzevet
deliverablestring · textnone, report
max_minutesinteger · int4evet
deadline_atstring (date-time) · timestamptzevet
holdobject · jsonbevet
learnedobject · jsonbevet
assignee_user_idstring (uuid) · uuidevetapp_user
visibilitystring · textprivate, workspace

Birincil anahtar: id

Denetimler:

  • CHECK ((length(goal) <= 8000))
  • CHECK (((hold IS NULL) OR ((jsonb_typeof(hold) = 'object'::text) AND (hold ? 'kind'::text))))
  • CHECK (((learned IS NULL) OR ((jsonb_typeof(learned) = 'object'::text) AND (learned ? 'status'::text))))
  • CHECK (((max_minutes IS NULL) OR ((max_minutes >= 1) AND (max_minutes <= 10080))))
  • CHECK (((next_step IS NULL) OR (length(next_step) <= 300)))
  • CHECK ((jsonb_typeof(scope_ctx) = 'object'::text))
  • CHECK ((jsonb_typeof(steering) = 'array'::text))
  • CHECK (((summary IS NULL) OR (length(summary) <= 4000)))
  • CHECK (((length(btrim(title)) >= 1) AND (length(btrim(title)) <= 200)))

WorkStep

Tablo work_step · Kaynak work_steps

  • GET /api/v1/work_steps
  • GET /api/v1/work_steps/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
job_idstring (uuid) · uuidwork_job
positioninteger · int4
titlestring · text
instructionstring · text
workerstring · textdev, research, growth, marketing, creative, data, business, computer
runobject · jsonb
depends_onstring[] · uuid[]
confirmboolean · bool
statusstring · textqueued, running, needs_you, done, failed, skipped, stopped
progressinteger · int4
activitystring · textevet
needobject · jsonbevet
executor_refstring · textevet
runtimestring · textevet
resultobject · jsonb
errorstring · textevet
started_atstring (date-time) · timestamptzevet
finished_atstring (date-time) · timestamptzevet
heartbeat_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
checkpointobject · jsonbevet
checkpoint_atstring (date-time) · timestamptzevet
attemptsinteger · int4
supervisionobject · jsonbevet

Birincil anahtar: id

Denetimler:

  • CHECK (((activity IS NULL) OR (length(activity) <= 300)))
  • CHECK (((attempts >= 0) AND (attempts <= 1000)))
  • CHECK (((checkpoint IS NULL) OR (jsonb_typeof(checkpoint) = 'object'::text)))
  • CHECK (((error IS NULL) OR (length(error) <= 1000)))
  • CHECK (((executor_ref IS NULL) OR (length(executor_ref) <= 200)))
  • CHECK ((length(instruction) <= 8000))
  • CHECK (((need IS NULL) OR (jsonb_typeof(need) = 'object'::text)))
  • CHECK ((("position" >= 1) AND ("position" <= 50)))
  • CHECK (((progress >= 0) AND (progress <= 100)))
  • CHECK ((jsonb_typeof(result) = 'object'::text))
  • CHECK (((jsonb_typeof(run) = 'object'::text) AND (run ? 'kind'::text)))
  • CHECK (((runtime IS NULL) OR (length(runtime) <= 300)))
  • CHECK (((supervision IS NULL) OR (jsonb_typeof(supervision) = 'object'::text)))
  • CHECK (((length(btrim(title)) >= 1) AND (length(btrim(title)) <= 200)))

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
work.fork_changedÖdünç bir bulut bilgisayarı açıldı, çalıştı, geri verildi ya da açılamadı.id, state, jobId, stepId
work.fork_requestedBir adım, sahibinin bulut bilgisayarının bir kopyasını istedi (ya da geri verdi).id, op, jobId, stepId
work.heldBir plan bütçesine ya da süre sınırına ulaştı ve seni bekliyor.id, title, kind, steps
work.job_assignedBir plan bir kişiye ya da yeniden Era’ya verildi, ya da kimin göreceği değişti.id, title, assigneeUserId, visibility, link, recipientUserId
work.job_finishedBir plan bitti (tamamlandı, başarısız oldu ya da durduruldu).id, title, status, message, link, recipientUserId
work.job_resumedDurmuş bir plan sürdürüldü.id, title, steps
work.job_startedEra bir plan başlattı (ya da onaya sundu).id, title, steps, status, recipientUserId
work.job_stoppedBiri bir planı durdurdu.id, title
work.limits_changedBir planın bütçesi ya da süresi değişti.id, maxMinutes, resumed
work.needs_youBir plan seni bekliyor — bir onay, bir kimlik bilgisi ya da bir bilgisayar.id, title, message, link, recipientUserId
work.order_placedEra, kişinin mağaza hesabından sipariş verdi.id, store, title, total, currency, status, eta, recipientUserId
work.order_updatedEra’nın verdiği sipariş ilerledi (hazırlanıyor, yolda, teslim edildi).id, store, status, eta, recipientUserId
work.plan_approvedBir plan onaylandı; uzmanlar başlıyor.id, title
work.result_usedBir sonuç kartı kullanıldı ya da yayımlandı.id, jobId, card, kind, target
work.shop_rule_changedBirisi Era’nın sormadan alacağı tutarı değiştirdi.store, askAboveMinor
work.skill_proposedEra işe yarayan bir plandan bir yöntem öğrendi ve tutulup tutulmayacağını soruyor.id, title, name, message, link, recipientUserId
work.skill_reviewedPlanın sahibi Era’nın öğrendiğini tuttu, gizli tuttu ya da unutturdu.id, decision, skillId
work.step_changedBir adım alındı, bitti, eklendi, değiştirildi ya da yanıtlandı.id, jobId, status
Bu sayfa yardımcı oldu mu?