@@ -3,17 +3,15 @@ namespace ARCP.Core
33open System
44open System.Text .Json
55
6- /// Canonical ARCP error taxonomy (spec §12). Fifteen cases.
6+ /// Canonical ARCP error taxonomy (spec §12). Fifteen DU cases —
7+ /// every wire error code has exactly one DU arm.
78///
8- /// ` retryable ` follows §12. Three cases must be ` retryable = false `
9- /// because a naive retry will fail identically:
10- /// ` LeaseExpired ` , ` BudgetExhausted ` , ` AgentVersionNotAvailable ` .
9+ /// Only ` Timeout ` , ` HeartbeatLost ` , and ` InternalError ` are retryable
10+ /// per §12; the remaining twelve arms are not.
1111///
1212/// F# consumers prefer ` Result<_, ARCPError> ` for expected outcomes.
1313/// ` ArcpException ` (below) wraps the same value for C# callers and
1414/// for fatal paths where exceptions are the idiom.
15- /// Canonical ARCP error taxonomy (spec §12). Fifteen DU cases —
16- /// every wire error code has exactly one DU arm.
1715[<RequireQualifiedAccess>]
1816type ARCPError =
1917 | PermissionDenied of message : string * details : JsonElement option
@@ -95,9 +93,6 @@ module ARCPError =
9593 | ARCPError.InvalidRequest(_, d) -> d
9694 | _ -> None
9795
98- /// Exception form for C# interop and for fatal paths in F# where
99- /// the spec-canonical surface is "throw with code". Carries the
100- /// underlying ` ARCPError ` .
10196/// Convenience alias for ` ARCPError ` . The protocol uses "ARCP"
10297/// all-caps, so the spec-named type is ` ARCPError ` ; ` SdkError `
10398/// is the F#-conventional name for callers who prefer it.
0 commit comments