Skip to content
Twins, simulation & claims

Twins, simulation & claims

The action layer.

  • TwinsService is the “actionable twin”. It reasons over the fetched estate, proposes action cards (outreach, claims, documents, route changes), and records the human decision on each card.
  • HypothesisService is the simulation lab. It proposes scenarios from the estate, simulates them on the sovereign model plane, validates them against the reconciled rules, and promotes them to the twin queue.
  • ClaimsAgentService triages returned items.

Nothing on this page executes an action without an explicit approval through ExecuteAction, and an approval is recorded against the verified identity of the session that made it.

Summary

ServiceRPCKindPurpose
TwinsServiceStreamTwinsServer streamingAsk the twin agent; stream its reasoning and analysis
TwinsServiceExecuteActionUnaryApprove or reject an action card
TwinsServiceGetActionQueueUnaryList action cards by status and type
TwinsServiceOptimizeRouteUnaryCompute a route between two places
TwinsServiceQuickAskUnaryShort retrieval-grounded answer
TwinsServiceUploadAnalyzeServer streamingAnalyse an uploaded file with parallel agents
TwinsServiceGenerateRoadmapUnaryPhased maturity roadmap
TwinsServiceGetSavingsSummaryUnarySavings across action cards
TwinsServiceSubmitFeedbackUnaryRecord feedback on a response
HypothesisServiceSimulateScenarioServer streamingSimulate one scenario, streaming progress
HypothesisServiceValidateHypothesisUnaryCheck a scenario against reconciled rules
HypothesisServiceGetHypothesisVariablesUnaryScenarios proposed from the estate, with swarm results
HypothesisServiceInteractiveSimulateBidirectional streamingRe-simulate as variables change
HypothesisServiceSendToTwinsUnaryPromote a scenario to the twin queue
HypothesisServiceAnalyzeTelemetryUnaryDecompose an equipment telemetry series
ClaimsAgentServiceProcessReverseLogisticsUnaryNot available: no claim records to ground it
ClaimsAgentServiceTriageReturnItemUnaryDisposition for a returned item

Several RPCs pass the caller’s text through the relevant agent’s guardrail rules first (see MetasearchService/EvaluateBias). A refusal from the guardrail is returned as an error.

TwinsService

Full name semantics.v1.TwinsService.

StreamTwins

rpc StreamTwins(StreamTwinsRequest) returns (stream StreamTwinsResponse);
  • Kind: Server streaming. Available over native gRPC and gRPC-web.
  • Auth: Bearer session. Tool use inside the agent loop follows the orchestrator’s tool gate.
  • Errors: The stream ends with an error (no specific code) if user_query trips the prompt-injection check, or if the agent loop fails before producing an answer.

Runs the twins agent (up to 3 turns) with a context built from:

  • the attached video_frames (the first 3 are shown to the vision model);
  • matching recognised rules;
  • the fetched domain knowledge (always when user_query is set, and narrowed by focus_domains);
  • scenario_context;
  • public research fetched for the query.

audio_input is not transcribed: the model is told that audio was attached and not processed. document_upload and document_filename are not read. Use UploadAnalyze for files.

The stream carries thought messages (progress), then zero or more simulation_result or error messages if the agent triggered a shadow simulation, then one final analysis message. The final message’s content is the analysis as JSON, with decisions, tools, metrics, time_series, shadow_search and spoken_response set from it. Identical requests may be answered from a cache with that single final message.

If the agent proposes new data connections, the server creates them through ConfigService.CreateConnection and reports each outcome in a thought message.

Request: StreamTwinsRequest

FieldTypeDescription
user_querystringThe question or instruction.
audio_inputbytesWAV/PCM audio. Not transcribed; the agent is told so.
video_framesrepeated bytesJPEG/PNG frames for vision. The first 3 are used.
document_uploadbytesNot read by this RPC.
document_filenamestringNot read by this RPC.
ground_with_knowledgeboolInject the latest posture snapshot and recognised rules into the context.
focus_domainsrepeated stringNarrow that knowledge to these domains.
scenario_contextstringA hypothesis handed over from the lab.

Response: StreamTwinsResponse

FieldTypeDescription
contentstringText of this message. On the final analysis message, the analysis as JSON.
typestringthought, simulation_result, error or analysis.
decisionsrepeated DecisionThe agent’s decisions. Final message only.
toolsrepeated ToolCallTools the agent recommended. Final message only.
metricsEvaluationMetricsQuality figures as the agent reported them. See the message for how to read them.
time_seriesrepeated TimeSeriesInsightTime-series insights.
shadow_searchrepeated ShadowSearchResultPublic research findings used.
spoken_responsestringA short summary suitable for speech.
audio_databytesNot populated by this RPC.

ExecuteAction

rpc ExecuteAction(ExecuteActionRequest) returns (ExecuteActionResponse);
  • Kind: Unary.
  • Auth: Bearer session. An approval is refused unless the session carries a verified subject, so that every approval names a principal. A rejection is recorded either way.
  • Errors: PERMISSION_DENIED for an approval that cannot be attributed. INVALID_ARGUMENT for a rejection with no reason, or a reason over 2,000 characters (refused, never truncated). FAILED_PRECONDITION if the instance has no action store. NOT_FOUND if action_id does not exist. INTERNAL if the card cannot be read or stored, or if sending the card’s email fails.

user_approval must be exactly approve to approve. Any other value is a rejection.

On approval, the server runs the card’s artefacts:

  • the email draft is sent through the tenant’s connected Google account;
  • calendar invites and ERP updates are not implemented and are reported in not_executed;
  • a success fee may be recorded when billing is configured;
  • an attached evidence document is sealed.

On rejection nothing runs, and the evidence document is not sealed. In both cases the decision is appended to the card’s decision_trail and the card’s status becomes Approved or Rejected. Re-sending the same decision is idempotent: the trail is unchanged and the original entry is returned.

Request: ExecuteActionRequest

FieldTypeDescription
action_idstringThe card’s id.
user_approvalstringapprove approves. Anything else rejects.
sop_draftstringNot read by the server.
suggested_providersrepeated stringNot read by the server.
reasonstringWhy, in the decider’s words. Required on a rejection, optional on an approval. Whitespace-only counts as empty. At most 2,000 characters.

Response: ExecuteActionResponse

FieldTypeDescription
successbooltrue unless this was an approval that executed nothing. A rejection returns true. Not a receipt: read transaction_id.
transaction_idstringSet only when success is true.
decision_recordedboolThe decision was durably stored. true with success: false means stop: the card is decided, nothing was executable, and there is nothing to retry. Real failures arrive as gRPC errors instead.
not_executedrepeated string<artifact>:<reason> for each requested artefact that did not run: email:no_google_connector, calendar:not_implemented, erp:not_implemented, billing:charge_failed. Empty does not mean everything ran.
decisionActionDecisionThe trail entry recorded, or the existing one on a retry.

GetActionQueue

rpc GetActionQueue(GetActionQueueRequest) returns (GetActionQueueResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: UNAVAILABLE if the action store cannot be read. The queue is then unknown, not empty.

With an empty status, returns the undecided cards: stored cards, the cards derived from the latest twin run when none are stored, and evidence-document cards derived from the tenant’s records. Cards already decided are left out. With status set to Approved or Rejected, returns only stored cards with that status, including their decision_trail.

Request: GetActionQueueRequest

FieldTypeDescription
workflow_typestringKeep cards whose type equals this, case-insensitively. Empty keeps all.
statusstringKeep cards whose status equals this, case-insensitively. Empty means undecided cards.

Response: GetActionQueueResponse

FieldTypeDescription
actionsrepeated ActionCardThe cards.

OptimizeRoute

rpc OptimizeRoute(OptimizeRouteRequest) returns (OptimizeRouteResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: UNAVAILABLE if the tenant has no Google Routes connector, or the routing provider returns no route.

Computes a route with the tenant’s connected Google Routes account. cost_savings is not computed.

Request: OptimizeRouteRequest

FieldTypeDescription
originstringStart address or place.
destinationstringEnd address or place.
preferencesrepeated stringRouting preferences, passed to the provider.

Response: OptimizeRouteResponse

FieldTypeDescription
distancestringFor example 412.3 km.
durationstringTravel time, as a duration string.
route_polylinestringEncoded polyline.
cost_savingsstringNot populated.
route_cardRouteTwinCardThe same route as a card.

QuickAsk

rpc QuickAsk(QuickAskRequest) returns (QuickAskResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: Returned without a specific code if the query trips the twin guardrail or the model call fails.

Answers in two or three sentences from the knowledge graph and the model. It also queues one S&OP card, “Deep Dive: …”, suggesting a full StreamTwins analysis.

Request: QuickAskRequest

FieldTypeDescription
querystringThe question.
context_hintstringS&OP, INVENTORY, SPEND or WAREHOUSING. Scopes the retrieval.

Response: QuickAskResponse

FieldTypeDescription
answerstringThe answer.
confidencedoubleA fixed value (0.75), not a measurement. Do not display it as a confidence.
sourcesrepeated stringknowledge_graph when retrieval found context. Otherwise empty.
suggested_actionsrepeated ActionCardThe queued deep-dive card.

UploadAnalyze

rpc UploadAnalyze(UploadAnalyzeRequest) returns (stream UploadAnalyzeResponse);
  • Kind: Server streaming. Available over native gRPC and gRPC-web.
  • Auth: Bearer session.
  • Errors: The stream ends with an error (no specific code) for an invalid file name, a guardrail refusal of the name or content, or the first failing agent.

.csv, .tsv and .txt files are read as text. Any other file is described to the agents by name, size and a base64 sample of its first 4 KB, so the agents do not see its full content. Twelve agents then analyse it in parallel. Each streams a thought when it starts and when it answers. The stream ends with one action_card message holding all the analyses, and the server queues a Procurement card for the upload.

Request: UploadAnalyzeRequest

FieldTypeDescription
file_namestringFile name. Only the base name is used.
file_contentbytesThe file.
analysis_typestringROOT_CAUSE, SPEND, INVENTORY_HEALTH or GENERAL. Shown in progress text only.

Response: UploadAnalyzeResponse

FieldTypeDescription
contentstringProgress text, or on the final message all the analyses as Markdown.
typestringthought or action_card.
decisionsrepeated DecisionFinal message only: one fixed “Review parallel agent analysis” decision. Its confidence is a constant, not a measurement.

GenerateRoadmap

rpc GenerateRoadmap(GenerateRoadmapRequest) returns (GenerateRoadmapResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: Returned without a specific code if industry trips the guardrail or the model call fails.

The model writes the executive summary. The phases are a fixed four-step template (Digitize, Connect, Analyze, Automate) with the timeline split evenly between them. Investment and ROI are not estimated. The server also queues the first action card.

Request: GenerateRoadmapRequest

FieldTypeDescription
current_scoresrepeated MaturityDimensionCurrent maturity per dimension.
target_levelint32Target level, 1 to 5.
timeline_monthsint32Total months. 0 or negative means 18.
industrystringIndustry, for context.

Response: GenerateRoadmapResponse

FieldTypeDescription
executive_summarystringThe model’s summary.
phasesrepeated RoadmapPhaseThe four phases. estimated_investment_usd and expected_roi_percent are 0: not estimated.
first_actionsrepeated ActionCardThe queued “Begin Phase 1” card.

GetSavingsSummary

rpc GetSavingsSummary(GetSavingsSummaryRequest) returns (GetSavingsSummaryResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: None.

Sums savings over all action cards, with operator decisions applied. Rejected cards are left out. A card counts when it carries a spend card (identified savings), a route card with a stated saving, or a reverse-logistics or freight-forwarding card (the card’s transaction_value). Neither figure is realised savings: the platform does not persist whether an approved action was carried out.

Request: GetSavingsSummaryRequest

FieldTypeDescription
time_rangestringNot applied by the server.
category_filterstringFilters savings_by_category only. ALL or empty keeps all. The totals are not filtered.

Response: GetSavingsSummaryResponse

FieldTypeDescription
total_savings_usddoublePipeline: savings on approved and pending cards.
savings_by_categoryrepeated SavingsCategoryBy category (Procurement, Route, Reverse Logistics, or the card type), largest first.
savings_trendrepeated SavingsTrendA single entry for the current ISO week, holding the total.
approved_savings_usddoubleSavings on approved cards only. Never more than the total.

SubmitFeedback

rpc SubmitFeedback(SubmitFeedbackRequest) returns (SubmitFeedbackResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: UNAVAILABLE if no feedback store is configured. INTERNAL if it cannot be stored.

Request: SubmitFeedbackRequest

FieldTypeDescription
promptstringThe prompt the feedback is about.
generated_responsestringNot stored by the server.
feedback_typestringBAD_PROMPT, BAD_SUGGESTION or ADMIN_FLAG.
admin_notesstringNotes.

Response: SubmitFeedbackResponse

FieldTypeDescription
successbooltrue once stored.
messagestringOutcome.

HypothesisService

Full name semantics.v1.HypothesisService.

SimulateScenario

rpc SimulateScenario(SimulateScenarioRequest) returns (stream SimulateScenarioResponse);
  • Kind: Server streaming. Available over native gRPC and gRPC-web.
  • Auth: Bearer session.
  • Errors: PERMISSION_DENIED if the scenario trips the hypothesis guardrail. Template, model and parse failures end the stream without a specific code.

Streams progress messages (only scenario_id and impact_summary set) through causal, Bayesian and context enrichment and the model’s reasoning, then one final message with the full result. confidence is the top scenario’s confidence as the model stated it. recommendation is Approve when that exceeds 0.8, Reject / More Evidence when it does not, and Review Needed when the model gave no number.

Request: SimulateScenarioRequest

FieldTypeDescription
scenario_idstringScenario id.
scenario_namestringScenario name.
variablesrepeated VariableScenario variables.
reconciled_rulesrepeated RuleRules the scenario rests on.

Response: SimulateScenarioResponse

FieldTypeDescription
scenario_idstringScenario id.
impact_summarystringProgress text, or on the final message the simulated impacts and hypothesis.
confidencedoubleThe model’s stated confidence in the top scenario. 0 when none was stated.
recommendationstringApprove, Reject / More Evidence or Review Needed. Empty when there were no scenarios.
scenariosrepeated DecisionScenarioDecision scenarios.
impactsrepeated ImpactSimulationSimulated impacts.
tracesrepeated EvidenceTraceEvidence traces.
metricsEvaluationMetricsQuality figures as the model reported them.
forecastsrepeated TimeSeriesForecastForecasts.
anomaliesrepeated TimeSeriesAnomalyAnomalies, including decomposition anomalies over the forecasts.

ValidateHypothesis

rpc ValidateHypothesis(ValidateHypothesisRequest) returns (ValidateHypothesisResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: None.

A deterministic check. No model is involved. valid_data is true when a fetch has produced rules or a posture snapshot. Each reconciled rule in Drift, Shadow, Missing or Conflict (stated in the request, or recognised by name) raises a risk flag. valid_logic needs valid data, no risk flags, and at least one rule.

Request: ValidateHypothesisRequest

FieldTypeDescription
hypothesis_idstringHypothesis id. Not used by the check.
scenario_namestringScenario name, used in the rationale.
reconciled_rulesrepeated RuleRules the scenario rests on.

Response: ValidateHypothesisResponse

FieldTypeDescription
valid_logicboolConsistent with the rules, with nothing unresolved.
valid_databoolThere is fetched knowledge to validate against.
risk_flagsrepeated stringOne sentence per unresolved rule.
rationalestringWhy.

GetHypothesisVariables

rpc GetHypothesisVariables(GetHypothesisVariablesRequest) returns (GetHypothesisVariablesResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: None.

Returns the lab’s scenario groups, generated from the latest posture snapshot’s domains, with the latest swarm run’s results and census attached. Without a snapshot, only the default model variables are returned.

Request: GetHypothesisVariablesRequest

No fields.

Response: GetHypothesisVariablesResponse

FieldTypeDescription
variablesrepeated VariableDefault model knobs (temperature, top-p, top-k and so on).
hypothesis_groupsrepeated HypothesisGroupScenario groups. Empty without a snapshot.
swarm_censusHypothesisSwarmCensusAccounting for the last swarm run. Absent means no record here, not “never ran”.

InteractiveSimulate

rpc InteractiveSimulate(stream InteractiveSimulateRequest) returns (stream InteractiveSimulateResponse);
  • Kind: Bidirectional streaming. Native gRPC only.
  • Auth: Bearer session.
  • Errors: As for SimulateScenario. The first failure ends the stream.

For each request received, runs the same simulation as SimulateScenario, without progress messages, and sends one response. The stream ends when the client closes its side.

Request: InteractiveSimulateRequest

FieldTypeDescription
scenario_idstringScenario id.
scenario_namestringScenario name.
variablesrepeated VariableScenario variables.
reconciled_rulesrepeated RuleRules the scenario rests on.

Response: InteractiveSimulateResponse

Same fields and meaning as SimulateScenarioResponse.

FieldTypeDescription
scenario_idstringScenario id.
impact_summarystringSimulated impacts and hypothesis.
confidencedoubleThe model’s stated confidence in the top scenario.
recommendationstringApprove, Reject / More Evidence or Review Needed.
scenariosrepeated DecisionScenarioDecision scenarios.
impactsrepeated ImpactSimulationSimulated impacts.
tracesrepeated EvidenceTraceEvidence traces.
metricsEvaluationMetricsQuality figures as the model reported them.
forecastsrepeated TimeSeriesForecastForecasts.
anomaliesrepeated TimeSeriesAnomalyAnomalies.

SendToTwins

rpc SendToTwins(SendToTwinsRequest) returns (SendToTwinsResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: None as gRPC status.

Queues an S&OP action card for the twin, with id twin-hyp-<scenario_id> (or a slug of the name) and origin stage simulate. Its priority is High when any reconciled rule is High or Critical severity, and Medium otherwise.

Request: SendToTwinsRequest

FieldTypeDescription
scenario_idstringScenario id.
scenario_namestringCard title. Empty means Hypothesis <scenario_id>.
hypothesisstringThe hypothesis. Used as the card’s impact when impact_summary is empty.
reconciled_rulesrepeated RuleNamed on the card, and used for priority.
variablesmap<string, double>Scenario variables.
domainstringDomain, noted on the card.
impact_summarystringThe card’s impact text.

Response: SendToTwinsResponse

FieldTypeDescription
successboolWhether the card was queued.
twin_action_idstringThe queued card’s id.
messagestringOutcome.

AnalyzeTelemetry

rpc AnalyzeTelemetry(AnalyzeTelemetryRequest) returns (AnalyzeTelemetryResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: Returned without a specific code if the input trips the telemetry guardrail, there are fewer than 5 points, or the decomposition fails.

Runs a Prophet decomposition over the series. final_result_json holds anomaly_detected, anomaly_count, anomalies, trend (upward, downward or stable), forecast, changepoint_count, confidence_score (1 minus the anomaly share of the points) and equipment_id. When a model is available, impact_simulation holds its JSON impact assessment.

Request: AnalyzeTelemetryRequest

FieldTypeDescription
equipment_idstringEquipment id.
time_series_datarepeated doubleThe readings. At least 5.
timestampstringNot used by the server.

Response: AnalyzeTelemetryResponse

FieldTypeDescription
statusstringSUCCESS.
current_thoughtstringNot populated.
action_attemptedstringNot populated.
observation_resultstringNot populated.
final_result_jsonstringThe decomposition result, as above.
fraud_patternsrepeated stringNot populated.
sopsrepeated stringNot populated.
impact_simulationstringThe model’s impact JSON, or {}.
target_financial_valuedoubleAlways 0. Telemetry alone gives no basis for a dollar figure.

ClaimsAgentService

Full name semantics.v1.ClaimsAgentService.

ProcessReverseLogistics

rpc ProcessReverseLogistics(ProcessReverseLogisticsRequest) returns (ProcessReverseLogisticsResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: INVALID_ARGUMENT if claim_id is empty. Otherwise always FAILED_PRECONDITION: FACE holds no record of the claim, return authorisation or receiving log, so any disposition or value would be invented. Evidence documents for returns reach the queue through GetActionQueue instead.

Request: ProcessReverseLogisticsRequest

FieldTypeDescription
claim_idstringRequired. Claim id.
return_authorization_idstringReturn authorisation id.
receiving_log_idstringReceiving log id.

Response: ProcessReverseLogisticsResponse

Never returned by the current server.

FieldTypeDescription
statusstringStatus.
current_thoughtstringReasoning.
action_attemptedstringAction.
observation_resultstringObservation.
final_result_jsonstringResult as JSON.
fraud_patternsrepeated stringFraud patterns.
sopsrepeated stringProcedures.
impact_simulationstringImpact.
target_financial_valuedoubleValue.

TriageReturnItem

rpc TriageReturnItem(TriageReturnItemRequest) returns (TriageReturnItemResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: INVALID_ARGUMENT if return_id or condition_code is empty, the code is unknown, or original_value_usd is negative. A guardrail refusal is returned without a specific code.

The disposition is a fixed rule over the condition you state: PRISTINE/A restocks, DAMAGED/B refurbishes, DEFECTIVE/C recycles, EXPIRED/D goes to landfill. Nothing else is derived.

Request: TriageReturnItemRequest

FieldTypeDescription
return_idstringRequired. Return id.
barcodestringBarcode.
condition_codestringRequired. PRISTINE, DAMAGED, DEFECTIVE, EXPIRED, or A to D. Case-insensitive.
original_value_usddoubleOriginal value. Must not be negative.

Response: TriageReturnItemResponse

FieldTypeDescription
return_idstringThe return id.
optimal_dispositionDispositionTriageThe disposition.
estimated_recovery_yield_usddoubleNot derived. Always 0: FACE holds no pricing data for returns.
refurbishment_cost_usddoubleNot derived. Always 0.
routing_destinationstringNot derived. Always empty.
basis_notestringWhat the verdict rests on. Always set.

Messages

ActionCard

One proposed action. At most a few of the artefact fields are set on any card.

FieldTypeDescription
idstringCard id.
titlestringTitle.
typestringBusiness domain and queue routing key. Produced values: Compliance, Finance, Operations, Procurement, S&OP. Cards from the model may carry other strings: treat an unknown value as uncategorised.
prioritystringPriority.
impactstringImpact, as text.
statusstringPending status, or Approved / Rejected once decided.
route_cardRouteTwinCardRoute artefact.
email_draftEmailDraftEmail sent on approval.
calendar_inviteCalendarInviteCalendar artefact. Not executed.
erp_updateERPUpdateERP artefact. Not executed.
transaction_valuefloatMonetary value of the action.
roadmap_cardRoadmapCardRoadmap artefact.
spend_cardSpendAnalysisCardSpend artefact.
rfp_cardRFPCardRFP artefact.
sop_documentSOPDocumentOrphaned. Never populated; kept for wire compatibility. Procedures come from FetchService/GenerateSOP.
spo_cardSPOCardS&OP artefact.
claims_cardClaimsCardClaims artefact.
fulfilment_cardFulfilmentCardFulfilment artefact.
reverse_logistics_cardReverseLogisticsCardReverse-logistics artefact.
reactive_logistics_cardReactiveLogisticsCardReactive-logistics artefact.
emissions_cardEmissionsCardEmissions artefact.
cold_chain_cardColdChainCardCold-chain artefact.
maintenance_cardMaintenanceCardMaintenance artefact.
customs_clearance_cardCustomsClearanceCardCustoms artefact.
importer_of_record_cardImporterOfRecordCardImporter-of-record artefact.
freight_forwarding_cardFreightForwardingCardFreight-forwarding artefact.
cross_border_trucking_cardCrossBorderTruckingCardCross-border artefact.
evidence_documentEvidenceDocumentAn evidence-bearing document (OS&D report, FNOL, subrogation demand and so on), with its citations. Sealed on approval.
decision_trailrepeated ActionDecisionEvery decision on the card, oldest first. The last entry is the current decision. A decided card with an empty trail was decided before trails were recorded.
originActionOriginWhich stage produced the card. Absent means not recorded.
judgementJudgementThe platform’s verdict on the card before it was accepted. Unset means not judged. A card that was dissented from is never served.

ActionDecision

One recorded decision. It shows that the decision was taken under a session this server signed and verified. It is a verified attribution, not a signature: it does not prove that a person rather than a script pressed the button. decided_by_role is what separates a service account from a person.

FieldTypeDescription
decisionstringApproved or Rejected.
decided_atint64Unix seconds when it was recorded (server clock). A retry keeps the first value.
decided_bystringThe verified sub of the deciding session. Empty exactly when attribution is not verified.
attributionDeciderAttributionHow well the decider could be named. Always VERIFIED_SUBJECT on an approval.
decided_by_roleRoleThe verified role of the deciding session.
reasonstringThe decider’s reason, trimmed.

ActionOrigin

FieldTypeDescription
stagestringreconcile, fetch or simulate. Show an unknown value verbatim.
run_idstringThe producing run, when recorded. Empty means not recorded.
labelstringWhat to show a person: a scenario title, schedule name or connection.

Decision

FieldTypeDescription
recommendationstringThe recommendation.
confidencedoubleThe confidence the agent stated. Not a measurement.
rationalestringRationale.
action_planstringAction plan.
risksstringRisks.
judgementJudgementThe platform’s verdict on this decision. Unset means not judged. Dissented decisions do not appear.

ToolCall

FieldTypeDescription
namestringTool name.
argumentsstringArguments.
reasonstringWhy the agent chose it.

EvaluationMetrics

Answer-quality figures. On this page they are the values the agent reported about its own answer, not the output of an evaluation harness, so read them as self-reports. When unmeasured_reason is set, no evaluation ran and every score is 0 because nothing measured it: do not display the scores as percentages.

FieldTypeDescription
context_precisiondoubleContext precision.
context_relevancydoubleContext relevancy.
context_recalldoubleContext recall.
context_correctnessdoubleContext correctness.
contextual_faithfulnessdoubleFaithfulness.
contextual_relevancedoubleRelevance.
contextual_completenessdoubleCompleteness.
contextual_accuracydoubleAccuracy.
contextual_claritydoubleClarity.
contextual_consistencydoubleConsistency.
answer_relevancedoubleAnswer relevance.
answer_completenessdoubleAnswer completeness.
answer_accuracydoubleAnswer accuracy.
answer_claritydoubleAnswer clarity.
answer_consistencydoubleAnswer consistency.
answer_correctnessdoubleAnswer correctness.
unmeasured_reasonstringSet when no evaluation ran, naming why.

TimeSeriesInsight

FieldTypeDescription
metricstringMetric.
forecast_valuestringForecast value.
anomaly_detectedstringAnomaly description.
confidencedoubleThe agent’s stated confidence.

ShadowSearchResult

FieldTypeDescription
querystringSearch query.
sourcestringSource.
findingstringFinding.
relevancestringRelevance.

Variable

FieldTypeDescription
namestringVariable name.
valuedoubleValue.

DecisionScenario

FieldTypeDescription
templatestringScenario template.
hypothesisstringHypothesis.
confidencestringThe model’s stated confidence, as text.
action_leverstringThe lever the scenario pulls.

ImpactSimulation

FieldTypeDescription
metricstringMetric.
change_pctstringChange, in percent.
risk_levelstringRisk level.
time_horizonstringTime horizon.

EvidenceTrace

FieldTypeDescription
source_nodestringSource node.
relationstringRelation.
target_nodestringTarget node.
significancestringSignificance.

TimeSeriesForecast

FieldTypeDescription
periodstringPeriod.
valuedoubleForecast value.
confidencedoubleStated confidence.
interval_lowerdoubleInterval lower bound.
interval_upperdoubleInterval upper bound.

TimeSeriesAnomaly

FieldTypeDescription
timestampstringWhen. For decomposition anomalies, T+<n>.
valuedoubleValue.
typestringPoint, Contextual, or Prophet ML Anomaly.
confidencedoubleConfidence.
explanationstringExplanation.
causestringCause.

HypothesisGroup

FieldTypeDescription
idstringGroup id.
namestringGroup name.
descriptionstringDescription.
categorystringCategory.
scenariosrepeated HypothesisScenarioScenarios.

HypothesisScenario

FieldTypeDescription
idstringScenario id.
namestringName.
statusstringThe generator’s own lifecycle value, always ready. Not a result: read simulation_state.
variablesrepeated VariableVariables.
simulation_resultInteractiveSimulateResponseThe last swarm run’s result, when one was recorded.
validation_resultValidateHypothesisResponseValidation result.
errorstringError.
descriptionstringDescription.
typestringoptimization, risk or compliance.
progressdoubleProgress.
reconciled_rulesrepeated RuleRules the scenario rests on.
originstringWhich part of the estate proposed it: node, synapse or rule. Empty on older scenarios: show them as unattributed.
simulation_stateHypothesisScenarioStateWhat the last recorded swarm did with this scenario.

HypothesisSwarmCensus

Accounting for one swarm run: what the estate proposed, what was simulated, and what was left out. It may describe a run on another process. Absence means no record here.

FieldTypeDescription
scenarios_inferredint32Scenarios proposed before the cap.
agents_dispatchedint32Agents started.
agents_succeededint32Agents that produced a simulation.
cappedboolWhether the cap limited the run.
agent_capint32The cap at the time.
sourcestringWhere the scenarios came from, for example “this fetch’s posture”.
computed_atint64Unix seconds when the census was written.

MaturityDimension

FieldTypeDescription
dimension_namestringFor example data_and_architecture.
current_ratingint321 to 5.
descriptionstringDescription.

RoadmapPhase

FieldTypeDescription
phase_namestringDigitize, Connect, Analyze or Automate.
phase_numberint321 to 4.
milestonesrepeated stringMilestones.
estimated_investment_usddoubleInvestment estimate. 0 from GenerateRoadmap: not estimated.
expected_roi_percentdoubleROI estimate. 0 from GenerateRoadmap: not estimated.
duration_monthsint32Months.

SavingsCategory

FieldTypeDescription
categorystringCategory.
amount_usddoubleSavings in the category.
action_countint32Cards contributing.

SavingsTrend

FieldTypeDescription
periodstringISO week, for example 2026-W39.
amount_usddoubleSavings.

RouteTwinCard

FieldTypeDescription
idstringCard id.
titlestringTitle.
originstringOrigin.
destinationstringDestination.
distancestringDistance.
durationstringDuration.
cost_savingsstringStated saving, when a producer has one.
route_polylinestringEncoded polyline.

EmailDraft

FieldTypeDescription
tostringRecipient.
subjectstringSubject.
bodystringBody.

CalendarInvite

FieldTypeDescription
titlestringTitle.
descriptionstringDescription.
start_timestringRFC 3339.
end_timestringRFC 3339.
attendeesrepeated stringAttendees.

ERPUpdate

FieldTypeDescription
systemstringFor example SAP or Salesforce.
object_typestringFor example Inventory, Lead or Claim.
actionstringUPDATE or CREATE.
payload_jsonstringPayload.

RoadmapCard

FieldTypeDescription
current_levelstringCurrent maturity level.
target_levelstringTarget level.
phasesrepeated RoadmapPhasePhases.
executive_summarystringSummary.

SpendAnalysisCard

FieldTypeDescription
total_spend_usddoubleTotal spend.
identified_savings_usddoubleIdentified savings.
top_categoriesrepeated stringTop categories.
consolidation_recommendationstringRecommendation.

RFPCard

FieldTypeDescription
rfp_titlestringTitle.
rfp_contentstringContent.
evaluation_criteriarepeated stringCriteria.
recommended_vendorsrepeated stringVendors.

SOPDocument

FieldTypeDescription
sop_idstringId.
titlestringTitle.
contentstringContent.
process_namestringProcess name.

SPOCard

FieldTypeDescription
idstringId.
titlestringTitle.
forecast_accuracystringForecast accuracy.
inventory_levelsstringInventory levels.
recommendationstringRecommendation.

ClaimsCard

FieldTypeDescription
idstringId.
titlestringTitle.
claim_numberstringClaim number.
statusstringStatus.
amountstringAmount.
reasoningstringReasoning.

FulfilmentCard

FieldTypeDescription
idstringId.
titlestringTitle.
order_numberstringOrder number.
current_statusstringStatus.
estimated_deliverystringEstimated delivery.
issuestringIssue.

ReverseLogisticsCard

FieldTypeDescription
idstringId.
titlestringTitle.
return_idstringReturn id.
item_conditionstringCondition.
refund_statusstringRefund status.
reasoningstringReasoning.

ReactiveLogisticsCard

FieldTypeDescription
idstringId.
titlestringTitle.
incident_idstringIncident id.
disruption_typestringDisruption type.
impacted_ordersstringImpacted orders.
resolution_planstringResolution plan.

EmissionsCard

FieldTypeDescription
idstringId.
titlestringTitle.
scopestringWhat was measured, for example lanes and distance.
total_co2e_kgdoubleDaily freight CO2e.
annual_co2e_tonnesdoubleAnnualised, on a working-day basis.
highest_lanestringWorst-emitting lane.
reduction_pctdoubleAchievable reduction.
reduction_co2e_kgdoubleDaily CO2e abated.
recommendationstringThe abatement play.
methodologystringFactor and basis, for the audit trail.

ColdChainCard

FieldTypeDescription
idstringId.
titlestringTitle.
asset_idstringRefrigerated asset.
breach_statusstringBreach status.
product_at_riskstringLoad exposed.
value_at_riskdoubleValue of the load exposed.
excursion_detailstringSensor reading or breach detail.
corrective_actionstringThe dispatcher play.

MaintenanceCard

A channel’s measured trend against a limit the feed itself states. There is no model and no probability on this card.

FieldTypeDescription
idstringId.
titlestringTitle.
equipment_idstringEquipment.
failure_probabilitydoubleAlways 0. Not a score and not a measured zero. Do not display it.
predicted_failurestringThe failure mode.
recommended_actionstringThe intervention.
downtime_impactstringThroughput or SLA at risk.

CustomsClearanceCard

FieldTypeDescription
idstringId.
titlestringTitle.
entry_numberstringCustoms entry reference.
shipment_idstringShipment.
port_of_entrystringPort of entry.
clearance_statusstringStatus.
hold_reasonstringHold reason.
missing_documentsrepeated stringMissing documents.
days_heldint32Days held.
demurrage_exposuredoubleDemurrage exposure.
recommended_actionstringRecommended action.

ImporterOfRecordCard

FieldTypeDescription
idstringId.
titlestringTitle.
shipment_idstringShipment.
country_of_importstringCountry.
declared_iorstringDeclared importer of record. Empty when nobody is named.
compliance_gapstringWhat is missing or wrong.
duty_liabilitydoubleDuty and tax with no accountable party.
hts_codestringHTS code.
recommended_actionstringRecommended action.

FreightForwardingCard

FieldTypeDescription
idstringId.
titlestringTitle.
lanestringLane.
modestringMode, for example OCEAN_LCL.
bookingsint32Separate bookings on the lane in the window.
average_utilization_pctdoubleAverage utilisation.
current_spenddoubleSpend across those bookings.
consolidation_savingdoubleRecoverable by consolidating.
recommended_actionstringRecommended action.

CrossBorderTruckingCard

FieldTypeDescription
idstringId.
titlestringTitle.
crossingstringCrossing.
carrierstringCarrier.
border_dwell_hoursdoubleDwell at the border.
scheduled_transit_hoursdoubleScheduled transit.
actual_transit_hoursdoubleActual transit.
loads_affectedint32Loads affected.
detention_costdoubleDetention accrued.
root_causestringRoot cause.
recommended_actionstringRecommended action.

Enums

DeciderAttribution

ValueMeaning
DECIDER_ATTRIBUTION_UNSPECIFIEDNever written by ExecuteAction. On a stored entry it means the entry did not come from the decision path.
DECIDER_ATTRIBUTION_VERIFIED_SUBJECTThe session verified and named its subject. The only value an approval can carry.
DECIDER_ATTRIBUTION_NO_SUBJECT_IN_TOKENThe session verified but carried no subject. Sign in again.
DECIDER_ATTRIBUTION_NO_VERIFIED_IDENTITYNo verified identity was attached to the call.

HypothesisScenarioState

ValueMeaning
HYPOTHESIS_SCENARIO_STATE_UNSPECIFIEDNo census covers this scenario: unknown. Neither a failure nor a success.
HYPOTHESIS_SCENARIO_STATE_SIMULATEDDispatched, and a simulation was produced.
HYPOTHESIS_SCENARIO_STATE_FAILEDDispatched, and no simulation was produced.
HYPOTHESIS_SCENARIO_STATE_CAPPEDProposed but not dispatched, because the swarm cap was reached.
HYPOTHESIS_SCENARIO_STATE_NOT_IN_RUNNot proposed by that run at all: the scenario is newer than the census.

DispositionTriage

ValueMeaning
DISPOSITION_TRIAGE_UNSPECIFIEDNot set.
DISPOSITION_TRIAGE_RESTOCKRestock.
DISPOSITION_TRIAGE_REFURBISHRefurbish.
DISPOSITION_TRIAGE_RECYCLERecycle.
DISPOSITION_TRIAGE_LANDFILLLandfill.