package commit import ( "git.cin.su/m/Assistant/contracts/authority" "git.cin.su/m/Assistant/contracts/capability" "git.cin.su/m/Assistant/contracts/continuity" "git.cin.su/m/Assistant/contracts/identity" "git.cin.su/m/Assistant/contracts/work" "git.cin.su/m/Assistant/platform/ids" ) type ActionIntentID ids.ID type ActionAttemptID ids.ID type AttemptID = ActionAttemptID type AuthorizedActionID ids.ID type ActionState string const ( ActionProposed ActionState = "PROPOSED" ActionAuthorized ActionState = "AUTHORIZED" ActionExecuting ActionState = "EXECUTING" ActionSucceeded ActionState = "SUCCEEDED" ActionFailed ActionState = "FAILED" ActionUnknownOutcome ActionState = "UNKNOWN_OUTCOME" ) type ExternalOperation string const ( CapabilityTestExecutor capability.CapabilityID = "test-executor" CapabilityContinuityTransition capability.CapabilityID = "continuity-transition" CapabilityProspectiveNotification capability.CapabilityID = "prospective-notification-delivery" OperationTestIdempotentEffect ExternalOperation = "test-idempotent-effect" OperationSatisfyDelivered ExternalOperation = "satisfy-delivered" OperationDeliverProspectiveNotification ExternalOperation = "deliver-prospective-notification-v1" ) const ProspectiveDeliveredTemplateV1 = "prospective-delivered-v1" // ProspectiveNotificationSubject is immutable Commit evidence. Destination // data is resolved from the exact Capability binding revision, never from UI. type ProspectiveNotificationSubject struct { ProspectiveItemID continuity.ProspectiveItemID ExpectedRevision continuity.ProspectiveRevision TemplateCode string BindingID capability.CapabilityBindingID BindingRevision int64 RenderedTitle string RenderedMessage string RequestDigest string } type ActionProposal struct { IntentID ActionIntentID ActorID identity.ActorID CapabilityID capability.CapabilityID Target work.TaskTarget Operation ExternalOperation ContinuitySubject continuity.SatisfyDeliveredSubject NotificationSubject ProspectiveNotificationSubject State ActionState } type AuthorizedAction struct { ID AuthorizedActionID Proposal ActionProposal PrincipalID identity.PrincipalID GrantID authority.GrantID GrantRevision authority.AuthorityRevision ScopeID authority.ScopeID AuthorizedAtUnixMillis int64 State ActionState } type ActionAttempt struct { ID ActionAttemptID AuthorizedID AuthorizedActionID IntentID ActionIntentID State ActionState }