curl --request GET \
--url https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"allocator_recommendation": {
"bets": [
{
"action": "<string>",
"champion_judge": "<string>",
"cost_attributed": true,
"cost_millicents": 123,
"experiment_slug": "<string>",
"has_reality": true,
"judge_standing": 123,
"posterior_source": "<string>",
"rationale": "<string>",
"value_mean": 123,
"value_per_cost_mean": 123,
"value_per_cost_stddev": 123,
"value_stddev": 123,
"variant_key": "<string>"
}
],
"budget_exhausted": true,
"notes": [
"<string>"
],
"remaining_millicents": 123
},
"assignments": [
{
"acceptance_criteria": "<string>",
"adoption_state": "<string>",
"assigned_agent_key": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"expected_result_kind": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"latest_attempt": {
"agent_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"attempt_number": 123,
"ended_at": "2023-11-07T05:31:56Z",
"handles": [
{
"resource_id": "<string>",
"resource_type": "<string>",
"revision_ref": "<string>"
}
],
"result_kind": "<string>",
"state": "<string>",
"summary": "<string>",
"terminal_reason": "<string>"
},
"objective": "<string>",
"reason": "<string>",
"slug": "<string>",
"work_state": "<string>",
"work_state_reason": "<string>"
}
],
"calibration": [
{
"agreed_pairs": 123,
"by_artifact_kind": {},
"by_grounding_source": {},
"comparable_pairs": 123,
"direct_pairs": 123,
"effective_agreement": 123,
"effective_pairs": 123,
"judge_slug": "<string>",
"misordered_examples": [
{
"experiment_run_id": "<string>",
"judge_winner": "<string>",
"judge_winner_value": 123,
"metric": "<string>",
"reality_winner": "<string>",
"reality_winner_value": 123
}
],
"paired_predictions": 123,
"pairwise_agreement_rate": 123,
"platform_agreement": 123,
"platform_pairs": 123,
"random_arm_pairs": 123,
"total_comparisons": 123,
"total_predictions": 123
}
],
"child_portfolio": [
{
"experiment_count": 123,
"open_attention_count": 123,
"running_experiment_count": 123,
"workstream": {
"autonomy_mode": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"escalation_budget_per_day": -1,
"external_refs": [
{
"account_id": "<string>",
"external_id": "<string>",
"kind": "<string>",
"label": "<string>",
"provider": "<string>"
}
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"primary_thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 123,
"slug": "<string>",
"source_template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"spent_millicents": 123,
"started_at": "2023-11-07T05:31:56Z",
"status": "<string>",
"title": "<string>",
"token_budget_millicents": 123,
"updated_at": "2023-11-07T05:31:56Z"
}
}
],
"current_decisions": [
{
"applicability": "<string>",
"approval_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"authorized_at": "2023-11-07T05:31:56Z",
"decided_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"decider_kind": "<string>",
"decider_rationale": "<string>",
"decision_class": "<string>",
"evidence_kind": "<string>",
"execution_status": "<string>",
"outcome_label": "<string>",
"outcome_status": "<string>",
"proposed_at": "2023-11-07T05:31:56Z",
"slug": "<string>",
"source": "<string>",
"status": "<string>",
"subject_kind": "<string>",
"subject_label": "<string>",
"superseded_by_decision_slug": "<string>",
"supersedes_decision_slug": "<string>",
"what": "<string>",
"why": "<string>"
}
],
"defects": [
{
"experiment_run_id": "<string>",
"judge_slug": "<string>",
"observed_at": "2023-11-07T05:31:56Z",
"reason": "<string>",
"variant_key": "<string>"
}
],
"experiments": [
{
"experiment": {
"created_at": "2023-11-07T05:31:56Z",
"decided_at": "2023-11-07T05:31:56Z",
"decision": "<string>",
"decision_rule_markdown": "<string>",
"guardrail_metrics": [
"<string>"
],
"hypothesis_markdown": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome_markdown": "<string>",
"primary_metric": "<string>",
"primary_thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"scope": "<string>",
"slug": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"status": "<string>",
"title": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"workstream_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"recent_observations": [
{
"action_taken": "<string>",
"agent_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"details": {},
"evidence_dataset_slug": "<string>",
"evidence_resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"experiment_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"job_execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"metric_name": "<string>",
"metric_value": 123,
"observation_type": "<string>",
"observed_at": "2023-11-07T05:31:56Z",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reason_code": "<string>",
"variant_key": "<string>",
"window_end": "2023-11-07T05:31:56Z",
"window_start": "2023-11-07T05:31:56Z"
}
],
"variants": [
{
"allocation_percent": -1,
"created_at": "2023-11-07T05:31:56Z",
"experiment_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_control": true,
"key": "<string>",
"label": "<string>",
"treatment_class": "<string>",
"treatment_resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"treatment_resource_type": "<string>",
"treatment_url": "<string>"
}
]
}
],
"judged_bets": 123,
"open_attention_items": [
{
"answer": {},
"answered_at": "2023-11-07T05:31:56Z",
"answered_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"body_markdown": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payload": {},
"read_at": "2023-11-07T05:31:56Z",
"severity": "<string>",
"slug": "<string>",
"status": "<string>",
"title": "<string>",
"workstream_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"phases": [
{
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"skill_slug": "<string>",
"slug": "<string>",
"sort_order": -1,
"started_at": "2023-11-07T05:31:56Z",
"status": "<string>",
"thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"workstream_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"random_arm_bets": 123,
"recent_decisions": [
{
"applicability": "<string>",
"approval_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"authorized_at": "2023-11-07T05:31:56Z",
"decided_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"decider_kind": "<string>",
"decider_rationale": "<string>",
"decision_class": "<string>",
"evidence_kind": "<string>",
"execution_status": "<string>",
"outcome_label": "<string>",
"outcome_status": "<string>",
"proposed_at": "2023-11-07T05:31:56Z",
"slug": "<string>",
"source": "<string>",
"status": "<string>",
"subject_kind": "<string>",
"subject_label": "<string>",
"superseded_by_decision_slug": "<string>",
"supersedes_decision_slug": "<string>",
"what": "<string>",
"why": "<string>"
}
],
"recent_events": [
{
"actor_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"actor_type": "<string>",
"body": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workstream_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"recently_resolved_attention_items": [
{
"answer": {},
"answered_at": "2023-11-07T05:31:56Z",
"answered_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"body_markdown": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payload": {},
"read_at": "2023-11-07T05:31:56Z",
"severity": "<string>",
"slug": "<string>",
"status": "<string>",
"title": "<string>",
"workstream_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"workstream": {
"autonomy_mode": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"escalation_budget_per_day": -1,
"external_refs": [
{
"account_id": "<string>",
"external_id": "<string>",
"kind": "<string>",
"label": "<string>",
"provider": "<string>"
}
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"primary_thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 123,
"slug": "<string>",
"source_template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"spent_millicents": 123,
"started_at": "2023-11-07T05:31:56Z",
"status": "<string>",
"title": "<string>",
"token_budget_millicents": 123,
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"code": "not_found",
"details": {},
"message": "<string>"
}ReadWorkstreamLedgerAPI mirrors erdo_read_workstream_ledger: the allocator's
single ledger read (budget, experiments + observations, calibration, steering notes, attention items, allocator recommendation).
curl --request GET \
--url https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.erdo.ai/v1/workstreams/{workstreamSlug}/ledger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"allocator_recommendation": {
"bets": [
{
"action": "<string>",
"champion_judge": "<string>",
"cost_attributed": true,
"cost_millicents": 123,
"experiment_slug": "<string>",
"has_reality": true,
"judge_standing": 123,
"posterior_source": "<string>",
"rationale": "<string>",
"value_mean": 123,
"value_per_cost_mean": 123,
"value_per_cost_stddev": 123,
"value_stddev": 123,
"variant_key": "<string>"
}
],
"budget_exhausted": true,
"notes": [
"<string>"
],
"remaining_millicents": 123
},
"assignments": [
{
"acceptance_criteria": "<string>",
"adoption_state": "<string>",
"assigned_agent_key": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"expected_result_kind": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"latest_attempt": {
"agent_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"attempt_number": 123,
"ended_at": "2023-11-07T05:31:56Z",
"handles": [
{
"resource_id": "<string>",
"resource_type": "<string>",
"revision_ref": "<string>"
}
],
"result_kind": "<string>",
"state": "<string>",
"summary": "<string>",
"terminal_reason": "<string>"
},
"objective": "<string>",
"reason": "<string>",
"slug": "<string>",
"work_state": "<string>",
"work_state_reason": "<string>"
}
],
"calibration": [
{
"agreed_pairs": 123,
"by_artifact_kind": {},
"by_grounding_source": {},
"comparable_pairs": 123,
"direct_pairs": 123,
"effective_agreement": 123,
"effective_pairs": 123,
"judge_slug": "<string>",
"misordered_examples": [
{
"experiment_run_id": "<string>",
"judge_winner": "<string>",
"judge_winner_value": 123,
"metric": "<string>",
"reality_winner": "<string>",
"reality_winner_value": 123
}
],
"paired_predictions": 123,
"pairwise_agreement_rate": 123,
"platform_agreement": 123,
"platform_pairs": 123,
"random_arm_pairs": 123,
"total_comparisons": 123,
"total_predictions": 123
}
],
"child_portfolio": [
{
"experiment_count": 123,
"open_attention_count": 123,
"running_experiment_count": 123,
"workstream": {
"autonomy_mode": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"escalation_budget_per_day": -1,
"external_refs": [
{
"account_id": "<string>",
"external_id": "<string>",
"kind": "<string>",
"label": "<string>",
"provider": "<string>"
}
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"primary_thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 123,
"slug": "<string>",
"source_template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"spent_millicents": 123,
"started_at": "2023-11-07T05:31:56Z",
"status": "<string>",
"title": "<string>",
"token_budget_millicents": 123,
"updated_at": "2023-11-07T05:31:56Z"
}
}
],
"current_decisions": [
{
"applicability": "<string>",
"approval_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"authorized_at": "2023-11-07T05:31:56Z",
"decided_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"decider_kind": "<string>",
"decider_rationale": "<string>",
"decision_class": "<string>",
"evidence_kind": "<string>",
"execution_status": "<string>",
"outcome_label": "<string>",
"outcome_status": "<string>",
"proposed_at": "2023-11-07T05:31:56Z",
"slug": "<string>",
"source": "<string>",
"status": "<string>",
"subject_kind": "<string>",
"subject_label": "<string>",
"superseded_by_decision_slug": "<string>",
"supersedes_decision_slug": "<string>",
"what": "<string>",
"why": "<string>"
}
],
"defects": [
{
"experiment_run_id": "<string>",
"judge_slug": "<string>",
"observed_at": "2023-11-07T05:31:56Z",
"reason": "<string>",
"variant_key": "<string>"
}
],
"experiments": [
{
"experiment": {
"created_at": "2023-11-07T05:31:56Z",
"decided_at": "2023-11-07T05:31:56Z",
"decision": "<string>",
"decision_rule_markdown": "<string>",
"guardrail_metrics": [
"<string>"
],
"hypothesis_markdown": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome_markdown": "<string>",
"primary_metric": "<string>",
"primary_thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"scope": "<string>",
"slug": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"status": "<string>",
"title": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"workstream_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"recent_observations": [
{
"action_taken": "<string>",
"agent_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"details": {},
"evidence_dataset_slug": "<string>",
"evidence_resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"experiment_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"job_execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"metric_name": "<string>",
"metric_value": 123,
"observation_type": "<string>",
"observed_at": "2023-11-07T05:31:56Z",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reason_code": "<string>",
"variant_key": "<string>",
"window_end": "2023-11-07T05:31:56Z",
"window_start": "2023-11-07T05:31:56Z"
}
],
"variants": [
{
"allocation_percent": -1,
"created_at": "2023-11-07T05:31:56Z",
"experiment_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_control": true,
"key": "<string>",
"label": "<string>",
"treatment_class": "<string>",
"treatment_resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"treatment_resource_type": "<string>",
"treatment_url": "<string>"
}
]
}
],
"judged_bets": 123,
"open_attention_items": [
{
"answer": {},
"answered_at": "2023-11-07T05:31:56Z",
"answered_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"body_markdown": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payload": {},
"read_at": "2023-11-07T05:31:56Z",
"severity": "<string>",
"slug": "<string>",
"status": "<string>",
"title": "<string>",
"workstream_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"phases": [
{
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"skill_slug": "<string>",
"slug": "<string>",
"sort_order": -1,
"started_at": "2023-11-07T05:31:56Z",
"status": "<string>",
"thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"workstream_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"random_arm_bets": 123,
"recent_decisions": [
{
"applicability": "<string>",
"approval_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"authorized_at": "2023-11-07T05:31:56Z",
"decided_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"decider_kind": "<string>",
"decider_rationale": "<string>",
"decision_class": "<string>",
"evidence_kind": "<string>",
"execution_status": "<string>",
"outcome_label": "<string>",
"outcome_status": "<string>",
"proposed_at": "2023-11-07T05:31:56Z",
"slug": "<string>",
"source": "<string>",
"status": "<string>",
"subject_kind": "<string>",
"subject_label": "<string>",
"superseded_by_decision_slug": "<string>",
"supersedes_decision_slug": "<string>",
"what": "<string>",
"why": "<string>"
}
],
"recent_events": [
{
"actor_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"actor_type": "<string>",
"body": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workstream_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"recently_resolved_attention_items": [
{
"answer": {},
"answered_at": "2023-11-07T05:31:56Z",
"answered_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"body_markdown": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payload": {},
"read_at": "2023-11-07T05:31:56Z",
"severity": "<string>",
"slug": "<string>",
"status": "<string>",
"title": "<string>",
"workstream_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"workstream": {
"autonomy_mode": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"escalation_budget_per_day": -1,
"external_refs": [
{
"account_id": "<string>",
"external_id": "<string>",
"kind": "<string>",
"label": "<string>",
"provider": "<string>"
}
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"primary_thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 123,
"slug": "<string>",
"source_template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"spent_millicents": 123,
"started_at": "2023-11-07T05:31:56Z",
"status": "<string>",
"title": "<string>",
"token_budget_millicents": 123,
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"code": "not_found",
"details": {},
"message": "<string>"
}Authorizations
An Erdo API key (erdo_api_...) or scoped token (erdo_token_...).
Path Parameters
Query Parameters
-2147483648 <= x <= 2147483647Response
Success response
workstream: a per-bet action + posterior, plus the budget envelope it fit the recommendation inside. Deterministic — same ledger in, same recommendation out.
Show child attributes
Show child attributes
the latest worker did about each piece of it. It rides in the ledger read for the same reason the standing decisions do: a pass that had to remember to go and look would eventually not, and the states that need a coordinator specifically — a submission nobody has reviewed, work whose worker died — are invisible in every other part of this read. list_assignments remains the drill-in; this is the overview a pass gets without asking.
Show child attributes
Show child attributes
trust dial the loop uses to weight kills and screening. Empty until judges have made forecasts reality later measured. Each entry also carries its residual stream (misordered_examples) — the seed the loop hands to judge generation when a persistent disagreement pattern emerges.
Show child attributes
Show child attributes
It is deliberately one level deep: portfolio supervision does not require an unbounded graph traversal.
Show child attributes
Show child attributes
standing commitments no later decision has superseded, plus the one_shot authorizations whose work is still in flight. They are loaded here, with the ledger, rather than left to a search the model may not run — an agent that has to remember to look up what the organization already decided is an agent that will eventually recommend the opposite of it.
RecentDecisions is the surrounding history in any state, current rows excluded: what was proposed, refused, replaced, failed, or authorized and since carried out. Context for the agent's reasoning, never a commitment it should continue.
Show child attributes
Show child attributes
ledger — the seeded complement to the misordered_examples each judge carries. A defect costs no conversion, so the residual stream can never surface it; the loop reads these alongside misordered_examples so judge generation can propose a lens for a failure only a human eye caught. Bounded per read.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
this project: how many measured bets skipped judge screening vs. were screened. The loop watches the split to keep the random arm alive (roughly one in ten) so it can price what the judges cost.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
that a human (or the expiry safe-default) resolved within the recent window. The loop reads these to act on ANSWERS to the escalations/choices it asked — a self-reconciling pass must be able to read back the human's reply, not just re-ask. Carries the answer + applied safe_default; newest first.
Show child attributes
Show child attributes
Operational state machine for multi-step work (campaign launches, reports, monitors).
Show child attributes
Show child attributes

