Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ Documentation for the whole stack lives at
| `ExecuteRequestV1` / `ExecuteStatusV1` | Async qualified-execution request and lifecycle contracts |
| `ExecuteEvidenceReceiptV1` | Outcome receipt with contract proof and evidence identifiers |
| `EffectStrengthV1` | Named effect-proof strength for consequential execution |
| `BusinessDecisionTaskV1` / `BusinessDecisionAnswerV1` | Signed, finite business choices for authenticated mobile or local operator routes |
| `BusinessDecisionAnswerReceiptV1` | Runner answer receipt that cannot claim a verified business effect |

## Quick start

Expand Down Expand Up @@ -204,6 +206,17 @@ status, terminal evidence receipts, and signed decision and terminal webhooks.
It keeps `waiting_for_reconciliation` as a lifecycle state and
`reconciliation_required` as a terminal outcome.

The separate `business-decision-*-v1.json` files define a finite human branch
that the workflow declared before execution. They do not reuse the operational
halt actions. They carry only opaque bindings, option IDs, digests, counts, and
closed status values. The separate presentation artifact classifies each
question and option label as `local_only` or `reviewed_remote_safe`. Remote
delivery requires a positive egress-review digest for every field. The signed
delivery policy binds the exact presentation and review digest. Screenshots,
free-form notes, and live record values stay on the customer runner. An
accepted answer only selects a compiled branch. The next action must still pass
its live-state, identity, policy, and effect contracts.

## OpenAdapt Execute v1

OpenAdapt Execute is the public asynchronous contract for a qualified
Expand Down
67 changes: 65 additions & 2 deletions openadapt_types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,37 @@
BenchmarkObservation,
BenchmarkTask,
)
from openadapt_types.business_decision import (
BUSINESS_DECISION_ANSWER_RECEIPT_REASONS,
BUSINESS_DECISION_ANSWER_RECEIPT_SCHEMA,
BUSINESS_DECISION_ANSWER_SCHEMA,
BUSINESS_DECISION_DELIVERY_POLICY_SCHEMA,
BUSINESS_DECISION_PRESENTATION_SCHEMA,
BUSINESS_DECISION_TASK_SCHEMA,
BusinessDecisionAnswerReceiptReason,
BusinessDecisionAnswerReceiptState,
BusinessDecisionAnswerReceiptV1,
BusinessDecisionAnswerV1,
BusinessDecisionContextCardV1,
BusinessDecisionContextKind,
BusinessDecisionDeliveryMode,
BusinessDecisionDeliveryPolicyV1,
BusinessDecisionJudgmentReason,
BusinessDecisionOptionBindingV1,
BusinessDecisionPresentationClassification,
BusinessDecisionPresentationOptionV1,
BusinessDecisionPresentationTextV1,
BusinessDecisionPresentationV1,
BusinessDecisionRequiredAuthn,
BusinessDecisionTaskV1,
business_decision_presentation_text_digest,
sign_business_decision_answer_hmac,
sign_business_decision_answer_receipt_hmac,
sign_business_decision_delivery_policy_hmac,
sign_business_decision_task_hmac,
validate_business_decision_answer,
validate_business_decision_delivery,
)
from openadapt_types.computer_state import (
BoundingBox,
ComputerState,
Expand Down Expand Up @@ -92,6 +123,7 @@
ExecuteAcceptedV1,
ExecuteAuthorizationContextV1,
ExecuteDecisionRequiredWebhookV1,
ExecuteDecisionTaskV1,
ExecuteEvidenceContractV1,
ExecuteEvidenceReceiptV1,
ExecuteLifecycleStateV1,
Expand All @@ -104,8 +136,8 @@
ExecuteWebhookV1,
sign_execute_webhook_hmac,
)
from openadapt_types.execute_openapi import execute_openapi_document
from openadapt_types.execute_client import ExecuteApiError, ExecuteClient
from openadapt_types.execute_openapi import execute_openapi_document
from openadapt_types.execution_requirements import (
CAPABILITY_MATCH_SCHEMA,
EXECUTION_REQUIREMENTS_SCHEMA,
Expand All @@ -125,9 +157,9 @@
HumanDecisionDeliveryState,
HumanDecisionEntityFallback,
HumanDecisionEvidenceSummaryV1,
HumanDecisionQualifiedEntityV1,
HumanDecisionQuestionTemplate,
HumanDecisionQuestionV1,
HumanDecisionQualifiedEntityV1,
HumanDecisionReceiptReason,
HumanDecisionReceiptState,
HumanDecisionReceiptV1,
Expand Down Expand Up @@ -225,6 +257,36 @@
"BenchmarkAgent",
"BenchmarkObservation",
"BenchmarkTask",
# portable business decisions
"BUSINESS_DECISION_ANSWER_SCHEMA",
"BUSINESS_DECISION_ANSWER_RECEIPT_REASONS",
"BUSINESS_DECISION_ANSWER_RECEIPT_SCHEMA",
"BUSINESS_DECISION_DELIVERY_POLICY_SCHEMA",
"BUSINESS_DECISION_PRESENTATION_SCHEMA",
"BUSINESS_DECISION_TASK_SCHEMA",
"BusinessDecisionAnswerV1",
"BusinessDecisionContextCardV1",
"BusinessDecisionContextKind",
"BusinessDecisionDeliveryPolicyV1",
"BusinessDecisionDeliveryMode",
"BusinessDecisionJudgmentReason",
"BusinessDecisionOptionBindingV1",
"BusinessDecisionPresentationClassification",
"BusinessDecisionPresentationOptionV1",
"BusinessDecisionPresentationTextV1",
"BusinessDecisionPresentationV1",
"BusinessDecisionAnswerReceiptReason",
"BusinessDecisionAnswerReceiptState",
"BusinessDecisionAnswerReceiptV1",
"BusinessDecisionRequiredAuthn",
"BusinessDecisionTaskV1",
"business_decision_presentation_text_digest",
"sign_business_decision_answer_hmac",
"sign_business_decision_answer_receipt_hmac",
"sign_business_decision_delivery_policy_hmac",
"sign_business_decision_task_hmac",
"validate_business_decision_answer",
"validate_business_decision_delivery",
# episode
"Episode",
"Step",
Expand All @@ -239,6 +301,7 @@
"ExecuteAcceptedV1",
"ExecuteAuthorizationContextV1",
"ExecuteDecisionRequiredWebhookV1",
"ExecuteDecisionTaskV1",
"ExecuteEvidenceContractV1",
"ExecuteEvidenceReceiptV1",
"ExecuteLifecycleStateV1",
Expand Down
Loading
Loading